Serverless là gì? Tìm hiểu kiến trúc ưu nhược điểm ứng dụng
Thịnh Văn Hạnh
04/06/2026
448 Lượt xem
Chia sẻ bài viết
Tóm Tắt Bài Viết
- Serverless là gì?
- Serverless hoạt động như thế nào?
- So sánh Serverless vs VPS và máy chủ truyền thống
- Ưu điểm thực sự của Serverless
- 3 nhược điểm quan trọng của Serverless
- Khi nào nên dùng Serverless?
- Checklist chọn Serverless hay VPS/Cloud Server
- Serverless có rẻ hơn VPS không?
- Các nhà cung cấp Serverless phổ biến
- Câu hỏi thường gặp về Serverless
- Tóm lại
Serverless là gì?
Serverless là mô hình điện toán đám mây trong đó nhà cung cấp cloud quản lý phần hạ tầng bên dưới, còn lập trình viên tập trung viết và triển khai mã nguồn. Serverless vẫn có máy chủ, nhưng bạn không phải trực tiếp cấu hình, vận hành hay mở rộng máy chủ đó.
Trong hệ sinh thái cloud computing, Serverless thường được nhắc đến như một cách xây dựng ứng dụng hiện đại, đặc biệt phù hợp với các tác vụ chạy theo sự kiện, lưu lượng biến động hoặc cần mở rộng nhanh. Điểm quan trọng cần hiểu là Serverless không làm “biến mất” máy chủ; nó chỉ ẩn phần quản trị hạ tầng khỏi người dùng cuối.

Vì sao Serverless không có nghĩa là “không có server”?
Đây là hiểu nhầm phổ biến nhất. Serverless vẫn có máy chủ. Mã nguồn, database, file, request API và các tác vụ nền vẫn cần tài nguyên tính toán để chạy.
Khác biệt nằm ở chỗ bạn không phải tự thuê máy, cài hệ điều hành, vá lỗi bảo mật, cấu hình network hoặc tự mở rộng tài nguyên như khi dùng máy chủ ảo. Các việc đó được nhà cung cấp cloud xử lý ở tầng hạ tầng. Người dùng chỉ tương tác với function, dịch vụ backend, quyền truy cập, log, cấu hình triển khai và chi phí sử dụng.
Vì vậy, cách hiểu chính xác hơn của Serverless là “ít phải quản lý server hơn”, không phải “không tồn tại server”.
Serverless hoạt động như thế nào?
Serverless hoạt động chủ yếu theo cơ chế hướng sự kiện. Thay vì duy trì một máy chủ luôn bật 24/7 để chờ request, hệ thống chỉ kích hoạt mã nguồn khi có một sự kiện cụ thể xảy ra.
Cơ chế hướng sự kiện và stateless
Trong mô hình Serverless, một sự kiện có thể là request từ người dùng, file được tải lên, webhook được gửi tới, cron job chạy định kỳ, hoặc thông báo từ một dịch vụ khác. Khi sự kiện xuất hiện, nền tảng cloud sẽ kích hoạt một function để xử lý. Sau khi xử lý xong, function có thể bị tắt hoặc đưa về trạng thái chờ.

Ví dụ dễ hiểu: người dùng tải một hình ảnh lên hệ thống. Sự kiện upload này kích hoạt một function để nén ảnh, tạo thumbnail và lưu kết quả vào kho lưu trữ. Nếu không có ai upload ảnh, function không cần chạy liên tục.
Phần lớn function trong Serverless được thiết kế theo hướng stateless, nghĩa là không lưu trạng thái lâu dài bên trong chính function. Dữ liệu cần lưu thường được đưa sang database, object storage hoặc một dịch vụ backend khác.
Phân biệt FaaS và BaaS
Nhiều người đánh đồng Serverless với FaaS, nhưng hệ sinh thái Serverless thường gồm hai nhóm chính:
- FaaS (Function-as-a-Service): Đây là phần cho phép bạn viết logic xử lý riêng bằng các ngôn ngữ như Node.js, Python, Java, Go hoặc C#. Function chỉ chạy khi có trigger. Ví dụ phổ biến gồm AWS Lambda, Google Cloud Functions và Azure Functions.
- BaaS (Backend-as-a-Service): Đây là các dịch vụ backend có sẵn như xác thực người dùng, lưu trữ file, database, gửi thông báo hoặc xử lý dữ liệu. Thay vì tự xây toàn bộ backend, bạn tích hợp dịch vụ có sẵn vào ứng dụng. Ví dụ có thể kể đến Firebase, Amazon Cognito hoặc Amazon S3.

