Serverless Computing là gì? Tìm hiểu các kiến thức cơ bản về Serverless
Khái niệm về Serverless computing
Serverless Computing là một mô hình thực thi điện toán đám mây mà trong đó các nhà cung cấp đám mây sẽ quản lý động việc phân bổ tài nguyên máy, giá cả của mô hình này dựa trên số lượng tài nguyên thực tế mà ứng dụng sử dụng thay vì phải trả trước một khoản nhất định trong một khoảng thời gian.
Ngoài ra, một Serverless Computing cũng có thể được hiểu là cách mà chúng ta xây dựng lên các ứng dụng khả dụng, sẵn sàng lắng nghe và phản ứng lại với các sự kiện được đưa ra bởi các dịch vụ (services).
Serverless Computing hoạt động như thế nào?
Serverless computing loại bỏ việc quản lý máy chủ khỏi người dùng. Có nghĩa là máy chủ phải tự tính toán các tham số như không gian lưu trữ và bộ nhớ (gọi là “Function-as-a-Service” hay “FaaS”). Khi đám mây nhận được code để chạy từ người dùng, nó sẽ tính toán có bao nhiêu tài nguyên được yêu cầu cho việc này. Sau đó, đám mây sẽ nhìn vào các máy chủ của mình và xử lý các tài nguyên cần thiết để chạy tiến trình mà nó vừa được yêu cầu.
Máy chủ cũng cần nhận ra khi nào một tiến trình cần được tăng hoặc giảm quy mô. Nếu máy chủ lưu trữ một trang web “nhìn thấy” lượng khách truy cập, nó sẽ tự động điều chỉnh và gán thêm tài nguyên cho trang web này. Khi luồng khách truy cập đó biến mất, máy chủ có thể sử dụng ít tài nguyên hơn để giữ cho trang web trực tuyến. Sau đó, nó tính toán có bao nhiêu tài nguyên đã được sử dụng trong một tháng và tính hóa đơn cho người dùng.
Cách sử dụng Serverless Computing
Thông thường, người dùng tương tác với serverless computing bằng console. Điều này cho phép người dùng thiết kế các chức năng mà họ muốn đám mây thực hiện. Sau đó, người dùng sẽ gọi chức năng này khi cần chạy dịch vụ và cho phép serverless computing xử lý phần còn lại.
Rất dễ dàng để người dùng tạo và chạy một chức năng nào đó. Rào cản lớn nhất là tìm ra cách sử dụng giao diện dịch vụ đã chọn để chạy một tiến trình nào đó. Sau khi hoàn thành, bạn có thể thực hiện tiến trình và để dịch vụ xử lý phần còn lại!
Ưu và nhược điểm của Serverless Computing
Ưu điểm của Serverless
- Linh hoạt về chi phí: Serverless chỉ thu phí người dùng dựa trên công việc tính toán được thực hiện thực tế.
- Linh hoạt tăng giảm quy mô: Mô hình Serverless có khả năng mở rộng vô hạn hoặc thu gọn tài nguyên tính toán cho người dùng tùy thuộc nhu cầu sử dụng ứng dụng.
- Quản lý cơ sở hạ tầng đơn giản: Việc quản lý cơ sở hạ tầng máy chủ phần lớn đã được nhà cung cấp dịch vụ đám mây đảm nhiệm, người dùng không nhất thiết phải quan tâm đến vấn đề này.
- Tự động co giãn: Khi người dùng có nhu cầu tải cao, hệ thống Serverless sẽ tự động co giãn để đáp ứng nhu cầu mà không cần người quản trị phải thiết kế thủ công.
- Giảm thiểu thời gian triển khai và phát triển: Khi sử dụng mô hình Serverless người dùng chỉ chú tâm vào việc phát triển ứng dụng mà không cần chú ý đến việc quản lý cơ sở hạ tầng trên máy chủ.
Nhược điểm của Serverless
- Giới hạn thời gian chạy hàm: Serverless là dịch vụ bị giới hạn về thời gian chạy hàm, giới hạn các tài nguyên sẵn có cũng như thời gian thực thi. Do đó các ứng dụng đòi hỏi thời gian thực hiện dài hoặc liên tục sẽ bị ảnh hưởng.
- Phức tạp trong quản lý tài nguyên: Dù Serverless làm giảm áp lực về quản lý hạ tầng cho người dùng nhưng đối với việc phát triển các ứng dụng lớn thì việc theo dõi tài nguyên Serverless lại phức tạp.
- Điều chỉnh hiệu suất ứng dụng gặp khó khăn: Trường hợp người sử dụng muốn tối ưu hóa hiệu suất của một số ứng dụng có thể sẽ gặp khó khăn bởi vì máy chủ và tài nguyên được quản lý bởi nhà cung cấp.
- Khó khăn trong việc kiểm tra và gỡ lỗi: Việc kiểm tra và gỡ lỗi có thể gặp khó khăn khi phát triển ứng dụng trên mô hình điện toán Serverless so với khi khai báo trên cơ sở hạ tầng máy chủ lưu thông.
- Chi phí ngầm: Một số nhà cung cấp sẽ tính chi phí lưu trữ mã nguồn, băng thông, lưu trữ dữ liệu,… điều này nếu không tối ưu chi phí ngầm này có thể còn cao hơn cả phí cho Serverless.
- Yêu cầu về kỹ năng và kiến thức: Để vận hành trong mô hình Serverless đòi hỏi bạn phải biết cách quản lý tài nguyên. Vì thế bạn cần phải bỏ thời gian để nghiên cứu cách sử dụng IAM policies, CloudFormation,…
Khi nào nên sử dụng Serverless
Serverless được ứng dụng trong nhiều trường hợp khác nhau, loại trừ những trường hợp có liên quan đến các nhược điểm của Serverless như bên trên.
- Website hoặc APIs: Doanh nghiệp hoàn toàn có thể xây dựng một website hoặc một API dựa trên Serverless. Website có thể là động hoặc bán tĩnh và đa số người dùng thích chọn xây dựng Restful API với Serverless.
- Xử lý file đa phương tiện: Đối với các file, hình ảnh không yêu cầu xử lý cao như nén, cắt, đổi định dạng, tạo thumbnail, thì sử dụng Serverless là lựa chọn phù hợp.
- Xử lý sự kiện: Serverless đóng vai trò như 1 công tắc, khi khách hàng có hành động lên các sự kiện công tắc sẽ tự động kích hoạt.
2 mô hình dịch vụ của Serverless phổ biến
Serverless không chỉ là một thuật ngữ công nghệ mà còn mà một bước tiến lớn trong kiến trúc điện toán đám mây. Nhưng bạn đã thực sự hiểu rõ về 2 mô hình cốt lõi làm nên sức mạnh của Serverless này hay chưa? Cùng khám phá BasS và FaaS, nền tảng giúp cho Serverless tối ưu hóa tài nguyên và mang đến sự linh hoạt vượt trội.
1. Mô hình BasS
Đối với BaaS (Back As A Service) được hiểu là Back-end dưới dạng dịch vụ, các Code Logic của doanh nghiệp sẽ được xử lý tại Frontend. Với Backend, doanh nghiệp sử dụng các API do bên thứ ba cung cấp.
Để hiểu hơn về BaaS trong mô hình dịch vụ Serverless là gì, hãy tham khảo ví dụ sau: Doanh nghiệp cần phát triển một phần mềm dự báo thời tiết, nhưng không có các thiết bị đo đạc, vệ tinh,... để thu thập dữ liệu rồi viết code xử lý chúng. Lúc này, doanh nghiệp có thể lấy dữ liệu có sẵn từ API (giao diện lập trình ứng dụng) của các bên thứ ba đã cung cấp công khai, ví dụ như của Google Weather API.
Các dữ liệu lấy từ API bên thứ ba này sẽ được doanh nghiệp xử lý để hiển thị tại Frontend.
2. Mô hình FaaS
Mô hình FaaS Mô hình FaaS (Function-as-a-Service) là một mô hình điện toán đám mây, cho phép các nhà phát triển xây dựng, chạy và quản lý các ứng dụng mà không cần quan tâm đến hạ tầng bên dưới. FaaS thường được sử dụng để xây dựng các microservice hoặc ứng dụng không máy chủ (serverless), không yêu cầu một framework hay thư viện cụ thể nào.
Trong mô hình FaaS, nhà cung cấp dịch vụ đám mây sẽ chịu trách nhiệm quản lý tất cả các tài nguyên phần cứng, hệ điều hành, máy chủ web và thời gian chạy. Các nhà phát triển chỉ cần viết code cho các hàm (function) và tải chúng lên nền tảng FaaS. Nền tảng FaaS sẽ tự động mở rộng quy mô để đáp ứng lưu lượng truy cập và chỉ tính phí cho thời gian thực thi của các hàm.
Hy vọng thông qua bài viết trên sẽ giúp bạn hiểu rõ hơn về Serverless Computing. Đây không phải là một mô hình hoàn toàn khác biệt, nhưng nó chắc chắn sẽ được ứng dụng trong thời gian sắp tới, khi mà vấn đề về cải tiến công nghệ luôn là một trong những ưu tiên hàng đầu của doanh nghiệp.
—---------------------------------------------
Công ty cổ phần Công nghệ và Truyền thông Biển Xanh
Website: https://thuedauso.vn/
Facebook: https://www.facebook.com/blueseacloudserver/
Hotline: 0907.69.69.46
Email: yenht@bluesea.vn
Trụ sở chính: 91 Trung Kính, Trung Hòa, Cầu Giấy, Hà Nội