IBM Mono2Micro 개요
IBM® Mono2Micro™ 는 Java® 모놀리식 애플리케이션을 실행하는 마이크로서비스로 리팩터링하기 위한 반자동 유틸리티입니다 WebSphere® Application Server Liberty 또는 Open Liberty. IBM Mono2Micro 및 이 제품이 제공하는 권장사항을 사용하여 마이크로서비스를 빌드 및 배치하는 데 필요한 중요한 부분의 코드를 자동으로 생성할 수 있습니다.
정적 및 동적 분석을 통해 IBM Mono2Micro 는 기계 학습 엔진 및 Java 모놀리식 애플리케이션 코드의 분석을 사용하여 파티션 권장사항을 생성합니다. 파티션 권장사항 은 마이크로서비스의 시작점으로 사용할 수 있는 모노리스의 클래스 그룹입니다. 기타 관련 정보와 함께 권장 파티션이 직관적인 워크벤치 UI에 표시됩니다. Java 프로그래밍 언어에 대한 내장 지식을 기반으로 IBM Mono2Micro 는 클래스 대 클래스 호출에 대한 심층적인 시맨틱 분석도 제공합니다. 워크벤치 UI및 자세한 분석을 사용하여 비즈니스 요구에 맞게 반복적으로 미세 조정할 수 있는 파티셔닝 권장사항의 명확한 그림을 얻을 수 있습니다. 특정 파티셔닝 권장사항을 결정한 후 IBM Mono2Micro 를 실행하여 기존 모노리스 코드와 함께 권장 파티션을 빌드하고 배치하는 데 필요한 중요한 코드 부분을 자동으로 생성할 수 있습니다. 생성된 코드를 검토한 후 계속해서 권장사항을 미세 조정하고 원하는 마이크로 서비스가 있을 때까지 코드를 생성할 수 있습니다. 그런 다음 WebSphere Application Server Liberty 또는 Open Liberty에서 마이크로서비스를 실행할 수 있습니다.
IBM Mono2Micro 의 일부로 사용할 수 있습니다 IBM WebSphere Hybrid Edition 및 IBM Cloud Pak® for Applications.
IBM Mono2Micro 과정
IBM Mono2Micro 명령은 다음과 같은 기능을 제공합니다.
IBM Mono2Micro 가 애플리케이션을 분석하도록 하려면 먼저 해당 코드에서 mono2micro analyze 명령을 실행한 후 인스트루먼테이션을 사용하여 애플리케이션을 실행하여 분석할 모든 데이터를 수집하십시오.
- 애플리케이션 아카이브에서 mono2micro analyze 명령을 실행하여 전체 클래스 이름, 메소드 서명, 상태 변수 및 상속 관계와 같은 코드에 대한 정보를 포함하는 테이블 JSON 파일을 생성하십시오.
- (선택사항) 2진 인스트루먼트를 사용으로 설정하여 애플리케이션을 배치하십시오.
- (선택사항) 비즈니스 유스 케이스와 함께 mono2micro usecase 명령을 실행하여 분석을 위해 하나 이상의 컨텍스트 JSON 파일 및 로그 파일을 생성하십시오.
IBM Mono2Micro에서 두 개의 리팩토링 옵션을 가져오려면 이전에 수집한 파일에서 mono2micro recommend 명령을 실행하여 파티션 권장사항과 함께 보고서 및 그래프 JSON을 가져오십시오.
- 정적 코드 분석 및 선택적으로 코드 생성에서 권장사항을 가져오려면 입력 디렉토리 내의 위치에 파일을 배치하십시오.
- 정적 코드 분석의 경우에만 테이블 JSON 파일 ( mono2micro analyze에서) 을 입력 디렉토리 내의 적절한 위치에 배치하십시오.
- 정적 코드 분석 및 코드 생성을 위해 테이블 JSON 파일 ( mono2micro analyze에서), 로그 파일 (비즈니스 유스 케이스 실행 중에 애플리케이션 서버에서) 및 컨텍스트 JSON 파일 (비즈니스 유스 케이스 실행 중에 mono2micro usecase 에서) 을 입력 디렉토리 내의 적절한 위치에 배치하십시오.
- mono2micro recommend 명령을 실행하여 리팩토링 접근 방식으로 보고서 및 그래프 JSON을 생성하십시오.
- 정적 코드 분석 및 선택적으로 코드 생성에서 권장사항을 가져오려면 입력 디렉토리 내의 위치에 파일을 배치하십시오.
mono2micro workbench 명령을 실행하여 애플리케이션에 대해 작성된 두 개의 리팩토링 접근 방식을 검사하여 애플리케이션 및 해당 클래스를 더 자세히 이해할 수 있는 워크벤치 UI를 실행하십시오. IBM Mono2Micro 의 두 가지 리팩토링 접근 방식은 비즈니스 로직 및 자연스러운 이음새입니다. 이러한 권장사항은 애플리케이션의 런타임 호출 및 발견된 데이터 종속성을 분석하여 작성되었습니다. 어느 접근 방식도 원하지 않는 경우에는 사용자 정의 파티셔닝 솔루션에 대한 계획을 작성하고 저장하십시오.
- mono2micro workbench 명령을 사용하여 워크벤치 UI 컨테이너 이미지를 실행하십시오.
- 브라우저에서 UI에 액세스하고 mono2micro recommend 명령에서 생성된 JSON 파일을 로드하십시오.
- 리팩토링 접근 방식을 탐색합니다.
- (선택사항) 사용자 정의 리팩토링 옵션 JSON 파일을 작성하고 저장하십시오.
mono2micro transform 명령을 실행하여 마이크로서비스 작성을 위한 스타터 코드를 자동으로 생성하십시오.
- (선택사항) natural seams 또는 사용자 정의 리팩토링 방법을 사용하도록 선택하는 경우 mono2micro refine 명령을 실행하십시오.
- mono2micro transform 명령을 실행하여 코드를 생성하십시오.
- 테스트 환경에서 코드를 편집하고 배치하십시오.
작동 방식
다음 그림은 IBM Mono2Micro를 통한 워크플로우를 표시합니다. (Action)
용어로 시작하는 파란색 상자는 사용자 조치를 나타냅니다. (File)
용어로 시작하는 채워지지 않은 상자는 파일을 나타냅니다. 실선은 다음 단계를 가리킵니다. 파선은 파일의 사용을 표시하고 워크플로우의 다음 사용자 조치 또는 파일을 가리킵니다. 워크플로우는 애플리케이션 코드로 시작하고 분석 및 코드 생성 후 파티션에 대해 생성된 스타터 코드로 종료됩니다.
IBM Mono2Micro 구성요소
IBM Mono2Micro 는 이전 그림에 표시된 다음 6개의 컴포넌트로 구성되어 있습니다.
- 코드 분석기 (
mono2micro-bluejay
컨테이너 또는 binary analyzer .jar) - 모놀리식 애플리케이션의 Java 코드를 분석하고 선택적으로 인스트루먼트하는 mono2micro analyze 명령입니다.
- 2진 인스트루먼트 (minerva-agent-1.0.jar)
- 애플리케이션 서버에 배치된 실행 중인 애플리케이션을 인스트루먼트하는 Java 에이전트입니다.
- 유스 케이스 레코더 (Flicker)
- 유스 케이스 이름 및 시간을 기록하는 Java 프로그램인 mono2micro usecase 명령을 사용하여 실행하십시오. Java 모놀리식 애플리케이션의 다양한 비즈니스 유스 케이스에 해당하는 테스트 스위트 또는 테스트 케이스를 실행할 때 이를 사용하십시오.
- 파티션 권장사항에 대한 AI 엔진 (
mono2micro-aipl
컨테이너) - mono2micro recommend 명령은 IBM Mono2Micro의 AI 엔진을 실행합니다. 소스 코드 분석기에서 얻은 사용자 제공 런타임 추적 및 메타데이터에 대해 기계 학습 기술을 사용합니다. 결과 정보를 사용하여 결국 마이크로서비스가 될 수 있는 파티션 권장사항을 생성합니다. 이 명령은 권장 파티션에 대한 자세한 보고서도 생성합니다.
- IBM Mono2Micro 워크벤치 UI
- mono2micro workbench 명령으로 실행될 때 AI 엔진의 권장사항을 표시하는
mono2micro-ui
컨테이너입니다. IBM Mono2Micro AI 엔진에서 얻은 권장사항은 로컬 스토리지에 보관됩니다. 워크벤치 UI에서 권장사항을 로드하여 그래픽 Visualizer에 권장사항을 표시할 수 있습니다. UI를 사용하여 AI 생성 파티션 권장사항을 수정할 수 있습니다. - 코드 생성기 (
mono2micro-cardinal
컨테이너) mono2micro transform 명령은 Java 프로그래밍 언어의 시맨틱에 대한 깊은 지식이 있는 코드 생성기를 호출합니다. 코드 생성기는 AI 엔진의 권장사항을 사용하여 다음을 수행합니다.
- 결국 마이크로서비스로 구현될 수 있는 권장 파티션의 자세한 호출 분석을 제공합니다.
- 권장 파티션의 자세한 상속 분석을 생성합니다.
- 컨테이너에서 권장 파티션을 실현하는 데 필요한 코드의 중요한 부분을 생성하십시오.
Mono2Micro 도구를 다운로드하여 로컬 컴퓨터에서 실행할 수 있습니다.
Java 모놀리식 애플리케이션 리팩토링 단계
다음 단계에서는 IBM Mono2Micro를 사용하여 Java 모놀리식 애플리케이션을 리팩터하는 방법을 설명합니다. 이전 그림의 보다 자세한 버전입니다.
이전 단계 중 일부는 다른 IBM Mono2Micro 주제에 자세히 설명되어 있습니다.
- IBM Mono2Micro 설치 에는 자원 요구사항을 포함하여 사용자 관점에서 IBM Mono2Micro 의 운영 측면이 포함되어 있습니다.
- Java 모놀리식 애플리케이션에 대한 데이터 수집 에서는 2a 및 2b단계를 완료하는 데 필요한 단계 및 관련 정보를 자세히 설명합니다.
- 파티션 권장사항 가져오기 에서는 2c 및 2d단계를 실행하는 방법과 필요한 경우 3단계를 실행하는 방법에 대해 설명합니다.
- 마이크로서비스 권장사항 보기 에서는 IBM Mono2Micro 생성 마이크로서비스 권장사항을 해석하고 사용자 정의하는 방법을 포함하여 2d단계를 자세히 설명합니다.
- 보고서 에는 2d 및 3단계에서 생성된 파티션 및 상속 분석 보고서에 대한 자세한 정보가 포함되어 있습니다.
- 마이크로서비스에 대한 스타터 코드 생성 에서는 자동으로 마이크로서비스 코드를 생성하기 위한 4a 단계를 자세히 설명합니다.