Chi phí và hiệu quả giữa iFaaS và FaaS (AWS) trong việc tạo ứng dụng không có máy chủ
![](https://post.nghiatu.com/assets/images/m/max/724/1*CTI7Uf118C_BL0DSp6bLiQ.png)
Kiến trúc serverless là một thiết kế hệ thống mạnh mẽ cho phép các nhà phát triển xây dựng và chạy mã mà không cần quản lý máy chủ và không phải trả tiền cho các dịch vụ đám mây nhàn rỗi.
AWS là một trong những nhà cung cấp dịch vụ đám mây lớn nhất, nơi bạn có thể tạo một hệ thống Serverless mạnh mẽ. Tuy nhiên, có ba quan điểm bên dưới mà chúng tôi muốn đề cập đến sự khác biệt giữa Lolo Code (chức năng tích hợp dưới dạng dịch vụ) và AWS (chức năng dưới dạng dịch vụ) trong việc tạo Ứng dụng không có máy chủ.
- Trị giá
- Hiệu suất
- Hiệu quả
Giá AWS
AWS cung cấp cho bạn phương thức định giá theo mức sử dụng. Nói cách khác, bạn sẽ trả cho số tiền bạn đã sử dụng tài nguyên AWS.
Ví dụ về giá AWS
API được sử dụng trong Ứng dụng web không có máy chủ gọi Lambda để trả về nội dung trang web động. Trang web nhận được 10.000 lượt tải trang mỗi phút. Mỗi yêu cầu API là 12KB và phản hồi là 46 KB.
Đây sẽ là tổng số 432 triệu yêu cầu mỗi tháng.
Chi phí hàng tháng = 418,8 USD (0,97 USD trên một triệu) * trong chi phí Amazon API Gateway (không bao gồm Lambda và DynamoDB)
Giá Mã Lolo
Lolo Code cũng cung cấp cho bạn mô hình trả tiền khi sử dụng nhưng đơn giản hơn, bạn trả tiền cho số lượng sự kiện mà ứng dụng của bạn cần xử lý đồng thời thay vì tổng số sự kiện.
Bạn có thể đăng ký 1 Ứng dụng với 1 LCU (hoặc Bản sao) với bộ nhớ 256 mb và 0,125 lõi (CPU) bắt đầu từ 9 euro một tháng. Bậc miễn phí bao gồm hai ứng dụng với mỗi ứng dụng có 1 LCU nhưng yêu cầu bạn tương tác với ứng dụng mỗi tuần một lần để duy trì hoạt động của ứng dụng. Nếu bạn muốn tăng số bản sao của mình cho một ứng dụng cấp miễn phí, giá bắt đầu từ 9€ mỗi bản.
Ví dụ về giá Lolo Code
Lấy ví dụ tương tự như trên đối với API Gateway, chúng tôi đã thực hiện một số tính toán.
Nếu trang web nhận được 10.000 lượt tải trang mỗi phút và mỗi yêu cầu API là 12KB và phản hồi là 46 KB, thì chúng tôi cần xử lý 10.000 yêu cầu/phút cho ứng dụng Lolo. Điều này yêu cầu 0,131 (lõi) và bộ nhớ 85 mb. Do đó, điều này yêu cầu hai bản sao với giá 9 € mỗi bản nhưng chúng tôi vẫn sẽ có chỗ cho nhiều yêu cầu hơn trong ứng dụng đó. Kết quả là
Chi phí hàng tháng = €18 chi phí mỗi tháng cho ứng dụng Lolo.
Lolo có thể được coi là sự kết hợp giữa AWS Lambda và API Gateway. Bạn cũng có thể sử dụng cửa hàng trạng thái sẵn có của Lolo để lưu trữ nội dung trang web động của mình. Bằng cách này sẽ không có chi phí ẩn. Tổng số tiền bạn sẽ trả chỉ đơn giản là €18 mỗi tháng.
Hiệu suất: Sự khác biệt giữa iFaaS và FaaS
AWS có thể cung cấp mọi thứ bạn cần và bạn có thể thiết kế một ứng dụng quy mô lớn với khả năng dự phòng, khả năng mở rộng và tính sẵn sàng cao. Mặt khác, bạn nên hiểu rõ về các hệ thống mạng và làm quen với kiến trúc AWS để khai thác tiềm năng của nó. Serverless cũng đi kèm với nhược điểm của nó. Một trong số đó là “sự khởi đầu lạnh lùng” khét tiếng.
Để minh họa, ứng dụng của bạn sẽ đợi trong một khoảng thời gian nhất định cho đến khi vùng chứa sẵn sàng chạy mã. Yêu cầu này mất nhiều thời gian hơn để xử lý vì ứng dụng Serverless cần hoàn thiện chức năng (tức là tải xuống mã, thư viện, mô-đun/v.v. và khởi tạo môi trường để chạy mã). Sự cố này xuất hiện trong mọi ứng dụng Serverless trong Lolo Code hoặc AWS.
AWS
AWS đã trở nên nổi tiếng tốt hơn kể từ khi các nhóm Lambda chuyển sang công nghệ Firecracker vào năm 2018. Tuy nhiên, vì chức năng này vẫn cần phải hoàn thiện nên các lần khởi động nguội sẽ chiếm ưu thế.
Trong AWS, bạn có thể đánh thức Lambda với số lượng vùng chứa tối thiểu. Nhưng bạn sẽ phải trả thêm chi phí để chạy nó liên tục.
Chúng tôi đã có một người dùng thực hiện kiểm tra * trên AWS Lambda bắt đầu bị trì hoãn vào mùa hè này (sử dụng AWS EU). Kết quả của thí nghiệm dưới đây.
+-----------+--------------------
| time | ms
+-----------+--------------------
| 1 min | 180 ms
| 15 min | 750 ms
| 3h | 1467 ms
| 10h | 2060 ms
+-----------+--------------------
Các ứng dụng trên Lolo Code cũng gặp sự cố “Khởi động nguội” nhưng Ứng dụng Lolo của bạn vẫn tiếp tục chạy cho đến khi bạn dừng nó. Tức là vì Lolo Code đang hoạt động với các vùng chứa, ứng dụng của bạn về mặt kỹ thuật sẽ luôn chạy cho đến khi bạn dừng nó. Về cơ bản, bạn không cần phải quan tâm đến khởi động nguội.
Tuy nhiên, người dùng ở trên đã thực hiện kiểm tra trên AWS đã thực hiện chính xác kiểm tra tương tự trong Lolo Code. * Kết quả của anh ấy được hiển thị bên dưới.
+-----------+--------------------
| time | ms
+-----------+--------------------
| 1 min | 172 ms
| 15 min | 210 ms
| 3h | 602 ms
| 10h | 890 ms
+-----------+--------------------
Một điều khác cần xem xét là nếu tập lệnh của bạn chạy quá lâu, thì AWS có thể không phải là lựa chọn tốt nhất. Thời gian chờ tối đa của AWS Lambda là 900 giây (15 phút) trong khi Lolo không có thời gian chờ tối đa.
Hiệu quả: Làm cách nào để xây dựng và quản lý ứng dụng Serverless?
Việc xây dựng API trong cả AWS và Lolo Code rất đơn giản. Tuy nhiên, có sự khác biệt.
AWS
Trong AWS, bạn xây dựng chức năng Lambda của mình và sau đó kết nối nó với một dịch vụ khác, API Gateway, sẽ đóng vai trò là trình kích hoạt của nó. Ở đây bạn có một chức năng ẩn danh sẽ được kích hoạt khi có điều gì đó xảy ra. Đây chính là lý tưởng của FaaS, một chức năng ẩn danh chỉ được kích hoạt khi có sự kiện xảy ra.
Vì chức năng này không có trạng thái nên bạn sẽ cần tìm nạp dữ liệu ở nơi khác, trong trường hợp này, bạn có thể sử dụng AWS DynamoDB để lưu trữ và tìm nạp dữ liệu.
![](https://post.nghiatu.com/assets/images/m/max/724/1*793us9HsGsPp0xAQHrSDmw.png)
Đây có vẻ là một thiết kế có thể mở rộng và mạnh mẽ, tuy nhiên, bạn cần xem xét một số yếu tố quan trọng:
- Làm cách nào để quản lý các thay đổi đối với mã phần mềm?
- Làm cách nào để triển khai hoặc tùy chỉnh ứng dụng của bạn một cách nhanh chóng?
- Bắt đầu kiểm tra các dịch vụ ở đâu trong trường hợp có bất kỳ sự cố cơ sở hạ tầng nào?
Xem hướng dẫn đầy đủ về cách xây dựng API HTTP với Lambda, API Gateway và DynamoDB tại đây .
mã lolo
Với Mã Lolo, bạn có thể thêm trình kích hoạt HTTP và sau đó sử dụng kho lưu trữ trạng thái sẵn có cho cơ sở dữ liệu. Bạn có thể thêm một hàm thô mới để hoạt động như lambda của mình (để tuân theo trường hợp sử dụng chính xác ở trên).
Ứng dụng Lolo của bạn có thể trông như thế này.
![](https://post.nghiatu.com/assets/images/m/max/724/1*u5x9EQDZCUej2U8XnyWycw.png)
Bạn sẽ quyết định những gì có trong các khối mã bằng cách thay đổi mã của nó (NodeJS) và sau đó đổi tên nó.
Hơn nữa, Lolo Code cung cấp các hàm Thư viện mà bạn có thể sao chép và sử dụng các hàm mẫu hiện có cũng như tạo các mẫu của riêng bạn. Đối với trường hợp API, chúng ta có thể sử dụng chức năng Lolo/CRUD API v3 để nhanh chóng tạo API CRUD. Điều này sẽ nhanh hơn việc thiết lập của riêng chúng tôi từ đầu.
![](https://post.nghiatu.com/assets/images/m/max/724/1*XAyoAn-VRLx1-4shq7Ob2Q.png)
Bạn không cần phải thay đổi quá nhiều thứ ở những nơi khác nhau. Với Lolo Code, tất cả công việc của bạn ở một nơi.
Khi bạn lưu và chạy ứng dụng của mình, bạn không phải lo lắng về việc duy trì hoặc cung cấp các máy chủ của riêng mình để duy trì hoạt động của ứng dụng (tức là nó hoàn toàn “không có máy chủ”). Trừ khi bạn quyết định sử dụng thời gian chạy riêng trong tài khoản đám mây công cộng hoặc trung tâm dữ liệu riêng của mình. Xem tài liệu Lolo runtime-d tại đây . Runtime-d là một tệp nhị phân độc lập biến bất kỳ máy tính xách tay hoặc máy chủ linux nào thành thời gian chạy Lolo.
Tóm lược
AWS là một nền tảng đám mây phổ biến, cung cấp các dịch vụ đầy đủ tính năng từ các trung tâm dữ liệu trên toàn cầu.
Với AWS, bạn có thể làm được nhiều việc, nhưng nó cũng đòi hỏi nỗ lực và thời gian hợp lý để biến ý tưởng của bạn thành một ứng dụng và triển khai nó trên AWS. Lolo Code sẽ giúp bạn tăng tốc độ phát triển của mình và giữ cho nó chạy với chi phí thấp hơn. Mặc dù Lolo Code sử dụng đám mây AWS để triển khai ứng dụng nhưng nó cũng cung cấp cho bạn khả năng sử dụng thời gian chạy của riêng bạn, khiến nó trở nên độc lập với đám mây.
❤️ Lolo