Chủ Nhật, 10/05/2026, 16:45 (GMT+0)

FaaS là gì? Hiểu rõ về kiến trúc Function as a Service

Quay lại Trang chủ Blog
Trên trang này

Khi ứng dụng ngày càng phức tạp và áp lực rút ngắn thời gian phát triển ngày càng lớn, FaaS (Function as a Service) trở thành một hướng tiếp cận giúp đội ngũ kỹ thuật tập trung hoàn toàn vào logic nghiệp vụ mà không phải lo vận hành hạ tầng. Bài viết này của VNPT Cloud sẽ phân tích toàn diện FaaS là gì, cách hoạt động, ưu nhược điểm và các trường hợp ứng dụng thực tế của mô hình này.  

FaaS (Function as a Service) là gì?

FaaS (Function as a Service) là mô hình điện toán đám mây cho phép lập trình viên viết và triển khai các hàm (function) nhỏ, độc lập để thực hiện từng nhiệm vụ cụ thể mà không cần quan tâm đến việc quản lý hạ tầng máy chủ bên dưới. Toàn bộ phần cứng, hệ điều hành và môi trường chạy đều do nhà cung cấp dịch vụ điện toán đám mây (cloud provider) tự động xử lý, cho phép lập trình viên tập trung hoàn toàn vào logic của code.

Khác với server truyền thống chạy liên tục 24/7 dù không có ai sử dụng ứng dụng, FaaS chỉ thực thi code khi có một tín hiệu kích hoạt từ hệ thống (event-driven), chẳng hạn như một HTTP request, một thay đổi trong cơ sở dữ liệu hay một tác vụ theo lịch. Khi function chạy xong, tài nguyên được giải phóng ngay lập tức và bạn chỉ trả tiền cho đúng thời gian function thực sự chạy.

Trong kiến trúc serverless, FaaS là lựa chọn phù hợp cho các tác vụ nhỏ, độc lập, có thể xử lý theo sự kiện và cần khả năng mở rộng linh hoạt theo nhu cầu. 

faas-la-gi-4.webp
FaaS là một mô hình điện toán đám mây cho phép lập trình viên viết, chạy và quản lý các đoạn mã chức năng riêng lẻ mà không cần quản lý hạ tầng máy chủ

05 đặc điểm chính của FaaS

Đơn vị triển khai là Function

Trong FaaS, đơn vị cơ bản không phải là một ứng dụng hay một server mà là từng function riêng lẻ. Mỗi function là một đoạn code nhỏ, độc lập, được thiết kế để chỉ thực hiện đúng một nhiệm vụ cụ thể như xác thực dữ liệu, gửi email hay xử lý ảnh. Điều này có nghĩa là bạn có thể viết, cập nhật hay thay thế từng function mà không ảnh hưởng đến phần còn lại của hệ thống.

Serverless Architecture 

FaaS thuộc kiến trúc serverless, nghĩa là toàn bộ hạ tầng bên dưới bao gồm phần cứng, hệ điều hành, môi trường runtime và bảo mật đều do cloud provider quản lý hoàn toàn. Lập trình viên không cần cấu hình, vá lỗi hay bảo trì bất kỳ máy chủ nào mà chỉ cần tập trung vào viết code cho từng function.

faas-la-gi-1.webp
FaaS là thành phần cốt lõi của Serverless, giúp tự động mở rộng và trả phí theo nhu cầu sử dụng

Phi trạng thái (Stateless)

FaaS được thiết kế theo nguyên tắc phi trạng thái: mỗi lần một function được gọi là một phiên làm việc hoàn toàn độc lập, không mang theo bất kỳ thông tin nào từ lần thực thi trước đó. Nếu ứng dụng cần lưu trữ thông tin giữa các lần gọi, dữ liệu đó bắt buộc phải được lưu ra các dịch vụ bên ngoài như cơ sở dữ liệu, bộ nhớ đệm hay hệ thống lưu trữ đám mây.

Thanh toán theo mức sử dụng thực tế (Pay as you go)

FaaS sử dụng mô hình tính phí theo số lần function được gọi và thời gian thực thi thực tế, thường tính theo từng phần trăm giây. Đây là điểm khác biệt căn bản so với các mô hình cloud khác, nơi bạn trả tiền theo giờ hoặc theo tháng cho tài nguyên được cấp phát dù có dùng hay không.

Tính tạm thời (Ephemeral)

Mỗi function trong FaaS chỉ tồn tại trong khoảng thời gian đủ để hoàn thành nhiệm vụ, sau đó môi trường thực thi bị hủy hoàn toàn. Không có khái niệm "server luôn bật chờ request" trong FaaS. Chính vì vậy, mọi tài nguyên cần duy trì lâu dài như kết nối cơ sở dữ liệu hay session người dùng đều phải được quản lý bên ngoài function.

