Làm quen với kiến trúc Serverless

Bài viết được sự cho phép của tác giả Lưu Bình An

Giới thiệu

Trong quá khứ, khi tôi còn là sinh viên đại học, việc đăng ký môn học luôn gặp khó khăn vì server quá tải. Các máy chủ của trường chỉ đủ chạy được vài ngày đầu học kỳ và không đủ khả năng nâng cấp để đáp ứng nhu cầu của sinh viên. Vậy là bài toán về server đã được giải quyết bằng kiến trúc Serverless.

Kiến trúc Serverless là gì?

Ở đây, cần phải làm rõ rằng Serverless không có nghĩa là không sử dụng server. Đối với một cửa hàng thú nuôi nhỏ, chỉ có vài ngàn khách hàng mua hàng một tháng, việc sử dụng kiến trúc Serverless thông qua việc sử dụng WordPress sẽ không mang lại lợi ích và lại tốn kém phí dịch vụ từ các nhà cung cấp như Amazon.

Trang web bán thú nuôi trước đây sử dụng kiến trúc như sau:

Làm quen với kiến trúc Serverless

Tất cả các logic đều nằm ở phía server, bao gồm xác thực, điều hướng trang, tìm kiếm và giao dịch. Đây là một quá trình tốn kém về ngân sách, thời gian và nhân lực.

Kiến trúc Serverless được biết đến là một dịch vụ hạ tầng như một dịch vụ (Infrastructure as a Service – IaaS). Điều này giúp tiết kiệm chi phí từ giai đoạn ban đầu, nhưng vẫn có thể mở rộng khi cần thiết.

Hãy tưởng tượng việc mở một quán ăn, bạn phải tìm địa điểm, chỗ để đậu xe, thu hút khách đến ăn, thanh toán, sửa chữa cơ sở vật chất, điện và nước… Các nhà cung cấp dịch vụ IaaS có thể được coi là các trung tâm thương mại, chúng sẽ đảm nhận toàn bộ công việc khác, bạn chỉ cần trả tiền và thuê mặt bằng để kinh doanh.

Serverless là gì?

Khái niệm Serverless có thể được hiểu theo hai cách sau:

  1. Serverless là việc ám chỉ các ứng dụng sử dụng chủ yếu (hoặc toàn bộ) dịch vụ của bên thứ ba, được lưu trữ trên đám mây, để giải quyết các vấn đề liên quan đến logic và trạng thái của server (ví dụ: trạng thái đăng nhập, dịch vụ chăm sóc khách hàng). Các dịch vụ được outsource cho bên thứ ba bao gồm: cơ sở dữ liệu (Parse, Firebase), xác thực (Auth0, AWS Cognito). Những dịch vụ này thuộc loại “Backend as a Service” (BaaS).

  2. Serverless cũng có nghĩa là ứng dụng vẫn có server logic, nhưng không giống với kiến trúc truyền thống, nó hoạt động theo cơ chế “tiền trao-cháo múc” (event-trigger), không quan tâm bạn có ở chung nhà với server hay không (stateless compute container). Đây là cách tiếp cận được gọi là “Function as a Service” (FaaS), trong đó người dùng chỉ trả tiền khi sử dụng dịch vụ. Một trong những nền tảng phổ biến nhất hiện nay là AWS Lambda.

Lợi ích của Function as a Service (FaaS)

FaaS đang trở thành xu hướng và đã thay đổi cách chúng ta nghĩ về kiến trúc dưới server. Các ông lớn như Amazon và Google cũng đã phát triển các sản phẩm BaaS và FaaS của riêng mình.

AWS Lambda là một ví dụ điển hình về FaaS. Với AWS Lambda, bạn có thể chạy mã mà không cần phải cài đặt hay quản lý máy chủ. Bạn chỉ cần tải mã lên và Lambda sẽ tự động quản lý và mở rộng mã của bạn với tính sẵn sàng cao. Bạn có thể kích hoạt mã từ các dịch vụ khác của AWS hoặc gọi trực tiếp từ ứng dụng web hoặc di động.

