개발자

"개념부터 과제까지" 마이크로서비스 완전분석

Brandon Butler | Network World 2016.11.11


마이크로서비스의 장점
마이크로서비스 아키텍처는 분명히 여러 가지 장점이 있다.

민첩성. 애플리케이션 요소를 서비스 단위로 분해했기 때문에 각 요소를 독립적으로 개발할 수 있다. 스타트업 코드 저장소이자 깃허브의 라이벌 깃랩(GitLab) CEO 시드 시브란지는 “더 이상 개발 팀 전체가 하나의 구호에 맞춰 일사분란 하게 움직일 필요가 없다”고 말했다. 하나의 앱에 100 명의 개발자가 매달려 일을 하는 것이 아니라 10 명씩 10개의 팀으로 나뉘어져 앱의 각 요소들을 따로 개발하기 때문이다. 업데이트 역시 사전에 정해진 스케줄에 따라 전체 앱을 다 업데이트 하는 것이 아니라 각 요소 별로 새로운 기능이 완성될 때마다 바로 내놓을 수 있다.

데미지 최소화. 설령 앱의 특정 요소나 서비스에 문제가 생겨도 오류로 전체 앱이 다 마비되는 일은 일어나지 않는다. 451 리서치의 애널리스트 도니 버크홀츠는 “문제 발생 시 그 영향 범위를 최소화 하는 것이 포인트”라고 말했다. 예를 들어 은행 웹사이트를 마이크로서비스 방식으로 제작했다고 해보자. 송금 기능에 문제가 발생해도 여전히 잔액 조회는 가능하다. 즉 서비스가 서로 독립적으로 제작, 배치됐기 때문에 (적어도 이론적으로는) 한 요소에 문제가 발생해도 다른 서비스들은 이에 영향 받지 않고 정상적으로 구동하는 것이다.

개발 팀의 독립적인 작업이 가능하다. 마이크로서비스 아키텍처 하에서는 각 개발 팀이 다른 개발팀과 관계 없이 독립적으로 애플리케이션 요소를 제작할 수 있다. 이렇게 개별적으로 제작된 요소들은 공통 API를 통해 하나의 애플리케이션으로 통합된다. 시브란지는 팀 별로 하나의 분야에 집중할 수 있기 때문에 코딩의 퀄리티도 높아진다고 말한다. 각 팀이 자신이 맡은 분야에 있어 일종의 전문가가 되어 작업할 수 있게 되는 것이다.

이렇게 글로 쓰는 것은 쉽지만, 실제 마이크로서비스 아키텍처에 기반한 애플리케이션 제작은 그리 녹록하지 않아 보인다.

극복해야 할 과제들
451 리서치 애널리스트 버크홀츠는 애자일이나 데브옵스 마인드셋을 가진 팀일수록 마이크로서비스 애플리케이션 방식에 더 잘 적응 할 것이라고 말한다. 데브옵스란 개발(developer)과 운영(operation) 기능을 문자 그대로, 혹은 팀 방식으로 통합하는 것을 말한다.

이런 환경이 일단 조성되면, 코드를 쓰고, 테스트하고, 배치하는 작업은 매우 빠르게 진행된다. 실제로 많은 데브옵스 샵들이 개발 및 테스팅, 제작 평가 앱에 가상화, 클라우드 환경 등 자동화된 셀프 서비스 인프라를 도입하고 있기 때문이다.

451 리서치의 조사 결과에 따르면 조사 대상 기관의 2/3이 애플리케이션 개발에 애자일 방법론을 도입하고 있었으며 40% 가량은 데브옵스 방식을 채택하고 있었다. 이들이 바로 버크홀츠가 말한, 마이크로서비스 아키텍처에 바로 적응할 수 있는 기관들이다. 그러나 이러한 차세대 애플리케이션 개발 트렌드에 익숙지 않은 기관의 경우 마이크로서비스 구조로의 이전이 더 힘들게 느껴질 수도 있다.

이런 애자일한 환경에서는 대부분 애플리케이션 컨테이너가 사용된다. HBC의 픽에 따르면, 컨테이너와 마이크로서비스는 거의 공생 관계에 있다. 하나의 애플리케이션을 구성하는 여러 파트를 분할할 경우 이를 컨테이너에 기반해 운용하므로 개발자와 인프라 오퍼레이션 팀 간의 원활한 협업이 가능해진다는 것이다. 앱을 컨테이너에서 구동하고, 그 컨테이너를 위한 인프라를 마련하는 작업이 개발팀과 오퍼레이션 팀간에 적절히 이루어지기 때문이다.

마이크로서비스가 가져오는 인프라 상의 변화는 이뿐만이 아니다. 포레스터 사 애널리스트 데이브 바톨레티는 개발자들이 새로운 아키텍처를 수용함에 따라 IT 인프라의 역할도 변할 수 밖에 없다고 말한다.

“마이크로서비스 아키텍처를 수용한 개발자들이 일일이 IT에 VM을 요구하지는 않을 것”이라고 그는 설명했다. 그보다는 API를 통한 인프라 리소스의 즉각적 가용성을 기대할 것이다.

물론 이러한 인프라 환경을 지원하는 툴이 없지 않다. VM웨어나 오픈스택의 사설 클라우드 소프트웨어를 이용해 내부 클라우드를 구성할 수도 있고, IT가 직접 인프라를 제작하지 않아도 아마존, 마이크로소프트, 구글 등의 공용 클라우드 플랫폼을 이용할 수도 있다. 인프라 컨트롤 자동화를 위해 클라우드 파운드리나 레드 햇등의 PaaS 플랫폼을 이용하는 것도 하나의 옵션이다.

사물 인터넷과 같은 이벤트 중심 애플리케이션에는 소위 말하는 ‘서버리스(serverless)’ 컴퓨팅 플랫폼이 이상적이다. 이러한 플랫폼의 도입과 함께 IT의 역할은 인프라를 제공하는 것에서 개발자들이 직접 마이크로서비스를 디플로이 할 수 있는 환경을 조성해 주는 쪽으로 변화해가게 된다.

Sponsored

회사명 : 한국IDG | 제호: ITWorld | 주소 : 서울시 중구 세종대로 23, 4층 우)04512
| 등록번호 : 서울 아00743 등록발행일자 : 2009년 01월 19일

발행인 : 박형미 | 편집인 : 박재곤 | 청소년보호책임자 : 한정규
| 사업자 등록번호 : 214-87-22467 Tel : 02-558-6950

Copyright © 2024 International Data Group. All rights reserved.