Cách thức hoạt động của FaaS

FaaS vận hành theo mô hình event-driven, nghĩa là khi có sự kiện xảy ra, hệ thống tự động kích hoạt function tương ứng để xử lý, sau đó giải phóng tài nguyên ngay khi hoàn tất. Toàn bộ quá trình từ thực thi đến quản lý hạ tầng đều do cloud provider đảm nhiệm.

Quy trình bắt đầu khi hệ thống ghi nhận một sự kiện,  chẳng hạn như  HTTP request, file được upload lên storage, thay đổi trong database hoặc một message trong queue.  Trigger sẽ nhận diện và ngay lập tức xác định function nào cần được thực thi. Lúc này, cloud provider tự động cấp phát môi trường runtime (có sẵn hoặc khởi tạo mới), nạp code và thực thi function để xử lý dữ liệu đầu vào.Tùy vào nhu cầu, việc thực thi có thể diễn ra theo kiểu đồng bộ hoặc bất đồng bộ.

Khi function hoàn thành, môi trường thực thi sẽ bị hủy ngay lập tức để giải phóng tài nguyên. Chi phí được tính dựa trên số lần gọi và thời gian thực thi thực tế, thường ở mức rất chi tiết theo từng phần nhỏ của giây. Song song đó, hệ thống liên tục tự động scale số lượng instance theo lưu lượng thực tế, đảm bảo xử lý linh hoạt mà không cần cấu hình trước.

faas-la-gi-7.webp
FaaS tối ưu hơn kiến trúc Nếu Monolithic và Microservices do chỉ chạy từng hàm tự động khi cần (event-driven)

Ưu điểm và nhược điểm của FaaS

Ưu điểm

FaaS mang lại nhiều lợi thế đáng kể cho cả đội ngũ phát triển lẫn vận hành, đặc biệt trong các hệ thống cloud hiện đại:

  • Tăng tốc độ phát triển: Lập trình viên không mất thời gian vào các công đoạn build, deploy hay cấu hình server mà tập trung hoàn toàn vào viết logic nghiệp vụ, giúp rút ngắn đáng kể thời gian đưa tính năng ra thị trường. 
  • Tối ưu chi phí: Bạn chỉ trả tiền khi function thực sự chạy, không phát sinh chi phí khi hệ thống nhàn rỗi.
  • Tự động mở rộng linh hoạt: Nền tảng tự động điều chỉnh số lượng instance theo nhu cầu thực tế mà không cần cấu hình thủ công, đảm bảo ứng dụng luôn hoạt động ổn định dù traffic tăng đột biến.
  • Tính sẵn sàng cao: FaaS chạy trên nhiều availability zone trong cùng một khu vực địa lý. Nếu một zone gặp sự cố, các zone còn lại vẫn tiếp tục phục vụ mà không làm gián đoạn dịch vụ.
  • Triển khai linh hoạt: Mỗi function được triển khai độc lập, cho phép cập nhật hay vá lỗi từng phần mà không cần triển khai lại toàn bộ hệ thống, đồng thời hỗ trợ nhiều ngôn ngữ và framework khác nhau.
faas-la-gi-2.webp
So với IaaS, FaaS giúp tiết kiệm tới 70% chi phí nhờ mô hình pay-per-use

Nhược điểm

Bên cạnh những ưu điểm đó, FaaS cũng có một số hạn chế cần cân nhắc trước khi áp dụng:

  • Khởi động nguội (cold start) gây độ trễ: Khi một function không được gọi trong một thời gian, cloud provider sẽ tắt môi trường thực thi để tiết kiệm tài nguyên. Lần gọi tiếp theo sẽ bị trễ do cần khởi động lại môi trường và nạp lại code, ảnh hưởng đến trải nghiệm người dùng ở các ứng dụng yêu cầu phản hồi tức thì.
  • Khó kiểm thử và debug: Việc tái tạo môi trường FaaS ở local để test hay tìm lỗi là rất phức tạp, khiến quá trình kiểm thử tốn nhiều công sức hơn so với các mô hình truyền thống.
  • Phụ thuộc vào nhà cung cấp: Hệ thống xây dựng sâu trên một nền tảng FaaS cụ thể như AWS Lambda hay Google Cloud Functions sẽ rất khó và tốn kém để chuyển sang nhà cung cấp khác khi cần. 
  • Khó quản lý trạng thái: Vì các function phi trạng thái, mọi dữ liệu cần duy trì giữa các lần gọi đều phải quản lý qua dịch vụ bên ngoài, làm tăng độ phức tạp trong thiết kế hệ thống, đặc biệt với các nghiệp vụ cần transaction hay shared state.
  • Khó tối ưu chi phí khi lưu lượng truy cập cao: Dù tiết kiệm ở lưu lượng thấp, khi số lần gọi function quá nhiều và liên tục, tổng chi phí có thể vượt qua mức chi phí của một server cố định được tối ưu tốt.
