Chúng tôi đang dự tính chia nhỏ những con quái vật nguyên khối thành kiến trúc dựa trên microservice dần dần. Chúng tôi có 5 nhóm, mỗi nhóm chứa 2-3 nhà phát triển C #, ít nhất 1 nhà phát triển cơ sở dữ liệu và 2 kỹ sư QA. Bên cạnh sự thay đổi văn hóa và mô hình khổng lồ từ một kiến trúc nguyên khối sang các dịch vụ siêu nhỏ, cũng có những thách thức kỹ thuật. Tôi muốn hỏi cộng đồng một số sự khôn ngoan và lời khuyên để chúng ta có thể tránh mắc phải những sai lầm tương tự.
Có bất kỳ ví dụ công nghiệp tốt nào mà microservice dựa trên .NET đã được sử dụng thành công trong một hệ thống sản xuất không? Chiến lược cho những điều sau đây là gì?
- Org : bạn đã tổ chức các giải pháp / dự án .NET như thế nào?
- Lập kế hoạch phát triển : về mặt lập kế hoạch phát triển, bạn đã chia nhỏ công việc giữa các nhóm như thế nào? Chiến lược tổng thể để đảm bảo tuân thủ hợp đồng giữa các dịch vụ siêu nhỏ đã được đàm phán giữa các nhóm là gì?
- Cân bằng tải / định tuyến / cổng API : chiến lược cân bằng tải, dự phòng và nhân rộng là gì? Bạn vừa đi với một kiến trúc async hoàn chỉnh và đã sử dụng một hàng đợi cho giao tiếp microservice hoặc bạn đã thực hiện ngang hàng thông qua một cổng cân bằng tải / API? Và tại sao?
- Kiểm tra tự động hóa : làm thế nào bạn xử lý tự động kiểm tra. Điều này cùng với việc tích hợp liên tục dường như hoàn toàn cần thiết cho kiến trúc microservice. bạn thây no thê nao?
- Triển khai : bạn đang triển khai như thế nào? Một VM / microservice hoặc một container / microservice hoặc một cái gì đó hoàn toàn khác? Làm thế nào bạn xử lý thực tế là bây giờ bạn có hàng chục cơ sở dữ liệu nếu không xem xét thêm mỗi microservice sẽ có kho dữ liệu của nó, điều đó đã làm gì với cơ sở hạ tầng của bạn và DBA của bạn đã xử lý nó như thế nào?
- Cơ sở hạ tầng : làm thế nào cơ sở hạ tầng của bạn mở rộng với kiến trúc này. Là nó siêu trò chuyện và bạn phải tinh chỉnh nó hoặc mạng đã xử lý nó mà không có vấn đề? Được tự lưu trữ hoặc trong đám mây?
- Giám sát : chiến lược giám sát của bạn là gì? Làm thế nào bạn giữ các tab trên hàng chục nếu không phải là hàng trăm microservice? Có phải chủ yếu thông qua đăng nhập và giám sát trung tâm?