Serverless là gì? Hướng dẫn Function-as-a-Service cho người mới

Serverless là gì? Đây là mô hình điện toán đám mây mà bạn chỉ viết code, triển khai và chạy mà không cần quản lý bất kỳ server nào. Thuật ngữ “serverless” nghe có vẻ mâu thuẫn vì server vẫn tồn tại, nhưng nhà phát triển hoàn toàn không cần quan tâm đến chúng.

Serverless computing hoạt động dựa trên hai thành phần chính: FaaS (Function-as-a-Service) cho logic ứng dụng và BaaS (Backend-as-a-Service) cho các dịch vụ nền tảng như xác thực, cơ sở dữ liệu và lưu trữ. Thay vì chạy server liên tục, code chỉ được thực thi khi có sự kiện kích hoạt và bạn chỉ trả tiền cho thời gian code thực sự chạy.

Serverless hoạt động như thế nào?

Trong mô hình truyền thống, bạn cần thuê server (VPS hoặc dedicated), cài đặt hệ điều hành, cấu hình môi trường runtime, quản lý scalability và chịu trách nhiệm bảo trì. Serverless loại bỏ toàn bộ quy trình đó.

Khi một sự kiện xảy ra — HTTP request, file upload, database trigger, scheduled job — nền tảng serverless sẽ:

  • Tạo container sandbox để chạy function của bạn
  • Thực thi code trong vài mili giây
  • Tự động scale từ 0 đến hàng nghìn instance
  • Thu hồi resources ngay khi function hoàn thành

Điểm mấu chốt là bạn không bao giờ trả tiền cho thời gian idle. Nếu function không được gọi, chi phí bằng 0.

Các nền tảng Serverless phổ biến nhất

AWS Lambda

Ra mắt năm 2014, AWS Lambda là nền tảng FaaS đầu tiên của các hãng lớn. Hỗ trợ Node.js, Python, Java, Go, .NET, Ruby và Rust. Thời gian chạy tối đa 15 phút, bộ nhớ tối đa 10GB. Giá cơ bản: $0.20 cho mỗi 1 triệu request cộng thêm $0.0000166667/GB-giây trên kiến trúc x86. Free tier: 1 triệu request và 400.000 GB-giây mỗi tháng.

Azure Functions

Nền tảng serverless của Microsoft, hỗ trợ C#, Java, JavaScript, PowerShell, Python, Go và Rust. Điểm nổi bật là Azure Durable Functions cho phép xây dựng các workflow phức tạp với trạng thái. Có ba plan: Consumption (trả tiền theo sử dụng), Premium (resources chuyên dụng) và Flex Consumption. Giá: $0.20/1 triệu executions, free tier tương đương AWS.

Google Cloud Functions

Hiện đang được hợp nhất vào Cloud Run functions — mô hình thống nhất container và functions. Thế hệ thứ hai chạy trên Cloud Run với khả năng concurrency cao hơn. Hỗ trợ Python, Node.js, Java, Go, .NET, Ruby và PHP. Giá: $0.40/triệu invocations (2 triệu miễn phí đầu tiên).

Cloudflare Workers

Sử dụng V8 isolates thay vì containers, chạy trên mạng lưới 330+ edge PoPs toàn cầu. Cold start dưới 50ms nhờ kiến trúc V8 lightweight. Hỗ trợ JavaScript, TypeScript, Python, Rust và WebAssembly. Giá: $5/tháng cơ bản với 10 triệu request miễn phí, không phí egress.

So sánh giá giữa các nền tảng

Nền tảng Chi phí request Chi phí compute Free tier
AWS Lambda $0.20/1M $0.0000167/GB-s 1M req + 400K GB-s
Azure Functions $0.20/1M $0.000016/GB-s 1M exec + 400K GB-s
GCP Cloud Functions $0.40/1M ~$0.0000025/GB-s 2M invocations
Cloudflare Workers $0.30/1M (sau 10M free) $0.02/1M CPU ms 100K req/ngày

Ưu điểm của Serverless

  • Zero server management: Không cần DevOps cho hạ tầng. Viết code, deploy, chạy.
  • Auto-scaling: Tự động scale từ 0 đến hàng nghìn instance trong vài giây.
  • Pay-per-use: Chỉ trả tiền khi code thực sự chạy. Phù hợp cho workload có đỉnh đột biến.
  • Time-to-market nhanh: Loại bỏ phần lớn infrastructure boilerplate.
  • High availability: Nhà cung cấp xử lý redundancy và fault tolerance.

