Làm thế nào để kiến ​​trúc serverless quản lý các kết nối cơ sở dữ liệu?


10

Ưu điểm chính của kiến ​​trúc serverless được cho là các chương trình như vậy không cần máy chủ chuyên dụng để chạy liên tục. Sau đó được gọi theo yêu cầu và dừng thoát khỏi chức năng.

Điều này có nghĩa là một chương trình không có máy chủ sẽ phải nhanh chóng bắt đầu, để được phản hồi. Làm thế nào để nó xử lý các hành động tốn thời gian như kết nối cơ sở dữ liệu? Nó có kết nối với cơ sở dữ liệu mọi lúc hay nó quản lý kết nối cơ sở dữ liệu một cách riêng biệt với các yêu cầu chức năng như được thực hiện trong các ứng dụng máy chủ?

Câu trả lời:


9

Vì một ứng dụng không có máy chủ không giữ trạng thái giữa các lần chạy, nên nó không thể duy trì nhóm kết nối cơ sở dữ liệu. Các ứng dụng không có máy chủ thực sự phải đối mặt với các ràng buộc tương tự như các tập lệnh CGI của 90. Nói chung, một quy trình máy chủ vĩnh viễn sẽ có thể vượt trội hơn kiến ​​trúc quy trình theo yêu cầu hoặc theo yêu cầu của container vì máy chủ thực hiện khởi tạo một lần, không phải một lần cho mỗi yêu cầu.

Các chương trình không có máy chủ không phù hợp với các tác vụ nhạy cảm với độ trễ như phục vụ trang web. Chúng phù hợp hơn cho các tác vụ nền lẻ tẻ mà bạn không muốn chạy trên máy chủ chính của mình mà không phải quản lý thủ công và tải cân bằng các máy chủ ứng dụng bổ sung. Chúng cũng có thể phù hợp nếu năng suất của nhà phát triển quan trọng hơn nhiều so với phản hồi có độ trễ thấp.


Điểm tuyệt vời. Tôi cũng đề nghị rằng một lợi thế lớn khiến mọi người không có máy chủ là chi phí. Nếu bạn đang trả tiền cho một nhà cung cấp (ví dụ Amazon) chỉ dựa trên # yêu cầu và không trả tiền để duy trì hoạt động của một máy chủ nhàn rỗi, bạn sẽ tiết kiệm tiền đặc biệt là trong giai đoạn khởi động.
Paul

2
@Paul Ưu điểm chính của serverless là sự tiện lợi (PaaS so với IaaS). Quản trị an toàn một máy chủ là một kỹ năng mà hầu hết các nhà phát triển (bao gồm cả tôi) không có. Tôi chắc chắn có một số tình huống mà serverless rẻ hơn đáng kể. Nhưng các máy chủ riêng ảo bắt đầu ở mức 5 đô la / tháng, rất cạnh tranh, có thể nói là nhẹ. Đặc biệt là xem xét rằng một VPS có ít hạn chế hơn, cho phép bạn chạy phần mềm tùy ý và các dịch vụ vĩnh viễn. Đây là một chút so sánh táo với cam. Trong một mô hình bạn đang trả tiền cho một máy chủ nhàn rỗi, trong một mô hình khác, bạn đang trả tiền cho thời gian khởi động lặp đi lặp lại.
amon

4

Nó phụ thuộc.

Việc thực hiện hậu trường của người chạy lambda sẽ ảnh hưởng đến điều này. Chúng ta có thể thấy rằng trong AWS, container có thể được sử dụng lại.

http://docs.aws.amazon.com/lambda/latest/dg/lambda-int sinhtion.html

Vì vậy, chúng ta có thể thấy kết nối / tái sử dụng kết nối cho một số yêu cầu ít nhất. Ngoài ra chúng ta nên xem xét cơ sở dữ liệu và cách nó xử lý các yêu cầu kết nối đến.

Loại câu hỏi này đối với tôi nhấn mạnh một số vấn đề với 'serverless' vẫn còn rất mới và chưa trưởng thành, vì vậy các chi tiết vẫn chưa được khắc phục.

Chúng ta nên luôn nhớ rằng serverless không có nghĩa là không có máy chủ. Nếu tốc độ bạn gọi lambda đủ cao, bạn thực sự có thể có một số máy chủ hoặc 'container' đang chạy.

Trong thực tế, thời gian khởi động và các tài nguyên như địa chỉ IP của lambdas có thể là một vấn đề thực sự. Có lẽ khi họ trưởng thành, sự đồng thuận về cách điều hành chúng sẽ xuất hiện và những vấn đề này sẽ nhận được câu trả lời chắc chắn.

Khi sử dụng trang web của chúng tôi, bạn xác nhận rằng bạn đã đọc và hiểu Chính sách cookieChính sách bảo mật của chúng tôi.
Licensed under cc by-sa 3.0 with attribution required.