So sánh Serverless vs VPS và máy chủ truyền thống
Để hiểu rõ hơn Serverless phù hợp trong trường hợp nào, có thể so sánh với mô hình doanh nghiệp tự thuê máy chủ, VPS hoặc Dedicated Server.
| Tiêu chí | Máy chủ truyền thống (VPS/Dedicated) | Kiến trúc Serverless |
|---|---|---|
| Cấp phát tài nguyên | Cần cấu hình CPU, RAM, hệ điều hành, network và môi trường chạy ứng dụng. | Nhà cung cấp cloud tự cấp phát tài nguyên khi function hoặc dịch vụ được gọi. |
| Khả năng mở rộng | Có thể mở rộng, nhưng thường cần cấu hình thêm tài nguyên, cân bằng tải hoặc cơ chế auto scaling. | Mở rộng tự động theo request, trong giới hạn quota và cấu hình của từng nhà cung cấp. |
| Mô hình chi phí | Trả phí cố định theo tháng dù tài nguyên có lúc rảnh rỗi. | Trả theo mức sử dụng thực tế của function và dịch vụ đi kèm; phần thực thi function không phát sinh nếu không chạy. |
| Bảo trì và vận hành | Người dùng phải quản lý hệ điều hành, bản vá, bảo mật, monitoring và tài nguyên. | Nhà cung cấp quản lý hạ tầng bên dưới; người dùng vẫn cần quản lý code, quyền truy cập, log, triển khai và chi phí. |
| Phù hợp với | Ứng dụng chạy ổn định, workload dài hạn, cần kiểm soát môi trường hoặc dự đoán chi phí theo tháng. | Ứng dụng theo sự kiện, traffic biến động, tác vụ ngắn, API nhỏ hoặc xử lý nền không chạy liên tục. |
Serverless khác Containers và Kubernetes thế nào?
Serverless không giống Containers hay Kubernetes. Với Containers, bạn đóng gói ứng dụng cùng môi trường chạy, nhưng vẫn cần quan tâm đến container image, runtime, scaling, registry và hạ tầng triển khai. Với Kubernetes, bạn có khả năng kiểm soát rất cao, nhưng đổi lại phải quản lý cluster, node, networking, storage, monitoring và bảo mật phức tạp hơn.
Serverless phù hợp khi bạn muốn chạy các hàm nhỏ theo sự kiện và giảm phần vận hành hạ tầng. Containers hoặc Kubernetes phù hợp hơn khi hệ thống cần chạy dài hạn, có nhiều service phụ thuộc nhau, cần kiểm soát môi trường sâu hoặc có chiến lược triển khai phức tạp.
Ưu điểm thực sự của Serverless
- Giảm gánh nặng vận hành hạ tầng: Đội ngũ kỹ thuật không phải dành quá nhiều thời gian cho việc quản lý máy chủ, vá hệ điều hành hoặc mở rộng tài nguyên thủ công.
- Tối ưu với lưu lượng biến động: Với ứng dụng có request không đều, Serverless giúp tránh việc duy trì tài nguyên lớn trong thời gian hệ thống gần như không có người dùng.
- Mở rộng tự động theo request: Khi lượng request tăng, nền tảng có thể tự kích hoạt thêm function để xử lý, miễn là vẫn nằm trong giới hạn quota và cấu hình cho phép.
- Rút ngắn thời gian ra mắt sản phẩm: Developer có thể tập trung vào logic nghiệp vụ, API, luồng dữ liệu và trải nghiệm người dùng thay vì dành quá nhiều thời gian cho hạ tầng.

