Serverless đã trở thành một mô hình điện toán đám mây phổ biến, nhưng chính xác thì nó là gì?

Iworld.com.vn – Serverless đã trở thành một mô hình điện toán đám mây phổ biến, nhưng chính xác thì nó là gì?

Thierry Ciot

Thierry Ciot là một Kiến trúc sư Phần mềm về Hệ thống Quản lý Quy tắc Kinh doanh Corticon. Ciot có nhiều năm kinh nghiệm trong việc phát triển các sản phẩm từ các công cụ phát triển đến hệ thống giám sát sản xuất. Hiện ông đang tập trung vào việc đưa Quản lý Quy tắc Kinh doanh sang Javascript và đặc biệt là đưa vào thế giới không máy chủ, nơi Corticon sẽ tỏa sáng. Ông có hai bằng sáng chế trong lĩnh vực quản lý bộ nhớ.

Phát triển ứng dụng dựa trên serverless đã trở nên phổ biến trong vài năm gần đây. Trong bài viết này, chúng ta sẽ xem Serverless là gì và các thuộc tính cơ bản của nó đồng thời cung cấp các tài liệu tham khảo bổ sung trong quá trình tìm hiểu.

Khái niệm : Serverless là môi trường, nền tảng thực thi ứng dụng và dịch vụ mà không cần đến máy chủ

Serverless là một dạng điện toán mới với hai đặc điểm chính:

  • Các Cloud Provider (một công ty cung cấp dịch vụ điện toán đám mây và các giải pháp dựa cho các doanh nghiệp và / hoặc cá nhân) sẽ đảm nhận cơ sở hạ tầng và một số hoạt động quản lý theo truyền thống vốn thuộc về các các kỹ sư và nhà phát triển. Điều này cho phép nhóm phát triển tập trung nhiều hơn vào việc viết code và ít hơn vào các hoạt động giống như CNTT, ví dụ: các Cloud Provider sẽ:

-> Tự động mở rộng quy mô các phiên bản hoặc các nguồn tài nguyên khác khi cần thiết để thực thi ứng dụng dựa trên phụ tải nền mà ứng dụng nhận được.

-> Duy trì các phiên bản này (từ phần cứng dùng để nâng cấp hệ điều hành và các thư viện phụ thuộc).

  • Bạn chỉ phải trả tiền cho những gì bạn sử dụng. Bằng cách này, bạn có thể bắt đầu với quy mô nhỏ và chỉ trả tiền khi một dự án của bạn thành công.

