MSA(마이크로 서비스 아키텍처) 기반의 클라우드 협업환경 구성


?한국정보화진흥원 / 김정엽 수석


 

공공부문의 칸막이 없는 협업과 지식행정 기반으로 클라우드 업무환경 도입을 위하여. 클라우드 업무환경과 주요 구성요소를 포함하는 서비스 참조모델에 따라 공공기관 대상으로 실제 구현하여 구축?활용중인 NiCloud 서비스의 활용 사례 분석을 토대로 국내 환경에 적합한 클라우드 기반 업무환경의 마이크로 서비스 아키텍처 기반의 클라우드 최적화 사례를 설명한다.

미국, 영국, 일본 등 IT 선진국들은 산업주도권 확보와 국가정보 자원의 효율적 관리를 위해 클라우드의 도입과 클라우드 기반 공공서비스 전환을 추진하고 있다. 이를 통해 공공부문의 대국민 서비스뿐만 아니라, 내부 업무환경도 클라우드 기반으로 전환하여 업무 효율성을 향상시키고 있다. 본 고에서는 공유·협업·소통을 위한 클라우드 업무환경과 그에 따른 서비스 참조모델을 실제 공공기관에 구현한 모델인 NiCloud 서비스를 소개한다. 그리고 NiCloud 서비스를 클라우드 네이티브 환경으로 전환한 사례로서 클라우드 최적화 모델 중 하나인 마이크로 서비스 아키텍처를 소개하고 이에 따라 클라우드에 최적화한 서비스 모델을 간략하게 설명한다.




1. 지능형 클라우드 협업환경 NiCloud 개요


오늘날 비용 절감과 생산성 향상이라는 목표를 달성하기 위해 세계 각국은 클라우드 컴퓨팅 기술을 적극적으로 도입하고 있다. 이에 기반한 클라우드 업무환경은 기존 업무환경의 공간적 제약과 단말기 제약을 받지 않고 정보에 접근하여 업무를 처리하고 공유·협업할 수 있는 업무환경을 제공한다.

공공부문에서 공공기관 지방이전(136개 공공기관 9대 혁신도시 이전, 38,257명) 정책으로 출장이나 현장 행정이 증가함에 따라, 기존 사무실 PC 중심의 업무환경에서 장소나 시간에 구애받지 않는 업무환경으로의 전환이 요구되고 있다. 또한 기존에 개인PC에 분산되어 있는 정보자원을 통합하여 효율적으로 활용하기 위한 협업 및 공유 기반에 대한 필요성이 증가하고 있다. [그림 1]은 클라우드 업무환경 도입에 따른 변화로 사무실 중심의 고정된 PC에서 클라우드 저장소를 활용하여 시간과 장소에 구애받지 않고 공유·협업 할 수 있는 환경을 보여주고 있다.

 

MSA 1

[그림 1] 클라우드 업무환경 도입에 따른 변화


공공기관에서는 변화하는 업무환경에 대응하기 위해 업무자료의 공유, 함께 일하는 협업, 업무 추진상황에 대한 소통의 지원이 요구되고 있다. 클라우드 업무환경 도입 참조모델 구성요소는 공유·소통을 지원하기 위해 [표 1]과 같이 클라우드 저장소, 웹오피스, ESN(소셜서비스)을 구성요소가 고려되었다.

 

저장소


웹오피스ESN


·클라우드 저장소를 통해 업무자료 공유·관리가 가능한 최소한의 모델

·장소의 제약 없이 클라우드 저장소에 접속하여 업무처리


·저장소의 문서를 웹오피스를 통해 직접 편집 가능

·저장소 문서를 다수 사용자가 공동편집 할 수 있는 기능을 활용하여 협업


·저장소·웹오피스·ESN을 통합하여 기존 조직도에 비해 유연한 소통모델

·ESN을 통해 시간의 제약 없이 타임라임 기반의 다자간 의사소통

[표 1] 클라우드 업무환경 참조모델 구성요소별 특징


 

이에, 공공기관에 적합한 구성으로, 클라우드 저장소를 기본으로 웹오피스, ESN을 통합·연계 활용하여 공유·협업·소통을 지원하는 업무모델을 서비스 참조모델을 기반으로 클라우드 업무환경 서비스를 구축하게 되었다.

