Serverless Computing là gì? Tổng quan về Serverless Computing
Serverless Computing là một phương pháp cung cấp dịch vụ backend theo thực tế sử dụng. Server vẫn được sử dụng, nhưng một công ty có backend service từ nhà cung cấp serverless sẽ được tính phí dựa trên việc sử dụng, chứ không phải là một lượng băng thông hoặc số lượng máy chủ cố định. Để hiểu rõ hơn về Serverless Computing là gì cùng Bizfly Cloud xem ngay bài viết dưới đây nhé.
Serverless Computing là gì?
Serverless Computing là một phương pháp cung cấp backend service theo thực tế sử dụng. Nhà cung cấp Serverless cho phép người dùng viết và triển khai mã mà không gặp rắc rối về cơ sở hạ tầng bên dưới.
Một công ty nhận backend service từ nhà cung cấp serverless sẽ được tính phí dựa trên việc sử dụng, hoàn toàn không phải đặt trước và trả tiền cho một lượng băng thông hoặc số lượng máy chủ cố định, vì đây là dịch vụ tự động mở rộng. Lưu ý rằng, mặc dù được gọi là serverless, các máy chủ vật lý vẫn được sử dụng nhưng các nhà phát triển không cần phải biết về chúng.
Trước đây khi công nghệ chưa phát triển, muốn xây dựng một ứng dụng web, bạn phải sở hữu phần cứng vật lý để chạy một máy chủ, các công đoạn này khá cồng kềnh và tốn kém.
Khi công nghệ đám mây phát triển, máy chủ hoặc không gian máy chủ có thể được thuê từ xa. Các công ty có nhu cầu thuê này thường mua quá mức cần thiết, chỉ để đảm bảo an toàn cho các trường hợp mà lưu lượng truy cập hoặc hoạt động tăng đột biến vượt quá giới hạn dẫn đến việc phá vỡ các ứng dụng. Điều này có nghĩa là phần lớn không gian máy chủ được trả tiền đang bị lãng phí. Các nhà cung cấp đám mây đã giới thiệu các mô hình tự động mở rộng để giải quyết vấn đề lãng phí này. Tuy nhiên lãng phí vẫn có thể xảy ra nếu doanh nghiệp bị đối mặt với các cuộc tấn công DDoS, tự động nhân rộng với việc mở rộng không mong muốn.
Serverless computing cho phép các nhà phát triển mua các backend service một cách linh hoạt hơn, sử dụng bao nhiêu trả tiền bấy nhiêu. Cách tính phí này giống như việc bạn chuyển từ gói dữ liệu điện thoại di động với giới hạn cố định hàng tháng, sang gói chỉ tính phí cho mỗi byte dữ liệu thực sự được sử dụng.
Thuật ngữ "serverless" không hẳn đúng như cái tên của nó, bởi vì vẫn còn các máy chủ cung cấp các backend service này, nhưng tất cả các vấn đề về không gian máy chủ và cơ sở hạ tầng đều được nhà cung cấp xử lý. Serverless có nghĩa là các nhà phát triển có thể thực hiện công việc của họ mà không phải lo lắng về các vấn đề xung quanh server.
Backend service là gì? Sự khác biệt giữa frontend và backend?
Phát triển ứng dụng được chia thành hai lĩnh vực: frontend và backend. Frontend là một phần của ứng dụng mà người dùng nhìn thấy và tương tác, chẳng hạn như bố cục trực quan. Backend là phần mà người dùng không thấy, bao gồm máy chủ chứa các tệp của ứng dụng và cơ sở dữ liệu nơi duy trì dữ liệu người dùng và logic nghiệp vụ.
Ví dụ với một website bán vé cho buổi hòa nhạc. Khi người dùng nhập request vào cửa sổ trình duyệt, trình duyệt sẽ gửi request đến backend server, phản hồi với website data. Sau đó, người dùng sẽ thấy giao diện của trang web, bao gồm văn bản, hình ảnh và các trường mẫu để điền thông tin.
Sau đó, người dùng có thể tương tác với một trong các trường mẫu trên frontend để tìm kiếm tác phẩm âm nhạc yêu thích của mình. Khi người dùng nhấp vào "submit" (gửi) sẽ kích hoạt một request khác đến backend. Backend code sẽ tiến hành kiểm tra cơ sở dữ liệu để xem liệu người biểu diễn đó có tồn tại không và nếu có thì khi nào họ sẽ biểu diễn và có bao nhiêu vé có sẵn.
Backend sau đó sẽ chuyển dữ liệu đó trở lại frontend và frontend sẽ hiển thị kết quả theo cách có ý nghĩa với người dùng. Tương tự, khi người dùng tạo một tài khoản và nhập thông tin tài khoản để mua vé, một giao tiếp qua lại khác giữa frontend và backend sẽ xảy ra.
Những loại backend service mà serverless computing có thể cung cấp?
Hầu hết các nhà cung cấp serverless cung cấp dịch vụ database, storage và Function-as-a-Service (FaaS) platform cho khách hàng (như Cloudflare Workers). Các nền tảng này có thể thực thi các đoạn mã mà không lưu trữ bất kỳ dữ liệu nào.
Lợi thế của serverless computing
Chi phí thấp hơn
Serverless Computing thường rất hiệu quả vì các nhà cung cấp backend service đám mây truyền thống (phân bổ máy chủ) thường khiến người dùng hay phải trả tiền cho phần không gian hoặc CPU không sử dụng.
Khả năng mở rộng được đơn giản hóa
Các nhà phát triển sử dụng kiến trúc serverless không phải lo lắng về các chính sách để mở rộng code. Các nhà cung cấp serverless sẽ xử lý vấn đề mở rộng này hoàn toàn theo nhu cầu sử dụng của khách hàng.
Backend code được đơn giản hóa
Với FaaS, nhà phát triển có thể tạo các hàm đơn giản thực hiện độc lập một mục đích duy nhất, như thực hiện cuộc gọi API.
Quay vòng nhanh hơn
Kiến trúc Serverless có thể cắt giảm đáng kể thời gian đưa ra thị trường. Thay vì cần một quy trình triển khai phức tạp để đưa ra các bản sửa lỗi và các tính năng mới, các nhà phát triển có thể thêm và sửa đổi mã trên cơ sở từng phần.
Theo Bizfly Cloud chia sẻ
>> Có thể bạn quan tâm: Hệ sinh thái Docker: Tổng quan về Container