DOI QR코드

DOI QR Code

Identification of Microservices to Develop Cloud-Native Applications

클라우드네이티브 애플리케이션 구축을 위한 마이크로서비스 식별 방법

  • 최옥주 (한국과학기술원 전산학부) ;
  • 김유경 (숙명여자대학교 기초공학부)
  • Received : 2021.05.31
  • Accepted : 2021.06.20
  • Published : 2021.06.30

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.

최근 주목받고 있는 마이크로서비스는 독립적으로 개발될 뿐만 아니라 독립적으로 실행 및 배포가 가능하다는 장점 때문에, 클라우드 컴퓨팅 환경에서 보다 유연한 확장과 효율적인 협력을 보장할 수 있다. 이러한 영향으로 최근 마이크로서비스지향 애플리케이션 환경으로의 전환이 급격히 증가하고 있다. 마이크로서비스의 도입을 위해서는 무엇보다 모노리식 아키텍처로 구축된 단일 애플리케이션의 구성요소를 마이크로서비스 단위로 식별하는 문제가 선결되어야 한다. 본 논문에서는 레거시 시스템으로부터 마이크로서비스 식별의 문제를 알고리즘 기반으로 해결하기 이한 접근방법을 제안한다. 코드의 메타정보를 이용하여 그래프를 생성하고 클러스터링 알고리즘을 적용하여 마이크로서비스 후보를 추출한다. 추출된 마이크로서비스 후보에 대해 메트릭을 이용하여, 모듈화 품질을 평가한다. 또한 제안된 식별 방법의 효과를 검증하기 위해 벤치마크를 위해 많이 사용되는 공개 소프트웨어의 코드를 이용하여 후보 서비스를 도출하고, 메트릭을 이용하여 모듈화 수준을 평가한다. 결과적으로 좀더 작은 단위의 마이크로서비스로 식별해 내면서 모듈품질을 향상시키는 결과를 확인할 수 있다.

Keywords

References

  1. David Taibi, Kari Systa, "A Decomposition and Metric-Based Evaluation Framework for Microservices", Proceedings of the International Conference on Cloud Computing and Service Science, pp.133-149, June 4, 2020. DOI: https://doi.org/10.1007/978-3-030-49432-2_7
  2. D. L. Parnas, "On the criteria to be used in decomposing systems into modules", Communications, ACM, Vol. 15, no. 12, pp. 1053-1058, 1972. DOI : https://doi.org/10.1145/ 361598.361623
  3. G. Schermann, J. Cito and P. Leitner, "All the services large and micro: Revisiting industrial practice in services computing", Proceedings of the International conference on service orineted computing, pp.36-47. LNCS volume 9586, April 26, 2016. DOI: https://doi.org/10.1007/978-3-662-50539-7_4
  4. A. Levcovitz, R. Terra, and M. T. valente, "Towards a technique for extracting microservices from monolithic enterprise systems", Proceedings of the Workshop on Software Visualization, Evolution and Maintenance, pp.97-104, May 2016. https://arxiv.org/abs/1605.03175
  5. M. Gysel, L. Kolbener, W. Giersche, and O. Zimmermann, "Service Cutter: A systematic approach to service decomposition", Proceedings of the European Conference on Service-Oriented and Cloud Computing, pp. 185-200, August 25, 2016. DOI : https://doi.org/10.1007/978-3-319-44482-6_12
  6. Miguel brito, Jacome Cunha, Joao Saravia, "Identification of microservices from monolithic applications through Topic modeling", Proceedings of the Annual ACM Symposium on Applied Computing, pp.1409-1418, March 2021. DOI : https://doi.org/10.1145/3412841.3442016
  7. Robert C. Martin, "Agile Software Development, Principles, Patterns, and Practices", Prentice-Hall, 2002. ISBN-10: 0135974445
  8. S. Sarkar, G. M. Rama, Avinash C. Kak, "API-based and Information-Theoretic Metrics for Measuring the Quality of Software Modularization", IEEE Transactions on Software Engineering, vol. 33, no. 1, pp.14-32, Jan. 2007. DOI: https://doi.org/10.1109/TSE.2007.256942
  9. M. J. Amiri, "Object-aware identification of microservices", Proceedings of the IEEE International Conference on Services Computing, pp253-256, 2018. DOI: https://doi.org/10.1109/SCC.2018.00042
  10. L. Baresi, M. Garriga, and A. De Renzis, "Microservices identification through interface analysis", Proceedings of the European Conference on Service-Oriented and Cloud Computing, pp. 19-33, Sep. 2017. DOI: https://doi.org/10.1007/978-3-319 -67262-5_2
  11. S. Li, et al., "A dataflow-driven approach to identifying microservices from monolithic applications", Journal of Systems and Software, vol. 157, article no. 110380, 2019. DOI: https://doi.org/10.1016/j.jss.2019.07.008
  12. S. Tyszberowicz, et al., "Identifying microservices using functional decomposition", Proceedings of the International Symposium on Dependable Software Engineering: Theories, Tools, and Applications, pp.50-65, 2018. DOI: https://doi.org/10.1007/978-3-319-99933-3_4
  13. C. Schroer, F. Kruse, and J. M. Gomez, "A Qualitative Literature Review on Microservices Identification Approaches", Proceedings of the Symposium and Summer School on Service-Oriented Computing, 2020, DOI: https://doi.org/10.1007/978-3-030-64846-6_9