GitHub Copilot 현대화 에이전트는 인프라 프로비전, 컨테이너화 및 배포를 지원합니다. 이러한 기능은 에이전트 전체에서 사용되는 동일한 계획 만들기 → 계획 실행 모델을 따릅니다.
워크플로는 다음 두 단계로 구성됩니다.
- 인프라 준비: Azure 인프라 생성 및 프로비전
- 컨테이너화 및 배포: 애플리케이션을 컨테이너화하고 배포합니다.
메모
이 두 단계는 독립적입니다. 함께 실행하거나 각 단계를 개별적으로 사용할 수 있습니다. 예를 들어 이미 프로비전된 환경이 있는 경우 인프라 준비를 건너뛰거나 지금 인프라를 준비하고 나중에 배포합니다.
사전 요구 사항
- Azure 구독: 인프라 프로비저닝을 위한 활성 Azure 구독입니다.
- CLI 현대화: 빠른 시작 에 따라 설치 및 인증합니다.
1단계: 인프라 준비
현대화 에이전트는 제공한 입력에 따라 Azure 인프라를 프로비전하는 계획을 만듭니다. 이 기능에는 네트워킹, ID, 거버넌스 및 보안 기반을 포함하는 애플리케이션에 맞게 조정된 Azure 랜딩 존 을 디자인하는 기능이 포함됩니다.
입력
에이전트는 다양한 입력을 사용하여 인프라 계획을 알릴 수 있습니다.
- 애플리케이션 소스 코드: 기술 스택, 종속성 및 리소스 요구 사항을 결정하는 코드베이스 분석입니다.
-
평가 보고서:
modernize assess, Azure Migrate 또는 기타 마이그레이션 및 평가 도구의 보고서. - 아키텍처 다이어그램: 마이그레이션 전 아키텍처 다이어그램 또는 리포지토리의 디자인 문서.
- 규정 준수 및 보안 요구 사항: 조직 정책, 보안 표준 또는 랜딩 존 지침( 리포지토리의 문서로 제공되거나 프롬프트에서 자연어로 제공됨)
인프라 계획 만들기
인프라 요구 사항을 설명하는 프롬프트와 함께 사용합니다 modernize plan create .
modernize plan create "help create azure infrastructure for my app" --plan-name infra-setup
에이전트는 프로비전할 제안된 Azure 아키텍처 및 자세한 리소스 목록을 포함하는 계획을 생성합니다. 기본적으로 이 계획은 IaC 파일 생성 및 리소스 프로비저닝을 모두 포함합니다. 프롬프트를 통해 IaC 파일 생성만 요청할 수 있습니다.
팁 (조언)
프롬프트에서 다양한 입력 및 기본 설정을 결합합니다. 다음은 그 예입니다.
"create an Azure landing zone tailored to my application's architecture and requirements""create azure infrastructure based on the assessment report, following our compliance policies in docs/security-requirements.md""generate Bicep files for the target architecture in the design doc, don't provision yet""provision azure resources based on the architecture diagram and assessment findings"
계획 검토
실행하기 전에 출력 파일을 검토합니다.
-
계획 파일 (
.github/modernize/infra-setup/plan.md): 인프라 전략 및 제안된 아키텍처입니다. -
작업 목록 (
.github/modernize/infra-setup/tasks.json): 에이전트가 수행하는 특정 작업입니다.
두 파일을 모두 편집하여 리소스 구성을 조정하거나 실행 전에 접근 방식을 수정할 수 있습니다.
인프라 계획 실행
계획을 실행합니다.
modernize plan execute --plan-name infra-setup
인프라 확인
생성된 인프라 코드를 검토하고 Azure Portal 또는 Azure CLI를 통해 Azure 리소스를 확인합니다.
git status
git diff main
2단계: 컨테이너화 및 배포
두 번째 계획을 사용하여 애플리케이션을 컨테이너화하고 배포합니다.
메모
이 단계에서는 이미 마이그레이션하거나 업그레이드한 애플리케이션 소스 코드가 필요합니다. 컨테이너화 및 배포를 계속하기 전에 코드 현대화를 완료합니다.
배포 계획 만들기
modernize plan create "containerize and deploy my app to azure, subscription: <sub-id>, resource group: <rg-name>" --plan-name deploy
함께 컨테이너화 및 배포하거나 개별 계획으로 개별적으로 처리할 수 있습니다.
- 컨테이너화: 프로젝트에 대한 Dockerfile을 생성하고 컨테이너 이미지 빌드의 유효성을 검사합니다.
- 배포: 대상 Azure 호스팅 서비스를 기반으로 필요한 모든 구성 파일 및 매니페스트를 만들고, 애플리케이션을 배포하고, 나중에 사용할 수 있는 재사용 가능한 배포 스크립트를 생성합니다.
팁 (조언)
필요에 맞게 프롬프트를 사용자 지정합니다.
-
"containerize my app and create dockerfile": 배포하지 않고 컨테이너화만 수행합니다. -
"deploy my app to the AKS cluster in subscription: <sub-id>, resource group: <rg-name>": 이미 컨테이너화된 애플리케이션을 배포합니다.
계획 검토
생성된 계획 파일을 검토합니다.
-
계획 파일 (
.github/modernize/deploy/plan.md): 컨테이너화 및 배포 전략. -
작업 목록 (
.github/modernize/deploy/tasks.json): 특정 배포 작업.
배포 계획 실행
modernize plan execute --plan-name deploy
배포 확인
코드 변경 내용 검토: 생성된 Dockerfile, 배포 매니페스트 및 구성 변경 내용을 확인합니다.
git status git diff main실행 중인 애플리케이션의 유효성을 검사합니다. 대상 호스팅 서비스에서 제공하는 URL을 통해 배포된 애플리케이션에 액세스합니다.
대화형 모드 사용
메뉴에서 modernize를 실행하고 선택하여 대화형 TUI를 통해 두 단계를 모두 수행할 수도 있습니다.