MSA easy

MSA easy(엠에스에이 이지)는 유엔진솔루션즈가 개발한 [마이크로서비스 아키텍처] 설계 및 구현 지원 도구이다. 2024년 3월 오픈소스로 공개되었으며, 이벤트 스토밍 기반의 [도메인 주도 설계]를 통해 MSA 소스코드를 자동으로 생성하는 기능을 제공한다.
 개요 

MSA easy는 마이크로서비스 구축의 전체 생명주기를 지원하는 통합 플랫폼으로, 분석, 설계, 구현, 배포 및 운영까지의 과정을 자동화한다. 특히 비즈니스 전문가와 개발자가 협업하여 도메인 모델을 설계할 수 있는 웹 기반 이벤트 스토밍 환경을 제공하는 것이 특징이다.

 역사 

유엔진솔루션즈는 2003년부터 업무 프로세스 관리(BPM), 클라우드 플랫폼 등을 개발해온 기술 기업으로, 5년간의 개발 기간을 거쳐 2024년 3월 MSA easy를 오픈소스로 공개했다. 이는 기업들이 디지털 전환 시대에 빠르게 적응하고 새로운 비즈니스 기회를 포착할 수 있도록 지원하기 위한 목적이었다.

 주요 기능 

 이벤트 스토밍 기반 설계 
웹 브라우저 기반의 전자적 화이트보드 제공

시공간적 제약 없이 현업 담당자, 도메인 전문가, 개발자 간 협업 가능

스티커 방식의 직관적인 인터페이스로 비IT 전문가도 쉽게 참여 가능

설계 결과물의 버전 관리 및 전자적 보관 지원

 자동 코드 생성 
이벤트 스토밍 결과를 기반으로 MSA 소스코드 자동 생성

폴리글랏 프로그래밍 지원 (자바, 파이썬, 고 등)

스프링 부트 기반의 마이크로서비스 템플릿 제공

RESTful API 및 이벤트 기반 통신 코드 자동 생성

 클라우드 배포 지원 
도커 컨테이너 이미지 생성 스크립트 자동 생성

쿠버네티스 배포를 위한 헬름 차트 자동 생성

CI/CD 파이프라인 스크립트 제공

AWS, Azure, GCP 등 주요 클라우드 플랫폼 지원

 통합 개발 환경 
깃허브/깃랩과의 연동

GitPod 클라우드 IDE 지원

생성된 코드의 즉시 푸시 및 배포 가능

 기술적 특징 
 아키텍처 패턴 지원 
MSA easy는 다음과 같은 마이크로서비스 패턴을 기본적으로 지원한다:

사가 패턴: 분산 트랜잭션 관리

CQRS (Command Query Responsibility Segregation): 명령과 조회의 분리

이벤트 소싱: 이벤트 기반 상태 관리

API 게이트웨이: 통합 진입점 제공

서킷 브레이커: 장애 전파 방지

 모델 기반 개발 
설계된 도메인 모델을 기반으로 코드를 생성하는 MDD(Model-Driven Design) 방식을 채택하여, 비즈니스 로직과 기술 구현 사이의 간극을 최소화한다.

 커스터마이징 
기업별 표준 프레임워크에 맞춰 템플릿을 커스터마이징할 수 있는 확장 기능을 제공한다.

 활용 사례 

 교육 및 훈련 
마이크로서비스 아키텍처 교육 플랫폼으로 활용

이벤트 스토밍 워크숍 도구로 사용

대학 및 기업 교육 프로그램에서 실습 도구로 채택

 기업 적용 
국내외 여러 기업에서 MSA 전환 프로젝트에 MSA easy를 활용하고 있으며, 특히 다음과 같은 분야에서 효과를 보고 있다:

레거시 시스템의 마이크로서비스 전환

신규 클라우드 네이티브 애플리케이션 개발

데브옵스 문화 정착 및 CI/CD 파이프라인 구축

 오픈소스 정보 
 라이선스 
MSA easy는 GPL-3.0 라이선스 하에 공개되어 있다.

 저장소 
GitHub 조직: https://github.com/msa-ez

메인 플랫폼 저장소: https://github.com/msa-ez/platform

 커뮤니티 
공식 웹사이트: https://www.msaez.io

문서 사이트: https://intro.msaez.io

 관련 기술 

 필수 구성 요소 
Node.js 14 이상

도커

쿠버네티스 (선택사항)

 지원 기술 스택 
백엔드: 스프링 부트, 스프링 클라우드, Express.js

메시징: 아파치 카프카, RabbitMQ

데이터베이스: MySQL, PostgreSQL, MongoDB

모니터링: 프로메테우스, 그라파나

인증/인가: Keycloak, OAuth2

 장점 
낮은 진입 장벽: IT 전문 지식이 없어도 비즈니스 전문가가 설계에 참여 가능

개발 생산성 향상: 자동 코드 생성으로 개발 시간 단축

표준화: 일관된 아키텍처 패턴과 코딩 스타일 유지

협업 강화: 비즈니스와 IT 간의 커뮤니케이션 개선

빠른 프로토타이핑: 아이디어를 신속하게 구현하여 검증 가능

 제한사항 
학습 곡선: MSA와 이벤트 스토밍에 대한 기본 이해 필요

커스터마이징 복잡도: 특수한 요구사항 구현 시 생성된 코드 수정 필요

기술 스택 제약: 지원하는 프레임워크와 라이브러리에 제한

 경쟁 제품 
Axon Framework: CQRS와 이벤트 소싱 전문 프레임워크

Eventuate: 이벤트 기반 마이크로서비스 플랫폼

스프링 클라우드: 마이크로서비스 개발을 위한 Spring 생태계

 향후 전망 
MSA easy는 지속적으로 기능을 확장하고 있으며, 특히 다음 영역에 집중하고 있다:

AI 기반 모델 생성 및 최적화

더 많은 클라우드 플랫폼 지원

실시간 모니터링 및 분석 기능 강화

로우코드/노코드 기능 확대

 각주 

 외부 링크 

유엔진솔루션즈 홈페이지

MSA Easy GitHub

분류:마이크로서비스
분류:도메인 주도 설계
분류:소프트웨어 모델링