faas-la-gi-5.webp
Trong FaaS, cold start xảy ra khi function chưa hoạt động trong một thời gian, buộc hệ thống phải khởi tạo lại container từ đầu trước khi thực thi code gây độ trễ đáng kể

Trường hợp sử dụng FaaS

FaaS đặc biệt phù hợp với các tác vụ có thể xử lý độc lập, chạy theo sự kiện hoặc cần mở rộng quy mô nhanh mà không muốn đầu tư vào hạ tầng cố định: 

  • Xử lý dữ liệu theo thời gian thực: Xử lý, chuyển đổi định dạng, mã hóa hay tổng hợp dữ liệu ngay khi có sự kiện xảy ra, chẳng hạn resize ảnh ngay khi người dùng upload hoặc làm sạch dữ liệu khi có bản ghi mới được thêm vào cơ sở dữ liệu.
  • Backend cho ứng dụng web, mobile và IoT: Xử lý logic phía server cho các ứng dụng web, mobile hay các thiết bị IoT mà không cần duy trì server riêng.
  • Xây dựng chatbot và trợ lý ảo: Mỗi lượt tương tác của người dùng kích hoạt một function xử lý độc lập, giúp chatbot phản hồi song song cho nhiều người dùng cùng lúc mà không cần lo về tải hệ thống.
  • Tác vụ song song khối lượng lớn: Các bài toán có thể chia nhỏ và chạy đồng thời hàng nghìn instance, như mô phỏng tài chính Monte Carlo. Thực tế, một nhóm kỹ sư IBM đã hoàn thành toàn bộ mô phỏng Monte Carlo trong khoảng 90 giây với 1.000 invocation chạy song song, trong khi cùng bài toán đó chạy trên laptop mất tới 247 phút.
  • Tác vụ nền và xử lý batch: Các công việc chạy theo lịch định sẵn như tạo báo cáo, gửi email hàng loạt, dọn dẹp dữ liệu hay đồng bộ hệ thống.
  • Tích hợp và điều phối dịch vụ bên thứ ba: Kết nối và điều phối luồng dữ liệu giữa các dịch vụ bên ngoài như payment gateway, SMS provider hay các API của bên thứ ba mà không cần xây dựng middleware phức tạp.
faas-la-gi-3.webp
Trường hợp sử dụng FaaS

Ứng dụng thực tế của FaaS

Nhiều tổ chức và doanh nghiệp lớn trên thế giới đã triển khai FaaS để xử lý các tác vụ rời rạc, có lưu lượng biến động, nơi việc duy trì hạ tầng cố định là không hiệu quả. Cụ thể:

  • Netflix sử dụng AWS Lambda để xử lý ảnh, chuyển mã video và chạy A/B testing trên nền tảng streaming của mình. FaaS giúp Netflix mở rộng quy mô xử lý theo lưu lượng người dùng thực tế mà không cần duy trì hạ tầng cố định cho từng tác vụ.
  • Airbnb ứng dụng AWS Lambda để xử lý các tác vụ nền như resize ảnh và xử lý dữ liệu, giúp đội ngũ kỹ thuật tập trung vào phát triển tính năng cốt lõi thay vì lo vận hành hạ tầng.
  • NASA Jet Propulsion Laboratory (JPL) dùng AWS Lambda để xử lý dữ liệu telemetry từ tàu vũ trụ và vệ tinh theo thời gian thực, hỗ trợ việc phân tích nhanh và ra quyết định kịp thời cho các sứ mệnh không gian.
  • Slack tích hợp AWS Lambda để vận hành chatbot, xử lý các tác vụ nền và triển khai các serverless microservice trong nền tảng cộng tác của mình, cho phép tích hợp liền mạch với các dịch vụ bên ngoài và xử lý tương tác người dùng theo thời gian thực.
  • Monte Carlo sử dụng IBM Cloud Functions để dự báo giá cổ phiếu trong 1 dự án mô phỏng. Việc sử dụng FaaS cho phép chạy 1.000 lệnh gọi đồng thời, hoàn thành toàn bộ quá trình tính toán chỉ trong 90 giây. So với cách chạy truyền thống trên máy tính 4 nhân mất tới 247 phút, FaaS không chỉ giúp tăng tốc độ xử lý gấp hàng trăm lần mà còn tối ưu chi phí vì chỉ tính tiền khi thực hiện các hàm tính toán cụ thể. 
  • Discord đã chuyển toàn bộ website và các logic quan trọng sang Cloudflare Workers để vận hành trực tiếp từ các máy chủ vùng biên (edge) thay vì dùng server gốc. Việc này cho phép họ xử lý nhanh các tác vụ như nhận diện ngôn ngữ người dùng, render trước nội dung (pre-rendering) và quản lý các tính năng thử nghiệm (feature flags) ngay gần vị trí người dùng, giúp tăng tốc độ truy cập đáng kể. 

