Skip to main content
QUICK REVIEW

[논문 리뷰] Graph Neural Network to Dilute Outliers for Refactoring Monolith Application

Utkarsh Desai, Sambaran Bandyopadhyay|arXiv (Cornell University)|2021. 02. 07.
Software System Performance and Reliability인용 수 4
한 줄 요약

이 논문은 단일 애플리케이션을 마이크로서비스로 전환하기 위해 노드 클러스터링, 이상치 탐지, 이상치 완화를 통합한 새로운 그래프 신경망 프레임워크 CO-GCN을 제안한다. 코드를 속성 부여된 그래프로 모델링하고 다중 목표 학습을 활용함으로써 CO-GCN은 클러스터링 품질을 향상시키고, 인간 평가에서 평균 60%의 겹침을 보이며 높은 영향도를 가진 전환 후보를 식별한다. 이는 정량적 지표와 정성적 관련성 모두에서 기존 최고 수준의 방법들을 능가한다.

ABSTRACT

Microservices are becoming the defacto design choice for software architecture. It involves partitioning the software components into finer modules such that the development can happen independently. It also provides natural benefits when deployed on the cloud since resources can be allocated dynamically to necessary components based on demand. Therefore, enterprises as part of their journey to cloud, are increasingly looking to refactor their monolith application into one or more candidate microservices; wherein each service contains a group of software entities (e.g., classes) that are responsible for a common functionality. Graphs are a natural choice to represent a software system. Each software entity can be represented as nodes and its dependencies with other entities as links. Therefore, this problem of refactoring can be viewed as a graph based clustering task. In this work, we propose a novel method to adapt the recent advancements in graph neural networks in the context of code to better understand the software and apply them in the clustering task. In that process, we also identify the outliers in the graph which can be directly mapped to top refactor candidates in the software. Our solution is able to improve state-of-the-art performance compared to works from both software engineering and existing graph representation based techniques.

연구 동기 및 목표

  • 소프트웨어 아키텍처를 그래프로 모델링하여 단일 애플리케이션을 마이크로서비스로 분해하는 데 도전하는 것.
  • 과도한 기능 간 종속성으로 인해 전환 후보로 적합한 이상치 클래스(예: 다수의 기능 경계를 넘나드는 높은 연결성)를 식별하고 우선순위를 정하는 것.
  • 클러스터링, 이상치 탐지, 이상치 완화를 하나의 종단 간 GNN 프레임워크로 통합하여 마이크로서비스 분해의 품질을 향상시키는 것.
  • 기존의 그래프 기반 및 소프트웨어 공학 기법보다 클러스터링 품질과 탐지된 전환 후보의 관련성에서 뛰어난 성능을 내는 것.

제안 방법

  • 정적 프로그램 분석을 통해 단일 애플리케이션 코드를 속성 부여된 그래프로 변환하며, 노드는 클래스를, 간선은 의존성을 나타낸다.
  • 두 가지 유형의 이상치를 도입한다: 구조적 이상치(기능 경계를 가로지르는 높은 연결성)와 속성적 이상치(비정상적인 호출 패턴을 가진 것).
  • 노드 표현, 클러스터 할당, 이상치 점수를 동시에 최적화하기 위해 그래프 재구성, 클러스터링, 이상치 인식 목표를 조합한 다중 목표 손실 함수를 사용한다.
  • 그래프 컬러이션 네트워크(GCN)를 사용해 노드 임베딩을 학습하며, 클러스터링 헤드를 통해 노드를 마이크로서비스 후보에 할당한다.
  • 이상치 점수는 메시지 전파 과정에서 이방성 노드의 영향을 완화하는 데 사용되어 클러스터 형성에 미치는 파급 효과를 줄인다.
  • 구조적 재구성, 속성 재구성, 클러스터링, 이상치 인식을 모두 포함한 총 손실을 최적화하여 종단 간으로 모델을 훈련한다.

실험 결과

연구 질문

  • RQ1그래프 신경망이 단일 애플리케이션 전환을 위해 동시에 클러스터링과 이상치 탐지를 효과적으로 수행할 수 있는가?
  • RQ2이상치 인식 및 완화를 통합함으로써 기존의 GNN과 비교해 마이크로서비스 클러스터링의 품질이 어떻게 향상되는가?
  • RQ3탐지된 이상치가 인간 전문가가 선정한 고도의 우선순위가 있는 전환 후보와 얼마나 일치하는가?
  • RQ4노드 임베딩 크기 및 손실 가중치와 같은 하이퍼파rameter에 대한 프레임워크 성능은 얼마나 민감한가?

주요 결과

  • CO-GCN은 네 개의 공개 단일 애플리케이션에서 최고 수준의 성능을 기록하였으며, 모듈성과 구조적 모듈성 측면에서 기존의 그래프 기반 및 소프트웨어 공학 기법을 능가하였다.
  • 인간 평가에서 전문가가 선정한 상위 다섯 전환 후보와의 평균 겹침 비율이 60%로 나타났으며, 이는 GCN(45%)과 DGI(55%)를 크게 능가한 결과였다.
  • Ablation 연구 결과, 클러스터링 목표와 이상치 인식 학습 구성 요소 모두가 클러스터 품질 향상에 기여하였으며, 응용 프로그램과 지표에 따라 영향력이 달라졌다.
  • 민감도 분석 결과, 더 높은 노드 임베딩 크기(예: 64)가 일반적으로 구조적 모듈성을 향상시켰지만, 임베딩 크기 변화에 따라 모듈성 점수는 비교적 안정된 편이었다.
  • 이상치 정보를 제거하면 한 애플리케이션(PBW)에서는 모듈성이 향상되었지만, 이는 구조적 모듈성의 감소로 상쇄되어 클러스터 밀도와 구조적 정확성 사이의 상충 관계를 보였다.
  • 이상치 탐지 및 완화를 학습 목표에 통합함으로써 전문가 피드백을 통해 검증된 바와 같이 더 일관되고 기능적으로 타당한 클러스터가 생성되었다.

더 나은 연구,지금 바로 시작하세요

논문 읽기부터 검토까지, 연구 시간을 획기적으로 줄여보세요.

카드 등록 없음 · 무료 플랜 제공

이 리뷰는 AI가 만들고, 인간 에디터가 검토했습니다.