3 nhược điểm quan trọng của Serverless
1. Cold Start
Cold Start là hiện tượng function bị chậm ở lần gọi đầu sau một khoảng thời gian không hoạt động. Khi đó, nền tảng cần khởi tạo lại môi trường chạy, tải mã nguồn và chuẩn bị runtime trước khi xử lý request.
Độ trễ này có thể không đáng kể với tác vụ nền, nhưng lại gây vấn đề với ứng dụng cần phản hồi rất nhanh như giao dịch thời gian thực, game online hoặc API yêu cầu latency thấp.
2. Vendor Lock-in
Vendor lock-in xảy ra khi hệ thống phụ thuộc sâu vào dịch vụ đặc thù của một nhà cung cấp, ví dụ API Gateway, DynamoDB, IAM, queue, storage hoặc các cơ chế triển khai riêng. Khi muốn chuyển sang nền tảng khác hoặc tự host, chi phí refactor có thể lớn.
Với doanh nghiệp có yêu cầu rõ về nơi lưu trữ dữ liệu, quyền kiểm soát hạ tầng hoặc tuân thủ nội bộ, cần kiểm tra kỹ region, chính sách dữ liệu và hợp đồng dịch vụ. Không nên mặc định dữ liệu Serverless luôn được đặt tại Việt Nam.
3. Khó debug và monitoring
Hệ thống Serverless thường được chia thành nhiều function nhỏ và nhiều dịch vụ phụ thuộc nhau. Khi lỗi xảy ra, việc truy vết request đi qua function nào, queue nào, database nào hoặc dịch vụ nào có thể phức tạp hơn mô hình nguyên khối.
Vì vậy, Serverless không loại bỏ hoàn toàn vai trò DevOps. Công việc sẽ chuyển từ quản trị máy chủ sang quản lý quyền truy cập, pipeline triển khai, log, tracing, cảnh báo, quota và tối ưu chi phí.
Khi nào nên dùng Serverless?
Serverless phù hợp nhất khi workload không chạy liên tục, có tính sự kiện rõ ràng và có thể chia nhỏ thành các function độc lập.
Use case lý tưởng
- Ứng dụng có lưu lượng không đồng đều: Ví dụ web bán vé sự kiện, ứng dụng đặt đồ ăn theo khung giờ cao điểm hoặc hệ thống có request tăng đột biến theo chiến dịch.
- Tác vụ xử lý nền: Nén hình ảnh, chuyển đổi video, gửi email tự động, xử lý webhook hoặc đồng bộ dữ liệu.
- Xây dựng API backend và microservices: Phù hợp với các endpoint nhỏ, độc lập, được gọi theo request từ mobile app hoặc web app. Nếu cần tìm hiểu nền tảng khái niệm, bạn có thể xem thêm về API.
- IoT và dữ liệu sự kiện: Xử lý dữ liệu cảm biến gửi về không đều mà không phải duy trì server chạy liên tục.
Khi nào không nên dùng Serverless?
- Ứng dụng real-time yêu cầu độ trễ cực thấp: Game online thời gian thực, nền tảng giao dịch hoặc hệ thống cần phản hồi tức thì có thể bị ảnh hưởng bởi Cold Start.
- Workload chạy liên tục 24/7: Nếu tác vụ luôn chạy với cường độ cao, mô hình trả theo request hoặc thời gian thực thi có thể khó tối ưu hơn so với hạ tầng cố định.
- Ứng dụng nguyên khối cũ: Legacy system thường không thể chuyển thẳng sang Serverless nếu chưa refactor kiến trúc, tách module và xử lý lại luồng dữ liệu.
- Hệ thống cần kiểm soát sâu hạ tầng: Nếu cần tùy chỉnh network, runtime, storage, bảo mật hoặc vị trí dữ liệu ở mức chi tiết, VPS, Cloud Server, Dedicated Server hoặc Containers có thể phù hợp hơn.
Checklist chọn Serverless hay VPS/Cloud Server
Nếu vẫn phân vân, có thể dùng 5 câu hỏi sau để tự đánh giá:
- Traffic có đều 24/7 không? Nếu có, hạ tầng cố định thường dễ dự toán hơn.
- Ứng dụng có chịu được độ trễ Cold Start không? Nếu không, cần cân nhắc kỹ trước khi dùng Serverless cho request quan trọng.
- Tác vụ có thể chia nhỏ thành function độc lập không? Nếu không, việc ép kiến trúc nguyên khối sang Serverless có thể làm hệ thống phức tạp hơn.
- Dữ liệu có yêu cầu region, kiểm soát hoặc tuân thủ cụ thể không? Nếu có, cần kiểm tra kỹ chính sách của nhà cung cấp.
- Đội ngũ có đủ năng lực theo dõi log, tracing, quyền truy cập và chi phí không? Nếu không, Serverless có thể gây khó trong vận hành dù không phải quản trị server trực tiếp.
Serverless có rẻ hơn VPS không?
Không có câu trả lời cố định cho mọi trường hợp. Serverless có thể tiết kiệm khi ứng dụng chạy theo sự kiện và có nhiều thời gian idle, nhưng chưa chắc rẻ hơn với workload chạy liên tục hoặc cần tài nguyên ổn định.
| Kịch bản | Mô hình thường phù hợp hơn | Lý do |
|---|---|---|
| Traffic ngắt quãng, request tăng theo thời điểm | Serverless | Không cần duy trì tài nguyên chạy liên tục trong thời gian ít hoặc không có request. |
| API hoặc tác vụ chạy đều 24/7 | VPS, Cloud Server hoặc Dedicated Server | Chi phí cố định theo tháng thường dễ dự toán hơn, đặc biệt khi workload ổn định và ít biến động. |
| Tác vụ nền ngắn, chỉ chạy khi có sự kiện | Serverless | Phù hợp với xử lý ảnh, webhook, cron job nhẹ, gửi thông báo hoặc đồng bộ dữ liệu theo sự kiện. |
| Ứng dụng cần kiểm soát sâu môi trường chạy | VPS, Cloud Server, Dedicated Server hoặc Containers | Dễ tùy chỉnh runtime, network, cấu hình bảo mật, storage và chiến lược triển khai. |
Khi tính chi phí, không nên chỉ nhìn vào giá function. Cần tính thêm database, storage, log, network, request tới API Gateway, queue, monitoring và chi phí vận hành đội ngũ.
Các nhà cung cấp Serverless phổ biến
Thị trường Serverless có nhiều nền tảng khác nhau, tùy hệ sinh thái cloud và nhu cầu triển khai:
- AWS Lambda: Một trong những nền tảng FaaS phổ biến, tích hợp sâu với các dịch vụ AWS như API Gateway, S3, DynamoDB và CloudWatch.
- Google Cloud Functions: Phù hợp với hệ sinh thái Google Cloud và các ứng dụng có liên quan đến Firebase, dữ liệu hoặc AI.
- Azure Functions: Phù hợp với doanh nghiệp dùng hệ sinh thái Microsoft, .NET, SQL Server hoặc Azure.
- Cloudflare Workers: Phù hợp với các tác vụ chạy gần người dùng ở tầng edge, xử lý request nhẹ, middleware hoặc API đơn giản.
- Vercel Functions và Supabase Edge Functions: Thường gặp trong các dự án web hiện đại, đặc biệt với frontend framework, ứng dụng JAMstack hoặc backend gọn nhẹ.

