본문 바로가기
Develop/DevOps

마이크로 서비스 아키텍처 이해하기

by 코딩의성지 2021. 6. 3.

요즘 회사에서 많은 어플리케이션의 기능이 마이크로 서비스로 기획되고 구현되고 있다.

 

시대의 흐름(?)을 잘 쫓아 가보고자 간단한 내용을 한번 정리해보았다.

 

Container Mangerment

 

개별 서비스 인스턴스에는 동작할 컨텍스트가 필요하다. 가상 컴퓨터나 도커 컨테이너 등으로 구현된  관리 컨테이너가 이러한 컨텍스트 기능을 제공한다. 인스턴스 관리 나 조정을 제공하고 필요에 따라서는 새 인스턴스를 회전하며 개별 인스턴스의 수명주기를 관리한다.

 

External Gateway

 

MSA 구현은 비지니스 응용 프로그램 및 응용 프로그램에서 사용할 수 있는 api 형태로 기능을 노출시킨다. 서비스 외부 게이트웨이는 이러한 서비스에 대한 접근을 관리하고 트래픽관리 및 보안 정책을 적용하여 안정적으로 마이크로 서비스 환경을 관리하고 보호한다. 이 기능은 종종 api 관리 솔루션을 사용하여 구현된다.

 

Service Mesh

 

서비스 메쉬는 서비스 간의 통신을 느슨하게 결합하고 신뢰성 및 유연성을 유지하게 돕는 기능으로 구성된다. 서비스 분리 , 버전관리 전략 지원, 부하 시 탄성 확장성 관리 기능도 제공한다. 그리고 서비스 라우팅, 로드 밸런싱, 서비스 발견, 구성 저장소, ID 공급자 기능도 제공한다.

 

Service Image Registry

 

사용자 환경의 어딘가에는 빌드되고 테스트 된 서비스의 Immutable 이미지를 저장하는 레지스트리로 코드 저장소 (동적 생성 서비스의경우), Docker 이미지 레지스트리, 이진 아티팩트 저장소 , VM 이미지 BLOB (Binary Large Object)를 가질수 있다.

 

Message-Oriented Middleware

 

가장 간단한 MSA 구현의 경우 http같은 동기식 프로토콜이나 gRPC 혹은 Thrift 같은 효율적인 프로토콜을 사용하여 지속가능하고 이벤트나 메시지 중심패턴을 지원하기 위해 비동기 메시징 채널이 필요하다.

 

Build & Test automation

 

MSA 개발 민첩성에 대한 이점은 개발 출력 품질을 극대화시키는 것이다. MSA에서 개발 출력 품질 극대화와 전달을 간소화 하기 위해 개발 주기에 높은 수준의 빌드 및 테스트 자동화가 필요하다.

 

Deployment automation

 

개발 민첩성에 대한 이점을 완전하게 실현하기 위해서는 배포 자동화가 필요하다.

반응형

'Develop > DevOps' 카테고리의 다른 글

[DevOps] Azure 와 GitHub를 활용한 DevOps 기본 환경 구축  (0) 2020.08.22

댓글