GitHub Actions, Azure DevOps Pipelines 및 Microsoft Foundry를 사용한 AI 에이전트 버전의 빌드
요약
본 문서는 AI 에이전트 버전을 개발, 테스트, 프로덕션 환경에 걸쳐 배포하는 CI/CD 파이프라인 참조 가이드입니다. GitHub Actions와 Azure DevOps Pipelines를 활용하여 빌드, 검증, 평가, 프로모션을 자동화하며, 각 단계별 품질 게이트 및 보안 스캔을 포함합니다.
핵심 포인트
- AI 에이전트 전용의 End-to-End CI/CD 파이프라인 제공
- GitHub Actions와 Azure DevOps를 활용한 구현 예시 제시
- 정적 분석(ruff) 및 보안 스캔(bandit), 평가 게이트 적용
- 하드코딩된 자격 증명 대신 시크릿 참조 방식 권장
Dev, Test, Production 환경 전반에 걸쳐 AI 에이전트 버전을 빌드하고, 검증하며, 평가하고, 프로모션하는 데 사용할 수 있는 참조 파이프라인입니다.
사용 기술:
- GitHub Actions
- Azure DevOps Pipelines
- Microsoft Foundry
참조 블로그 게시물:
github-actions-pipeline.yml<br>
: CI/CD를 위한 엔드투엔드 GitHub Actions 워크플로우.<br>azure-devops-pipeline.yml<br>
: CI/CD를 위한 다단계 Azure DevOps 파이프라인.<br>banner.png<br>
: 문서에서 사용되는 배너 이미지.<br>architecture-diagram.png<br>
: 배포 모델에 대한 아키텍처 다이어그램.
두 파이프라인 모두 동일한 라이프사이클을 구현합니다:
-
CI 빌드 및 검증<br>- 평가 품질 게이트(Evaluation quality gates)<br>- Dev로 배포<br>- Test/QA로 프로모션<br>- 승인을 거쳐 Production으로 배포
-
의존성 설치 및 Python 설정<br>- 정적 분석(
ruff) 및 보안 스캔(bandit)<br>- 에이전트 구성 검증 (agent.yaml및 프롬프트 정의)<br>- 단위 테스트 및 통합 테스트 (pytest)<br>- 평가 데이터셋 실행 및 게이트 적용 -
평가 결과를 위한 아티팩트 게시
-
검증된 에이전트 버전을 Dev로 배포<br>- Dev에서 스모크 테스트 실행<br>- 동일한 버전을 Test/QA로 프로모션<br>- Test에서 시나리오 및 안전성 평가 실행<br>- 환경 승인 게이트를 거쳐 Production으로 프로모션<br>- Production에서의 배포 후 스모크 테스트
-
GitHub Actions 워크플로우:
github-actions-pipeline.yml<br> -
Azure DevOps 파이프라인:
azure-devops-pipeline.yml<br>
파이프라인 파일은 하드코딩된 자격 증명 대신 시크릿(secret) 및 변수 참조를 사용하도록 구성되어 있습니다.
예시:
-
GitHub:
${{ secrets.AZURE_CLIENT_ID }}<br>,
${{ secrets.FOUNDRY_CONNECTION_STRING_PROD }} -
Azure DevOps:
$(AZURE_OPENAI_API_KEY)<br>,
$(FOUNDRY_CONNECTION_STRING_PROD) -
라이선스:
LICENSE<br>(MIT)<br>- 기여 가이드:CONTRIBUTING.md<br>- 보안 정책:SECURITY.md<br>
이 저장소는 공개 공유를 위해 구조화되어 있습니다:
- 추적된 파이프라인 파일에서 하드코딩된 시크릿은 발견되지 않았습니다.
- 자격 증명은 시크릿 스토어 및 변수 그룹을 통해 참조됩니다.
- 표준 오픈소스 거버넌스 파일들이 포함되어 있습니다.
게시(publishing)하기 전에 레포지토리 설정을 확인하세요:
main브랜치에 대한 브랜치 보호를 구성합니다.- 보호된 브랜치에 대해 풀 리퀘스트 및 상태 검사를 요구합니다.
- 호스팅 플랫폼에서 시크릿 스캐닝(secret scanning) 및 종속성 알림을 활성화합니다.
AI 자동 생성 콘텐츠
본 콘텐츠는 GitHub AI Tools의 원문을 AI가 자동으로 요약·번역·분석한 것입니다. 원 저작권은 원저작자에게 있으며, 정확한 내용은 반드시 원문을 확인해 주세요.
원문 바로가기