Serverless bắt đầu trở nên phổ biến trên Amazon khi AWS giới thiệu Lambda Function (code chạy trên AWS Lambda) vào năm 2014. Và cuối cùng, Microsoft và Google cũng sử dụng Azure Function (dịch vụ cho phép chạy các đoạn code có độ phức tạp của nghiệp vụ không cao) và Google Cloud Function ( một sản phẩm cho phép chạy code backend tự động trigger các event được kích hoạt bởi tính năng của Firebase (Google).

Lưu ý : Lambda Function, Azure Function và Google Cloud Function đều là các dịch vụ điện toán do AWS giới thiệu đến người dùng. Ngoài ra, AWS Lambda là đơn vị đầu tiên đi tiên phong trong lĩnh vực cloud không máy chủ vào năm 2014.

Trọng tâm ban đầu của các Cloud Provider là Serverless Function. Với Serverless Function, các nhà phát triển phải chịu trách nhiệm viết function code trong khi các Cloud Provider chịu trách nhiệm thực thi các chức năng theo yêu cầu, cũng như tăng và giảm số lượng các trường hợp mà các chức năng này thực thi.

Về chi phí, bạn chỉ phải trả khi các tính năng đang được thực hiện và tương ứng với thời gian nó thực thi (dung lượng bộ nhớ đã dùng/ tốc độ CPU). Khi không có chức năng nào đang thực thi, bạn không cần chi trả bất cứ một khoản phí nào.

Để hiểu rõ hơn, hãy lấy một ví dụ về chi phí bạn phải trả khi sử dụng AWS Lambda: với 1GB bộ nhớ, bạn phải trả $0,0000000167 cho mỗi mili giây thực thi. Nói một cách khác: với 1 triệu yêu cầu mỗi ngày ở tốc độ 20ms trong 30 ngày liên tục, bạn sẽ phải trả 10 đô la một tháng (số liệu tháng 7/2021)

Tuy nhiên, Serverless không giới hạn các chức năng. Những cải tiến gần đây từ các Cloud Provider khác nhau đã mở rộng khái niệm Serverless sang nhiều dịch vụ khác, bao gồm lưu trữ dữ liệu và quy trình làm việc.

Đặc điểm chính của tất cả các dịch vụ Serverless này là:

  • Khả năng giúp các nhà phát triển tập trung vào giải quyết các vấn đề kinh doanh mà không tốn thời gian tạo mã cơ sở hạ tầng, duy trì thời gian hoạt động của máy chủ và quản lý cơ sở hạ tầng phần cứng và phần mềm của máy chủ (khả năng phục hồi, khả năng mở rộng, độ đàn hồi, bảo mật…).
  • Cơ sở hạ tầng “co giãn”: quy mô dựa trên nhu cầu (đôi khi được gọi là cơ sở hạ tầng co giãn theo yêu cầu). Bạn không phải nâng cấp dịch vụ cho việc sử dụng cao điểm, điều này rất tốn kém và khó khăn và rất khó để biết mức sử dụng cao nhất của bạn thực sự sẽ là bao nhiêu. Bạn không phải triển khai bộ cân bằng tải hoặc các công nghệ tương tự khác. Trên thực tế, bạn thậm chí không cần biết rằng những công nghệ như vậy tồn tại. Điều này sẽ giúp giảm chi phí cho bạn vì bạn không phải đào tạo các nhà phát triển về những chủ đề này và họ có thể tập trung vào giá trị kinh doanh gia tăng.
  • Trả phí cho mỗi lần sử dụng: Cấu trúc chi phí được giải thích rất rõ ràng vì các nhà cung cấp dịch vụ đám mây chỉ tính phí khi bạn sử dụng dịch vụ. Đây được xem là một sự thay đổi lớn vì bạn sẽ không phải trả phí khi không sử dụng dịch vụ. Nói cách khác, bạn chỉ thanh toán khi dịch vụ của bạn được sử dụng. Điều này giúp bạn dễ dàng xây dựng kế hoạch kinh doanh và tránh rủi ro.
  • Chi phí của bạn được giảm xuống vì bạn không phải đào tạo hoặc thuê các chuyên gia trong việc mở rộng ứng dụng như đối với các ứng dụng đám mây truyền thống.
  • Chi phí bảo trì của bạn được giảm xuống do bạn không phải quản lý các phiên bản (ví dụ như các nâng cấp hoặc bản vá bảo mật).
  • Nó dễ dàng hơn và rẻ hơn để chạy trong một môi trường thử nghiệm và tiền sản xuất.

Hiện tại với rất nhiều dịch vụ Serverless, việc xem xét tạo ra các ứng dụng chỉ dành cho Serverless (Serverless First) là hoàn toàn có thể. Chúng tôi sẽ nói về vấn đề này trong một bài viết khác.

Tất nhiên, Serverless không có nghĩa là không có máy chủ — thực sự có các phiên bản máy chủ đang chạy mã của bạn và sẵn sàng trả lời các yêu cầu đến. Thay vào đó, Serverless có nghĩa là nhóm phát triển không phải xử lý các máy chủ.

Mặc dù các ứng dụng vẫn cần được theo dõi lỗi và hiệu suất (thực tế, lỗi ứng dụng không thể tự biến mất), bạn không còn phải tìm hiểu xem liệu một phiên bản cụ thể có đang hoạt động tối đa hay không.

Đã qua rồi thời của việc lập kế hoạch năng lực và quản lý tài nguyên phức tạp. Bây giờ, chỉ trong một cú nhấp chuột, bạn có thể chạy các tính năng với 1GB bộ nhớ thay vì chỉ 256MB như trước và với CPU nhanh hơn gấp bốn lần mà không cần cấu hình phiên bản mới và cài đặt lại. Hơn nữa, bạn có thể điều chỉnh các chức năng riêng lẻ tùy theo nhu cầu của riêng họ.

Sử dụng Serverless, tại sao không?

Tất cả các thuộc tính Serverless đã cho phép các nhóm nhỏ cạnh tranh với các tổ chức lớn hơn, cho phép họ nhanh chóng xây dựng các ứng dụng có thể xử lý lượng lớn lưu lượng và các biến thể lớn về lưu lượng với chi phí rất thấp.

Serverless là một mô hình điện toán biến đổi đang trở nên rất phổ biến và bạn chắc chắn nên xem xét nó khi triển khai các ứng dụng dựa trên đám mây.

Trong các bài viết sau , chúng ta sẽ tìm hiểu về các chủ đề Serverless khác nhau như mô hình lập trình Serverless, xu hướng, ứng dụng tổng hợp và xử lý luồng.

Và nếu bạn đang muốn học cách xây dựng, kiểm tra và triển khai các quy tắc kinh doanh, thì Corticon là một công cụ tuyệt vời để viết logic kinh doanh cho môi trường Serverless.

Tài liệu tham khảo cho độc giả

Các bậc phụ huynh đã sống, làm việc và nuôi dạy con cái như thế nào trong thời điểm dịch bệnh COVID_19?

Các content được tạo ra cho Bot hay con người? 

Làm thế nào để tạo ra một content có nội dung lôi cuốn và hấp dẫn?

Biên dịch bởi Hằng Nga – Iworld.com.vn