Phân biệt FaaS, PaaS, IaaS, Container

FaaS, PaaS, IaaS và Container đều là các mô hình điện toán đám mây, nhưng khác nhau căn bản ở đơn vị triển khai, mức độ kiểm soát hạ tầng và cách tính phí:

Tiêu chí

FaaS

PaaS

IaaS

Container

Đơn vị cơ bảnTừng function nhỏToàn bộ ứng dụngMáy ảo (VM)Container image
Thời gian khởi chạyMili giâyVài phútVài phút đến hàng giờVài phút
Quản lý hạ tầngKhông cần, provider lo toàn bộKhông cần, provider lo toàn bộTự quản lý OS, runtime, middlewareTự quản lý container image, kết nối và OS
Khả năng mở rộngTức thì, tự động theo từng request, có thể scale về 0Tự động nhưng chậm hơn, cần cấu hình quy tắcTự động hoặc thủ công, cần cấu hình trướcTự động nhưng cần cấu hình quy tắc
Lưu trữ trạng tháiKhông, phải dùng dịch vụ bên ngoàiCó thể lưu state trong bộ nhớ giữa các lần gọiCó thể lưu state trong bộ nhớ giữa các lần gọiCó thể lưu state trong bộ nhớ giữa các lần gọi
Tính sẵn sàng cao (HA)Có sẵn, không cần cấu hình thêmCần thêm chi phí và cấu hìnhCó thể tự khởi động lại, cần cấu hình thêmCó thể tự khởi động lại, cần cấu hình thêm
Tính phíTheo từng 100ms thực thiTheo thời gian tài nguyên đang chạyTheo tài nguyên được cấp phát (giờ/tháng)Theo tài nguyên được cấp phát
Giới hạn tài nguyênCó giới hạn về kích thước code, bộ nhớ, thời gian chạyKhông có giới hạn cứngKhông có giới hạn cứngKhông có giới hạn cứng
Phù hợp nhất vớiTác vụ theo sự kiện, xử lý dữ liệu, workload không đềuỨng dụng web, dịch vụ chạy liên tụcỨng dụng cũ, hạ tầng tùy biến phức tạpỨng dụng cần môi trường nhất quán, microservices

 

Tóm lại, với các ứng dụng có lưu lượng không đều, các tác vụ xử lý theo sự kiện hay các workload cần mở rộng nhanh, FaaS là một trong những mô hình cloud hiệu quả và tiết kiệm chi phí nhất hiện nay. Hy vọng qua bài viết này, bạn đã có câu trả lời rõ ràng cho câu hỏi FaaS là gì và biết khi nào nên dùng, khi nào nên kết hợp với container hay PaaS để đưa ra quyết định kiến trúc hạ tầng đúng đắn hơn cho từng dự án cụ thể. 

Để hiện thực hóa mô hình FaaS và DevOps một cách hiệu quả nhất tại thị trường Việt Nam, VNPT Cloud là đối tác hạ tầng đáng tin cậy giúp bạn tối ưu hóa hiệu suất và chi phí. Với mạng lưới 8 Data Center chuẩn Tier III cùng đội ngũ 500+ kỹ sư chuyên môn cao luôn hỗ trợ 24/7, chúng tôi cam kết cung cấp nền tảng vững chắc nhất để hơn 10.000 doanh nghiệp hiện nay có thể tập trung hoàn toàn vào các giá trị cốt lõi của mình.

faas-la-gi-6.webp
Hệ sinh thái dịch vụ của VNPT Cloud

Liên hệ VNPT Cloud để được tư vấn dịch vụ phù hợp và nhận báo giá chi tiết theo nhu cầu thực tế của doanh nghiệp bạn. 

#Cloud Computing
#Cloud Computing
Sovereign Cloud không chỉ là đặt máy chủ trong nước. Với bối cảnh pháp lý dữ liệu mới tại Việt Nam, đây đang trở thành bài toán hạ tầng quan trọng cho doanh nghiệp Việt và doanh nghiệp nước ngoài hoạt động tại Việt Nam
Sovereign Cloud - Đám mây chủ quyền là gì? Và vì sao doanh nghiệp hoạt động tại Việt Nam nên quan tâm từ bây giờ?
Tiếp tục đọc