현대화를 위한 Java 애플리케이션 평가

이 페이지에서는Google Cloud 콘솔에서 Google Cloud Modernization Hub를 사용하여 Linux 컨테이너화 및 크로스 플랫폼 Java 장기 지원(LTS) 버전 (예: Java 17 또는 Java 21)으로의 현대화를 위해 엔터프라이즈 Java 애플리케이션을 평가하는 방법을 보여줍니다. Google Cloud

많은 엔터프라이즈 Java 애플리케이션이 Linux 컨테이너에 직접 배포할 수 없는 기존 Java EE API, 독점 애플리케이션 서버 구성 (예: WebLogic, WebSphere, JBoss) 또는 오래된 서드 파티 라이브러리에 의존합니다. Modernization Hub의 자동 평가 기능은 소스 코드를 분석하고, 마이그레이션 차단 요소를 식별하고, Maven 또는 Gradle 종속 항목 호환성을 평가하고, Cloud Run 또는 Google Kubernetes Engine의 리팩터링 경로를 추천합니다.

Java 애플리케이션 평가를 사용해야 하는 경우

다음을 수행할 계획인 경우 Java 애플리케이션 평가를 실행하세요.

  • Linux 컨테이너로 리플랫폼: Cloud Run 또는 GKE용 애플리케이션을 컨테이너화하기 전에 환경별 종속 항목 (예: 로컬 파일 시스템 액세스, JNI 라이브러리 또는 독점 애플리케이션 서버 API)을 식별합니다.
  • Java 런타임 버전 업그레이드: Java 8 또는 Java 11에서 최신 Java LTS 버전 (Java 17 또는 Java 21)으로 마이그레이션하거나 Java EE (javax.*)에서 Jakarta EE(jakarta.*)로 전환할 때 필요한 노력과 호환성 격차를 평가합니다.
  • 모놀리식 아키텍처 분리: 클라우드 네이티브 마이크로서비스 또는 Spring Boot 애플리케이션으로 리팩터링해야 하는 긴밀하게 결합된 EJB 구성요소, JMS 메시지 브로커 또는 모놀리식 WAR 및 EAR 배포를 검색합니다.

시작하기 전에

콘솔에서 Java 평가 작업을 시작하기 전에 필수 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)

평가를 시작하고 분석 컨테이너를 실행하는 데 필요한 권한을 얻으려면 관리자에게 프로젝트에 대해 다음 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백만 개를 초과하는 경우 업로드하기 전에 코드베이스를 작고 독립적인 모듈이나 서비스로 분할하세요.
  • 클린 보관 파일 구조: 소스 파일과 빌드 구성만 분석되도록 컴파일된 바이너리, 패키지 캐시, 버전 제어 메타데이터 (예: target/, build/, bin/, node_modules/, .git/)를 ZIP 파일에서 제외합니다.

Java 소스 보관 파일 준비 및 업로드

빌드 출력을 제외한 Java 코드베이스를 zip 파일로 패키징하고 파일을 프로젝트의 Cloud Storage 버킷에 업로드합니다.

  1. 로컬 머신에서 다음 방법 중 하나를 사용하여 저장소의 ZIP 파일을 만듭니다.

    • Git 사용 (권장):

      git archive --format=zip -o repository.zip HEAD
      
    • zip CLI 사용:

      zip -r repository.zip . \
          -x "*.git*" "*/target/*" "*/build/*" "*/bin/*" "*/node_modules/*"
      
  2. Google Cloud CLI를 사용하여 zip 파일을 타겟 Cloud Storage 버킷에 업로드합니다.

    gcloud storage cp repository.zip \
        gs://INPUT_BUCKET/codebase/repository.zip
    

    INPUT_BUCKET을 타겟 Cloud Storage 버킷의 이름으로 바꿉니다.

평가 실행

Modernization Hub에서 평가 작업을 시작하려면 다음 단계를 따르세요.

  1. 콘솔에서 Modernization Hub 페이지로 이동합니다.

    Modernization Hub로 이동

  2. 방문 페이지에서 Java 워크로드 카드를 찾아 평가 시작을 클릭합니다.

  3. 작업 이름 필드에 평가 작업의 고유한 이름을 입력합니다.

  4. 소스 코드 위치 필드에서 소스 코드가 zip 파일로 포함된 Cloud Storage 버킷을 선택합니다.

  5. 보고서 위치 필드에서 생성된 평가 보고서를 저장할 Cloud Storage 버킷을 선택합니다.

  6. 현대화 레시피 목록에서 현대화 레시피를 선택합니다.

  7. 위치 목록에서 평가 작업의 리전을 선택합니다.

  8. 서비스 계정 필드에서 필수 역할 섹션에 나열된 필수 IAM 역할이 있는 전용 서비스 계정을 선택합니다. Cloud Build는 이 서비스 계정으로 평가 작업을 실행하며, 이 서비스 계정에는 Agent Platform 사용자 및 Cloud Storage 권한이 필요합니다.

  9. 보고서 생성을 클릭합니다.

    콘솔은 codmod 엔진을 실행하여 프로젝트를 분석하는 백그라운드 평가 컨테이너를 시작합니다. 작업 상태가 평가 기록 표에 표시됩니다.

평가 보고서 검토

코드베이스의 크기에 따라 평가 작업은 일반적으로 몇 분 이내에 완료됩니다. 백그라운드 컨테이너는 처리가 완료되면 자동으로 종료됩니다.

평가 결과에 액세스하려면 다음 단계를 따르세요.

  1. Modernization Hub 페이지의 평가 기록 표에서 평가 작업을 찾습니다.
  2. 상태 열이 완료됨으로 변경되면 보고서 다운로드를 클릭합니다.
  3. 원하는 출력 형식을 선택합니다.
    • HTML 보고서: 호환되지 않는 API를 필터링하고, 파일별 차단 목록을 검사하고, 수정 제안을 볼 수 있는 대화형 요약입니다.
    • 마크다운 보고서: 이해관계자 및 아키텍처 검토 위원회와 공유하기에 적합한 형식화된 요약입니다.

평가 보고서 검토

생성된 평가 보고서는 애플리케이션의 이전 준비 상태를 다음과 같은 여러 주요 영역으로 분류합니다.

  • 전체 호환성 점수: 수정 없이 타겟 Java 런타임으로 이전할 수 있는 소스 줄 및 종속 항목의 비율입니다.
  • 차단 요소 분석: 리팩터링이 필요한 특정 기존 Java 종속 항목 또는 환경 제약 조건(예:)
    • Java EE (javax.*)에서 Jakarta EE (jakarta.*) 네임스페이스로 변경
    • JDK 내부 API (예: sun.misc.* 패키지 또는 CORBA 모듈)가 삭제되거나 지원 중단되었습니다.
    • 독점 애플리케이션 서버 구성 또는 API (예: WebLogic, WebSphere 또는 JBoss 배포 설명자)
  • 종속 항목 분석: 각 라이브러리가 타겟 Java 런타임 버전을 지원하는지 또는 업그레이드가 필요한지 나타내는 기존 Maven 또는 Gradle 종속 항목의 자세한 인벤토리입니다.
  • 권장 작업: codmod에서 생성된 제안 코드 변환, AI 지원 리팩터링 레시피, Google Cloud에서 컨테이너화를 위해 애플리케이션을 준비하는 마이그레이션 경로

다음 단계