Thủ tục lưu trữ là chi tiết thực hiện. Các hàm cơ sở dữ liệu, lambdas hoặc tập lệnh shell được lưu trữ ở đâu đó trong hệ thống tệp đều là các chi tiết triển khai và không liên quan đến kiến trúc.
hầu hết các cuốn sách về microservice đề xuất một cơ sở dữ liệu cho mỗi dịch vụ microservice.
Ok, vì vậy chúng tôi có thể mã hóa các thủ tục được lưu trữ trong các cơ sở dữ liệu này.
một lần nữa, hầu hết các sách kiến trúc microservice đều nói rằng chúng nên được tự chủ và ghép lỏng lẻo
Giữa các khả năng kinh doanh, vòng đời phát triển, quản lý, triển khai, địa điểm của nhóm, v.v. Không liên quan gì đến các chi tiết triển khai. Dịch vụ vi mô không giải quyết vấn đề kỹ thuật (ngược lại). Họ đến để giải quyết các vấn đề với ban quản lý và thời gian tiếp thị. Đó là một chiến lược, không phải là một chiến thuật. Một cách để thất bại nhanh chóng với chi phí ít nhất có thể. Nếu một khả năng kinh doanh nhất định được chứng minh là vô giá trị, chúng tôi sẽ loại bỏ nó mà không làm rối tung các khả năng khác, triển khai, quản lý dự án, phát hành ...
Lưu ý rằng "tách" đã hoạt động như một tác nhân tách rời. Giả sử chúng tôi có hai dịch vụ, A được hỗ trợ bởi Oracle và B bởi MongoDB. Nếu chúng ta không phá vỡ quy tắc vàng tách rời, có thể loại bỏ A + Oracle với các tác dụng phụ không đáng kể trên B.
Sử dụng các thủ tục được lưu trữ bằng văn bản nói riêng trong Oracle, kết hợp chặt chẽ microservice với công nghệ đó.
Nó có thể gây ra khóa nhà cung cấp. Nhiều lần, nhà cung cấp bị doanh nghiệp áp đặt vì lý do lịch sử hoặc hợp đồng 1 . Điều quan trọng là phải biết cách không khóa mã của chúng tôi với nhà cung cấp. Ví dụ: một số ORM và khung triển khai ngôn ngữ truy vấn mới ẩn các chức năng và tính năng tích hợp trong cơ sở dữ liệu.
Mặc dù, nếu các dịch vụ của chúng tôi đủ vi mô, việc khóa nhà cung cấp không còn là vấn đề nữa vì nó ảnh hưởng đến một phần nhỏ của toàn bộ. Một phần nhỏ cần được thay thế (hoặc cách ly) nhanh chóng.
hầu hết các sách MSA (mà tôi đã đọc) khuyên rằng microservice nên được định hướng kinh doanh (được thiết kế bằng DDD).
Nó nên được định hướng kinh doanh và ở đây điều. Không phải tất cả các doanh nghiệp đều tận dụng DDD. DDD và microservice trùng lặp ở nhiều điểm, nhưng chúng không gây ra hậu quả. Chúng tôi có thể kết thúc với một hệ sinh thái microservice bao gồm các dịch vụ thiếu máu. Hoặc bao gồm một hỗn hợp của cả hai: các dịch vụ triển khai một miền phức tạp và các dịch vụ thiếu máu câm cung cấp POJO trực tiếp từ DB. Không có gì sai với điều đó.
Về sách, họ chỉ tập trung vào việc thực hiện chiến lược. Các chiến thuật - làm thế nào để tận dụng lợi thế của điện toán phân tán - làm thế nào để nó hoạt động để thành công, nhưng chúng (thường) không thể tin được vào chiến lược. Chiến lược khác nhau giữa các công ty và hiếm khi phụ thuộc vào các nhà phát triển. Vì vậy, chúng tôi vẫn phải ngoại suy và điều chỉnh những gì sách nói với nhu cầu, yêu cầu và ràng buộc cụ thể của chúng tôi. Mục tiêu là làm cho chiến lược kinh doanh có lợi nhuận và bền vững.
Luôn luôn nhớ rằng bất kỳ kiến trúc là một phương tiện để kết thúc. Các quy tắc kinh doanh. Chúng tôi không xây dựng hệ sinh thái microservice cho thời trang hoặc yêu thích nghệ thuật.