Get in touch
or send us a question?
CONTACT

Serverless Architecture trong AWS (phần 1)

thumbnail

Giống như AWS Lambdas, kiến trúc không máy chủ (Serverless Architecture) có tính năng vượt trội hơn nhiều so với Function as a Service (FaaS).

Một trong số những lý do khiến Lambdas thu hút người sử dụng là khả năng tự động mở rộng quy mô (vào & ra) và là mô hình định giá trả tiền cho mỗi lần sử dụng. Để có thể tận dụng hết các khả năng này và chạm tới toàn bộ các lợi ích của kiến trúc không máy chủ mang lại, chúng ta cần thêm các thành phần cơ sở hạ tầng khác có cùng tính linh hoạt.

Một kiến trúc như vậy trong một dự án web sẽ có cấu trúc như thế nào?

Tại Theodo, serverless được sử dụng trong rất nhiều dự án. Một số dịch vụ và mô hình bắt đầu được sử dụng rộng rãi. Vì vậy, chúng tôi quyết định chia sẻ những thực tiễn đã trải nghiệm về kiến trúc này khi thực hiện nó trên một ứng dụng web.

Trong sơ đồ trên, một block sẽ biểu thị cho một miền hoặc một tính năng kỹ thuật được phân tách rõ ràng và có thể tìm thấy trong hầu hết các kiến trúc không máy chủ. Chúng không nhất định phải biểu thị cho các micro-services hoặc các stack trong thuật ngữ CloudFormation.

Sử dụng đầy đủ các micro-services hướng event của AWS được viết bằng Typescript.
Mục tiêu của chúng ta là có được một hệ thống quản lý mạnh mẽ với một trải nghiệm thoải mái cho các nhà phát triển. Để đạt được nó, chúng ta cần:

Amazon Web Services
Cuộc đua cạnh tranh đám mây giữa: AWS, GCP, Azure, IBM Cloud, Alibaba Cloud diễn ra rất mạnh mẽ. Tất cả họ đều có một số dịch vụ tuyệt vời và phát triển với một tốc độ chóng mặt. Ben Ellerby đã so sánh 3 nhà cung cấp hàng đầu trong bài viết này và chúng ta ủng hộ các giải pháp AWS.

Chúng là những máy chủ tân tiến nhất. Với các giải pháp AWS, chúng ta tiến gần đến một kiến trúc không máy chủ hoàn toàn.Chi tiết từng dịch vụ AWS được kết hợp với các khối kiến trúc sẽ được trình bày chi tiết trong các phần tiếp theo của bài viết này.

Node in TypeScript
JavaScript là một trong những ngôn ngữ lập trình phổ biến nhất trên toàn thế giới, do đó nó có một cộng đồng phát triển khá lớn (các số liệu thống kê trên GitHub). Thế giới không máy chủ không khác biệt quá nhiều so với quan sát này, theo Datadog, 39% trên toàn bộ các Lambdas được triển khai, hiện đang chạy trên JavaScript, mặc dù Python vẫn dẫn đầu với 47%. TypeScript đã đưa JS tiến thêm một bước và thêm một tầng bảo vệ tuyệt vời. Và cuối cùng, JavaScript trong Lambdas hoạt động hoàn hảo cho phần lớn các trường hợp đang sử dụng chúng.

(còn tiếp)