마이크로 서비스 아키텍처 (MSA) 구축하기

마이크로 서비스는 복잡한 응용 프로그램을 설계하기 위한 아키텍처로 애플리케이션을 독립적인 요소로 분해하여 서비스를 제공합니다.


모든 요소를 하나의 애플리케이션에 구축하는 모놀리식 아키텍처와 달리,

마이크로 서비스는 하나의 애플리케이션을 구성하면서 분할된 다수의 서버 또는 컨테이너를 통해 애플리케이션 기능뿐만 아니라 데이터까지 분리하여 격리된 독립 환경으로 구성합니다.


마이크로 서비스 아키텍처는 통상 MSA라고 부르는데, 

개발 주기의 단축, 쉬운 배포와 복구, 높은 확장성과 개방성 때문에 클라우드 네이티브 아키텍처에서 반드시 필요한 기술로 언급됩니다.


마이크로 서비스가 구현되는 방식은 현대적이고 클라우드에 기반한 애플리케이션을 위한 자연스러운 토대를 만듭니다. 마이크로 서비스 아키텍처를 설계하면서 중요한 것은 기술적으로 아키텍처를 잘 설계하는 것도 있겠지만 서비스를 개발하는 팀의 구조를 아키텍처에 맞는 구조로 잘 만드는 것입니다.


여기에서 우리는 이미 클라우드 네이티브 아키텍처의 중요 요소로 언급했던 DevOps를 떠올리게 됩니다. 

팀이 개발과 운영을 모두 담당함으로써 개발된 시스템을 빠르게 배포하고 운영 노하우를 반영하여 시장의 요구 사항에 빠르게 대응합니다.


이렇게 개발된 시스템을 직접 배포하고 운영하는 플랫폼을 지원하기 위해서는 벤더에 종속적이지 않고, 개발자가 쉽게 운영할 수 있는 인프라 관리 기술이 필요합니다.


여기서 등장하는 기술이 바로 도커 컨테이너 입니다.


확장성과 표준성을 특징으로 하는 도커는 마이크로 서비스의 유연하고 탄력적인 배포에 매우 적합합니다. 게스트 운영체제가 설치되지 않고, 프로세스 레벨의 분리가 가능한 컨테이너를 사용하는 경량화된 가상화 방식인 도커를 사용하는 것이 MSA를 구성하는데 장점으로 작용합니다.


하지만 MSA 도입은 단점도 존재합니다.


MSA는 모든 기능적 특성이 개별 서비스로 전체 서비스가 커짐에 따라 그 복잡도가 기하급수적으로 늘어날 수 있습니다. 


컨테이너 통합관리 솔루션 ‘아코디언’을 이용하면 MAS도입에 따른 부작용을 최소화하면서 단점을 보완할 수 있는데, 이를 하나씩 살펴보도록 하겠습니다.


첫째, 하나의 커다란 서비스를 독립적인 운영 및 배포가 가능한 작은 서비스로 잘게 나누었기 때문에 쪼개진 서비스의 배포, 운영, 모니터링에 대한 관리 포인트가 증가합니다. 


아코디언은 도커 컨테이너 오케스트레이션 툴인 쿠버네티스를 기반으로 설계되었기 때문에 쿠버네티스에서 제공하는 운영, 배포, 모니터링 기능뿐 아니라 마이크로 서비스 간의 전체 연결 구조를 파악하여 분배하고, 장애 대응 및 추적을 위한 ‘서비스 매쉬(Service Mesh)'를 제공합니다.



둘째, 클라이언트와 서비스 사이에 위치하는 API 게이트웨이를 구축해야 합니다. 

MSA환경에서는 필연적으로 다수의 마이크로서비스 End Point가 생기기 때문에 이를 단일화 하고 클라이언트로부터의 요청을 적절한 마이크로서비스로 라우팅해 주는 API 게이트웨이가 필요합니다. 


아코디언은 자체적으로 제공하는 API Gateway뿐만 아니라, Nginx API Gateway 도 제공합니다. 신속한 다중 API 정의 및 구성, 사전 보안기능, 인스턴스 별 모니터링 등 효과적으로 통합된 API관리를 할 수 있습니다.


셋째, 마이크로서비스는 개수가 많고 유동적이기 때문에 CI/CD가 체계적으로 구축이 되어야 합니다. 

또한 서비스 간 복잡한 의존성이 있다면 빌드 및 배포에 확인 절차가 포함되어 까다로울 수 있습니다.

 

 아코디언은 CI/CD를 위해 Jenkins를 활용하여 빌드, 컨테이너 이미지 생성, 배포를 자동으로 실행해 줍니다. 또한 사용자 파이프라인을 활용하여 맞춤형 빌드 및 배포를 제공합니다.



소프트웨어 개발 방법론이 시시각각 변화하는 가운데, 컨테이너 통합 관리 솔루션인 아코디언을 활용하여 모놀리스 아키텍처로 시작한 시스템을 마이크로 서비스로 손쉽게 전환하시기 바랍니다.


계속해서 컨테이너 통합관리 Use Case 는 이어집니다!

글을 보시면서 궁금하신 사항은 댓글을 남겨주세요.

3개의 댓글이 있습니다.

3년 이하 전

사례중심의 자료도 있으면 좋겠네요

Reply

댓글 남기기

댓글을 남기기 위해서는 로그인이 필요합니다.

로그인 회원가입

약 3년 전

좋은 정보네요
참고하겠습니다

Reply

댓글 남기기

댓글을 남기기 위해서는 로그인이 필요합니다.

로그인 회원가입

약 3년 전

좋은정보 감사합니다.

Reply

댓글 남기기

댓글을 남기기 위해서는 로그인이 필요합니다.

로그인 회원가입

댓글 남기기

댓글을 남기기 위해서는 로그인이 필요합니다.

로그인 회원가입