Aug 17, 2018

마이크로서비스 아키텍처, 복잡성이 문제로다

IT 인프라를 애플리케이션 내 기능에 따라 별도로 쪼개 운영하는 마이크로서비스 아키텍처가 대세로 떠올랐다. 애플리케이션을 보다 빠르게 개발하고 지속적으로 성능을 향상시킬 수 있다는 점에서 각광받고 있다.

​하지만, 마이크로서비스 아키텍처를 적용하는 게 생각처럼 쉽지 않다는 목소리도 높다. 빠르고 유연한 애플리케이션을 제공하는 데만 초점을 맞추면 네트워크 정책과 보안 정책이 복잡해 질 수 있기 때문이다.

이에 어떻게 해야 애플리케이션 배포, 업그레이드 속도는 높이고 SW작동의 복잡성을 줄일 수 있을지가 성공적인 마이크로서비스 아키텍처 도입을 위한 핵심 과제로 떠올랐다.

​■대세로 떠오른 마이크로서비스 아키텍처 잘 쓰려면

​마이크로서비스 아키텍처란 애플리케이션 구성요소를 특정 목적별로 쪼갠 뒤 독립적으로 작동하도록 극소형 서비스로 만들고, 여러 극소 서비스들을 조합해 완성된 애플리케이션으로 조립하는 개발 형태를 말한다.

​과거의 서비스지향아키텍처(SOA)보다 추상화 수준을 한차원 더 세분화한 것으로 볼 수 있다.

​마이크로서비스 아키텍처 환경에서 개발조직은 각 서비스들을 전담해 지속적 통합과 지속적 개발(CI/CD)을 하게 된다. 솔루션과 IT서비스 개발속도를 높이고, 유지보수에 투입되는 공수를 줄일 수 있어 인기를 모으고 있다.
마이크로서비스 아키텍처는 레고 블록을 조립하듯 여러 서비스를 조합해 하나의 애플리케이션으로 구현

지난 2016년 9월 애플리케이션 개발 플랫폼 업체 라이트벤드가 자바가상머신(JVM) 개발자와 IT 전문가 2천151명을 대상으로 실시한 설문조사에서 응답자 30% 이상이 마이크로서비스를 현업 시스템에서 운영중이라고 답했다. 응답자 20%는 마이크로서비스 현업 시스템 적용을 심각하게 고려중이라고 답변했다. 이미 현업에서 마이크로서비스 아키텍처가 대세로 부상했음을 보여준다.

하지만 운영 환경이 늘어나면서 시스템 운영환경의 복잡성도 커지는 문제가 발생한다. 마이크로서비스 아키텍처의 최대 강점인 개발 생산성을 극대화하는 데 발목을 잡는 일이 생긴다.

이런 문제를 어떻게 해결해야 할까. 애플리케이션 플랫폼 관리 및 보안 솔루션 업체 F5네트웍스는 개발팀 요구에 맞춰 수정할 수 있는 사전 개발된 템플릿을 만들어 대응할 것을 제안한다.

이렇게 하면 사용자가 각 애플리케이션 팀에 어떤 서비스를 제공할 것인지, 어느 정도 수준의 개별 통제력을 부여할 것인지 결정할 수 있다. 또, 운영 환경의 애플리케이션 성능에 대한 가시성과 셀프 확장 옵션도 제공 가능하기 때문에, 애플리케이션 책임자와 네트워크 운영 팀 간 충돌을 없애고 각 기업이 원하는 속도와 규모로 강력한 보안, 성능 및 가용성 서비스의 이점을 더 많은 애플리케이션으로 확장해 준다는 설명이다.