AI 엔진을 사용하여 수집된 데이터를 분석하고 애플리케이션을 파티션할 수 있는 방법에 대한 권장사항을 가져옵니다. 파티션은 마이크로서비스의 시작점 역할을 할 수 있는 모놀리스 Java® 클래스의 그룹입니다.
이 태스크에 대한 정보
AI 엔진을 실행하여 수집된 데이터를 분석하고 파티션 권장사항을 생성합니다. AI 엔진이 실행되면 다음을 수행하십시오.
- 런타임 추적의 일부를 유스 케이스 레코더가 생성하는 JSON 출력에서 캡처되는 유스 케이스 컨텍스트 정보와 함께 연관시킵니다. 세부사항은 모놀리스에 대한 데이터 수집을 참조하십시오.
- 런타임 추적은 인스트루먼트된 Java 모놀리식 애플리케이션의 비즈니스 케이스 실행에서 시작됩니다.
- JSON 형식의 유스 케이스 레코더 출력은 테스트 케이스와 연관된 시간소인을 사용합니다.
- 런타임 로그를 분석하는 IBM® Mono2Micro™ AI 엔진을 실행하여 런타임 로그를 분석합니다.
- 분석을 실행하여 권장 파티션에 대한 자세한 호출 분석 보고서를 작성합니다. 세부사항은 그래프 보기의 요소를 참조하십시오.
- IBM Mono2Micro 코드 생성 컴포넌트에서 사용되는 필수 파일을 사용하여 디렉토리 구조를 작성합니다.
시작하기 전에
시스템 요구사항 및 다음 AI 엔진 요구사항을 충족하는지 확인하십시오.
- AI 엔진은 수집된 데이터를 분석하기 위해 최상위 레벨 디렉토리에 config.ini 파일이 필요합니다. config.ini 파일이 제공되지 않으면 기본 설정으로 파일이 작성됩니다. AI 엔진은 이 최상위 레벨 디렉토리 mono2micro-output 및 mono2micro-workspace에 두 개의 하위 폴더를 자동으로 작성합니다.
- config.ini 파일에서 데이터 콜렉션 단계 중에 수집되는 데이터의 여러 카테고리에 대한 상대 위치를 지정할 수 있습니다. 다음 구조는 config.ini 파일의
[LogProcessor] 단락에 있는 수집된 데이터의 세 가지 카테고리 모두의 기본 상대 위치를 표시합니다.[LogProcessor]
RunlogDir = 로그
ContextDir = 컨텍스트
TableDir = 테이블
- config.ini 파일에서 RunlogDir, ContextDir및 TableDir 속성의 값은 다음 항목을 포함하는 로그 파일의 위치로 설정되어야 합니다.
- 런타임 시간 플로우 추적입니다.
- 유스 케이스 레코더가 생성한 JSON 파일입니다.
- Java 모놀리식 애플리케이션의 분석 중에 코드 분석기에 의해 작성된 모든 파일.
데이트레이더-트레이스
├────── config.ini
├────── 컨텍스트
│ └── daytrader.json
├────── 로그
│ └── console.log
└────── 테이블
├── instrumenter-config.json
├── recommender-config.properties
├── refTable.json
└── symTable.json
예를 들어, 이전 다이어그램은 기본 디렉토리 구조를 표시합니다. 이 구조는 Daytrader 애플리케이션을 위해 수집된 전체 데이터가 daytrader-trace 디렉토리에 있는 경우 세 가지 카테고리의 컨텐츠를 모두 표시합니다. 로그 디렉토리에는 WebSphere® Application Server Liberty에서 호스팅되는 샘플 테스트 애플리케이션인 Daytrader에 해당하는 로그 파일이 포함되어 있습니다. 프로덕션 애플리케이션의 경우 둘 이상의 로그 파일을 사용할 수 있습니다. config.ini 파일의 위치는 기본 config.ini 파일이 작성된 위치와 동일합니다.
프로시저
- AI 엔진을 실행하십시오. mono2micro recommend 명령을 실행하기 위한 구문이 예제에 표시되어 있습니다.
mono2micro recommend -d <collected-data-dir-path>
이 명령에서 <collected-data-dir-path> 은 고려 중인 Java 모놀리식 애플리케이션에 대해 지정된 형식으로 수집된 모든 데이터를 포함하는 디렉토리의 경로 이름입니다.
명령 및 해당 옵션에 대한 자세한 정보를 얻으려면 mono2micro recommend
--help 명령을 실행하십시오.
참고: AI 엔진을 실행하는 사용자는 <collected-data-dir-path> 디렉토리에 대한 읽기 및 쓰기 액세스 권한이 있어야 합니다. 이 읽기 및 쓰기 액세스 권한은 AI 엔진이 <collected-data-dir-path> 디렉토리에 새 파일 및 디렉토리를 작성할 수 있도록 합니다.
- AI 엔진이 실행될 때 다양한 단계의 진행상태에 대한 여러 정보 메시지를 발행합니다. 자세한 정보를 보려면 config.ini 파일의
[Global] 단락에서 LoggingLevel 매개변수를 WARN 에서 INFO 로 변경하십시오. 자세한 정보를 보려면 mono2micro recommend 명령을 --verbose 플래그와 함께 실행할 수도 있습니다.
참고: AI 엔진의 실행은 Stateful이며 기본 제공 체크포인트 메커니즘이 있습니다. 실행 중에 장애가 발생하거나 구성 매개변수를 변경하려는 경우, 실행 중 어느 지점에서든 체크포인트 메커니즘을 다시 시작할 수 있습니다. 구성을 변경하지 않고 AI 엔진을 다시 실행하면 no-op가 발생합니다. 또한 config.ini 파일의 다양한 매개변수를 수정하여 추가 보고서를 생성할 수 있습니다. 또한 일부 Java 모놀리식 애플리케이션에 대한 파티션 권장사항을 변경할 수 있는 몇 가지 AI 튜닝 매개변수로 실험할 수 있습니다.
결과
- 성공적인 실행 후에 AI 엔진은 두 개의 서브디렉토리 mono2micro-output 및 mono2micro-workspace가 있는 mono2micro 출력 디렉토리를 작성합니다.
mono2micro-output 디렉토리에는 AI 분석의 최종 출력과 코드 생성에 필요한 모든 정보가 포함되어 있습니다.
mono2micro-workspace 디렉토리에는 AI 분석의 중간 결과가 포함되어 있습니다. 일반적으로 이 디렉토리의 컨텐츠를 검사할 필요가 없습니다. 파티션 권장사항 기능을 실험하려는 경우 선택된 AI 매개변수 (예: MaxNumPartitions 매개변수) 를 튜닝한 후 AI 엔진을 다시 실행할 수 있습니다. AI 엔진은 mono2micro-workspace 디렉토리의 컨텐츠를 사용하므로 해당 컨텐츠를 제거하거나 변경하지 마십시오.
AI 엔진을 실행하면 기본 config.ini 파일 및 디렉토리 구조가 작성됩니다.
- 권장 명령을 실행하기 전의 디렉토리 구조
데이트레이더-트레이스
컨텍스트 ├── 컨텍스트
├── 로그
└── 표
- 권장 명령 실행 후 디렉토리 구조
데이트레이더-트레이스
├── config.ini
컨텍스트 ├── 컨텍스트
├── 로그
├── mono2micro
│ ├── mono2micro-output
│ └── mono2micro-workspace
└── 표
- 다음 그림은 mono2micro-output 디렉토리의 구조 및 컨텐츠를 자세히 표시합니다. mono2micro-output 디렉토리에는 다음 세 개의 html 보고서가 있습니다.
- Cardinal-Report.html- Java 호출 분석의 세부사항을 포함합니다.
- Inheritance-Report.html- Java 모놀리식 애플리케이션 클래스의 분석에서 발견되는 상속 계층 구조에 대한 정보를 포함합니다.
- Oriole-Report.html-파티션 권장사항의 세부사항을 포함합니다.
이러한 보고서에 대한 자세한 정보는 Oriole, Cardinal 및 상속 보고서의 내용을 참조하십시오.
- cardinal 디렉토리의 파일은 Mono2Micro 코드 생성기에 필요합니다. 자세한 내용은 마이크로서비스용 스타터 코드 생성을 참조하세요.
참고: 코드 생성에 필요한 refTable.json 및 symTable.json 파일은 daytrader-trace/tables 디렉토리에서 daytrader-trace/mono2micro/mono2micro-output/cardinal 디렉토리로 복사됩니다.
oriole 디렉토리에는 파티션 권장사항을 포함하는 final_graph.json 파일이 있습니다. 이 파일은 IBM Mono2Micro 워크벤치 UI에 표시됩니다. 자세한 내용은 파티션 권장 사항 보기를 참조하세요.
mono2micro
├── mono2micro-output
│ ├── Cardinal-Report.html
│ ├── Inheritance-Report.html
│ ├── Oriole-Report.html
│ ├── 추기경
│ │ ├── app_config.txt
│ │ ├── cardinal_graph.json
│ │ ├── class_run.json
│ │ ├── partition.txt
│ │ ├── refTable.json
│ │ └── symTable.json
│ ├── coverage.txt
│ ├── graph_view.txt
│ └── 꾀꼬리
│ └── final_graph.json
└── mono2micro-workspace