지능형 클라우드 협업환경 NiCloud는 클라우드 업무환경 참조모델 중 저장소·웹오피스·ESN 통합모델을 구현한 서비스이다. NiCloud는 공공부문의 업무생산성 강화 수단으로 공유·협업·소통 환경을 클라우드 기반으로 구현하여 제공하는 것을 목적으로 한다. 이를 위해, 웹표준(HTML5) 기반의 클라우드 저장소·웹오피스·ESN을 클라우드 업무환경으로 서비스한다. [그림 2]는 NiCloud의 주요 특징을 설명한다.

 

MSA 2

[그림 2] 지능형 클라우드 협업환경 NiCloud 서비스







2. 마이크로 서비스 아키텍처의 개념


클라우드 네이티브는 클라우드 컴퓨팅 모델의 장점을 모두 활용하는 서비스를 개발하고 실행하기 위한 접근방식으로, 클라우드 환경에서 효율적으로 작동하고 클라우드의 특징을 활용할 수 있다. 특히 이는 마이크로 서비스 아키텍처의 구성요소로서 이야기하는 경우가 많으며 주로 PaaS(클라우드 플랫폼) 환경을 통해서 배포된다. 즉, 클라우드 플랫폼인 PaaS는 클라우드 네이티브한 개발 환경을 제공하며, 개발자는 마이크로 서비스를 고려하여 개발하게 된다.

 

MSA 3

[그림 3] 클라우드 네이티브 애플리케이션과 기존 애플리케이션 비교


마이크로 서비스 아키텍처는 단독으로 실행 가능하고 독립적으로 배치될 수 있는 작은 단위(모듈)로 기능을 분해하여 서비스하는 아키텍처이다. (IT용어사전, 한국정보통신기술협회) 이는 대규모 소프트웨어 개발에 적용하기 위함으로, 작은 단위로 동작하는 서비스가 구동되도록 시스템 및 소프트웨어의 구성과 구성요소 간의 관계를 정의한 아키텍처이다. 하나의 애플리케이션을 구성함에 있어 분할된 다수의 컨테이너를 통해 애플리케이션 기능뿐만 아니라 데이터까지 분리하여 격리된 독립된 환경으로 구성되는 점이 특징이며, API로 다른 서비스와 연계한다.

MSA 4

[그림 4] 기존 대비 마이크로서비스 아키텍처 비교


 

특히 애플리케이션의 개별 부분은 독립적인 기능으로 나누어지면서 서로 연결되며, 모놀리스 아키텍처에서 정의된 기능을 작은 서비스로 분리하는 행위를 마이크로 서비스라고 한다. 서비스들간 서로 소통을 위한 구성요소 사이의 상호작용 규칙을 API(Application Programming Interface) 라고 한다.

마이크로서비스는 자체 스토리지를 담당하고 있으며, 마이크로서비스 사이의 통신은 공유 데이터베이스가 아닌 API를 통해 이루어진다. 이러한 마이크로서비스는 서비스마다 다른 기술을 적용해야 하는 경우 등 상황에 따라 장단점을 고려하여 도엽하는 것이 바람직한데, 본 고에서 소개하는 공공기관 클라우드 협업환경인 NiCloud 의 경우 다양한 기존 서비스들을 융합한 클라우드 서비스로서 향후 마이크로서비스 아키텍처를 적용하여 클라우드 네이티브 애플리케이션으로서 클라우드 플랫폼인 파스-타 등의 기능을 충분히 활용하고 컨테이너에 적합한 구조로 재구성하였다.

이와 함께 최근 도커·쿠버네티스 등 컨테이너 기반의 가상환경과 개방형 플랫폼인 파스-타에서 수평적 확장이 용이한 탄력적 아키텍처로서 기존에 모놀리식 구조로 구성되었던 서비스에서 클라우드, 특히 컨테이너 전환 시 유용한 방법론으로 마이크로 서비스 아키텍처가 평가받고 있다. 특히 마이크로 서비스들은 각각 독립성을 가지고 각각 독립된 버전을 가지며, 서비스를 체계적으로 관리하기 위해서는 마이크로 서비스 API를 정의하고 생성하는 서비스 생성자와 서비스를 사용하는 소비자 간에 잘 정의된 마이크로 서비스 API 체계가 필요하다.

이를 통해 세부 서비스의 배포를 서비스 수준에서 제어 가능하며, 각 서비스를 쉽게 확장 가능하고 소규모 구현으로 분리한 서비스를 개발자가 변경과 테스트 수행 시 운영환경에 보다 쉽게 대응할 수 있고 구성요소별 적절한 리소스 확보에 유리하다는 장점을 가진다.




