Abstract
Microservices are not only developed independently, but can also be run and deployed independently, ensuring more flexible scaling and efficient collaboration in a cloud computing environment. This impact has led to a surge in migrating to microservices-oriented application environments in recent years. In order to introduce microservices, the problem of identifying microservice units in a single application built with a single architecture must first be solved. In this paper, we propose an algorithm-based approach to identify microservices from legacy systems. A graph is generated using the meta-information of the legacy code, and a microservice candidate is extracted by applying a clustering algorithm. Modularization quality is evaluated using metrics for the extracted microservice candidates. In addition, in order to validate the proposed method, candidate services are derived using codes of open software that are widely used for benchmarking, and the level of modularity is evaluated using metrics. It can be identified as a smaller unit of microservice, and as a result, the module quality has improved.
최근 주목받고 있는 마이크로서비스는 독립적으로 개발될 뿐만 아니라 독립적으로 실행 및 배포가 가능하다는 장점 때문에, 클라우드 컴퓨팅 환경에서 보다 유연한 확장과 효율적인 협력을 보장할 수 있다. 이러한 영향으로 최근 마이크로서비스지향 애플리케이션 환경으로의 전환이 급격히 증가하고 있다. 마이크로서비스의 도입을 위해서는 무엇보다 모노리식 아키텍처로 구축된 단일 애플리케이션의 구성요소를 마이크로서비스 단위로 식별하는 문제가 선결되어야 한다. 본 논문에서는 레거시 시스템으로부터 마이크로서비스 식별의 문제를 알고리즘 기반으로 해결하기 이한 접근방법을 제안한다. 코드의 메타정보를 이용하여 그래프를 생성하고 클러스터링 알고리즘을 적용하여 마이크로서비스 후보를 추출한다. 추출된 마이크로서비스 후보에 대해 메트릭을 이용하여, 모듈화 품질을 평가한다. 또한 제안된 식별 방법의 효과를 검증하기 위해 벤치마크를 위해 많이 사용되는 공개 소프트웨어의 코드를 이용하여 후보 서비스를 도출하고, 메트릭을 이용하여 모듈화 수준을 평가한다. 결과적으로 좀더 작은 단위의 마이크로서비스로 식별해 내면서 모듈품질을 향상시키는 결과를 확인할 수 있다.