AI 엔진을 실행하여 수집된 데이터 분석

AI 엔진을 사용하여 수집된 데이터를 분석하고 애플리케이션을 파티션할 수 있는 방법에 대한 권장사항을 가져옵니다. 파티션은 마이크로서비스의 시작점 역할을 할 수 있는 모놀리스 Java® 클래스의 그룹입니다.

이 태스크에 대한 정보

AI 엔진을 실행하여 수집된 데이터를 분석하고 파티션 권장사항을 생성합니다. AI 엔진이 실행되면 다음을 수행하십시오.
  1. 런타임 추적의 일부를 유스 케이스 레코더가 생성하는 JSON 출력에서 캡처되는 유스 케이스 컨텍스트 정보와 함께 연관시킵니다. 세부사항은 모놀리스에 대한 데이터 수집을 참조하십시오.
    • 런타임 추적은 인스트루먼트된 Java 모놀리식 애플리케이션의 비즈니스 케이스 실행에서 시작됩니다.
    • JSON 형식의 유스 케이스 레코더 출력은 테스트 케이스와 연관된 시간소인을 사용합니다.
  2. 런타임 로그를 분석하는 IBM® Mono2Micro™ AI 엔진을 실행하여 런타임 로그를 분석합니다.
  3. 분석을 실행하여 권장 파티션에 대한 자세한 호출 분석 보고서를 작성합니다. 세부사항은 그래프 보기의 요소를 참조하십시오.
  4. IBM Mono2Micro 코드 생성 컴포넌트에서 사용되는 필수 파일을 사용하여 디렉토리 구조를 작성합니다.

시작하기 전에

시스템 요구사항 및 다음 AI 엔진 요구사항을 충족하는지 확인하십시오.

  • AI 엔진은 수집된 데이터를 분석하기 위해 최상위 레벨 디렉토리에 config.ini 파일이 필요합니다. config.ini 파일이 제공되지 않으면 기본 설정으로 파일이 작성됩니다. AI 엔진은 이 최상위 레벨 디렉토리 mono2micro-outputmono2micro-workspace에 두 개의 하위 폴더를 자동으로 작성합니다.
  • config.ini 파일에서 데이터 콜렉션 단계 중에 수집되는 데이터의 여러 카테고리에 대한 상대 위치를 지정할 수 있습니다. 다음 구조는 config.ini 파일의 [LogProcessor] 단락에 있는 수집된 데이터의 세 가지 카테고리 모두의 기본 상대 위치를 표시합니다.
    [LogProcessor]
    RunlogDir = 로그
    ContextDir = 컨텍스트
    TableDir = 테이블
  • config.ini 파일에서 RunlogDir, ContextDirTableDir 속성의 값은 다음 항목을 포함하는 로그 파일의 위치로 설정되어야 합니다.
    • 런타임 시간 플로우 추적입니다.
    • 유스 케이스 레코더가 생성한 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 파일이 작성된 위치와 동일합니다.

프로시저

  1. 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> 디렉토리에 새 파일 및 디렉토리를 작성할 수 있도록 합니다.
  2. AI 엔진이 실행될 때 다양한 단계의 진행상태에 대한 여러 정보 메시지를 발행합니다. 자세한 정보를 보려면 config.ini 파일의 [Global] 단락에서 LoggingLevel 매개변수를 WARN 에서 INFO 로 변경하십시오. 자세한 정보를 보려면 mono2micro recommend 명령을 --verbose 플래그와 함께 실행할 수도 있습니다.
    참고: AI 엔진의 실행은 Stateful이며 기본 제공 체크포인트 메커니즘이 있습니다. 실행 중에 장애가 발생하거나 구성 매개변수를 변경하려는 경우, 실행 중 어느 지점에서든 체크포인트 메커니즘을 다시 시작할 수 있습니다. 구성을 변경하지 않고 AI 엔진을 다시 실행하면 no-op가 발생합니다. 또한 config.ini 파일의 다양한 매개변수를 수정하여 추가 보고서를 생성할 수 있습니다. 또한 일부 Java 모놀리식 애플리케이션에 대한 파티션 권장사항을 변경할 수 있는 몇 가지 AI 튜닝 매개변수로 실험할 수 있습니다.

결과

  • 성공적인 실행 후에 AI 엔진은 두 개의 서브디렉토리 mono2micro-outputmono2micro-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.jsonsymTable.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