Traffic Count

Điện toán "không máy chủ": chạy phần mềm trên đám mây mà không phải lo bảo trì máy

Có cách nào để chạy phần mềm mà không cần mua, cài đặt hay sửa chữa máy chủ, lại chỉ trả tiền đúng lúc phần mềm làm việc? Câu trả lời nằm ở điện toán serverless trên đám mây Azure.

Nhà bạn muốn có điện để thắp sáng. Không ai tự xây nhà máy điện riêng, cũng không ai phải trực máy phát cả ngày. Bạn chỉ cắm điện, dùng bao nhiêu trả bấy nhiêu. Ngành phần mềm cũng đang đi theo hướng đó. Thay vì tự mua máy chủ, tự cài đặt, tự sửa khi hỏng, doanh nghiệp thuê tài nguyên trên đám mây. Bước xa nhất của xu hướng này có tên là serverless, tức "không máy chủ".

Bốn kiểu thuê dịch vụ đám mây

Cuốn Azure Serverless Succinctly của tác giả Sander Rossel chia dịch vụ đám mây thành bốn kiểu, càng lên cao người dùng càng ít phải lo phần kỹ thuật.

Kiểu thứ nhất là IaaS, thuê hạ tầng. Doanh nghiệp thuê một máy ảo trên đám mây, được cài gì tùy thích nhưng vẫn phải tự bảo trì, cập nhật. Kiểu thứ hai là PaaS, thuê nền tảng. Nhà cung cấp lo máy chủ, người dùng chỉ đưa ứng dụng lên chạy. Kiểu thứ ba là SaaS, thuê phần mềm dùng sẵn như Office 365. Kiểu thứ tư chính là serverless.

Serverless nghĩa là gì?

Tác giả nói thẳng rằng cái tên này hơi gây hiểu lầm. Mã chương trình vẫn chạy trên máy chủ thật, chỉ là người lập trình gần như không phải động tay đến máy chủ nữa. Khi mã không chạy, máy chủ được nhường cho người dùng Azure khác. Mã được cất trong kho lưu trữ và chỉ khởi động khi có một sự kiện kích hoạt.

Trên Azure, phần mã ấy được viết thành các hàm (Azure Functions). Một hàm có thể được kích hoạt bởi đồng hồ hẹn giờ, một lời gọi qua web, hay một tin nhắn mới trong hàng đợi. Người lập trình chọn ngôn ngữ quen thuộc như C#, JavaScript (Node.js), Python, Java hoặc PowerShell.

Hình 1. Thiết lập một hàm Azure: chọn sự kiện kích hoạt (Trigger), dữ liệu vào (Inputs), dữ liệu ra (Outputs) và các phương thức web được phép gọi

Kéo thả để tạo quy trình tự động

Không phải việc gì cũng cần viết mã. Azure Logic Apps cho phép "lắp ráp" quy trình làm việc bằng cách kéo thả các khối trên màn hình thiết kế. Theo sách, quy trình có thể bắt đầu khi nhận một email trong Outlook hay một dòng tweet trên Twitter, rồi đi qua các bước kiểm tra điều kiện, xử lý và trả kết quả.

Hình 2. Một quy trình Logic App: nhận yêu cầu, kiểm tra điều kiện, rẽ hai nhánh đúng và sai rồi trả phản hồi

Ngoài ra còn có các dịch vụ serverless khác mà sách giới thiệu: Service Bus để chuyển tin nhắn giữa các phần mềm, Event Grid để phân phát sự kiện, Azure SQL cho cơ sở dữ liệu và API Management để quản lý cổng giao tiếp giữa các hệ thống.

Ưu điểm và giới hạn

Lợi thế lớn nhất là không phải bảo trì máy chủ và không trả tiền cho máy chủ đang nằm không. Khi khối lượng việc tăng vọt, ví dụ phải xử lý hàng nghìn bức ảnh, Azure tự động thêm máy chủ để chạy song song. Khi máy rảnh vài phút, Azure tự thu bớt lại. Tại thời điểm sách được viết, một triệu lượt chạy đầu tiên được miễn phí, nên doanh nghiệp nhỏ với khối lượng việc ít gần như không tốn đồng nào.

Sách cũng thẳng thắn nêu giới hạn. Hàm cần thời gian khởi động nên có độ trễ, mặc định mỗi lần chạy tối đa năm phút. Nếu hàm phải chạy cả ngày trên nhiều máy, chi phí tăng nhanh và thuê máy chủ cố định có khi rẻ hơn. Serverless phù hợp để bổ sung cho hạ tầng sẵn có, không phải thay thế mọi thứ.

Serverless cũng không riêng gì Azure. Sách cho biết Amazon có AWS Lambda, Google có Google Cloud Functions. Doanh nghiệp có thể kết hợp nhiều đám mây cùng lúc.

Nghề nghiệp và kỹ năng

Khi doanh nghiệp chuyển dần lên đám mây, nhu cầu tuyển người biết làm việc với dịch vụ đám mây mở ra nhiều vị trí: lập trình viên backend, kỹ sư điện toán đám mây, kỹ sư DevOps phụ trách tự động triển khai phần mềm. Sách hướng dẫn đưa hàm lên Azure theo nhiều cách, từ cổng quản trị trên web, từ Visual Studio đến dùng Azure DevOps để tự động hóa.

Học serverless giúp bạn rèn tư duy hướng sự kiện: chuyện gì xảy ra thì phần mềm phản ứng thế nào. Bạn cũng học cách cân nhắc chi phí khi thiết kế, điều mà doanh nghiệp nào cũng quan tâm. Và bạn làm quen với việc đọc biểu đồ giám sát để biết phần mềm đang chạy khỏe hay đang gặp lỗi.

Tập trung vào ý tưởng, để đám mây lo phần còn lại

Serverless cho phép người lập trình dồn sức vào điều quan trọng nhất là giải bài toán của người dùng. Một sinh viên với tài khoản đám mây có thể tạo ra dịch vụ phục vụ hàng nghìn người mà không cần phòng máy riêng. Nếu bạn thích ý tưởng biến một đoạn mã nhỏ thành dịch vụ chạy trên Internet, điện toán đám mây là lĩnh vực đáng để tìm hiểu.

Trường Cao đẳng Công nghệ thông tin TP.HCM

  • Website: itc.edu.vn - Email tuyển sinh: tuyensinh@itc.edu.vn
  • Điện thoại: (028) 386 050 03 - Hotline: 093 886 1080 / 097 500 5356
  • Địa chỉ: 12 Trịnh Đình Thảo, P. Tân Phú, TP.HCM

ThS. Trương Châu Long - Trưởng bộ môn ngành CNTT & HTTT