Cách triển khai nhiều dịch vụ vi mô phụ thuộc


7

Chúng tôi muốn triển khai nhiều dịch vụ siêu nhỏ trên AWS ECS.

Vấn đề mà chúng ta cần giải quyết là làm thế nào để triển khai chúng theo cách nguyên tử:

Giả sử chúng ta có các dịch vụ mặt trước yêu cầu phiên bản dịch vụ người dùng 2.0.

Làm thế nào để đảm bảo dịch vụ người dùng khả dụng trước khi triển khai giao diện người dùng.

Chúng tôi có ý tưởng sao chép toàn bộ infra, triển khai mọi thứ sau đó làm cho nó có sẵn. Nhưng nó có vẻ phức tạp. Làm thế nào để bạn thực hiện các trường hợp dự phòng này, triển khai các dịch vụ và thực hiện chuyển đổi?

Chúng tôi đang sử dụng hai nhóm ALB và nhóm mục tiêu cho mỗi dịch vụ (ánh xạ cổng động).

Câu trả lời:


6

Câu hỏi như vậy có thể là một dấu hiệu của việc cắt kiến ​​trúc kém vào microservice. Từ microservice là gì? :

Các dịch vụ này được xây dựng xung quanh khả năng kinh doanhcó thể triển khai độc lập bằng máy móc triển khai hoàn toàn tự động.

Điểm mấu chốt bị bỏ lỡ trong trường hợp như vậy sẽ là khía cạnh có thể triển khai độc lập của họ .

Vấn đề cũng có thể bị hiểu nhầm: điều đó không nhất thiết có nghĩa là mỗi microservice sẽ có khả năng tự thực hiện toàn bộ chức năng của mình, điều đó chỉ có nghĩa là nó có thể được bảo lãnh một cách duyên dáng khi một số dịch vụ vi mô khác phụ thuộc vào không có sẵn, có thể theo dõi các công cụ "việc cần làm" để thực hiện sau này, khi microservice đó có sẵn.

Nhìn từ một khía cạnh khác: xử lý sự không có sẵn của các phụ thuộc dịch vụ bên ngoài thực sự phải là một phần của từng chức năng microservice - vì vậy người ta có thể xem xét microservice đầy đủ chức năng ngay cả khi các phụ thuộc thời gian chạy của nó không thỏa mãn :)

Điều đáng chú ý, tôi nghĩ rằng, trong các ý kiến ​​trên tôi đang đề cập đến sự không có sẵn của microservice bất kể lý do của nó, có thể là thứ tự phụ thuộc triển khai hoặc một cái gì khác (ví dụ như ngừng hoạt động).

Một điều khác cần xem xét sẽ là sự khác biệt tốt hơn giữa việc triển khai các dịch vụ siêu nhỏ và đưa chúng vào hoạt động bằng cách chuyển đổi lưu lượng truy cập cho chúng. Chuyển đổi lưu lượng truy cập thường nhanh hơn bản thân triển khai, do đó, tính khả dụng ở toàn bộ cấp hệ thống có thể được tăng lên bằng cách triển khai đầu tiên tất cả các dịch vụ siêu nhỏ và chỉ sau khi thực hiện chuyển đổi lưu lượng cho tất cả chúng.


Đó là những gì tôi nghĩ! Cảm ơn bạn rất nhiều vì những lời giải thích.
Kaymaz

1

Chúng tôi đã có một tình huống tương tự trong đó một trong những ứng dụng của chúng tôi phải được xây dựng, triển khai và chạy và chạy trước khi ứng dụng thứ hai xuất hiện. Điều này là do ứng dụng A có một số chức năng nên được thực thi trước khi nó được tham chiếu qua ứng dụng B. Cách chúng tôi thực hiện điều này là bằng cách xây dựng nó thành một đường ống phân phối duy nhất. Bằng cách đó, tất cả các phụ thuộc đã được triển khai theo tuần tự hoặc song song khi cần thiết. Chúng tôi cũng đã có các kịch bản cơ sở dữ liệu theo trình tự cùng với khả năng rollback, chỉ trong trường hợp. Theo trường hợp của bạn, bạn có thể triển khai api trước dịch vụ front-end của mình. Hi vọng điêu nay co ich.


0

Giải pháp ở đây là triển khai các dịch vụ vi mô bằng cách sử dụng mẫu triển khai màu xanh / xanh.

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.