3. 마이크로 서비스 아키텍처 기반의 클라우드 업무환경 구성


클라우드 기반의 업무환경은 기존 개인 PC기반의 업무 환경과는 달리, 모든 데이터와 행정기반이 중앙집중식으로 구성되어 있으므로 안정적인 운영이 필수적이다. 또한 본 고에서 제안하는 참조모델들은 기본 요소인 저장소·웹오피스·ESN만을 포함하고 있으며, 또한 수요기관에 따라 다양한 요구조건이 존재하기 때문에 이를 다 만족시키기에는 한계가 있다. 이를 개선하기 위해서는 업무환경의 안정적인 운영과 유연하고 지속적으로 기능을 변경하고 확장하기 위한 기반과 그에 적합한 아키텍쳐 적용이 필요하다.

반면, 개별 서비스의 로그나 스토리지 등의 중복 이슈는 클라우드 플랫폼 파스-타가 제공하는 기능과 공용 스토리지를 활용가능하도록 구성하여 해결 가능하다. 본 고에서는 공통 스토리지로서 분산파일시스템의 일종인 GlusterFS를 활용하여 세부 마이크로서비스가 활용하도록 구성하였다. 특히 마이크로서비스간 API는 파스-타에서 제공하는 API 게이트웨이를 활용하고, 기존 서비스들이 개별로 접근하여 잦은 병목현상을 일으키는 사용자계정DB 접근은 별도의 인증·접근제어 마이크로 서비스로 분리하여 API 게이트웨이를 통해 다른 마이크로서비스에 제공하도록 정리하였다. 이를 통해 마이크로서비스 단위로 컨테이너에 적합한 크기로 조절하여 클라우드 네이티브 구조로 재구성한다.

 

MSA 5

[그림 5] 마이크로 서비스 아키텍처 기반의 NiCloud 서비스 구성







4. 결론


클라우드 업무환경은 공공부문의 클라우드 도입과 이를 활용한 업무 생산성 향상을 위하여, 클라우드가 제공하는 유연성과 접근 편의성을 적극 이용한 사례로 볼 수 있다. 본 고에서 설명한 참조모델의 구현인 NiCloud 이용을 통해 클라우드 업무환경이 공공부문에서 적극 활용되며, 이를 통해 업무의 효율성을 증대시키는데 활용된다.

마이크로 서비스 아키텍처는 개발과 운영 조직을 하나로 묶어 빠른 의사소통이 가능한 DevOps 환경을 잘 지원가능하고, 소규모 서비스 단위로 관리됨에 따라 기존의 모노리틱 아키텍처에서 서비스의 일정 부분을 고치더라도 전체를 다시 빌드하고 재배포하는 변경주기에 비해 마이크로 서비스 아키텍처는 복잡한 대규모 시스템을 간단하고 독립적인 단위로 결합하여 구성할 수 있으므로 서비스의 변경이 용이하고 효율적인 자원 사용이 가능하다는 장점이 있다.

반면, 마이크로 서비스는 서비스 크기가 작아지고 서비스 연계 시 복잡도가 증가하며, 마이크로 서비스 간 통신이 빈번해져 네트워크 자원을 많이 소모하며, 동일한 프로세스를 마이크로 서비스별로 구현하는 경우 중복된 노력을 할 가능성이 존재한다. 따라서 서비스 간 중복을 최소화하여 자원 소모를 줄이고, API를 통해 기 개발된 모듈의 적극적인 재사용이 필요하다.

본 고에서는 공유를 위한 클라우드 저장소를 기반으로 공동협업을 위한 웹오피스와 소통을 위한 ESN으로 구성된 참조모델에 따른 업무환경인 NiCloud 서비스의 마이크로 서비스 아키텍처 기반으로 클라우드 최적화 하기 위한 구성을 설명하였다. 앞으로는 본 고에서 제안한 참조모델의 다양성과 유연성 측면의 고도화를 위하여 기능의 추가와 서비스의 확장을 용이하게 하는 API(Application Programming Interface) 공개를 통한 클라우드 업무환경 플랫폼화를 통한 협업 관련 서비스 생태계 활성화와 클라우드 플랫폼 파스-타에 적합한 아키텍쳐 적용으로 안정적인 운영과 지속적 고도화를 위한 기반을 마련하고 있다.