Các lợi ích của FaaS như sau:

  1. Không cần quan tâm đến việc quản lý và bảo trì máy chủ.
  2. Không yêu cầu một framework hoặc thư viện cụ thể. Bạn có thể viết mã bằng nhiều ngôn ngữ khác nhau như Javascript, Python, Go, Java, Clojure, Scala và .NET.
  3. Quá trình triển khai mã khác biệt so với hệ thống truyền thống. Bạn chỉ cần gửi mã cho nhà cung cấp dịch vụ và nhà cung cấp sẽ thực hiện còn lại.
  4. Quá trình mở rộng được nhà cung cấp chịu trách nhiệm. Nếu hệ thống cần đáp ứng 1000 yêu cầu cùng lúc, nhà cung cấp sẽ xử lý mọi thứ, bạn chỉ cần trả phí. Bên cung cấp dịch vụ sẽ quản lý tài nguyên và giấy phép.
  5. Hỗ trợ cơ chế kích hoạt cho các sự kiện bạn muốn.
  6. Cho phép kích hoạt các hàm thông qua yêu cầu HTTP hoặc các API khác được cung cấp bởi nhà cung cấp.

Case Study

Một ví dụ về sử dụng Serverless là trang PhotoVogue của Vogue Italia. Sau một năm hoạt động, trang web đã gặp vấn đề về tải server. Giám đốc kỹ thuật của PhotoVogue đã quyết định chuyển toàn bộ hệ thống server từ máy chủ riêng sang AWS trong vòng 3 tháng. Hiện tại, Uber, Pokemon Go, Airbnb, Clash of Clans và nhiều ứng dụng khác cũng sử dụng kiến trúc Serverless khi số lượng người dùng và dữ liệu thời gian thực lớn.

Các vấn đề mà PhotoVogue đã gặp và được giải quyết bởi AWS bao gồm:

  • Cần xử lý hơn 130.000 nhiếp ảnh gia trên toàn thế giới và khoảng 400.000 ảnh với dung lượng tối đa là 50MB mỗi hình ảnh.
  • Số lượng truy cập ngày càng tăng.
  • Trải nghiệm người dùng không tốt, thời gian xử lý chậm và tải ảnh chậm.

Với AWS, PhotoVogue đã giải quyết các vấn đề trên:

  • Quy mô dễ dàng, dễ bảo trì và quản lý chi phí rõ ràng.
  • Lưu trữ hình ảnh trên Amazon S3.
  • Sử dụng AWS Lambda để chuyển đổi các file từ định dạng này sang định dạng khác.
  • Sử dụng Amazon API Gateway để làm tầng caching cho REST API và Amazon CloudFront cho CDN.

Làm quen với kiến trúc Serverless

Nếu bạn là một chuyên gia, xin hãy chỉ giáo thêm về các vấn đề này.

Nguồn: Bài viết gốc được đăng tải tại vuilaptrinh.com

Có thể bạn quan tâm:

Xem thêm các việc làm Developer hấp dẫn tại HEFC

Related Posts

Xét nghiệm Giải phẫu bệnh – Dẫn đường cho việc điều trị

Xét nghiệm giải phẫu bệnh được thực hiện trên những mẫu bệnh phẩm tế bào, bệnh phẩm mô từ các cơ quan trong cơ thể được sinh…

Phương pháp điều trị tủy răng tại nha khoa hiện nay

Viêm tủy răng là một trong những vấn đề về sức khỏe răng miệng nghiêm trọng. Người mắc viêm tủy răng không chỉ phải chịu đựng những…

Mỹ thuật ứng dụng là gì? (cập nhật 2023)

Khi những giá trị thẩm mỹ ngày càng được chú trọng thì các phẩm mỹ thuật ứng dụng ngày càng đi sâu vào đời sống của mọi…

Bát quái đồ là gì? Ý nghĩa và vai trò của bát quái trong phong thủy

Bát quái đồ là vật phẩm phong thủy được sử dụng khá rộng rãi và phổ biến trong văn hoá phương Đông, nhằm mang lại những niềm…

Du học ngành khoa học ứng dụng và cơ bản

>> Du học ngành khoa học đại cương >> Các trường có đào tạo ngành Khoa học ứng dụng và cơ bản Khoa học Ứng dụng và…

Trồng răng implant là gì? Những điều cần phải biết trước khi chọn trồng răng implant

Trồng răng implant là phương pháp trồng răng cấy trụ kim loại vào xương hàm để thay thế cho răng đã mất. Chính vì vậy trụ implant…