Skip to content

Instantly share code, notes, and snippets.

@thuongnn
Last active March 14, 2021 17:00
Show Gist options
  • Star 0 You must be signed in to star a gist
  • Fork 0 You must be signed in to fork a gist
  • Save thuongnn/49cd9b5f01b138f170f7f5f99be6aa6a to your computer and use it in GitHub Desktop.
Save thuongnn/49cd9b5f01b138f170f7f5f99be6aa6a to your computer and use it in GitHub Desktop.
Cloud Native App
Factor Giải thích
1 Code Base Code base duy nhất cho mỗi microservice, lưu trữ trong repository. Sử dụng version control và có thể được triển khai cho nhiều môi trường (QA, Staging, Production).
2 Dependencies Mỗi microservice sẽ cô lập và đóng gói với các dependencies của riêng nó, bao gồm các thay đổi mà không ảnh hưởng đến toàn bộ hệ thống.
3 Configurations Thông tin các config được tách biệt khỏi microservice và lưu trữ bên ngoài thông qua một công cụ quản lý không liên quan gì tới code trong microservice.
4 Backing Services Thành phần tài nguyên hỗ trợ cho microservice (data stores, caches, message brokers) phải được expose qua một addressable URL; tách được thành phần này ra khỏi ứng dụng, cho phép nó có thể hoán đổi cho nhau.
5 Build, Release, Run Mỗi phiên bản release phải được phân tách qua các giai đoạn build, release, và run; mỗi version phải được đánh tag và hỗ trợ khả năng rollback khi cần. Áp dụng CI/CD để giải quyết yếu tố này.
6 Processes Mỗi microservice phải thực thi trong quy trình riêng của nó, tách biệt với các dịch vụ đang chạy khác. Xây dựng app "stateless" nhất có thể, đối với stateful service thì các data cần phải lưu trữ trong Backing Services.
7 Port Binding Microservice được export thông qua port binding, làm như vậy giúp cách ly khỏi các microservices khác. Một app có thể trở thành Backing Services cho một app khác.
8 Concurrency Các service mở rộng quy mô trên một số lượng lớn các quy trình nhỏ giống hệt nhau (bản sao) thay vì mở rộng quy mô một phiên bản lớn duy nhất trên máy cấu hình mạnh. (mở rộng theo chiều ngang hơn là chiều dọc)
9 Disposability App có khả năng dùng một lần, có nghĩa là chúng có thể được khởi động hoặc dừng ngay lập tức. Thời gian khởi động ngắn mang lại sự nhanh nhẹn hơn cho quá trình release và mở rộng quy mô.
10 Dev/Prod Parity Giữ các môi trường trong suốt vòng đời app càng giống nhau càng tốt, giảm thiểu chi phí chuyển giao từ dev sang prod environment.
11 Logging Coi treat logs được tạo bởi microservices như các event streams. Luồng này cần được lưu trữ và quản lý bởi các công cụ khác mang lại nhiều lợi ích.
12 Admin Processes Các tác vụ quản trị, quản lý nên được chạy dưới dạng quy trình một lần, tách biệt với app. Các tác vụ có thể là: migrate database, cronjobs, report, etc.
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment