Trong thế giới phát triển phần mềm, việc xem xét và phê duyệt mã là các quy trình quan trọng để đảm bảo chất lượng, tính bảo mật và chức năng của phần mềm đang được phát triển. Tuy nhiên, các nhà quản lý được giao nhiệm vụ giám sát các quy trình quan trọng này thường phải đối mặt với nhiều thách thức, chẳng hạn như sau:
- Thiếu chuyên môn kỹ thuật – Người quản lý có thể không có hiểu biết kỹ thuật sâu về ngôn ngữ lập trình được sử dụng hoặc có thể không tham gia vào lĩnh vực công nghệ phần mềm trong một thời gian dài. Điều này dẫn đến lỗ hổng kiến thức có thể khiến họ khó đánh giá chính xác tác động và tính đúng đắn của những thay đổi mã được đề xuất.
- Hạn chế thời gian – Xem xét và phê duyệt mã có thể là một quá trình tốn thời gian, đặc biệt là trong các dự án lớn hơn hoặc phức tạp hơn. Người quản lý cần cân bằng giữa tính kỹ lưỡng của việc xem xét và áp lực phải đáp ứng các mốc thời gian của dự án.
- Khối lượng yêu cầu thay đổi – Xử lý khối lượng lớn yêu cầu thay đổi là một thách thức chung đối với các nhà quản lý, đặc biệt nếu họ đang giám sát nhiều nhóm và dự án. Tương tự như thách thức về hạn chế về thời gian, người quản lý cần có khả năng xử lý các yêu cầu đó một cách hiệu quả để không cản trở tiến độ dự án.
- Nỗ lực thủ công – Việc đánh giá mã đòi hỏi nỗ lực thủ công của người quản lý và việc thiếu tự động hóa có thể gây khó khăn cho việc mở rộng quy trình.
- Tài liệu – Tài liệu thích hợp về quy trình xem xét và phê duyệt quy tắc rất quan trọng để đảm bảo tính minh bạch và trách nhiệm giải trình.
Với sự gia tăng của trí tuệ nhân tạo sáng tạo (AI), các nhà quản lý hiện có thể khai thác công nghệ biến đổi này và tích hợp nó với bộ công cụ và dịch vụ triển khai AWS để hợp lý hóa quy trình xem xét và phê duyệt theo cách chưa từng có trước đây. Trong bài đăng này, chúng tôi khám phá một giải pháp cung cấp quy trình triển khai từ đầu đến cuối tích hợp kết hợp phân tích và tóm tắt thay đổi tự động cùng với chức năng quy trình phê duyệt. Chúng tôi sử dụng nền tảng Amazon, một dịch vụ được quản lý hoàn toàn giúp cung cấp các mô hình nền tảng (FM) từ các công ty khởi nghiệp AI hàng đầu và Amazon thông qua API, vì vậy, bạn có thể chọn từ nhiều loại FM để tìm ra mô hình phù hợp nhất cho trường hợp sử dụng của mình. Với trải nghiệm Amazon Bedrock serverless, bạn có thể bắt đầu nhanh chóng, tùy chỉnh FM riêng tư bằng dữ liệu của riêng mình, đồng thời tích hợp và triển khai chúng vào ứng dụng của mình bằng các công cụ AWS mà không cần phải quản lý bất kỳ cơ sở hạ tầng nào.
Tổng quan về giải pháp
Sơ đồ sau minh họa kiến trúc giải pháp.
Quy trình làm việc bao gồm các bước sau:
- Nhà phát triển đẩy các thay đổi mã mới vào kho lưu trữ mã của họ (chẳng hạn như Cam kết mã AWS), tự động kích hoạt sự bắt đầu của một Đường ống dẫn mã AWS triển khai.
- Mã ứng dụng trải qua quy trình xây dựng mã, thực hiện quét lỗ hổng và tiến hành kiểm tra đơn vị bằng các công cụ ưa thích của bạn.
- Xây dựng mã AWS truy xuất kho lưu trữ và thực hiện lệnh git show để trích xuất sự khác biệt về mã giữa phiên bản cam kết hiện tại và phiên bản cam kết trước đó. Điều này tạo ra kết quả từng dòng cho biết những thay đổi về mã được thực hiện trong bản phát hành này.
- CodeBuild lưu kết quả đầu ra vào một Máy phát điện Amazon bảng với thông tin tham khảo bổ sung:
- ID chạy CodePipeline
- Khu vực AWS
- Tên đường ống Code
- Số bản dựng CodeBuild
- Ngày và thời gian
- Trạng thái
- Luồng Amazon DynamoDB nắm bắt các sửa đổi dữ liệu được thực hiện trên bàn.
- An AWS Lambda được kích hoạt bởi luồng DynamoDB để xử lý bản ghi đã ghi.
- Hàm gọi mô hình Anthropic Claude v2 trên Amazon Bedrock thông qua Amazon Bedrock API gọi mô hình gọi. Những khác biệt về mã, cùng với lời nhắc, được cung cấp làm đầu vào cho mô hình để phân tích và bản tóm tắt các thay đổi mã được trả về dưới dạng đầu ra.
- Đầu ra từ mô hình được lưu trở lại cùng một bảng DynamoDB.
- Người quản lý được thông báo qua Dịch vụ Email Đơn giản của Amazon (Amazon SES) về bản tóm tắt các thay đổi mã và cần có sự phê duyệt của họ để triển khai.
- Người quản lý xem xét email và đưa ra quyết định của họ (phê duyệt hoặc từ chối) cùng với mọi nhận xét đánh giá thông qua bảng điều khiển CodePipeline.
- Quyết định phê duyệt và ý kiến đánh giá được ghi lại bởi Sự kiện Amazon, kích hoạt hàm Lambda để lưu chúng trở lại DynamoDB.
- Nếu được phê duyệt, quy trình sẽ triển khai mã ứng dụng bằng các công cụ ưa thích của bạn. Nếu bị từ chối, quy trình làm việc sẽ kết thúc và quá trình triển khai sẽ không tiếp tục nữa.
Trong các phần sau, bạn triển khai giải pháp và xác minh quy trình làm việc toàn diện.
Điều kiện tiên quyết
Để làm theo hướng dẫn trong giải pháp này, bạn cần có các điều kiện tiên quyết sau:
Triển khai giải pháp
Để triển khai giải pháp, hãy hoàn thành các bước sau:
- Chọn Khởi chạy Stack để khởi chạy ngăn xếp CloudFormation trong
us-east-1
: - Trong Địa chỉ email, hãy nhập địa chỉ email mà bạn có quyền truy cập. Bản tóm tắt các thay đổi về mã sẽ được gửi đến địa chỉ email này.
- Trong id mẫu, hãy để mặc định là anthropic.claude-v2, là mô hình Anthropic Claude v2.
Việc triển khai mẫu sẽ mất khoảng 4 phút.
- Khi bạn nhận được email từ Amazon SES để xác minh địa chỉ email của mình, hãy chọn liên kết được cung cấp để ủy quyền địa chỉ email của bạn.
- Bạn sẽ nhận được email có tiêu đề “Tóm tắt các thay đổi” cho cam kết ban đầu của kho lưu trữ mẫu vào CodeCommit.
- Trên bảng điều khiển AWS CloudFormation, điều hướng đến Kết quả đầu ra tab của ngăn xếp được triển khai.
- Sao chép giá trị của RepoCloneURL. Bạn cần điều này để truy cập vào kho lưu trữ mã mẫu.
Kiểm tra giải pháp
Bạn có thể kiểm tra quy trình công việc từ đầu đến cuối bằng cách đảm nhận vai trò của nhà phát triển và thực hiện một số thay đổi về mã. Một bộ mã mẫu đã được chuẩn bị cho bạn trong CodeCommit. ĐẾN truy cập kho lưu trữ CodeCommit, hãy nhập các lệnh sau trên IDE của bạn:
Bạn sẽ tìm thấy cấu trúc thư mục sau đây cho một Bộ công cụ phát triển đám mây AWS (AWS CDK) ứng dụng tạo hàm Lambda để thực hiện sắp xếp nổi bật trên một chuỗi số nguyên. Hàm Lambda có thể truy cập được thông qua một URL có sẵn công khai.
Bạn thực hiện ba thay đổi đối với mã ứng dụng.
- Để tăng cường chức năng hỗ trợ cả thuật toán sắp xếp nhanh và sắp xếp bong bóng, hãy lấy một tham số cho phép lựa chọn thuật toán để sử dụng và trả về cả thuật toán đã sử dụng và mảng đã sắp xếp ở đầu ra, thay thế toàn bộ nội dung của
lambda/index.py
với mã sau:
- Để giảm cài đặt thời gian chờ của hàm từ 10 phút xuống còn 5 giây (vì chúng tôi không mong đợi hàm này chạy lâu hơn vài giây), hãy cập nhật dòng 47 trong
my_sample_project/my_sample_project_stack.py
như sau:
- Để hạn chế việc gọi hàm bằng IAM nhằm tăng cường bảo mật, hãy cập nhật dòng 56 trong
my_sample_project/my_sample_project_stack.py
như sau:
- Đẩy các thay đổi mã bằng cách nhập các lệnh sau:
Việc này bắt đầu quy trình triển khai CodePipeline từ Bước 1–9 như được nêu trong phần tổng quan về giải pháp. Khi gọi mô hình Amazon Bedrock, chúng tôi đã đưa ra lời nhắc sau:
- Phân phối nội dung và PR được hỗ trợ bởi SEO. Được khuếch đại ngay hôm nay.
- PlatoData.Network Vertical Generative Ai. Trao quyền cho chính mình. Truy cập Tại đây.
- PlatoAiStream. Thông minh Web3. Kiến thức khuếch đại. Truy cập Tại đây.
- Trung tâmESG. Than đá, công nghệ sạch, Năng lượng, Môi trường Hệ mặt trời, Quản lý chất thải. Truy cập Tại đây.
- PlatoSức khỏe. Tình báo thử nghiệm lâm sàng và công nghệ sinh học. Truy cập Tại đây.
- nguồn: https://aws.amazon.com/blogs/machine-learning/enhance-code-review-and-approval-efficiency-with-generative-ai-using-amazon-bedrock/