Các doanh nghiệp không ngừng tìm cách đẩy nhanh hành trình lên đám mây. Cơ sở hạ tầng dưới dạng mã (IaC) rất quan trọng để tự động hóa và quản lý tài nguyên đám mây một cách hiệu quả. Bộ công cụ phát triển đám mây AWS (AWS CDK) cho phép bạn xác định cơ sở hạ tầng đám mây của mình dưới dạng mã bằng ngôn ngữ lập trình yêu thích của bạn và triển khai cơ sở hạ tầng đó bằng AWS CloudFormation . Trong bài đăng này, chúng tôi sẽ thảo luận về các chiến lược và phương pháp hay nhất để đẩy nhanh việc áp dụng CDK trong tổ chức của bạn. Cuộc thảo luận của chúng tôi bắt đầu sau khi tổ chức của bạn hoàn thành thí điểm thành công. Trong bài đăng này, bạn sẽ tìm hiểu cách nhân rộng các bài học rút ra từ dự án thí điểm trong toàn tổ chức của mình thông qua kỹ thuật nền tảng. Bạn sẽ tìm hiểu cách giảm bớt độ phức tạp thông qua việc xây dựng các thành phần có thể tái sử dụng, triển khai với tốc độ và an toàn thông qua công cụ xây dựng cũng như tăng tốc khởi động dự án bằng cổng thông tin dành cho nhà phát triển nội bộ (IDP). Chúng tôi sẽ kết thúc bằng cách thảo luận về các cách tham gia và hưởng lợi từ cộng đồng CDK rộng lớn hơn.
Trước khi đi sâu vào, hãy thảo luận ngắn gọn về xu hướng mới trong công nghệ: Kỹ thuật nền tảng. Thực tiễn DevOps đã giúp các tổ chức CNTT cung cấp phần mềm cho khách hàng thường xuyên hơn và có chất lượng cao hơn. Một bước phát triển gần đây trong DevOps là sự ra đời của các nhóm kỹ thuật nền tảng để xây dựng các dịch vụ, chuỗi công cụ và tài liệu nhằm hỗ trợ các nhóm khối lượng công việc. Trách nhiệm quan trọng của nhóm kỹ thuật nền tảng là quản trị quy trình phân phối phần mềm.
Tại Amazon, chúng tôi có lịch sử lâu dài về việc tận dụng kỹ thuật nền tảng để tăng tốc quá trình triển khai. Đây là cách chúng tôi có thể duy trì 143 chứng nhận và chứng nhận tuân thủ khác nhau trong khi triển khai 150 triệu lần mỗi năm . Kỹ thuật nền tảng giúp tăng năng suất, giảm xung đột giữa ý tưởng và quá trình triển khai, đồng thời cải thiện tính linh hoạt bằng cách tăng tốc phân phối khối lượng công việc thông qua bộ tài nguyên và thành phần an toàn, có thể mở rộng và có thể tái sử dụng thông qua các cổng tự phục vụ và công cụ dành cho nhà phát triển. Kỹ thuật nền tảng bao gồm bảy khả năng: Kiến trúc nền tảng, Kiến trúc dữ liệu, Kỹ thuật sản phẩm nền tảng, Kỹ thuật dữ liệu, Cung cấp & Điều phối, Phát triển ứng dụng hiện đại và CI/CD. Để biết thêm thông tin về kỹ thuật nền tảng, hãy truy cập Khung áp dụng đám mây AWS .
Việc thiết lập các khả năng này cần có một số nhóm nền tảng và khối lượng công việc làm việc cùng nhau. Từ quan điểm mô hình vận hành, nhóm khối lượng công việc tương tác với Kỹ thuật nền tảng theo một trong ba cách sau (để biết thêm thông tin, hãy xem Xây dựng mô hình vận hành đám mây ):
Giảm độ phức tạp của trình tạo và tải nhận thức bằng các thành phần có thể tái sử dụng
Vì vậy, làm cách nào nhóm nền tảng có thể kết hợp CDK để hoàn thành mục tiêu của họ? Một trong những mục tiêu chung của nhóm Kỹ thuật nền tảng là xuất bản và quản lý các mẫu có thể tái sử dụng được gọi là Cấu trúc . Các cấu trúc cung cấp một cơ chế để tạo ra các thành phần chung, có thể mở rộng và có thể tái sử dụng, có thể được chia sẻ giữa nhiều nhóm và dự án.
Nhiều khách hàng viết cách triển khai của riêng họ cho các cấu trúc nhằm thực thi các phương pháp bảo mật tốt nhất như mã hóa và các chính sách cụ thể của AWS Identity and Access Management . Ví dụ: bạn có thể tạo một MyCompanyBucketcấu trúc triển khai các yêu cầu bảo mật của tổ chức thay cho cấu trúc Nhóm Amazon S3 mặc định. Cấu hình bộ chứa này có thể được nhiều nhóm triển khai và mở rộng để đảm bảo họ đang sử dụng các thành phần được nhóm bảo mật và tuân thủ của bạn xác thực.
Đối với những khách hàng tập trung vào quản trị dữ liệu, cấu trúc CDK có thể tự động bổ sung các phương pháp thực hành tốt nhất cho mục tiêu về thời gian khôi phục và mục tiêu về điểm khôi phục bằng cách đảm bảo các bản sao lưu và kiến trúc đáp ứng các chính sách về khả năng phục hồi của tổ chức. Đối với những khách hàng cao cấp muốn thực thi các chính sách vòng đời dữ liệu, tạo các biện pháp kiểm soát truy cập thống nhất hoặc đưa ra các KPI bắt buộc, cấu trúc CDK có thể cung cấp các phương pháp để tạo cấu hình an toàn và bảo mật theo mặc định. Khi áp dụng cấu trúc CDK cho DataOps, khách hàng có thể hưởng lợi từ các quy trình ETL được tạo khuôn mẫu để đảm bảo siêu dữ liệu của dòng dữ liệu được duy trì và quá trình làm sạch dữ liệu diễn ra.
Khách hàng cũng xây dựng cấu trúc cho các tài nguyên không phải của AWS. Các nhóm có thể xây dựng Cấu trúc cho công cụ xây dựng của bên thứ ba, hệ thống có thể quan sát, bộ máy thử nghiệm, v.v. Bằng cách này, các nhóm khối lượng công việc có thể mã hóa các tài nguyên AWS và không phải AWS trong một cơ sở mã. Cần có sự cân bằng khi viết cấu trúc của riêng bạn giữa việc đảm bảo tiêu chuẩn hóa và mang lại sự tự do và linh hoạt trong việc tận dụng hệ sinh thái đang phát triển của các gói CDK. Ví dụ về sự cân bằng này bao gồm Cấu trúc giải pháp AWS , vì chúng thường được xây dựng dựa trên cấu trúc tiêu chuẩn. Nếu không mở rộng các cấu trúc tiêu chuẩn, các cấu trúc bạn xây dựng sẽ khó tích hợp hơn với hệ sinh thái CDK lớn hơn vì nó sử dụng các giao diện tiêu chuẩn hóa.
Construct Hub là điểm đến trung tâm để khám phá và chia sẻ các mẫu thiết kế ứng dụng đám mây cũng như kiến trúc tham chiếu được xác định cho CDK, do cộng đồng AWS xây dựng và phát hành. Trong khi AWS cung cấp Trung tâm xây dựng công khai , các doanh nghiệp có thể duy trì Trung tâm xây dựng riêng bên trong tài khoản AWS của riêng họ (xem build-hub , kho lưu trữ GitHub hoặc Hội thảo CDK để biết thêm chi tiết). Mục tiêu chính trong cả hai trường hợp vẫn nhất quán: cung cấp các thư viện dùng chung mà các nhóm khối lượng công việc khác nhau có thể dễ dàng sử dụng. Cách tiếp cận này đảm bảo nâng cao tính nhất quán, khả năng tái sử dụng và cuối cùng dẫn đến giảm chi phí và thời gian phát triển nhanh hơn.
Một trong những cạm bẫy mà khách hàng thường gặp phải khi tận dụng phương pháp này là Kỹ thuật nền tảng không thể tiếp tục xây dựng các thành phần có thể tái sử dụng để tận dụng những cải tiến công nghệ mới nhất. Đây chính là lúc việc tận dụng những bài học rút ra từ một phi công thực sự có thể hữu ích. Một nhóm thí điểm làm việc với kỹ thuật nền tảng để nghiên cứu và triển khai các biện pháp bảo mật tốt nhất. Một số khách hàng yêu cầu nhóm kỹ thuật nền tảng đóng vai trò là người phê duyệt các cấu trúc mới bên cạnh tác giả của các cấu trúc mới. Trong mô hình này, một nhóm thí điểm làm việc để xây dựng (các) cấu trúc cho một công nghệ mới. Các kỹ sư nền tảng phê duyệt (các) công trình mới. Các kỹ sư nền tảng đảm bảo nhóm thử nghiệm đáp ứng các tiêu chuẩn bắt buộc như thực thi mã hóa khi lưu trữ, mã hóa khi truyền và ít đặc quyền nhất. Khi quá trình phê duyệt diễn ra, nhóm thử nghiệm có thể xuất bản (các) công trình mới lên Trung tâm xây dựng. Bằng cách này, kỹ thuật nền tảng có thể cho phép thử nghiệm và đổi mới thay vì trở thành người gác cổng. Ngoài ra, các nhóm kỹ thuật nền tảng có thể khuyến khích và quản lý mô hình tìm nguồn cung ứng nội bộ để tạo ra cấu trúc thay vì là người tạo duy nhất các cấu trúc.
Triển khai ứng dụng bằng các phương pháp hay nhất về DevSecOps
Những người xây dựng ứng dụng làm việc hiệu quả nhất khi chuyên môn của họ được hướng tới việc viết mã trực tiếp giải quyết các thách thức kinh doanh. Mặc dù tạo ứng dụng là một kỹ năng nằm trong tầm tay của nhiều nhà phát triển phần mềm, nhưng nhiệm vụ phức tạp trong việc triển khai và vận hành các ứng dụng này theo tiêu chuẩn của tổ chức có thể khiến họ choáng ngợp, đặc biệt là đối với những người mới gia nhập nhóm. Sự phức tạp này thường đóng vai trò là nút thắt cổ chai, làm chậm quá trình thử nghiệm và trì hoãn việc hiện thực hóa giá trị từ các sáng kiến ứng dụng mới.
Một giải pháp cho thách thức này nằm ở việc tự động hóa quy trình triển khai và mô hình hoạt động. Bằng cách sử dụng các thành phần CDK (Bộ công cụ phát triển đám mây) đã được kiểm tra kỹ lưỡng, được chia sẻ giữa các nhóm và được xác thực thông qua quy trình CI/CD (Tích hợp liên tục/Triển khai liên tục) mạnh mẽ, gánh nặng cho các nhà phát triển sẽ giảm đáng kể. Họ không còn cần phải đi sâu vào sự phức tạp trong các chiến lược triển khai của tổ chức, cho phép họ tập trung vào việc viết mã sáng tạo, độc đáo. Cách tiếp cận này không chỉ hợp lý hóa quá trình phát triển mà còn thu hẹp khoảng cách giữa phát triển và vận hành, dẫn đến các nhóm gắn kết hơn và phát hành nhanh hơn, hiệu quả hơn.
Một chìa khóa để phân phối phần mềm chất lượng cao là phải có quy trình Tích hợp liên tục và phân phối liên tục (CI/CD) thích hợp. Bạn có thể xem Đường dẫn CDK: Phân phối liên tục cho các ứng dụng AWS CDK để biết ví dụ thực tế. Cấu trúc cấp cao này, được hỗ trợ bởi AWS CodePipeline , sẽ rất hữu ích khi bạn cần vượt ra ngoài việc triển khai thử nghiệm bằng lệnh cdk deployvà xây dựng quy trình tự động để triển khai sản xuất tới nhiều môi trường ở các khu vực và/hoặc tài khoản khác nhau.
Bất cứ khi nào bạn đưa mã nguồn của ứng dụng AWS CDK vào kho lưu trữ nguồn AWS CodeCommit , GitHub, GitLab, BitBucket hoặc Amazon CodeCatalyst , AWS CDK Pipelines sẽ tự động xây dựng, kiểm tra và triển khai phiên bản mới của ứng dụng. Quy trình này tự động cấu hình lại chính nó để triển khai khi tài nguyên trong ngăn xếp thay đổi hoặc môi trường được triển khai thay đổi. Đối với người dùng Tác vụ GitHub, hãy xem Đường dẫn CDK cho Quy trình làm việc GitHub .
Một số nhóm đang mở rộng các quy trình này và thêm các giai đoạn của riêng họ để đảm bảo mã được triển khai đáp ứng các tiêu chí về chất lượng, bảo mật, rủi ro, tuân thủ và quản lý tài chính trên đám mây của tổ chức. Để biết các phương pháp thực hành tốt nhất về nội dung tự động hóa cần đưa vào quy trình, hãy xem Kiến trúc tham chiếu quy trình triển khai AWS . Bằng cách tạo ra các quy trình có đầy đủ chức năng, các nhóm kỹ thuật nền tảng có thể giảm gánh nặng nhận thức cho các nhóm phát triển và tăng trải nghiệm của nhà phát triển. Chiến lược này có hai cách triển khai: quy trình QuickStart và quy trình vàng.
Trong quy trình QuickStart, các quy trình này được tạo dưới dạng cấu trúc trong Trung tâm xây dựng của bạn và được xử lý tương tự như phần thảo luận ở trên về các thành phần có thể tái sử dụng. Mặc dù các quy trình này cung cấp các giao diện đơn giản hóa và giảm tải nhận thức, nhưng các nhóm khối lượng công việc vẫn kiểm soát quy trình và có quyền tự do sửa đổi quy trình. Do đó, các cổng chất lượng như công cụ bảo mật hoặc tuân thủ có thể bị các nhóm khối lượng công việc vô hiệu hóa và không thể chứng minh được các biện pháp kiểm soát bên trong quy trình. Đây là mức tối ưu cho các tổ chức muốn giảm chi phí tuân thủ và kiểm toán. Khi số lượng phiên bản của công trình tăng lên, các nhóm kỹ thuật nền tảng có thể gặp khó khăn trong việc quản lý phiên bản nào được sử dụng để đảm bảo các nhóm khối lượng công việc sử dụng phiên bản mới nhất và tốt nhất.
Trong quy trình vàng, quy trình được tạo dưới dạng cấu trúc nhưng được triển khai thông qua một nhóm tập trung. Các nhóm khối lượng công việc không thể kiểm soát hoặc sửa đổi các quy trình này, do đó, không thể tắt các cổng chất lượng như công cụ tuân thủ và bảo mật. Những biện pháp kiểm soát này có thể được chứng minh đối với các bên liên quan về bảo mật, rủi ro và tuân thủ, chẳng hạn như kiểm toán viên. Việc loại bỏ quyền khỏi các nhóm khối lượng công việc sẽ đi kèm với chi phí. Với quy trình vàng, các nhóm kỹ thuật nền tảng thường dành phần lớn thời gian để khắc phục sự cố trong quá trình triển khai khối lượng công việc của nhóm. Với quá nhiều thời gian dành cho việc khắc phục sự cố, các nhóm kỹ thuật nền tảng có rất ít thời gian để giới thiệu công cụ mới nhằm nâng cao tiêu chuẩn chất lượng và bảo mật, cải thiện việc thiết lập môi trường và tính nhất quán của tổ chức hoặc tăng cường bằng chứng kiểm tra và thực thi.
Hai cơ chế có thể tăng cường các chiến lược này. Ban kiểm soát thay đổi truyền thống (CCB) có thể cung cấp khả năng chứng minh trong các tình huống khó thu thập bằng chứng và thực thi. CCB có thể hưởng lợi từ các cấu trúc CDK tích hợp các quy trình phê duyệt Quản lý dịch vụ CNTT (ITSM) và quản lý nhóm vào quy trình tạo tài khoản và quy trình. Ngoài ra, có một câu chuyện mới nổi với Các tạo tác cấp chuỗi cung ứng phần mềm (SLSA). Những hiện vật này có thể được sử dụng làm bằng chứng kỹ thuật số. Trong không gian Kubernetes, chúng ta thấy mô hình này với các công cụ như chuỗi Tekton trong đó các chứng thực liên quan đến hình ảnh OCI và Kyverno được sử dụng để thực thi sự hiện diện của các chứng thực (xem Bảo vệ đường ống! Bảo mật đường ống CI/CD bằng cách tiếp cận dựa trên chính sách bằng cách sử dụng Tekton và Kyverno để biết chi tiết).
Triển khai nhiều tài khoản và xuyên khu vực với CDK
Các phương pháp hay nhất của DevOps đề xuất nhiều giai đoạn triển khai và thử nghiệm trước khi triển khai vào sản xuất. Ngoài ra, AWS đề xuất một tài khoản dành riêng cho từng giai đoạn để đơn giản hóa việc cách ly tài nguyên và kiểm soát quyền truy cập. Chiến lược nhiều tài khoản này giúp các tổ chức tận dụng tối đa tài nguyên AWS và cung cấp các biện pháp kiểm soát chi tiết (xem OU và tài khoản được đề xuất ).
Thông thường, bạn sẽ có một tài khoản AWS được chỉ định cho mỗi khối lượng công việc, nơi chứa tất cả các quy trình CI/CD. Quá trình triển khai được các quy trình này thực hiện để xuất bản lên các tài khoản AWS khác, có thể tương ứng với các giai đoạn phát triển, dàn dựng hoặc sản xuất. Để biết thêm thông tin về chiến lược nhiều tài khoản tham khảo quy trình CI/CD trên AWS, hãy xem Xây dựng quy trình phân phối liên tục an toàn trên nhiều tài khoản .
Quản trị tự động
Nhiều khách hàng doanh nghiệp tận dụng CDK để thực thi các chính sách và kiểm soát bảo mật cũng như ngăn chặn các vấn đề bảo mật trước khi triển khai bằng công cụ phân tích mã như một phần của quy trình triển khai. Bằng cách sử dụng công cụ tiêu chuẩn ngành của cdk-nag , nhiều nhóm kiểm tra ứng dụng để tìm ra cách thực hành tốt nhất bằng cách sử dụng kết hợp các gói quy tắc có sẵn. Chúng tôi cũng thấy các doanh nghiệp xây dựng các Khía cạnh của riêng mình để thực thi các yêu cầu bổ sung như yêu cầu gắn thẻ để quản lý và tổ chức các tài nguyên đã triển khai của họ.
Khách hàng có thể tạo CloudFormation tổng hợp CDK và thêm các điểm kiểm tra bổ sung với CloudFormation Guard để xác minh đầu ra bằng cách sử dụng quy tắc ngôn ngữ dành riêng cho miền (DSL) chính sách dưới dạng mã. Các nhóm Kỹ thuật nền tảng có thể xây dựng các quy tắc. Nhóm khối lượng công việc có thể sử dụng các quy tắc đó và chạy CloudFormation Guard bên trong quy trình. Có một cấu trúc chính thức hỗ trợ giúp bạn dễ dàng thêm các bước kiểm tra CloudFormation Guard vào ứng dụng của mình.
Với AWS CDK, cơ sở hạ tầng chính là mã. Vì vậy, công cụ tiêu chuẩn mà bạn đã sử dụng để đảm bảo chất lượng và cải thiện trải nghiệm của trình tạo nên được sử dụng với CDK. Nếu tổ chức của bạn có chương trình chất lượng mã, hãy xử lý các ứng dụng CDK không khác gì các ứng dụng web hoặc vi dịch vụ. Tương tự, với Amazon CodeGuru Security và Amazon CodeWhisperer , người xây dựng có thể nhận được các đề xuất hữu ích về cách cải thiện cả tính bảo mật và chất lượng trên mã CDK của họ giống như với bất kỳ loại ứng dụng nào khác.
Với các công cụ Aspects, cdk-nag và chất lượng mã, các tổ chức có thể ngăn chặn các vấn đề bảo mật trước khi chúng được triển khai. Tuy nhiên, điều quan trọng là tạo các điều khiển hoạt động sau khi triển khai. AWS CloudFormation Hooks cho phép khách hàng kiểm tra tài nguyên trước khi tạo, cập nhật hoặc xóa CloudFormation Stacks hoặc Ứng dụng CDK. Với CloudFormation Hooks, nhóm Kỹ thuật nền tảng có thể đưa ra cảnh báo hoặc ngăn chặn việc cung cấp tài nguyên cho những tài nguyên không tuân thủ. Các hook này có thể được tạo thông qua CDK (xem Xây dựng và triển khai CloudFormation Hook bằng cách sử dụng Đường ống CI/CD để biết chi tiết ).
Cuối cùng, bạn có thể triển khai gói tuân thủ của AWS Config thông qua CDK. Những bộ sưu tập quy tắc này cho phép tổ chức của bạn tuân thủ các tiêu chuẩn bảo mật trên quy mô lớn. Nếu tổ chức của bạn muốn xây dựng quy tắc tùy chỉnh, các nhóm có thể xây dựng biện pháp kiểm soát phản ứng bằng cách sử dụng cấu trúc cấp cao hơn cho Quy tắc cấu hình AWS . Mặc dù nhiều mẫu trong số này đã tồn tại trước CDK, CDK giúp tăng tốc việc xây dựng và triển khai các ứng dụng cũng như điều khiển đám mây bằng cách tận dụng các thành phần có thể tái sử dụng được chia sẻ trong doanh nghiệp hoặc cộng đồng nói chung.
Vận hành ứng dụng bằng khả năng quan sát
Cộng đồng nguồn mở cung cấp các thư viện xây dựng cấp cao giúp mở rộng khả năng giám sát cơ bản cho các ứng dụng CDK. Dự án cdk-monitoring-constructs giúp bạn dễ dàng giám sát các ứng dụng CDK. Tương tự, Cdk-wakeful tiến thêm một bước nữa bằng cách bổ sung nhiều dịch vụ bổ sung và cung cấp các giao diện có thể cấu hình dễ dàng để tự động được thông báo bởi AWS System Manager Incident Manager , AWS Chatbot hoặc Amazon Simple notification Service . Bằng cách tận dụng các giải pháp dựng sẵn từ cộng đồng nguồn mở, bạn có thể tập trung vào việc tạo các chỉ số và ngưỡng tùy chỉnh xung quanh logic kinh doanh của mình. Các nhóm Kỹ thuật nền tảng có thể sửa đổi và mở rộng các dự án nguồn mở để giúp các nhóm khối lượng công việc đơn giản hóa hoạt động của họ và truyền tải tình trạng cũng như trạng thái đến các hệ thống tập trung.
Tăng tốc khởi động dự án mới với nền tảng nhà phát triển nội bộ
Nền tảng nhà phát triển nội bộ (IDP) được xây dựng bởi các nhóm kỹ thuật nền tảng để xây dựng những con đường vàng và cho phép nhà phát triển tự phục vụ. Những đường dẫn vàng này được thể hiện dưới dạng một loạt các mẫu tạo và hiển thị kho lưu trữ kiểm soát nguồn và các tệp được lưu trữ bên trong kho lưu trữ. Khi IDP sử dụng các mẫu này để tạo kho lưu trữ mã nguồn, kho lưu trữ kết quả phải chứa những nội dung sau:
- Hướng dẫn bắt đầu (thường ở dạng README.md)
- Tài liệu tham khảo
- Mã nguồn bộ xương
- Quản lý phụ thuộc
- Mẫu quy trình CI/CD
- mẫu IaC
- Cấu hình khả năng quan sát
Với CDK, đường dẫn CI/CD, mẫu IaC và cấu hình khả năng quan sát đều có thể là một phần của một ứng dụng CDK.
Các nhóm kỹ thuật nền tảng xây dựng các đường dẫn vàng và hiển thị chúng bằng các công cụ như Backstage , Humanitec hoặc Port . Khi xây dựng các đường dẫn vàng, có hai cách tiếp cận phổ biến đối với cấu trúc dự án cơ bản. Một số tổ chức chọn cách tiếp cận trong đó kho lưu trữ mã IaC của họ tách biệt với mã ứng dụng. Những người khác chọn đưa mọi thứ vào một kho lưu trữ. Có sự căng thẳng lành mạnh giữa mức độ đặt bên trong con đường vàng và thành phần có thể tái sử dụng. Trong cả hai chiến lược, nhóm kỹ thuật nền tảng có thể tránh trùng lặp mã bằng cách tận dụng CDK. Cách tiếp cận mà tổ chức của bạn chọn sẽ quyết định cách bạn tổ chức các thành phần có thể tái sử dụng của mình. Dưới đây, chúng ta sẽ xem xét cả hai tùy chọn và ý nghĩa của các cấu trúc có thể tái sử dụng.
Tùy chọn 1: Mọi thứ trong một kho lưu trữ
Theo cách tiếp cận này, tất cả mã được chứa trong một kho lưu trữ: cơ sở hạ tầng, ứng dụng, cấu hình và triển khai. Cách tiếp cận này cho phép các nhà xây dựng cộng tác, xây dựng các tính năng và cùng nhau đổi mới một cách nhanh chóng, đó là lý do tại sao đây là phương pháp được đề xuất. Để biết thêm chi tiết, hãy tham khảo tài liệu về các phương pháp hay nhất . Để biết ví dụ, hãy xem Kiến trúc tham chiếu triển khai AWS cho ứng dụng .
Cách tiếp cận này hoạt động tốt nhất trong các nhóm được “liên kết theo dòng giá trị”. Các nhóm phù hợp với luồng giá trị có khả năng phát triển và vận hành trong cùng một nhóm. Các nhóm này được tổ chức xoay quanh việc giải quyết vấn đề cho khách hàng hơn là khả năng kỹ thuật. Trong dự án, các nhóm có thể tổ chức xung quanh các đơn vị logic như tầng ứng dụng (API, cơ sở dữ liệu, v.v.) hoặc khả năng kinh doanh (quản lý đơn hàng, danh mục sản phẩm, dịch vụ giao hàng, v.v.). Trong các tổ chức được liên kết theo dòng giá trị, các thành phần có thể tái sử dụng lớn hơn, được quy ước hóa cao sẽ tốt hơn. Một ví dụ điển hình về loại cấu trúc này là một cấu trúc duy nhất chứa tất cả mã cho toàn bộ vi dịch vụ. Ở những nhóm này, tải trọng nhận thức tập trung vào vấn đề của khách hàng, do đó, việc giảm bớt độ phức tạp của việc phát triển ứng dụng là điều quan trọng để thành công.
Tùy chọn 2: Đường dẫn mã ứng dụng riêng biệt
Theo phương pháp thay thế này, bạn có thể tách mã ứng dụng khỏi cơ sở hạ tầng của mình bằng cách lưu trữ chúng trong các kho lưu trữ riêng biệt và có các đường dẫn riêng biệt. Việc tách biệt các quy trình thường dẫn đến sự tách biệt và ít cộng tác hơn giữa những người xây dựng khối lượng công việc, những người chuyển trọng tâm sang phát triển các tính năng và các kỹ sư cơ sở hạ tầng, những người hạn chế nỗ lực xây dựng cơ sở hạ tầng mà các ứng dụng đó chạy trên đó.
Cách tiếp cận này hoạt động tốt nhất trong các nhóm “ma trận”. Một tổ chức ma trận được cấu trúc xoay quanh các khả năng kỹ thuật (phát triển, vận hành, bảo mật, kinh doanh, v.v.). Trong những trường hợp này, nhiều cấu trúc mô-đun hoạt động tốt hơn các cấu trúc được quy ước hóa cao. Các chuyên gia từ mỗi tổ chức có thể sử dụng cấu trúc CDK làm cơ chế để chia sẻ chuyên môn của họ trong toàn bộ tổ chức. Ví dụ về các loại cấu trúc này là các cấu trúc giám sát, cảnh báo hoặc bảo mật được xây dựng sẵn với các móc nối để cắm vào giám sát tập trung.
Xây dựng cộng đồng thực hành với Kỹ thuật nền tảng
Việc mở rộng quy mô bất kỳ công nghệ mới nào trong một tổ chức lớn đòi hỏi phải tạo ra và hỗ trợ một cộng đồng thúc đẩy sự hợp tác, thiết lập các phương pháp hay nhất và luôn cập nhật những thay đổi trong hệ sinh thái. Để cho phép tạo ra các cộng đồng thực hành này trong tổ chức của bạn, AWS hỗ trợ nhiều cộng đồng công cộng tập trung vào việc tạo nội dung để hướng dẫn và hỗ trợ người dùng CDK. Các thành viên trong cộng đồng thực hành của tổ chức bạn có thể kết nối với các nhóm phát triển CDK khác trên khắp thế giới thông qua các cộng đồng công cộng được AWS hỗ trợ này.
Cộng đồng thực hành
Cộng đồng thực hành (CoP) là một nhóm người có chung sở thích cùng nhau học hỏi, cộng tác và phát triển kiến thức chuyên môn trong một lĩnh vực cụ thể thông qua các tương tác không chính thức và chia sẻ kiến thức. Trong tổ chức của bạn, việc thiết lập các cộng đồng thực hành xung quanh CDK đã được chứng minh là có khả năng hỗ trợ cố vấn, giải quyết vấn đề và tài sản có thể tái sử dụng. Để bắt đầu, nhóm kỹ thuật nền tảng của bạn – những người tạo ra các cấu trúc có thể tái sử dụng và công cụ xây dựng bằng CDK – trở thành những người sáng tạo nội dung ban đầu cho cộng đồng thực hành. Điều này thiết lập một vòng phản hồi nơi người tạo CDK công khai thành tích của họ thông qua CoP. Người tiêu dùng có thể đặt câu hỏi và cung cấp hướng dẫn trực tiếp cho người sáng tạo. Sau khi CoP được nhóm ban đầu thành lập nó mở rộng một cách bền vững, CoP có thể bắt đầu thêm các cuộc thi hack-a-thons hoặc ngày chơi game trong tổ chức của bạn, điều này có thể mang lại sự đổi mới và giải quyết các thách thức trên toàn tổ chức. Các cộng đồng thực hành hoàn toàn trưởng thành sở hữu các wiki hoặc cơ sở dữ liệu kiến thức được quản lý. Họ sử dụng các cơ chế như tòa thị chính, giờ làm việc, bản tin và kênh trò chuyện để cập nhật thông tin cho cộng đồng. Bằng cách này, kiến thức chuyên môn về CDK sẽ được phổ biến trong toàn tổ chức. Tại AWS, sự phổ biến kiến thức chuyên môn này đã khiến các nhóm không phải kỹ thuật nền tảng trở thành người sáng tạo ra các cấu trúc có thể tái sử dụng. Bằng cách mở rộng đối tượng có thể tạo ra các cấu trúc có thể tái sử dụng, chúng tôi có thể đẩy nhanh quá trình đổi mới của chính mình.
Cộng đồng
Có một cộng đồng đang phát triển hỗ trợ CDK, với nhiều nền tảng khác nhau có sẵn cung cấp nội dung, mã, ví dụ và buổi gặp mặt. CDK hiện được AWS duy trì với sự hỗ trợ từ cộng đồng trên trang AWS CDK GitHub nơi bạn có thể đóng góp cho nền tảng, nêu vấn đề, xem hồ sơ tồn đọng và tham gia thảo luận với các thành viên tích cực trong cộng đồng.
CDK.dev là trung tâm hướng tới cộng đồng xung quanh hệ sinh thái CDK. Trang web này tập hợp tất cả các blog, video và nội dung giáo dục mới nhất. Nó cũng cung cấp các liên kết để tham gia nền tảng cộng đồng Slack .
Mẫu CDK chứa một bộ sưu tập mã nguồn mở gồm các mẫu kiến trúc AWS Serverless được xây dựng bằng CDK để các nhà phát triển sử dụng. Các mẫu này có nguồn gốc từ AWS Community Builders / AWS Heroes .
Cuối cùng, AWS re:Post cung cấp cổng hỏi đáp để cộng đồng giải quyết.
Chương trình Nhà xây dựng cộng đồng AWS cung cấp tài nguyên kỹ thuật, giáo dục và cơ hội kết nối cho những người đam mê kỹ thuật AWS và những nhà lãnh đạo có tư tưởng mới nổi, những người đam mê chia sẻ kiến thức và kết nối với cộng đồng kỹ thuật.
Cộng đồng thực hành có thể tận dụng các cộng đồng công khai của AWS như cdk.dev để lấp đầy lỗ hổng kiến thức. Tòa thị chính có thể hưởng lợi từ các diễn giả từ AWS Heroes hoặc những người xây dựng cộng đồng, những người đóng góp thường xuyên cho GitHub hoặc re:Post hoặc các diễn giả từ Ngày CDK . Bản tin có thể tổng hợp và tóm tắt tin tức mới nhất từ tất cả các kênh AWS. Khi cộng đồng thực hành của bạn thiết lập được năng lực CDK, sự hợp tác này cũng có thể là hai chiều. Ví dụ: các chuyên gia trong cộng đồng tổ chức của bạn có thể trở thành Anh hùng AWS . Câu chuyện thành công có thể được chia sẻ qua Ngày CDK , bài đăng trên blog của khách và thậm chí bạn có thể phát biểu tại một trong những sự kiện lớn của chúng tôi như Hội nghị thượng đỉnh AWS , AWS re:Invent , AWS re:Inforce hoặc AWS re:Mars .
Suy nghĩ cuối cùng
Như chúng tôi đã nói trong blog này, với CDK, Cơ sở hạ tầng là mã. Điều này đã cho phép một sự thay đổi mô hình trong không gian quản lý cơ sở hạ tầng. Ngày nay, chúng tôi thấy nhiều khách hàng như Liberty Mutual , Scenario , Checkmarx và Registers of Scotland đang thiết lập hệ sinh thái trưởng thành bằng cách sử dụng CDK. Với cộng đồng nguồn mở tích cực, nhóm phát triển AWS hỗ trợ lâu dài và nhiều nền tảng để chia sẻ kiến thức, người xây dựng của bạn có thể nhanh chóng học hỏi, xây dựng và đổi mới. Nhờ các thí điểm thành công, nhiều tổ chức áp dụng CDK trở nên linh hoạt hơn và đổi mới nhanh hơn. Đây chính xác là những gì đã xảy ra ở Amazon, nơi CDK là lựa chọn đầu tiên để xây dựng các dịch vụ mới.
Các tổ chức thường mở rộng quy mô và giảm độ phức tạp thông qua kỹ thuật nền tảng. Các nhóm này xây dựng các cấu trúc cấp cao hơn bằng cách áp dụng các phương pháp hay nhất và cung cấp quy trình CI/CD để đẩy nhanh quá trình triển khai. Việc triển khai của bạn sẽ an toàn hơn bằng cách sử dụng thử nghiệm đơn vị trên cơ sở hạ tầng của bạn dưới dạng mã và thông qua các biện pháp kiểm soát bảo mật mạnh mẽ để cung cấp hướng dẫn cho người xây dựng ở mọi giai đoạn: từ tác giả đến vận hành.
Cuối cùng, việc thiết lập một cộng đồng cho phép tổ chức của bạn xây dựng hệ sinh thái trưởng thành của riêng mình. Thông qua cả cộng đồng nội bộ và nguồn mở, người xây dựng của bạn có thể kết nối, khám phá và phát triển.
David Hessler
Trước khi gia nhập AWS, David đã dành một thập kỷ làm kỹ thuật viên chính và thành lập các nhóm Kỹ thuật nền tảng và SRE cho chính phủ Hoa Kỳ. Kể từ khi gia nhập AWS vào năm 2020, David đã dành thời gian giúp khách hàng đẩy nhanh tốc độ triển khai và độ an toàn cho một số khách hàng thuộc khu vực công và thương mại lớn nhất của AWS. Hiện nay, với tư cách là thành viên của nhóm DevSecOps trong Global Services Security, anh đang xây dựng thế hệ công cụ DevSecOps tiếp theo cho khách hàng AWS.
Amritha Shetty
Amritha là kiến trúc sư Giải pháp tại AWS. Cô làm việc với các khách hàng thuộc khu vực công để giúp di chuyển và hiện đại hóa trên đám mây. Cô ấy thích giúp đỡ người dân nhận được nhiều lợi ích hơn từ các tổ chức khu vực công thông qua sự đổi mới nhanh chóng trên đám mây. Cô có hơn 12 năm kinh nghiệm thiết kế và phát triển phần mềm, đồng thời đam mê giúp khách hàng triển khai trải nghiệm phát triển thế hệ tiếp theo.