Nhược điểm cần lưu ý

  • Cold start: Lần chạy đầu tiên sau thời gian idle có thể chậm 100ms-2s, ảnh hưởng đến trải nghiệm real-time.
  • Vendor lock-in: Code + managed services bị ràng buộc chặt với nhà cung cấp. Di chuyển sang nền tảng khác tốn kém.
  • Debugging khó: Môi trường distributed, ephemeral — việc trace lỗi phức tạp hơn server truyền thống.
  • Execution limits: Lambda giới hạn 15 phút, GCP 10 phút, Cloudflare Workers 30 giây mặc định.
  • “Denial of wallet”: Rủi ro bảo mật — OWASP Serverless Top 10 cảnh báo attack vector exploit auto-scaling để đẩy chi phí lên cao.

Serverless phù hợp cho ai?

Serverless lý tưởng cho các trường hợp sử dụng sau:

  • API và REST endpoints: Backend web serverless xử lý request theo demand.
  • Event-driven data processing: Xử lý file upload, S3 trigger, message queue.
  • Scheduled tasks: Cron jobs, cleanup jobs, data aggregation.
  • Webhooks và integrations: Tích hợp third-party services.
  • AI/ML inference tại edge: Cloudflare Workers AI chạy model trực tiếp trên edge.

Serverless KHÔNG phù hợp cho workload chạy liên tục với traffic ổn định (chi phí có thể cao hơn reserved instances), hay các ứng dụng cần low-latency nhất quán dưới mọi trường hợp.

Xu hướng Serverless mới nhất

Năm 2025-2026, serverless đang hội tụ với nhiều xu hướng quan trọng:

  • AI + Serverless: Cloudflare Workers AI, AWS Bedrock Agents chạy inference trực tiếp trên edge.
  • Edge computing: Cloudflare Workers với 330+ PoPs toàn cầu, cold start dưới 1ms với V8 isolates.
  • WebAssembly (WASM): Cloudflare Workers và Fastly compute@edge sử dụng WASM cho tốc độ gần native.
  • Durable execution: AWS Step Functions, Azure Durable Functions, Inngest, Temporal — cho phép workflow chạy dài trên serverless.
  • Functionless mindset: Sử dụng native service integrations (EventBridge, SNS, DynamoDB Streams) thay vì function gọi function để tránh anti-pattern “Lambda pinball”.

Bắt đầu với Serverless

Nếu bạn là lập trình viên mới, con đường tốt nhất là:

  1. Chọn một nền tảng (AWS Lambda hoặc Cloudflare Workers đều có free tier generous).
  2. Viết function đầu tiên — ví dụ API endpoint trả JSON.
  3. Triển khai và test với real traffic.
  4. Mở rộng với event triggers và managed services.

Serverless không phải silver bullet, nhưng đối với nhiều use case, đây là cách nhanh nhất để đưa sản phẩm từ ý tưởng đến production với chi phí tối thiểu.

Tham khảo thêm:

Tôi là một lập trình viên IOS. Code chính là IOS nhưng thỉnnh thoảng vẫn đá sang Android hoặc web. Mặc dù không quá thông thạo nhưng tôi sẽ chia sẻ những kiến thức mà mình đã tìm hiểu, áp dụng qua.

Bài viết liên quan

Svelte là gì? Hướng dẫn toàn diện cho người mới bắt đầu

Svelte là gì? Svelte là một framework JavaScript nguồn mở được tạo bởi Rich Harris, phát hành lần đầu năm 2016. Khác với React, Vue hay Angular, Svelte hoạt động…

Xem thêm

Flutter là gì? Hướng dẫn toàn diện cho người mới bắt đầu

Flutter là gì? Flutter là framework mã nguồn mở do Google phát triển, dùng để xây dựng ứng dụng đa nền tảng từ một codebase duy nhất. Với ngôn ngữ…

Xem thêm

Bash Scripting là gì? Hướng dẫn viết script cho người mới

Bash Scripting là gì? Bash scripting là kỹ thuật viết các tập lệnh (script) chạy trên shell Bash – trình thông dịch dòng lệnh mặc định của hầu hết hệ…

Xem thêm
0 0 đánh giá
Article Rating
Theo dõi
Thông báo của
guest
0 Comments
Cũ nhất
Mới nhất Được bỏ phiếu nhiều nhất