Bản dịch tóm tắt từ: https://www.cnpatterns.org/development-design
Phương pháp về cách thiết kế, xây dựng và cung cấp sản phẩm / dịch vụ trong Cloud Native bao gồm: kiến trúc và quy trình hỗ trợ phân phối nhanh chóng và linh hoạt.
A/B Testing
Một công ty có sẵn cơ sở hạ tầng cloud native đang hoạt động và đang hướng tới việc cung cấp nhiều chức năng hữu ích cho khách hàng của mình. Các đội đều thành thạo và tất cả các công nghệ và quy trình đều được áp dụng.
So sánh nhiều phiên bản của một thứ gì đó (một tính năng, chức năng mới, giao diện người dùng, v.v.) trong điều kiện sử dụng thực tế của khách hang, nhanh chóng cung cấp dữ liệu hữu ích về cái nào hoạt động tốt hơn
Automated Testing
CI và CD đang được áp dụng. Hệ thống cũ đang được tái cấu trúc sang microservices và nhóm đang hướng tới việc cung cấp các thay đổi một vài lần mỗi ngày.
Chuyển trách nhiệm kiểm thử từ con người (thủ công) sang các khuôn khổ kiểm thử tự động để chất lượng của sản phẩm đã phát hành được nhất quán và liên tục được cải thiện, cho phép các developer phân phối nhanh hơn trong khi dành nhiều thời gian hơn để cải thiện các tính năng để đáp ứng nhu cầu của khách hàng
Avoid Reinventing the Wheel
Một nhóm đang ở giữa quá trình chuyển đổi cloud native và thiếu một số chức năng. Các giải pháp out-of-the-box hiện có sẵn trên thị trường, mặc dù nhóm có khả năng tạo ra giải pháp của riêng mình.
Khi có thể, hãy sử dụng mã nguồn mở hoặc mua các giải pháp thương mại cho bất kỳ nhu cầu nào không phải là hoạt động kinh doanh cốt lõi thực tế của bạn thay vì cố gắng tùy chỉnh xây dựng các công cụ hoàn hảo
Communicate Through APIs
Một công ty đang xây dựng ứng dụng microservices. Một số nhóm làm việc trên một microservice duy nhất, những nhóm khác làm việc trên nhiều microservices. Các nhóm độc lập và nhằm mục đích giảm sự phụ thuộc giữa các nhóm trên cả cấp độ kỹ thuật và tổ chức.
Trong một hệ thống phân tán phức tạp, các microservices phải giao tiếp với nhau thông qua các API ổn định và được tách biệt mạnh mẽ
Continuous Integration
Nhiều developer đang làm việc trong cùng một cơ sở mã nguồn và cần tích hợp các thay đổi của họ.
Việc tích hợp thường xuyên các thay đổi lặp đi lặp lại nhỏ giúp tăng tốc độ phân phối tổng thể và cải thiện chất lượng của mã nguồn
Delayed Automation
Nhóm đang xây dựng một hệ thống phức tạp cần hỗ trợ số lượng người dùng lớn và dao động. Miền vấn đề không được biết đầy đủ. Giải pháp là mới và không dễ dàng phát hiện ra.
Chỉ tự động hóa các quy trình sau khi sự cố đã được giải quyết hoàn toàn và giải pháp đã được chạy theo cách thủ công một vài lần
Demo Applications
Core Team đã xây dựng nền tảng ban đầu và sẵn sàng bắt đầu đưa phần còn lại của tổ chức lên nền tảng cloud native. Các developer đã trải qua các khóa đào tạo về nền tảng và sẽ sớm bắt đầu chuyển các ứng dụng sang phiên bản cloud native. Mức độ trải nghiệm cloud native còn thấp.
Các nhóm tham gia vào hệ thống cloud native mới nhận các ứng dụng demo như một điểm khởi đầu để xây dựng các ứng dụng cloud native của riêng họ
Developer Starter Pack
Nền tảng cloud native mới đang đạt đến trạng thái production-ready và đã đến lúc bắt đầu giới thiệu đến các nhóm.
Cung cấp “bộ tài liệu dành cho người mới bắt đầu” gồm các tài liệu, hướng dẫn và các tài nguyên khác để giúp các nhóm mới tham gia vào hệ thống cloud native một cách nhanh chóng và tự tin
Distributed Systems
Sự phức tạp của hệ thống đã vượt quá khả năng của các kiến trúc sư chủ chốt để hiểu nó, nhưng vẫn cần phải tăng thêm.
Khi phần mềm được xây dựng như một mạng lưới các dịch vụ hoàn toàn độc lập, theo thiết kế, hệ thống sẽ nhanh chóng, linh hoạt và có khả năng mở rộng cao
Microservices Architecture
Một công ty đã quyết định chuyển sang nền tảng cloud native và đang tìm cách tăng tốc độ phát triển tính năng và tối ưu hóa việc sử dụng tài nguyên đám mây của họ. Quy mô của nhân viên phát triển / kỹ thuật có thể từ vài chục đối với doanh nghiệp vừa và nhỏ, lên đến vài nghìn đối với doanh nghiệp lớn.
Để giảm chi phí phối hợp giữa các nhóm cung cấp các ứng dụng nguyên khối lớn, hãy xây dựng phần mềm dưới dạng một bộ các service được xây dựng, triển khai và hoạt động độc lập
No Long Tests in CI/CD
CI / CD được cung cấp và hầu hết các bài kiểm thử đều được tự động hóa. Một số mất hàng giờ hoặc thậm chí lâu hơn , một số khác yêu cầu thực hiện thủ công.
Thực hiện các bài kiểm thử dài không quan trọng ở background để chúng không làm chậm tốc độ phân phối sản phẩm
Open Source Internal Projects
Công ty đang xây dựng rất nhiều phần mềm, nhưng hầu hết trong số đó đáp ứng các nhu cầu chung — chỉ một tỷ lệ nhỏ liên quan đến việc cung cấp các sản phẩm / dịch vụ kinh doanh cốt lõi thực tế.
Sử dụng các giải pháp nguồn mở cho bất kỳ nhu cầu phần mềm nào không liên quan trực tiếp đến giá trị kinh doanh cốt lõi của công ty
Reference Architecture
Core Team đang thiết kế việc thiết lập nền tảng ban đầu và chuyển đổi một số ứng dụng đầu tiên để kiểm tra nó. Các nhóm còn lại sẽ sớm bắt đầu chuyển đổi và cần hiểu kiến trúc nền tảng.
Cung cấp một tài liệu dễ dàng truy cập, đưa ra một kiến trúc hệ thống được tiêu chuẩn hóa cho tất cả các nhóm sử dụng để xây dựng các ứng dụng / thành phần của họ. Điều này đảm bảo tính nhất quán kiến trúc cao hơn và giảm chi phí phát triển thông qua khả năng tái sử dụng tốt hơn
Reproducible Dev Environments
Các developer đang xây dựng các microservices được đóng gói và triển khai vào nền tảng containerized platform. Mỗi microservice được xây dựng bởi một nhóm và microservice được tích hợp vào hệ thống lớn hơn. Có nhiều developer trong nhiều nhóm khác nhau.
Các developer cần phải kiểm tra công việc hàng ngày của họ trong một môi trường dễ thay đổi và phù hợp với môi trường production nhất có thể
Serverless
Nhóm đang xây dựng một hệ thống có khả năng mở rộng cao hoặc sử dụng các công cụ yêu cầu nhiệm vụ bảo trì tích hợp. Các nhiệm vụ được xác định rõ ràng và có thể lặp lại và có thể yêu cầu mở rộng quy mô tích cực cho các đợt bùng nổ ngắn.
Event-driven sẽ sớm trở thành xu hướng, có thể mở rộng tức thì trên nền tảng cloud
Strangle Monolithic Application
Bạn có một ứng dụng nguyên khối và đang chuyển đổi sang kiến trúc microservices. Nền tảng mới đã sẵn sàng hoặc sắp sẵn sàng và bạn đang chuẩn bị chiến lược để tách khối nguyên thành các microservices.
Từng bước tách từng phần của ứng dụng nguyên khối cũ, từng phần một, tái kiến trúc lại chúng trong các service và di chuyển đổi chúng theo thời gian sang nền tảng cloud native mới
One thought on “CNPATTERNS – DEVELOPMENT & DESIGN PATTERNS”