Cloud Suitability Analyzer를 사용하여 Spring 애플리케이션 평가
이 가이드에서는 CSA(Cloud Suitability Analyzer)를 사용하여 Spring 애플리케이션을 평가하여 클라우드로 마이그레이션할 준비를 평가하는 방법을 설명합니다.
클라우드 적합성 분석기를 사용해야 하는 경우는 언제인가요?
클라우드 적합성 분석기는 VMware에서 개발한 오픈 소스 도구입니다. 이를 사용하여 Spring, Spring Boot 및 Spring Cloud 애플리케이션을 평가하여 클라우드에 대한 준비가 되었는지 확인할 수 있습니다.
Cloud Suitability Analyzer를 개발 환경에 다운로드한 다음, 소스 코드에서 평가를 검사할 수 있습니다. 모든 결과는 로컬 환경에 유지됩니다. 평가 보고서는 Spring 애플리케이션을 클라우드로 마이그레이션하는 데 필요한 작업량을 예측합니다. 또한 보고서에는 중요도에 따라 등급이 지정된 코드 줄 수준 문제도 나열됩니다.
참고
다른 브라우저가 클라우드 적합성 분석기 웹 포털을 제대로 열지 못하는 경우 Chrome을 권장 브라우저로 사용합니다.
Cloud Suitability Analyzer에서 어떤 결과를 얻을 수 있나요?
다음 섹션에서는 Cloud Suitability Analyzer에서 생성된 결과에 대해 설명합니다.
애플리케이션 그룹에 대한 요약
Cloud Suitability Analyzer는 소스 코드와 패턴을 일치시켜 클라우드 플랫폼에 대한 Spring 애플리케이션의 준비 상태를 예측합니다. 이 도구는 미리 정의되거나 사용자 지정된 규칙 집합에 따라 각 문제에 원시 점수를 할당합니다. 그런 다음, 도구는 원시 점수의 합계에 따라 각 애플리케이션에 대해 0에서 10 사이의 기술 점수를 계산합니다. 애플리케이션이 클라우드에 대비할수록 기술 점수가 높아집니다.
평가 보고서의 요약 페이지에서 해당 기술 점수가 있는 애플리케이션 목록을 찾을 수 있습니다. 요약 페이지에는 코드 줄 및 스캔한 파일 수와 같은 다른 정보도 나열됩니다.
평가를 실행할 때마다 도구는 새 보고서를 기록합니다. 요약 페이지에서 실행 선택 컨트롤을 사용하여 다양한 보고서 버전을 보고 비교하고 마이그레이션 작업의 진행 상황을 확인할 수 있습니다.
한 애플리케이션의 자세히 보기
특정 코드 줄 수준 문제 목록은 애플리케이션 페이지에서 자세한 보고서를 찾을 수 있습니다. 이 페이지에서는 각 애플리케이션의 문제를 나열하고 중요도를 "높음", "보통" 또는 "낮음"으로 평가합니다. "높음" 문제는 수동 작업이 필요한 필수 수정 사항이며, "중간" 문제를 해결하는 것이 좋습니다. "낮은" 문제는 정보일 뿐입니다. 보고서의 각 문제에 필요한 파일 이름, 줄 번호 및 예상 작업을 찾을 수도 있습니다.
애플리케이션에 대한 평가 결과를 보려면 실행 선택을 보려는 버전으로 설정한 다음 애플리케이션 이름을 애플리케이션 이름으로 설정합니다. 결과 탭의 맨 위에서 태그 그룹을 선택하여 결과를 필터링하고 집중하려는 태그만 볼 수 있습니다.
특정 문제에 대한 자세한 정보
애플리케이션 페이지에서 문제의 ID를 선택하여 자세한 정보 및 제안된 작업을 볼 수 있습니다. 이 정보에는 발견된 문제가 있는 소스 코드 파일의 경로, 문제와 일치하는 패턴 및 패턴 및 작업 점수를 설명하는 규칙이 포함됩니다. 조언 섹션에서 발견된 문제에 대한 특정 설명과 제안된 해당 작업을 찾을 수 있습니다.
클라우드 적합성 분석기를 어떻게 사용해야 하나요?
Cloud Suitability Analyzer는 설정, 검사 및 검토의 세 단계로 실행할 수 있습니다.
설치: 클라우드 적합성 분석기 이진 파일 및 Azure 사용자 지정 규칙을 다운로드합니다. 이진 파일을 VMware cloud-suitability-analyzer 리포지토리의 최신 버전으로 바꿀 수 있습니다. 패키지를 추출하면 동일한 디렉터리에서 다음 항목을 찾을 수 있습니다.
-
csa-l
: Linux용 CSA 이진 파일 -
csa
: macOS용 CSA 이진 파일 -
csa.exe
: Windows용 CSA 이진 파일 -
rules
: Azure 사용자 지정 규칙을 포함하는 디렉터리 -
bins.yaml
: 사용자 지정된 규칙에 필요한 파일 -
run-csa-xxx
: 일반적인 시나리오에 필요한 모든 CSA 명령을 실행하는 OS 관련 원스톱 스크립트
참고
이 문서의 모든 예제에서는 스크립트 및 이진 파일의 Linux 버전을 사용합니다. 명령의 매개 변수는 Windows 및 macOS에도 적용할 수 있습니다.
-
검사: 터미널을 시작하고 다음 예제와 같이 매개 변수
-p <src_dir>
를 사용하여 스크립트 또는 이진 파일을 실행합니다../run-csa-linux.sh -p <src_dir>
또는
./csa-l -p <src_dir>
디렉터리에
<src_dir>
는 Spring 앱 소스 코드가 있는 여러 하위 디렉터리가 포함되어 있습니다. 이 작업은 이러한 모든 프로젝트를 한 번의 실행으로 검사하고 결과를 csa.db이라는 파일에 저장합니다. 후속 검사는 결과를 동일한 csa.db 파일에 저장합니다.검토: 스크립트를 실행하면 웹 포털이 자동으로 시작됩니다. 또는 다음 명령을 사용할 수 있습니다. 웹 포털에는 기본적으로 요약 페이지가 표시됩니다.
./csa-l ui
규칙을 사용자 지정하는 방법
다음 섹션에서는 규칙 및 사용자 지정 방법에 대해 설명합니다.
적용 중인 목록 규칙
웹 포털의 규칙 페이지에는 애플리케이션 페이지에 나열된 문제와 일치하는 데 사용되는 모든 규칙이 표시됩니다. 각 규칙에 대한 세부 정보를 찾을 수도 있습니다.
다음 목록에는 Azure 사용자 지정 규칙 중 일부가 나와 있습니다.
- 일반적으로 클라우드로 마이그레이션
- Linux 경로에 대한 Windows 경로
- STDOUT에 대상 기록
- SMB/NFS 프로토콜을 사용하여 Azure 파일 공유에 로컬 스토리지
- JDK 업그레이드 규칙
- JDK 버전 확인
- Spring Boot/Cloud 업그레이드
- Spring Boot 버전 확인
- Spring Cloud 버전 확인
- Eureka 클라이언트 엔드포인트 재정의
- 구성 클라이언트 엔드포인트 재정의
- Zipkin 제거 및 Azure Monitor 사용
내보내기 규칙
규칙을 편집하거나 고유한 규칙을 작성하려면 먼저 수정할 수 있는 기본 버전으로 사용할 현재 규칙을 내보냅니다. 규칙을 내보내려면 다음 명령을 사용합니다.
./csa-l rules export --output-dir=<output_dir>
명령이 성공적으로 반환되면 규칙을 설명하는 구성 파일이 지정된 출력 디렉터리에 있습니다.
규칙 편집
텍스트 편집기를 사용하여 각 규칙을 독립적으로 편집할 수 있습니다. cloud-suitability-analyzer 리포지토리에서 사용할 수 있는 사용자 설명서의 각 필드에 대한 자세한 설명을 찾을 수 있습니다.
가져오기 규칙
고유한 규칙을 추가하거나 필요하지 않은 규칙을 제거하려면 원하는 규칙을 동일한 디렉터리에 배치한 다음 해당 디렉터리를 가져옵니다. 다음 단계를 사용하여 규칙을 추가하거나 제거합니다.
규칙을 가져오기 전에 다음 명령을 사용하여 유효 규칙을 지우고 클린 슬레이트에서 시작합니다.
./csa-l rules delete-all
규칙을 지우고 나면 다음 명령을 사용하여 고유한 규칙 집합을 가져옵니다.
./csa-l rules import --rules-dir=<input_dir>
이제 다음 명령을 사용하여 소스 코드를 다시 검사합니다.
./csa-l -p <src_dir>
그런 다음, 다음 명령을 사용하여 결과를 확인합니다.
./csa-l ui
이제 지정된 규칙 집합으로 업데이트된 규칙 페이지를 볼 수 있습니다.
이 프로세스를 간단히 하려면 azure-spring-suitability-rules 프로젝트의 규칙 디렉터리에서 규칙을 직접 업데이트한 다음 다음 명령을 사용하여 스크립트를 실행하는 것이 좋습니다.
./run-csa-linux.sh -p <src_dir>
이 명령은 자동으로 규칙을 다시 로드하고 소스 코드를 다시 검사한 다음 웹 포털을 시작합니다.
마이그레이션을 위한 대상 플랫폼
Azure에는 Spring 애플리케이션을 호스트할 수 있는 여러 호스팅 플랫폼이 있습니다. 자세한 내용은 Azure에서 Java 애플리케이션 호스팅 옵션 비교를 참조하세요.
Azure Spring Apps는 Spring 개발자를 위한 완전 관리형 서비스입니다. Azure Spring Apps를 사용하면 코드에 집중하고 기본 제공 모니터링, 서비스 검색, 구성 관리, CI/CD 통합, 파란색-녹색 배포 등을 사용하여 앱을 관리할 수 있습니다. 자세한 내용은 Spring Cloud 애플리케이션을 Azure Spring Apps로 마이그레이션을 참조하세요. 미리 배포 및 마이그레이션 단계의 많은 단계는 클라우드 적합성 분석기에 대한 Azure 사용자 지정 규칙에서 이미 다룹니다.
다음 단계
자세한 내용은 cloud-suitability-analyzer 리포지토리의 사용자 설명서를 참조하세요.