개방형 클라우드 플랫폼 기반의 클라우드 협업환경 구성
한국정보화진흥원 / 김정엽 수석
공공부문의 협업·공유·소통을 위한 클라우드 업무환경과 주요 구성요소를 포함하는 서비스 참조모델에 따라 공공기관 대상으로 실제 구현하여 구축?활용중인 NiCloud 서비스의 구축 사례를 기반으로 국내 환경에 적합한 클라우드 기반 업무환경의 개방형 클라우드 플랫폼 적용 사례를 설명한다.
미국, 영국, 일본 등 IT 선진국들은 국가정보 자원의 효율적 관리를 위해 클라우드의 도입과 클라우드 기반 공공서비스 전환을 추진하고 있다. 이를 통해 공공부문의 대국민 서비스뿐만 아니라, 내부 업무환경도 클라우드 기반으로 전환하여 업무 효율성을 향상시키고 있다.
클라우드 업무환경은 기존 업무환경의 공간적 제약과 단말기 제약을 받지 않고 정보에 접근하여 업무를 처리하고 공유·협업할 수 있는 업무환경을 제공한다. 본고에서는 공유·협업·소통을 위한 클라우드 업무환경 서비스 참조모델을 실제 공공기관에 구현한 모델인 NiCloud 서비스와 이를 위한 개방형 클라우드 플랫폼을 소개하고 NiCloud 서비스에 적용하기 위한 모델을 간략하게 설명한다.
1. 지능형 클라우드 협업환경 NiCloud 개요
공공부문에서 공공기관 지방이전(136개 공공기관 9대 혁신도시 이전, 38,257명) 정책으로 출장이나 현장 행정이 증가함에 따라, 기존 사무실 PC 중심의 업무환경에서 장소나 시간에 구애받지 않는 업무환경으로의 전환이 요구되고 있다. 또한 기존에 개인PC에 분산되어 있는 정보자원을 통합하여 효율적으로 활용하기 위한 협업 및 공유 기반에 대한 필요성이 증가하고 있다.
이에, 공공기관에 적합한 구성으로, 클라우드 저장소를 기본으로 웹오피스, ESN을 통합·연계 활용하여 공유·협업·소통을 지원하는 업무모델을 서비스 참조모델을 기반으로 클라우드 업무환경 서비스를 구축하게 되었다.
지능형 클라우드 협업환경 NiCloud는 클라우드 업무환경 참조모델 중 저장소·웹오피스·ESN 통합모델을 구현한 서비스이다. NiCloud는 공공부문의 업무생산성 강화 수단으로 공유·협업·소통 환경을 클라우드 기반으로 구현하여 제공하는 것을 목적으로 한다. 이를 위해, 웹표준(HTML5) 기반의 클라우드 저장소·웹오피스·ESN을 클라우드 업무환경으로 서비스한다. [그림 1]은 NiCloud의 주요 특징을 설명한다.
![[그림 1]지능형 클라우드 협업환경 NiCloud 서비스](/wp-content/uploads/2019/10/%EA%B7%B8%EB%A6%BC-1%EC%A7%80%EB%8A%A5%ED%98%95-%ED%81%B4%EB%9D%BC%EC%9A%B0%EB%93%9C-%ED%98%91%EC%97%85%ED%99%98%EA%B2%BD-NiCloud-%EC%84%9C%EB%B9%84%EC%8A%A4.png)
[그림 1] 지능형 클라우드 협업환경 NiCloud 서비스
2. 개방형 클라우드 플랫폼 파스-타(PaaS-TA) 개념
PaaS(Platform as a Service)는 IaaS(Infrastructure as a Service)와 SaaS(Software as a Service)의 중간인 미들웨어 성격의 클라우드 서비스로서 컨테이너 기반으로 SW 플랫폼 서비스를 제공하고 있다. PaaS는 표준화된 HW 및 SW의 설치 및 구성을 자동화하여 신속한 개발환경·테스트가 가능하게 하는 서비스이다.
![[그림 2] 클라우드 서비스 모델별 관리 범위](/wp-content/uploads/2019/10/%EA%B7%B8%EB%A6%BC-2-%ED%81%B4%EB%9D%BC%EC%9A%B0%EB%93%9C-%EC%84%9C%EB%B9%84%EC%8A%A4-%EB%AA%A8%EB%8D%B8%EB%B3%84-%EA%B4%80%EB%A6%AC-%EB%B2%94%EC%9C%84.png)
[그림 2] 클라우드 서비스 모델별 관리 범위
PaaS는 애플리케이션 개발·실행·관리를 가능하게 하는 플랫폼을 제공하며, SaaS의 개념을 개발 플랫폼으로 확장한 방식이다. 개발을 위한 플랫폼 구축이 필요 없이 웹에서 쉽게 빌려 쓸 수 있는 모델로, 개발자는 개발에만 집중하고 애플리케이션이 동작하는 주변 환경은 가져다 쓰는 구조이다. 이를 통해 개발에서 배포까지 라이프사이클이 짧아 DevOps 문화를 적용하기 용이하다는 장점을 가진다.
![[그림 3] 클라우드 플랫폼 지원 기능](/wp-content/uploads/2019/10/%EA%B7%B8%EB%A6%BC-3-%ED%81%B4%EB%9D%BC%EC%9A%B0%EB%93%9C-%ED%94%8C%EB%9E%AB%ED%8F%BC-%EC%A7%80%EC%9B%90-%EA%B8%B0%EB%8A%A5.png)
[그림 3] 클라우드 플랫폼 지원 기능
개방형 클라우드 플랫폼인 파스-타(PaaS-TA)는 클라우드 인프라 환경을 제어하면서 애플리케이션을 쉽게 개발하고 안정적으로 운영할 수 있도록 관리·지원하는 클라우드 플랫폼을 말한다.
![[그림 4] 파스-타의 핵심 기능](/wp-content/uploads/2019/10/%EA%B7%B8%EB%A6%BC-4-%ED%8C%8C%EC%8A%A4-%ED%83%80%EC%9D%98-%ED%95%B5%EC%8B%AC-%EA%B8%B0%EB%8A%A5.png)
[그림 4] 파스-타의 핵심 기능
파스-타는 부처, 민·관 협업 지원 및 개발자들의 자유로운 개발환경을 위해서 주요 오픈소스인 Cloud Foundry 등을 대상으로 핵심기술, 보안등의 오픈소스를 분석하여 만든 전자정부표준 프레임워크 기반의 개방형 클라우드 플랫폼 이다. 이를 위해 오픈소스를 활용하여 누구나 사용할 수 있도록 다양한 IaaS 환경을 지원하며, 쉽고 편하게 쓸 수 있도록 설치 자동화를 만들어서 배포하고 있다. 파스-타는 인프라 제어 및 관리서비스·실행환경·서비스환경·개발환경·운영환경으로 구성되어 있다.
![[그림 5] 파스-타의 구성요소](/wp-content/uploads/2019/10/%EA%B7%B8%EB%A6%BC-5-%ED%8C%8C%EC%8A%A4-%ED%83%80%EC%9D%98-%EA%B5%AC%EC%84%B1%EC%9A%94%EC%86%8C.png)
[그림 5] 파스-타의 구성요소
파스-타는 버전1.0에서 4.0까지 발전하여 Open PaaS 핵심 기능에서 운영·관리 도구, 개발·운영·관리 환경, 이종 클라우드 자원·관리 기술과 쿠버네티스 등 컨테이너 환경까지 지원하게 되었다
![[그림 6] 파스-타 주요 버전별 제공 기능](/wp-content/uploads/2019/10/%EA%B7%B8%EB%A6%BC-6-%ED%8C%8C%EC%8A%A4-%ED%83%80-%EC%A3%BC%EC%9A%94-%EB%B2%84%EC%A0%84%EB%B3%84-%EC%A0%9C%EA%B3%B5-%EA%B8%B0%EB%8A%A5.png)
[그림 6] 파스-타 주요 버전별 제공 기능
3. 개방형 클라우드 플랫폼 파스-타 기반의 클라우드 업무환경 구성
최근의 클라우드 네이티브 서비스는 클라우드 컴퓨팅 모델의 장점을 모두 활용하는 서비스를 개발하고 실행하기 위한 접근방식으로, 클라우드 환경에서 효율적으로 작동하고 클라우드의 특징을 활용할 수 있다. 특히, 개발·테스트·배포를 모두 자동화 시켜 개발 사이클이 끊임없이 순환되도록 하여 개발속도를 최대화 시키는 개발스타일인 DevOps와 마이크로 서비스 아키텍처를 기반으로 하는 경우가 많으며 배포가 서비스의 수 만큼 이루어지게 될 뿐만 아니라 테스트 또한 각각의 서비스가 연동되어 발생하는 집학체의 수 만큼 필요하게 되므로 이를 지원하기 용이한 PaaS(클라우드 플랫폼) 환경을 통해서 배포된다. 클라우드 플랫폼인 PaaS는 클라우드 네이티브한 개발 환경을 제공하며, 개발자는 마이크로 서비스를 고려하여 DevOps 스타일로 개발하게 된다.
![[그림 7] 클라우드 네이티브 애플리케이션과 기존 애플리케이션 비교](/wp-content/uploads/2019/10/%EA%B7%B8%EB%A6%BC-7-%ED%81%B4%EB%9D%BC%EC%9A%B0%EB%93%9C-%EB%84%A4%EC%9D%B4%ED%8B%B0%EB%B8%8C-%EC%95%A0%ED%94%8C%EB%A6%AC%EC%BC%80%EC%9D%B4%EC%85%98%EA%B3%BC-%EA%B8%B0%EC%A1%B4-%EC%95%A0%ED%94%8C%EB%A6%AC%EC%BC%80%EC%9D%B4%EC%85%98-%EB%B9%84%EA%B5%90.png)
[그림 7] 클라우드 네이티브 애플리케이션과 기존 애플리케이션 비교
특히 애플리케이션의 개별 부분은 독립적인 기능으로 나누어지면서 서로 연결되며, 모놀리스 아키텍처에서 정의된 기능을 작은 서비스로 분리하는 행위를 마이크로 서비스라고 한다. 서비스들간 서로 소통을 위한 구성요소 사이의 상호작용 규칙을 API(Application Programming Interface) 라고 한다.
기존의 PaaS 서비스에서 컨테이너 중심으로 서비스되는 클라우드-네이티브(cloud-native) 지향의 마이크로 서비스 아키텍처(MircroServices Architecture: MSA)로 변화하고 있다. MSA는 독립적으로 작은 기능들을 결합하여 구성된다. MSA 구조로 변환하면, 개발 기간 단축 및 확장성 개선을 통해 서비스 개발의 자동화가 향상된다. MSA 구조의 서비스들은 대부분 가상 머신(Virtual Machine: VM) 보다 가볍고 신속한 컨테이너(container) 기반의 기능 구현이 적합한 것으로 알려져 있다. 따라서 컨테이너 중심의 MSA 구조에 대응하는 PaaS 차원의 컨테이너 지향 SaaS 서비스 도구들이 클라우드 사업자를 중심으로 출시되어 확산되고 있다.
파스-타 기반의 마이크로서비스 구조로 기존 클라우드 서비스를 전환하는 경우, 기존 서비스 구조를 마이크로서비스에 적합한 구조로 나누고 이를 연계하는 구조를 검토해야 하는데, 마이크로서비스 사이의 통신은 공유 데이터베이스가 아닌 API를 통해 이루어진다. 본 고에서 소개하는 공공기관 클라우드 협업환경인 NiCloud 의 경우 다양한 기존 서비스들을 융합한 클라우드 서비스로서 향후 마이크로서비스 아키텍처를 적용하여 클라우드 네이티브 애플리케이션으로서 클라우드 플랫폼인 파스-타의 API 게이트웨이를 포함하는 DevOps 지원 기능을 충분히 활용하고 컨테이너에 적합한 구조로 재구성하였다.
이와 함께 최근 도커·쿠버네티스 등 컨테이너 기반의 가상환경과 개방형 플랫폼인 파스-타에서 수평적 확장이 용이한 탄력적 아키텍처로서 기존에 모놀리식 구조로 구성되었던 서비스에서 클라우드, 특히 컨테이너 전환 시 유용한 플랫폼으로 파스-타가 적합한 것으로 평가받고 있다. 특히 마이크로 서비스들을 체계적으로 관리하기 위해서는 마이크로 서비스 API를 정의하고 생성하는 서비스 생성자와 서비스를 사용하는 소비자 간에 잘 정의된 마이크로 서비스 API 체계가 요구되었으며, 이 들 마이크로서비스간에 연계를 위한 API 게이트웨이 및 계정 API 등을 위한 기능 등을 파스-타에서 제공하는 기능을 활용하여 재작성 되고 있다.
이를 통해 세부 서비스의 배포를 서비스 수준에서 제어 가능하며, 각 서비스를 쉽게 확장 가능하고 소규모 구현으로 분리한 서비스를 개발자가 변경과 테스트 수행 시 운영환경에 보다 쉽게 대응할 수 있고 구성요소별 적절한 리소스 확보에 유리하다는 장점을 가진다.
본 고에서 제안하는 참조모델들은 기본 요소인 저장소·웹오피스·ESN만을 포함하고 있으며, 또한 수요기관에 따라 다양한 요구조건이 존재하기 때문에 이를 다 만족시키기에는 한계가 있다. 이를 개선하기 위해서는 업무환경의 안정적인 운영과 유연하고 지속적으로 기능을 변경하고 확장하기 위한 기반과 그에 적합한 아키텍처 적용이 필요하다.
반면, 개별 서비스의 로그나 스토리지 등의 중복 이슈는 클라우드 플랫폼 파스-타가 제공하는 기능과 공용 스토리지를 활용가능하도록 구성하여 해결 가능하다. 본 고에서는 공통 스토리지로서 분산파일시스템의 일종인 GlusterFS를 활용하여 세부 마이크로서비스가 활용하도록 구성하였다. 특히 마이크로서비스간 API는 파스-타에서 제공하는 API 게이트웨이를 활용하고, 기존 서비스들이 개별로 접근하여 잦은 병목현상을 일으키는 사용자계정DB 접근은 별도의 인증·접근제어 마이크로 서비스로 분리하여 API 게이트웨이를 통해 다른 마이크로서비스에 제공하도록 정리하였다. 이를 통해 마이크로서비스 단위로 컨테이너에 적합한 크기로 조절하여 클라우드 네이티브 구조로 재구성한다.
![[그림 8] 개방형 클라우드 플랫폼 기반의 NiCloud 서비스 구성](/wp-content/uploads/2019/10/%EA%B7%B8%EB%A6%BC-8-%EA%B0%9C%EB%B0%A9%ED%98%95-%ED%81%B4%EB%9D%BC%EC%9A%B0%EB%93%9C-%ED%94%8C%EB%9E%AB%ED%8F%BC-%EA%B8%B0%EB%B0%98%EC%9D%98-NiCloud-%EC%84%9C%EB%B9%84%EC%8A%A4-%EA%B5%AC%EC%84%B1.png)
[그림 8] 개방형 클라우드 플랫폼 기반의 NiCloud 서비스 구성
4. 결론
클라우드 업무환경은 공공부문의 클라우드 도입과 이를 활용한 업무 생산성 향상을 위하여, 클라우드가 제공하는 유연성과 접근 편의성을 적극 이용한 사례로 볼 수 있다. 본 고에서 설명한 참조모델의 구현인 NiCloud 이용을 통해 클라우드 업무환경이 공공부문에서 적극 활용되며, 이를 통해 업무의 효율성을 증대시키는데 활용된다.
마이크로 서비스 아키텍처는 개발과 운영 조직을 하나로 묶어 빠른 의사소통이 가능한 DevOps 환경을 잘 지원가능하고, 소규모 서비스 단위로 관리됨에 따라 기존의 모노리틱 아키텍처에서 서비스의 일정 부분을 고치더라도 전체를 다시 빌드하고 재배포하는 변경주기에 비해 복잡한 대규모 시스템을 독립적인 단위로 결합하여 구성할 수 있으므로 서비스의 변경이 용이하고 효율적인 자원 사용이 가능하다는 장점이 있다.
본 고에서는 공공기관 전용 공유·협업·소통을 위한 클라우드 업무환경을 구현한 모델인 NiCloud 서비스를 개방형 클라우드 플랫폼 파스-타에 적용하였다. 개방형 플랫폼을 통한 Open API 적용으로 ESN(Enterprise Social Network), 저장소, 웹오피스, 영상회의 등 업무의 협업·소통·공유 환경을 위한 통합모델 서비스들을 MSA(마이크로서비스아키텍처) 기반으로 개방형 플랫폼에 전환하여 파스-타 플랫폼 환경을 통해 다양한 환경을 지원할 수 있게 되었다. 이는 다양한 서비스가 융합된 NiCloud의 서비스 사상과 일치하며, 클라우드 친화적인 구조로 서비스가 전환될 수 있음을 확인할 수 있다. 이를 통해 파스-타를 기존의 서비스 전환에 적용 시 참조 가능한 플랫폼임을 확인하였다. 개방형 클라우드 플랫폼인 파스-타는 부처, 민·관 협업 지원 및 개발자들의 자유로운 개발환경 제공을 통해 국내 클라우드 사업을 궤도에 올려놓을 것으로 기대한다.