study/클라우드&쿠버네티스

마이크로서비스 아키텍처 설계 (구성 요소, 고려 사항)

dddzr 2023. 10. 4. 10:51

*마이크로서비스 개념

https://sumni.tistory.com/235

 

데브옵스(DevOps)와 마이크로서비스(microservices) 개념, 특징

데브옵스 데브옵스(DevOps)는 소프트웨어 개발 및 운영 프로세스를 통합하여 효율적이고 지속적인 소프트웨어 제공을 가능하게 하는 소프트웨어 개발문화 또는 방법론을 나타냅니다. "데브"는 소

sumni.tistory.com

 

마이크로서비스 아키텍쳐 구성요소

출처 11 /13 : Microservices Architecture Components @ 2018 Gartner, Inc

  • 관리 컨테이너:
    개별 서비스 인스턴스에 대한 컨텍스트(실행 환경) 제공 및 인 수명주기 관리.
    가상 컴퓨터, Docker 컨테이너 또는 프로세스로 구현된 관리 컨테이너 사용.
  • 외부 게이트웨이:
    MSA 구현은 API형태로 기능을 노출. 이런 서비스에 대한 액세스를 관리하고 트래픽 관리 및 보안 정책 적용.
    외부 게이트웨이 기능은 종종 API 관리 제품을 통해 구현.
  • 서비스 메쉬 기능:
    서비스 간의 통신을 느슨하게 결합하고 신뢰성 및 유연성을 유지.
    서비스 라우팅, 로드 밸런싱, 서비스 발견, 구성 저장소 등의 기능 제공.
  • 서비스 이미지 레지스트리: 서비스의 불변 이미지를 저장하는 저장소.
  • 메시지 지향 미들웨어: 비동기 메시징 채널을 사용하여 이벤트 및 메시지 중심 패턴 지원.
  • 빌드 및 테스트 자동화: 높은 수준의 빌드 및 테스트 자동화 필요.
  • 배포 자동화: 배포 자동화로 개발 주기를 간소화.

 

마이크로서비스 아키텍쳐 설계 고려 사항

https://developers.redhat.com/blog/2016/12/09/spring-cloud-for-microservices-compared-to-kubernetes

  • Config Management: 환경 변수를 별도의 원격 저장소에 두고 동적으로 가져다 사용하는 구성 요소.
  • Service Discovery: 각 서비스의 위치 정보를 관리하고 제공하는 Service Discovery의 필요성.
  • API Management: 외부에 노출되지 않는 마이크로서비스를 관리하고 중계하는 역할을 하는 API Management.
  • Centralized Logging: 중앙화된 로깅으로 로그를 수집하고 시각화하는 중요성.
  • Distributed Tracing: 서비스 간 호출 추적 및 로깅.
  • Centralized Monitoring: 중앙화된 모니터링.
  • Resilience & Fault Tolerance: 서비스 간의 장애 전파를 방지하고 특정 서비스의 장애가 전체 시스템에 미치는 영향을 줄이기 위한 구성.
  • Auto-Scaling & Self-Healing: 환경을 자동으로 감지하고 필요에 따라 Scale-out을 통한 자동 확장 및 자체 치유.