소프트웨어 개발 세계에서 코드 검토 및 승인은 개발 중인 소프트웨어의 품질, 보안 및 기능을 보장하는 중요한 프로세스입니다. 그러나 이러한 중요한 프로세스를 감독하는 임무를 맡은 관리자는 종종 다음과 같은 수많은 과제에 직면합니다.
- 기술 전문성 부족 – 관리자는 사용되는 프로그래밍 언어에 대한 심층적인 기술적 이해가 없거나 장기간 소프트웨어 엔지니어링에 참여하지 않았을 수 있습니다. 이로 인해 제안된 코드 변경의 영향과 건전성을 정확하게 평가하기 어렵게 만드는 지식 격차가 발생합니다.
- 시간 제약 – 코드 검토 및 승인은 특히 규모가 크고 복잡한 프로젝트에서 시간이 많이 걸리는 프로세스일 수 있습니다. 관리자는 철저한 검토와 프로젝트 일정을 준수해야 하는 압박 사이에서 균형을 유지해야 합니다.
- 변경 요청의 양 – 대량의 변경 요청을 처리하는 것은 관리자에게 일반적인 과제이며, 특히 여러 팀과 프로젝트를 감독하는 경우 더욱 그렇습니다. 시간 제약 문제와 마찬가지로 관리자는 프로젝트 진행을 방해하지 않도록 이러한 요청을 효율적으로 처리할 수 있어야 합니다.
- 수동적 노력 – 코드 검토에는 관리자의 수동 작업이 필요하며 자동화가 부족하면 프로세스 확장이 어려울 수 있습니다.
- 문서 – 코드 검토 및 승인 프로세스에 대한 적절한 문서화는 투명성과 책임성을 위해 중요합니다.
의 증가와 함께 생성 인공 지능 (AI)를 통해 관리자는 이제 이 혁신적인 기술을 활용하고 이를 AWS 배포 도구 및 서비스 제품군과 통합하여 이전에는 불가능했던 방식으로 검토 및 승인 프로세스를 간소화할 수 있습니다. 이 게시물에서는 승인 워크플로 기능과 함께 자동화된 변경 분석 및 요약을 통합하는 통합 엔드투엔드 배포 워크플로를 제공하는 솔루션을 살펴봅니다. 우리는 사용 아마존 기반암는 API를 통해 선도적인 AI 스타트업과 Amazon의 기초 모델(FM)을 제공하는 완전 관리형 서비스입니다. 따라서 다양한 FM 중에서 선택하여 사용 사례에 가장 적합한 모델을 찾을 수 있습니다. Amazon Bedrock 서버리스 환경을 사용하면 인프라를 관리할 필요 없이 빠르게 시작하고, 자신의 데이터로 FM을 비공개로 사용자 정의하고, AWS 도구를 사용하여 애플리케이션에 통합 및 배포할 수 있습니다.
솔루션 개요
다음 다이어그램은 솔루션 아키텍처를 보여줍니다.
워크플로는 다음 단계로 구성됩니다.
- 개발자는 새로운 코드 변경 사항을 코드 저장소(예: AWS 코드 커밋), 자동으로 시작을 트리거합니다. AWS 코드 파이프라인 전개.
- 애플리케이션 코드는 코드 작성 프로세스를 거쳐 취약점 검색을 수행하고 선호하는 도구를 사용하여 단위 테스트를 수행합니다.
- AWS 코드빌드 저장소를 검색하고 git show 명령을 수행하여 현재 커밋 버전과 이전 커밋 버전 간의 코드 차이점을 추출합니다. 그러면 이번 릴리스에서 변경된 코드를 나타내는 한 줄씩 출력이 생성됩니다.
- CodeBuild는 출력을 아마존 DynamoDB 추가 참조 정보가 포함된 표:
- CodePipeline 실행 ID
- AWS 리전
- 코드파이프라인 이름
- CodeBuild 빌드 번호
- 날짜와 시간
- Status
- Amazon DynamoDB 스트림 데이터 수정 사항을 캡처합니다. 테이블로 만들어졌습니다.
- An AWS 람다 함수는 캡처된 레코드를 처리하기 위해 DynamoDB 스트림에 의해 트리거됩니다.
- 이 함수는 Amazon Bedrock을 통해 Amazon Bedrock의 Anthropic Claude v2 모델을 호출합니다. 호출모델 API 부르다. 프롬프트와 함께 코드 차이점은 분석을 위해 모델에 대한 입력으로 제공되며, 코드 변경 요약이 출력으로 반환됩니다.
- 모델의 출력은 동일한 DynamoDB 테이블에 다시 저장됩니다.
- 관리자에게 다음을 통해 통보됩니다. 아마존 심플 이메일 서비스 (Amazon SES)의 코드 변경 요약 및 배포에 대한 승인이 필요함을 알려드립니다.
- 관리자는 이메일을 검토하고 CodePipeline 콘솔을 통해 검토 의견과 함께 결정(승인 또는 거부)을 제공합니다.
- 승인 결정 및 검토 의견은 다음에 의해 캡처됩니다. 아마존 이벤트 브리지, 이는 Lambda 함수를 트리거하여 DynamoDB에 다시 저장합니다.
- 승인되면 파이프라인은 선호하는 도구를 사용하여 애플리케이션 코드를 배포합니다. 거부되면 워크플로가 종료되고 배포가 더 이상 진행되지 않습니다.
다음 섹션에서는 솔루션을 배포하고 엔드투엔드 워크플로를 확인합니다.
사전 조건
이 솔루션의 지침을 따르려면 다음 전제 조건이 필요합니다.
솔루션 배포
솔루션을 배치하려면 다음 단계를 완료하십시오.
- 왼쪽 메뉴에서 발사 스택 CloudFormation 스택을 시작하려면
us-east-1
: - 럭셔리 이메일 주소에서 액세스할 수 있는 이메일 주소를 입력하세요. 코드 변경 요약이 이 이메일 주소로 전송됩니다.
- 럭셔리 모델 ID, Anthropic Claude v2 모델인 기본 anthropic.claude-v2를 그대로 둡니다.
템플릿을 배포하는 데 약 4분이 소요됩니다.
- Amazon SES로부터 이메일 주소를 확인하라는 이메일을 받으면 제공된 링크를 선택하여 이메일 주소를 인증하세요.
- CodeCommit에 대한 샘플 리포지토리의 초기 커밋에 대해 "변경 사항 요약"이라는 제목의 이메일을 받게 됩니다.
- AWS CloudFormation 콘솔에서 출력 배포된 스택의 탭입니다.
- RepoCloneURL 값을 복사합니다. 샘플 코드 저장소에 액세스하려면 이 정보가 필요합니다.
솔루션 테스트
개발자의 역할을 맡아 일부 코드 변경 사항을 푸시하여 워크플로를 처음부터 끝까지 테스트할 수 있습니다. CodeCommit에는 샘플 코드 세트가 준비되어 있습니다. 에게 CodeCommit 리포지토리에 액세스, IDE에 다음 명령을 입력합니다.
다음 디렉토리 구조를 찾을 수 있습니다. AWS 클라우드 개발 키트 (AWS CDK) 정수 문자열에 대해 버블 정렬을 수행하는 Lambda 함수를 생성하는 애플리케이션입니다. Lambda 함수는 공개적으로 사용 가능한 URL을 통해 액세스할 수 있습니다.
애플리케이션 코드를 세 가지 변경합니다.
- 빠른 정렬과 버블 정렬 알고리즘을 모두 지원하도록 기능을 향상하려면 사용할 알고리즘을 선택할 수 있도록 매개변수를 취하고, 사용된 알고리즘과 정렬된 배열을 모두 출력에 반환하고,
lambda/index.py
다음 코드로 :
- 함수의 시간 제한 설정을 10분에서 5초로 줄이려면(함수가 몇 초 이상 실행될 것으로 예상하지 않기 때문입니다)
my_sample_project/my_sample_project_stack.py
다음과 같이 :
- 보안 강화를 위해 IAM을 사용하는 함수 호출을 제한하려면 다음에서 라인 56을 업데이트하세요.
my_sample_project/my_sample_project_stack.py
다음과 같이 :
- 다음 명령을 입력하여 코드 변경 사항을 푸시합니다.
그러면 솔루션 개요에 설명된 대로 1~9단계의 CodePipeline 배포 워크플로가 시작됩니다. Amazon Bedrock 모델을 호출할 때 다음 프롬프트를 제공했습니다.
- SEO 기반 콘텐츠 및 PR 배포. 오늘 증폭하십시오.
- PlatoData.Network 수직 생성 Ai. 자신에게 권한을 부여하십시오. 여기에서 액세스하십시오.
- PlatoAiStream. 웹3 인텔리전스. 지식 증폭. 여기에서 액세스하십시오.
- 플라톤ESG. 탄소, 클린테크, 에너지, 환경, 태양광, 폐기물 관리. 여기에서 액세스하십시오.
- PlatoHealth. 생명 공학 및 임상 시험 인텔리전스. 여기에서 액세스하십시오.
- 출처: https://aws.amazon.com/blogs/machine-learning/enhance-code-review-and-approval-efficiency-with-generative-ai-using-amazon-bedrock/