[칼럼] MANTL과 함께라면 마이크로서비스도 어렵지않아요!

시스코, MANTL




혹시 Project Shipped라고 들어보신 적이 있으신가요?
 
2015년 초반쯤 시스코가 Project Shipped라는 이름으로 오픈소스 프로젝트를 진행한 적이 있습니다. 마이크로 서비스 아키텍처 관련된 내용이었는데요. 이 Project Shipped가 MANTL 이라는 이름의 새옷을 입고 최근에 클라우드기반 애플리케이션 개발의 정석이라 할 수 있는 마이크로서비스를 위한 인프라 관리 프레임워크로 자리잡게 되었습니다. 

듣고 있자니 마이크로서비스도 낮설다구요? 살짝 개념을 살펴보고 가겠습니다.


마이크로서비스는 말 그대로 작은 서비스를 의미합니다. 애플리케이션 개발 시 다양한 기능을 가진 몇개의 커다란 컴포넌트를 만들어 조합하기 보다는, 핵심적인 기능을 가지는 여러 개의 작은 컴포넌트로 애플리케이션을 개발하는 방법을 의미합니다. 
 
예를 들어볼까요? 기존에 하드웨어를 공유하고 하나의 가상머신에 여러 개의 기능이 올라가는 것이 일반적이었습니다. 최근에는 컨테이너 기술을 적용하여 하드웨어에 OS의 기본 기능은 공유하면서 특정 개발 환경은 독립적으로 구성해 기능을 구현하는 컨테이너가 주목을 받게 되었습니다. 즉, 하나의 컨테이너에 하나의 기능만 올리도록 구성하는 것이지요. 이런 컨셉을 마이크로서비스라고 합니다. 


가상머신 대비 컨테이너의 장점

그럼 “이 시점에서 왜 컨테이너인가요?” 라는 질문이 나올것 같은데요. 가상머신 대비 컨테이너는 2가지 큰 장점을 지니고 있습니다.
  1. 프로비저닝 시간이 아주 많이 단축되고요.
  2. 물리서버를 기준으로 집적도가 아주 많이 높아진다는 점입니다. 
이는 거대한 소프트웨어 회사인 구글이 오래전부터 컨테이너를 사용하고 있는 이유이고, 이를 통해 내부에서 발생하는 반복적인 서비스 증설 작업에 큰 효과를 누렸다고 합니다. 


MANTL의 목표는 무엇일까요?

MANTL이 하고자 하는 가장 큰 목표는 클라우드 개발자에게 편리한 환경을 제공해주는 것입니다. 구체적으로 아래 세 가지로 정도로 정리할 수 있을 듯합니다.
 
첫번째, 애플리케이션 개발환경에 대한 자유입니다.

최근들어 개발자에게 클라우드 환경이 익숙한 개발 환경으로 손꼽히고 있습니다. PaaS(Platform as a Service)라는 이름으로 제공되는 클라우드 서비스가 대표적인 것 같습니다. 

모든 게 제공되는 환경인 PaaS이지만, 서비스가 구동되기 위해서 여전히 인프라가 필요합니다. MANTL의 가장 아래 부분에 위치하는 테라폼(Terraform)은 다양한 이기종 클라우드에 가상 머신을 배포하는 기능을 제공합니다. 개발자에게 배포되는 인프라가 아마존인지 프라이빗 클라우드인지 환경에 대한 검증 및 테스트에 대한 부담은 잊게해주고, 자신이 작성하는 코드에 집중하도록 도와주는 개발자를 위한 툴인 것이지요. 

MANTL 아키텍처



두 번째는 클라우드기반 애플리케이션을 개발하는 좋은 코치 역할을 수행해 줍니다.


모든 개발자가 클라우드 기반 애플리케이션 개발에 익숙하지는 않을 것입니다. 그리고 컨테이너 기반 서비스 개발에 서툴거나 어려워하는 개발자도 많을 것입니다. 예를 들면, 기존 여러 계층으로 설계된 애플리케이션들은 대부분 연결해야 할 대상에 대해서 설정 파일 형태로 관리되고 각기 알아서 관리, 운영되어 왔습니다. 또한, WAS 애플리케이션 서버는 자신이 연결해야 할 DB서버의 정보를 자신의 설정 화일에 기록해주는 방식으로 관리하고 있습니다. 


클라우드 기반 애플리케이션에서는 이러한 형태를 서비스 디스커버리란 이름으로 동적으로 찾아서 연결할수 있도록 구성하고 있으며, MANTL 에서는 DNS 기반 서비스 디스커버리 솔루션인 Consul을 사용합니다. 



마지막으로 클라우드 기반 마이크로서비스를 개발 운영할수 있는 풀 스택을 제공하고 있습니다. 


클라우드 기반 개발 및 운영 관련해서 최근들어 풀 스택이란 용어를 자주 접하게 되는데요. 풀 스택은 애플리케이션을 개발하고, 배포 및 운영하는데 모든 항목을 지원하는 개념으로 이해하시면 됩니다.


MANTL은 마이크로서비스 개발에 있어 풀 스택을 제공하고 있으며, 가상머신에 대한 배포, 컨테이너들이 배포되어 운영되는 컴퓨터 클러스터를 관리하는 기능, 멀티 테넌트 환경에서 다양한 서비스들이 동적으로 등록되고 검색되는 환경 및 로그 및 데이터를 분석할 수 있는 환경까지 전부 제공하고 있습니다.


마이크로서비스 배포 및 운영에 발생하는 다양한 시스템 로그 및 사용자 트랙잭션 로그에 대해서는 ELK(Elasticsearch, Logstash, Kibana)를 통해서 데이터를 수집하고 분석하며 사용자가 쉽게 볼 수 있도록 형상화시키는 오픈소스 기반 컴포넌트 스택도 포함고 있습니다. 


지금까지 MANTL에 대해서 한 번 살펴보았습니다. 


MANTL은 하나의 소프트웨어 컴포넌트가 아닙니다. 

마이크로서비스를 개발/운영하는데 필요한 

인프라, 컨테이너 클러스터 관리, 서비스 등록/검색 및 데이터 분석을 위한 컴포넌트를 

유기적으로 연결시켜 만들어 놓은 관리툴로 이해하시면 됩니다. 


이미 잘 알고 계시는 오픈스택의 발전으로 인해 이미 시스코 제품이 오픈스택 기반으로 출시되고 개발/운영되고 있으며, 향후에는 시스코의 소프트웨어 제품 및 서비스가 이 MANTL 위에서 개발되어 출시되는 날도 멀지 않았다고 보여집니다. 


클라우드의 발전은 점점 더 애플리케이션 중심으로 이동하고 있으며, 이 변화를 시스코 역시 애플리케이션 측면에서 강력하게 추진하고 있습니다. 앞으로도 어떤 변화가 일어날지 기대해주세요! 



이 칼럼을 SlideShare에서 다운받으실 수 있습니다! 





Cisco IT Connect

시스코 전문가들의 칼럼에 담긴 최신 IT 트렌드!


이 글은 시스코 김형수 코리아 SDN 스페셜리스트가 작성한 칼럼입니다.


  


저작자 표시 비영리 동일 조건 변경 허락
신고
크리에이티브 커먼즈 라이선스
Creative Commons License