Serverless architecture không có nghĩa là bạn không cần server. Thay vào đó là bạn cần ít server hơn để quản lý. Ở các ứng dụng truyền thống, bạn sẽ phải quản lý mọi thứ từ logic ứng dụng trong máy ảo, máy vật lý hoặc cloud server. Tuy nhiên, xu thế hiện nay đang dần thay đổi.
Khi sử dụng kiến trúc serverless, bạn sẽ có nhiều lợi ích như:
Và điều quan trọng nhất là giúp developer và chủ doanh nghiệp chỉ tập trung vào code, các chuyên gia sẽ thực thi code cho bạn.
Hãy khám phá một số dịch vụ FaaS (Functions as a Service) sau
AWS Lambda là một trong những ứng cử viên hàng đầu bởi AWS. Ban đầu, Lambda chỉ hỗ trợ Node.js nhưng giờ đây bạn có thể chạy Python, Go, Java, C#.
Như bạn thấy trên hình, chỉ cần upload code, Lambda sẽ lo việc thực thi code của bạn. Bạn có thể thủ công hoặc tự động trigger thông qua các dịch vụ AWS hoặc web application.
AWS Lambda có thể giúp ích trong các ngữ cảnh cần tác vụ real-time như xử lý file, streaming, data validation, data transformations, handling API requests, etc.
Một vài chức năng nổi bật:
Với gói free tier, AWS hỗ trợ miễn phí 1 triệu requests và 400,000 GB-seconds compute time, thích hợp cho các project cá nhân và nhỏ.
Cloudflare không chỉ là một cty CDN và bảo mật, họ còn cung cấp rất nhiều dịch vụ khác.
Gần đây, Cloudflare cho ra mắt dịch vụ Cloudflare workers cho phép bạn chạy Javascript trên 150 data centers của họ trên khắp thế giới.
Cloudflare sử dụng V8 JS Engine, vì thế nếu bạn cần thực thi Javascript với tốc độ nhanh hơn, hãy thử sử dụng workers.
Bạn có thể tích hợp workers với Serverless framework để deployment nhanh hơn. Giá của Cloudflare workers bắt đầu từ $5/tháng. Bạn có thể tham khảo các scripts recipes có sẵn.
Now by Zeit là một dịch vụ cực kì hay cho developers. Bạn chỉ cần viết code và push, mọi việc còn lại do Now lo, không cần phải quan tâm về hosting optimization hay quản lý cấu hình.
Now hỗ trợ Node.js, PHP, Go, React và nhiều ngôn ngữ khác. Now còn giúp tiết kiệm khi chỉ build lại những phần thay đổi trong repo của ứng dụng. Now miễn phí và trả thêm tiền khi ứng dụng của bạn phát triển lớn hơn.
Tương tự như AWS Lambda, Azure Functions hỗ trợ rất nhiều ngôn ngữ:
Azure Functions sẽ lo infrastructure cho ứng dụng của bạn, tự động scale up hay down khi cần thiết. Bạn không cần quan tâm đến gói capacity.
Bạn có thể trigger function từ web application, HTTP API từ ứng dụng mobile, blob storage, streaming, webhooks, …
Giá được tính dựa vào tổng thời gian để thực thi code, không có upfront cost, Azure hỗ trợ 1 triệu lần thực thi code miễn phí.
Google Cloud giới thiệu một loạt các giải pháp serverless computing.
Serverless computing GCP
App Engine – fully managed cho web và mobile. Bạn có thể deploy PHP, Python, C#, Node.js, Ruby, Go, etc. Bạn trả theo resource sử dụng và scale dựa trên lưu lượng sử dụng.
Cloud Functions – event-driven platform chạy Node.js, Golang và Python. Bạn có thể sử dụng Functions để xây dựng IoT backend, API processing, chatbots, sentiment analysis, stream processing, …
Firebase Functions – là một phiên bản khác của Cloud Function.
Còn nhiều dịch vụ khác – Storage, Firestore, BigQuery, Dataflow, Pub/Sub, ML engine. Các ứng dụng này đủ để bạn build một hệ thống cho doanh nghiệp đầy đủ.
IBM Cloud Functions dựa trên nền tảng Apache OpenWhisk để phát triển ứng dụng thực thi dựa trên sự kiện trigger.
IBM Cloud Functions
Có nhiều bài viết hướng dẫn xây dựng ứng dụng serverless, API, mobile backend, searchable video, etc.
Một lựa chọn hoàn hảo cho ứng dụng chạy tại Trung Quốc, Alibaba là một nhà cung cấp Cloud Computing lớn ở TQ, họ cũng có dịch vụ Serverless Function cho riêng mình. Chức năng và hoạt động cũng giống như các nhà cung cấp khác.
Bên dưới là một sơ đồ mô hình serverless backend server bởi Alibaba:
Alibaba cho miễn phí 1 triệu request mỗi tháng, rất đáng để thử.
EdgeEngine by StackPath deploy serverless functions viết bằng JS, Perl, Rust, Go, C++, PHP, etc. cho thời gian thực thi và phản hồi rất nhanh, theo công bố là dưới 50ms. Cách hoạt động của EdgeEngine cũng gần giống như Cloudflare Workers.
Chi phí bắt đầu từ $10 mỗi tháng bao gồm 15 triệu requests và không giới hạn số script.
Sử dụng serverless là cách tốt nhất để tiết kiệm chi phí hosting và chi phí quản lý infrastructure. Move từ ứng dụng sẵn có sang serverless có thể khó khăn và rủi ro. Nhưng nếu bạn đang build mới, bạn có thể cân nhắc sử dụng kiến trúc serverless hay không.
Devmaster Academy via Blog.duyet