Amazon CodeCatalyst là một dịch vụ phát triển phần mềm hiện đại giúp các nhóm cung cấp phần mềm trên AWS một cách dễ dàng và nhanh chóng. CodeCatalyst cung cấp một nơi duy nhất nơi bạn có thể lập kế hoạch, viết mã và xây dựng, kiểm tra và triển khai ứng dụng với các công cụ tích hợp liên tục/phát triển liên tục (CI/CD). Nó cũng giúp tối ưu hóa sự hợp tác của nhóm. Những nhà phát triển trên các nhóm phần mềm hiện đại thường phân tán, làm việc độc lập và sử dụng các công cụ khác nhau. Thường xuyên, việc hợp tác tùy ý là cần thiết để giải quyết các vấn đề. Hiện nay, nhà phát triển buộc phải thực hiện điều này trên nhiều công cụ, làm mất tập trung của nhà phát triển khỏi nhiệm vụ chính của họ – thêm tính năng quan trọng cho doanh nghiệp và nâng cao tính đầy đủ và chất lượng của họ.
Trong bài viết này, chúng tôi giải thích cách Contino sử dụng CodeCatalyst để đưa nhóm kỹ thuật của họ vào các dự án mới, loại bỏ sự cồng kềnh khi quản lý các công cụ khác nhau và tối ưu hóa sự hợp tác giữa các bên liên quan khác nhau.
Vấn đề
Contino giúp khách hàng di chuyển ứng dụng của họ lên điện toán đám mây và sau đó cải thiện kiến trúc của họ bằng cách tận dụng hoàn toàn các tính năng native của điện toán đám mây để cải thiện tính linh hoạt, hiệu suất và khả năng mở rộng. Thông thường, điều này liên quan đến việc xây dựng một nền tảng khu vực đổ bộ trung tâm. Khu vực đổ bộ là một bộ khối xây dựng tiêu chuẩn cho phép khách hàng tự động tạo tài khoản, cơ sở hạ tầng và môi trường được cấu hình trước theo các chính sách bảo mật, hướng dẫn về tuân thủ và các thực hành tốt native của điện toán đám mây. Một số tính năng là chung cho hầu hết các khu vực đổ bộ, ví dụ: tạo hình ảnh container an toàn, AMI và môi trường khởi đầu. Để cung cấp giá trị tối đa cho khách hàng, Contino phát triển phiên bản trong nhà của các tính năng như vậy, tích hợp các thực hành tốt của AWS và sau đó triển khai cho môi trường của khách hàng với một số tùy chỉnh. Các tư vấn kỹ thuật của Contino, người hiện không được gán cho công việc của khách hàng, được gọi là ‘Squad 0’ làm việc trên những tính năng này. Squad 0 xây dựng nền tảng cho công việc sẽ được sử dụng lại bởi các squad khác làm việc trực tiếp với khách hàng của Contino. Vì các tư vấn kỹ thuật thường thuộc về Squad 0 trong một thời gian ngắn, việc họ có thể làm việc hiệu quả trong thời gian ngắn này mà không phải tiêu quá nhiều thời gian để thiết lập là rất quan trọng.
Để xây dựng các dịch vụ cơ bản này, Contino đang tìm kiếm một cái gì đó tích hợp hơn để cho phép họ nhanh chóng thiết lập môi trường phát triển, khuyến nghị hợp tác giữa các thành viên của Squad 0, mời các squad khác thẩm định việc sử dụng dịch vụ nền tảng cho khách hàng của họ và cung cấp quyền truy cập vào các tài khoản AWS khác nhau và các git repo từ một nơi duy nhất. Lịch sử của Contino đã sử dụng các công cụ riêng lẻ để đạt được điều này, điều này đồng nghĩa việc phải cấp/rút quyền truy cập vào các tài khoản AWS khác nhau một cách riêng lẻ liên tục. Với những công cụ riêng lẻ này, việc cấp quyền truy cập vào các công cụ cần thiết để các squad có thể làm việc hiệu quả không phải lúc nào cũng dễ dàng.
Giải pháp
Ở điểm này, Contino đã tham gia vào phiên bản beta riêng tư của CodeCatalyst trước khi ra mắt công khai. CodeCatalyst đã cho phép Contino chuyển đến một cấu trúc, như được hiển thị trong Hình 1 dưới đây. Một Quản lý Dự án tại Contino tạo một dự án khác nhau cho mỗi dịch vụ nền tảng và mời các thành viên Squad 0 tham gia dự án tương ứng. Với CodeCatalyst, các tư vấn kỹ thuật của Squad 0 sử dụng các tính năng như CI/CD, kho lưu trữ nguồn và công cụ theo dõi vấn đề để xây dựng các dịch vụ nền tảng. Điều này giúp loại bỏ sự cồng kềnh trong việc quản lý và tích hợp các công cụ phát triển và cung cấp thời gian hơn để tập trung vào việc phát triển mã. Khi Squad 0 đã sẵn sàng với các dịch vụ nền tảng, họ mời các squad của khách hàng sử dụng địa chỉ email của họ để xác minh tính sẵn sàng của dự án để sử dụng với khách hàng của họ. Cuối cùng, các thành viên của Squad 0 sử dụng Môi trường Phát triển Cloud 9 từ bên trong CodeCatalyst để nhanh chóng tạo ra môi trường phát triển đám mây nhất quán, mà không cần cấu hình thủ công, để họ có thể làm việc trên các dự án mới hoặc nhiều dự án cùng một lúc, mà không gặp xung đột.
Hình 1: CodeCatalyst với nhiều kết nối tài khoản
Contino sử dụng CI/CD để thực hiện triển khai đa tài khoản. Contino thường thực hiện một trong hai loại triển khai: 1. Triển khai ứng dụng tuần tự truyền thống được thúc đẩy từ một môi trường này sang môi trường khác, ví dụ: dev -> test -> prod, và 2. Triển khai song song, ví dụ: một điều khiển bảo mật cần phải triển khai đồng thời vào nhiều tài khoản AWS cùng một lúc. CodeCatalyst giải quyết vấn đề này bằng cách làm cho việc xây dựng luồng công việc trở nên dễ dàng bằng cách sử dụng tệp định nghĩa luồng công việc có thể triển khai tuần tự hoặc song song đối với nhiều tài khoản AWS. Hình 2 hiển thị triển khai song song.
Hình 2: CI/CD với CodeCatalyst
Giá trị
CodeCatalyst đã giảm thời gian mà các thành viên của Squad 0 cần để hoàn tất quá trình on-boarding cần thiết để làm việc với các dịch vụ nền tảng từ 1,5 ngày xuống còn khoảng 1 giờ. Những nhiệm vụ này bao gồm thiết lập kết nối với kho lưu trữ nguồn, thiết lập môi trường phát triển, cấu hình vai trò IAM và mối quan hệ tin cậy, vv. Với sự hỗ trợ của các công cụ tích hợp và sự hợp tác tốt hơn, CodeCatalyst giảm thiểu sự phiền toái cho việc hợp tác tùy ý. Squad 0 có thể dành nhiều thời gian hơn cho việc viết mã để xây dựng các dịch vụ nền tảng. Điều này đã dẫn đến việc hoàn thành nhiệm vụ n
hanh hơn trung bình là 20%. Sự tăng năng suất này đã dẫn đến việc tạo ra giá trị cao hơn cho khách hàng của Contino. Với việc Squad 0 hoạt động hiệu quả hơn, có nhiều dịch vụ nền tảng hơn cho các squad khác để sử dụng lại cho khách hàng của họ với một số tùy chỉnh cho nhu cầu cụ thể của khách hàng.
Kết luận
Amazon CodeCatalyst đưa lại cho các nhóm phát triển phần mềm mọi thứ cần để lập kế hoạch, viết mã, xây dựng, kiểm tra và triển khai ứng dụng trên AWS thành một trải nghiệm tích hợp và tối ưu. Với CodeCatalyst, các nhà phát triển có thể dành nhiều thời gian hơn cho việc phát triển các tính năng ứng dụng và ít thời gian cho việc thiết lập các công cụ dự án, tạo và quản lý đường ống CI/CD, cấu hình và cung cấp các môi trường phát triển khác nhau hoặc phối hợp với các thành viên trong nhóm. Với CodeCatalyst, các kỹ sư của Contino có thể cải thiện năng suất và tập trung vào việc phát triển mã ứng dụng một cách nhanh chóng, đồng thời giữ lại giá trị kinh doanh cho khách hàng của họ.