Câu hỏi thường gặp về Serverless
Dùng Serverless có thực sự rẻ hơn thuê VPS?
Có thể rẻ hơn nếu ứng dụng có traffic ngắt quãng, nhiều thời gian idle hoặc chỉ chạy theo sự kiện. Ngược lại, nếu hệ thống chạy đều 24/7, việc thuê vps, Cloud Server hoặc Dedicated Server thường dễ dự toán chi phí hơn.
Serverless có thay thế hoàn toàn DevOps không?
Không. Serverless giảm phần quản trị máy chủ, nhưng vẫn cần DevOps hoặc đội ngũ kỹ thuật để quản lý CI/CD, IAM, log, tracing, bảo mật, quota, cảnh báo và chi phí sử dụng.
Làm sao để giảm Cold Start?
Một số cách thường dùng gồm tối ưu kích thước package, chọn runtime nhẹ, giảm dependency không cần thiết, giữ function đơn giản, dùng cơ chế warm-up hoặc dùng Provisioned Concurrency nếu nền tảng hỗ trợ. Tuy nhiên, các cách này có thể làm phát sinh thêm chi phí hoặc tăng độ phức tạp vận hành.
Serverless hỗ trợ những ngôn ngữ lập trình nào?
Phần lớn nền tảng Serverless hỗ trợ các ngôn ngữ phổ biến như JavaScript/TypeScript, Python, Java, C#, Go và Ruby. Một số nền tảng cũng cho phép dùng custom runtime cho các ngôn ngữ khác.
Dữ liệu Serverless được lưu ở đâu?
Dữ liệu không nằm “trong Serverless” theo nghĩa đơn giản. Function thường xử lý logic, còn dữ liệu được lưu trong database, object storage, queue, cache hoặc dịch vụ backend liên quan. Vị trí lưu dữ liệu phụ thuộc vào region và dịch vụ mà bạn chọn khi cấu hình trên nền tảng cloud.
Có dùng Serverless cho WordPress hoặc WooCommerce được không?
Về lý thuyết có thể dùng một số thành phần Serverless cho tác vụ phụ như xử lý ảnh, webhook, gửi thông báo hoặc API riêng. Tuy nhiên, việc chạy toàn bộ WordPress/WooCommerce theo mô hình Serverless không phải lúc nào cũng đơn giản, vì WordPress thường phụ thuộc vào database, file system, plugin và trạng thái phiên làm việc.
Tóm lại
Serverless là mô hình điện toán đám mây giúp giảm gánh nặng quản trị hạ tầng, phù hợp với ứng dụng theo sự kiện, traffic biến động, API nhỏ, tác vụ nền và các hệ thống cần mở rộng nhanh theo request.
Tuy nhiên, Serverless không phải giải pháp thay thế hoàn toàn cho VPS, Cloud Server, Dedicated Server, Containers hay Kubernetes. Nếu workload chạy liên tục 24/7, cần độ trễ thấp, cần kiểm soát sâu hạ tầng hoặc cần dự toán chi phí cố định theo tháng, bạn nên so sánh kỹ với các mô hình hạ tầng truyền thống hơn.
Với doanh nghiệp đang cân nhắc giữa Serverless và cloud server, điểm mấu chốt không phải là mô hình nào “hiện đại hơn”, mà là mô hình nào phù hợp hơn với traffic, kiến trúc ứng dụng, yêu cầu dữ liệu và năng lực vận hành thực tế.



































