이 페이지에서는 Google Cloud Modernization Hub를 사용하여 ASP.NET 및 .NET Framework 애플리케이션을 평가하여 Linux 컨테이너화 및 크로스 플랫폼 .NET 출시로의 현대화를 수행하는 방법을 설명합니다.
많은 엔터프라이즈 .NET 애플리케이션은 Linux 컨테이너에 직접 배포할 수 없는 Windows 전용 API, IIS 서버 구성 또는 기존 .NET Framework 라이브러리에 의존합니다. Modernization Hub의 자동 평가 기능은 소스 코드를 분석하여 차단 요인을 식별하고, NuGet 패키지 호환성을 평가하고, Cloud Run 또는 Google Kubernetes Engine의 리팩터링 경로를 추천합니다.
.NET 애플리케이션 평가를 사용해야 하는 경우
다음 현대화 작업을 수행할 계획이라면 .NET 애플리케이션 평가를 실행하세요.
- Linux 컨테이너로 리플랫폼: Cloud Run 또는 GKE용 애플리케이션을 컨테이너화하기 전에 Windows 전용 종속 항목(예: Windows 레지스트리 액세스,
System.Drawing또는 Active Directory 통합)을 식별합니다. - .NET Framework 버전 업그레이드: .NET Framework 4.x에서 최신 크로스 플랫폼 .NET 버전 (.NET 10 이상)으로 마이그레이션할 때 필요한 노력과 호환성 격차를 평가합니다.
- 모놀리식 아키텍처 분리: 클라우드 네이티브 마이크로서비스로 리팩터링해야 하는 긴밀하게 결합된 WCF 서비스, Windows 서비스 또는 기존 웹 양식을 검색합니다.
시작하기 전에
.NET 평가 작업을 시작하기 전에 필요한 API를 사용 설정하고, 프로젝트 Identity and Access Management (IAM) 권한을 확인하고, 워크스페이스 설정 버킷을 등록하고, 소스 코드 보관 파일을 Cloud Storage에 업로드합니다.
필요한 API 사용 설정
Modernization Hub를 사용하려면 프로젝트에서 필요한 Google Cloud 서비스 API를 사용 설정하세요.
gcloud services enable \
aiplatform.googleapis.com \
artifactregistry.googleapis.com \
cloudbuild.googleapis.com \
cloudresourcemanager.googleapis.com \
compute.googleapis.com \
logging.googleapis.com \
storage.googleapis.com \
--project=PROJECT_ID
PROJECT_ID를 Google Cloud 프로젝트 ID로 바꿉니다.
필요한 역할
평가를 실행하려면 Cloud Build와 Gemini Enterprise Agent Platform을 사용하는 두 ID에 대해 별도의 IAM 권한이 필요합니다.
- 인증된 콘솔 사용자 (작업을 시작하고 버킷에 액세스):
- 스토리지 관리자(
roles/storage.admin) - 서비스 계정 사용자(
roles/iam.serviceAccountUser) - Cloud Build 편집자(
roles/cloudbuild.builds.editor)
- 스토리지 관리자(
- 전용 서비스 계정 (평가 컨테이너 실행):
- Agent Platform 사용자(
roles/aiplatform.user) - 스토리지 객체 사용자 (
roles/storage.objectUser) 또는 스토리지 관리자(roles/storage.admin)
- Agent Platform 사용자(
평가를 시작하고 분석 컨테이너를 실행하는 데 필요한 권한을 얻으려면 관리자에게 프로젝트에 대해 다음 IAM 역할을 부여해 달라고 요청하세요.
-
사용자 - 소스 보관 파일 및 버킷 구성 관리: 스토리지 관리자 (
roles/storage.admin) -
사용자 - 전용 서비스 계정을 작업에 연결합니다. 서비스 계정 사용자 (
roles/iam.serviceAccountUser) -
사용자 - 평가 작업 제출 (
cloudbuild.builds.create) 및 로그 보기: Cloud Build 편집자 (roles/cloudbuild.builds.editor) -
서비스 계정 -
codmod컨테이너 실행: Agent Platform 사용자 (roles/aiplatform.user) -
서비스 계정 - 소스 보관 파일 읽기 및 평가 보고서 쓰기: 스토리지 객체 사용자 (
roles/storage.objectUser) 또는 스토리지 관리자 (roles/storage.admin)
역할 부여에 대한 자세한 내용은 프로젝트, 폴더, 조직에 대한 액세스 관리를 참조하세요.
이러한 사전 정의된 역할에는 평가를 시작하고 분석 컨테이너를 실행하는 데 필요한 권한이 포함되어 있습니다. 필요한 정확한 권한을 보려면 필수 권한 섹션을 펼치세요.
필수 권한
평가를 시작하고 분석 컨테이너를 실행하려면 다음 권한이 필요합니다.
-
사용자 (Cloud Storage, Cloud Build, IAM):
-
storage.objects.get(파일 다운로드 또는 읽기) -
storage.objects.list(버킷 내 파일 나열) -
storage.objects.create(새 파일을 업로드하거나 만들기) -
storage.objects.update(기존 파일의 메타데이터 수정) -
storage.objects.delete(파일 삭제 또는 덮어쓰기) -
storage.buckets.get(버킷 수준 구성 보기) -
cloudbuild.builds.create(평가 작업을 제출하는 데 사용) -
iam.serviceAccounts.actAs(서비스 계정을 작업에 연결)
-
-
서비스 계정 (Agent Platform 및 Cloud Storage):
-
aiplatform.endpoints.predict(AI 지원 코드 분석 실행) -
storage.objects.get(소스 보관 파일을 읽거나 다운로드) -
storage.objects.list(입력 폴더의 파일을 나열하는 경우) -
storage.objects.create(평가 보고서 작성) -
storage.objects.delete(임시 파일 삭제)
-
커스텀 역할이나 다른 사전 정의된 역할을 사용하여 이 권한을 부여받을 수도 있습니다.
작업공간 설정 버킷 구성
Modernization Hub > 설정 페이지에서 지정된 Cloud Storage 버킷 (예: gs://PROJECT_ID-modernization-hub)을 등록하여 워크스페이스 바이너리 상태 파일 (dotnet_jobs.pb, java_jobs.pb, mainframe_jobs.pb)을 저장합니다.
코드베이스 크기 제한 검토
최적의 성능과 비용 효율성을 유지하기 위해 codmod 평가 엔진은 다음과 같은 확장 및 보관 가이드라인을 적용합니다.
- 최대 코드베이스 크기: 평가 작업당 약 6백만 줄의 코드 (LOC) 저장소의 LOC가 6백만 개를 초과하는 경우 업로드하기 전에 코드베이스를 더 작은 독립적인 솔루션이나 모듈로 분할하세요.
- 클린 보관 파일 구조: 소스 파일과 빌드 구성만 분석되도록 컴파일된 바이너리, 패키지 캐시, 버전 제어 메타데이터 (예:
bin/,obj/,node_modules/,.vs/,.git/)를 zip 파일에서 제외합니다.
.NET 소스 보관 파일 준비 및 업로드
빌드 출력을 제외한 .NET 코드베이스를 zip 파일로 패키징하고 파일을 프로젝트의 Cloud Storage 버킷에 업로드합니다.
로컬 머신에서 다음 방법 중 하나를 사용하여 저장소의 ZIP 파일을 만듭니다.
Git 사용 (권장):
git archive --format=zip -o repository.zip HEAD
zipCLI 사용:zip -r repository.zip . \ -x "*.git*" "*/bin/*" "*/obj/*" "*/node_modules/*" "*.vs/*"
Google Cloud CLI를 사용하여 zip 파일을 타겟 Cloud Storage 버킷에 업로드합니다.
gcloud storage cp repository.zip \ gs://INPUT_BUCKET/codebase/repository.zipINPUT_BUCKET을 타겟 Cloud Storage 버킷의 이름으로 바꿉니다.
평가 실행
평가 작업을 실행하려면 다음 단계를 따르세요.
콘솔에서 Modernization Hub 페이지로 이동합니다.
방문 페이지에서 .NET 현대화 카드를 찾아 평가 시작을 클릭합니다.
작업 이름 필드에 평가 작업의 고유한 이름을 입력합니다.
소스 코드 위치 필드에서 소스 코드가 zip 파일로 포함된 Cloud Storage 버킷을 선택합니다.
보고서 위치 필드에서 생성된 평가 보고서를 저장할 Cloud Storage 버킷을 선택합니다.
현대화 레시피 목록에서 현대화 레시피를 선택합니다.
위치 목록에서 평가 작업의 리전을 선택합니다.
서비스 계정 필드에서 필수 역할 섹션에 나열된 필수 IAM 역할이 있는 전용 서비스 계정을 선택합니다. Cloud Build는 이 서비스 계정으로 평가 작업을 실행하며, 이 서비스 계정에는 Agent Platform 사용자 및 Cloud Storage 권한이 필요합니다.
보고서 생성을 클릭합니다.
콘솔은 백그라운드 평가 컨테이너를 시작하여 프로젝트를 분석합니다. 작업 상태가 평가 기록 표에 표시됩니다.
작업 상태 모니터링 및 보고서 보기
코드베이스의 크기에 따라 평가 작업은 일반적으로 몇 분 이내에 완료됩니다. 백그라운드 컨테이너는 처리가 완료되면 자동으로 종료됩니다.
평가 결과를 보려면 다음 단계를 따르세요.
- Modernization Hub 페이지의 평가 기록 표에서 평가 작업을 찾습니다.
- 상태 열이 완료됨으로 변경되면 보고서 다운로드를 클릭합니다.
- 원하는 출력 형식을 선택합니다.
- HTML 보고서: 호환되지 않는 Windows API를 필터링하고, 파일별 차단 목록을 검사하고, 수정 제안을 볼 수 있는 대화형 요약입니다.
- 마크다운 보고서: 이해관계자 및 아키텍처 검토 위원회와 공유하기에 적합한 형식화된 요약입니다.
평가 보고서 검토
평가 보고서는 애플리케이션의 마이그레이션 준비 상태를 다음 영역으로 분류합니다.
- 전체 호환성 점수: 수정 없이 크로스 플랫폼 .NET으로 이전할 수 있는 소스 줄 및 종속 항목의 비율입니다.
- 차단 요소 분류: 리팩터링이 필요한 특정 Windows 종속 항목(예:
- Windows Communication Foundation (WCF) 서버 구현
- ASP.NET Web Forms 또는 ASP.NET MVC 기존 파이프라인
- Windows 레지스트리 호출 (
Microsoft.Win32)
- NuGet 종속 항목 분석: 각 패키지가 타겟 .NET 버전을 지원하는지 아니면 교체가 필요한지 나타내는 기존 NuGet 패키지의 자세한 인벤토리입니다.
- 권장 작업: Google Cloud에서 컨테이너화를 위해 애플리케이션을 준비하기 위한 코드 변환 및 마이그레이션 경로가 제안됩니다.
Antigravity로 .NET 코드 리팩터링
평가 보고서를 생성한 후 전문 .NET 에이전트 스킬이 있는 Antigravity를 사용하여 .NET Framework에서 크로스 플랫폼 .NET으로의 코드 변환을 자동화할 수 있습니다.
에이전트 기반 리팩터링 워크플로를 실행하기 전에 다음 기본 요건을 충족하는지 확인하세요.
- Antigravity 환경: Antigravity IDE 또는 Antigravity CLI (
agy)를 설치하고 Google Cloud 프로젝트로 인증을 구성합니다. - 평가 아티팩트:
codmod평가 보고서를 다운로드하고 에이전트가 식별된 차단기와 종속 항목 업그레이드 경로를 참조할 수 있도록 로컬 저장소 작업공간에 배치합니다. - .NET 현대화 스킬:
codmod.NET 현대화 스킬(SKILL.md)을 Antigravity 작업공간 설정에 로드합니다. 최신 .NET 현대화 에이전트 스킬의 미리보기 액세스를 요청하려면 modernization-hub-feedback-external@google.com으로 문의하세요.
다음 단계
- Java 애플리케이션을 평가하는 방법을 알아보세요.
- Mainframe Assessment Tool (MAT)을 설정하는 방법을 알아보세요.
- Gemini Cloud Assist를 사용하여 AI 지원 코드 변환을 살펴봅니다.