Back-end

[MSA] 1.개요

anodos 2023. 12. 18. 17:19

1.1       배경

 

전자정부 표준프레임워크는 공공사업에 적용되는 개발프레임워크의 표준 정립으로 응용 소프트웨어의 표준화, 품질 및 재사용성 향상을 위해 꾸준히 발전해 왔다. 또한 전자정부 서비스는 민첩성과 유연성을 장점으로 하는 클라우드 플랫폼에서 개발, 실행, 운영, 관리될 수 있도록 발전해 가고 있으며, 이러한 클라우드의 분산환경을 완벽히 지원하는 차세대 프레임워크로의 도약을 위해 노력해왔다.

 

이에 전자정부 표준프레임워크는 웹서비스를 개발하는 공통기반으로서의 사용자관점을 유지하면서도, 전자정부 서비스를 클라우드 기반에서 개발, 배포, 그리고 안정적이고 탄력적으로 운영할 수 있도록 새로운 버전 4.0(실행환경)을 출시하게 되었다.

표준프레임워크 4.0(실행환경)은 기존 핵심기능은 유지하면서, 엔터프라이즈급 자바 기반의 REST 지향 마이크로서비스 프레임워크를 제공하고 있으며, 스프링부트의 가벼운 구조로 클라우드 환경에 적용하기 적합하다. 하지만, 아무리 뛰어난 개발자라 할찌라도 단시간에 이를 배우고, 활용하여 프로젝트를 완료하기엔 무리가 있다. 이에 전자정부 표준프레임워크를 클라우드 플랫폼에 적용하는 프로젝트에서 탄력적이고 분산된 방식으로 동작하는 클라우드 네이티브 애플리케이션을 쉽게 이해하고 개발할 수 있도록 개발 가이드를 작성하게 되었다.

 

1.2 가이드의 목적과 구성

본 가이드는 전자정부 클라우드 플랫폼 또는 개방형 클라우드 플랫폼 등의 클라우드 환경에서 표준프레임워크 4.0 을 활용하여 클라우드 네이티브 애플리케이션을 개발할 때 참조하도록 작성되었다.

 

클라우드 네이티브 애플리케이션을 개발하기 위해서는 DevOps, CI(Continuous Integration)/CD(Continuous Delivery), Container 등 고려할 것이 많지만 본 가이드에서는 탄력성을 높이고 스케일링 용이성을 제공하는 마이크로서비스 개발에 집중할 것이다.

 

마이크로서비스는 작게 나누어진 서비스와 인스턴스 수만큼 관리 대상이 급격히 증가할 수 있으며, 클라우드 분산 환경에서 서비스 간 복잡한 연결 구조로 인해 장애 추적이 어렵고, 장애 전파 현상이 나타날 수 있다. 이러한 문제점을 해결하기 위해 마이크로서비스 간 직접 통신하지 않도록 Service Discovery, Service Routing, Failure Recovery, Load Balancing 등의 비즈니스 로직과 분리된 네트워크 통신 인브라인 서비스 메쉬(Service Mesh)를 도입하여야 하는데, 이는 컨테이너 종류에 따라 기술스택이 다르다. 이에 본 가이드에서는 어느 클라우드 플랫폼에도 원활히 작동하는 Spring Cloud 를 사용하여 설명하였고, 이를 대체할 Service Mesh 는 MSA 관심사별로 요소기술을 매핑 하였다.

본 가이드는 차세대 전자정부서비스 실현 및 변화방향에 맞추어 지속적으로 업그레이드해 나갈 것이다.

반응형