icon

Microservice with Kubernetes

Microservice with Kubernetes

개요

Microservice Architecture(MSA)는 작은 서비스들의 Microservice s) 조합을 통해 비즈니스 애플리케이션을 개발하는 접근방법을 말합니다 . MSA 를 이용하면 비즈니스 요구사항을 빠르게 개발하고 , 변경사항을 비교적 자유롭게 운영환경에 즉시 배포하고 유지보수가 용이하며 , 부분 장애가 전체로 미치지 않아 장애 영향 을 최소화할 수 있는 장점이 있습니다.

Samsung Cloud Platform에서는 최근의 급격한 비즈니스 및 기술 변화에 대응할 수 있도록 MSA 기반 클라우드 네이티브 어플리케이션 개발을 위한 Kubernetes Engine , API Gateway , Event Streams 등의 클라우드 서비스를 제공합니다.

아키텍처 다이어그램

구성도
그림. Kubernetes 기반 Microservice architecture
  1. 클라이언트의 요청은 Load Balancer를 통해서 VM/Container Workload 및 API Gateway 서비스에 전달된다.
  2. API 요청을 제외한 클라이언트의 요청은 Kubernetes Engine에서 제공되는 ingress에 전달된다. Kubernetes Engine은 ingress를 통해 들어온 요청을 매핑되어 있는 서비스 Pod로 라우팅 처리를 수행한다.
  3. 클라이언트의 API 요청 처리를 위해 API Gateway는 최전방에 위치하여 외부로부터 들어오는 모든 API 호출에 대해 인증 및 서비스 라우팅 처리를 수행한다
  4. Microservice Architecture는 구조화된 서비스 단위로 분리된 DB를 구성한다.
  5. Backing Service는 Microservice들이 네트워크를 통해서 사용할 수 있는 Back-end 서비스를 말하며 , PostgreSQL(DBaaS) 과 같은 DBMS 서비스 , CacheStore(DBaaS)와 같은 in memory cache 서비스, Event Streams과 같은 Microservice 메시지의 비동기 처리를 위한 Queue 서비스 등을 제공한다.
  6. DevOps 기반 CI/CD 서비스를 통해서 Microservice 어플리케이션의 개발 및 운영을 Seamless 하게 지원한다.
  7. Microservice 구성 요소간의 네트워크를 제어하기 위해 Service Mesh기술을 사용할 수 있다 . Service Mesh 기술을 통해 분할된 어플리케이션간의 다양한 네트워크 구성과 데이터 흐름에 대한 관리 및 추적이 가능하다 .
  8. MSA 에서는 다수의 Microservice 가 분산환경에서 운영되기 때문에 서비스 상태에 대한 모니터링이 필요하다. Monitoring, Logging, Tracing과 같은 Telemetry 서비스는 서비스 들을 모니터링하고,서비스 별로 발생하는 이슈들에 대응할 수 있도록 환경을 구성하는 역할을 한다.

사용 사례

물류 시스템 Microservice 적용

물류 시스템의 Application 경량화 및 가용성 확보 및 비즈니스 확대 시 유연한 대응이 가능한 아키텍처를 위해 신규 Application 개발 시 컨테이너 기반의 MSA 를 적용하여 구축을 수행 했습니다.

물류 시스템을 구성하는 창고관리 시스템 , 수배송시스템 , 복합운송시스템 등 세부 시스템은 컨테이너로 구성되고 Samsung Cloud Platform 은 표준적인 Kubernetes Engine 서비스를 이용하여 컨테이너 기반의 환경에서 Microservice 의 손쉽 고 빠른 배포 , 독립적인 실행 환경 , 확장성 및 복원성을 제공합니다.

글로벌 제조사의 개발 플랫폼 사례

글로벌 제조사의 Application 개발을 지원하는 플랫폼은 Microservice 기반의 Application 개발을 위한 API Gateway, DevOps, Kubernetes 기반 컨테이너 서비스를 제공합니다. 이를 통해서 개별 구축 서비스에 대한 DevOps 기반 Canary 배포를 지원하고 API Gateway 를 통해서 개별 서비스의 API 를 카탈로그화 하여 서비스의 재사용성을 높이고 있습니다. 향후 Service mesh 기능을 통해 Microservice 에 대한 흐름 제어 및 가시성을 확보할 예정입니다.

선결 사항

없음

제약 사항

Service Mesh 등의 일부 기능은 오폰소스 Software 등을 이용하여 구성해야합니다.

고려 사항

없음

관련 서비스

본 가이드에서 설명하는 기능 또는 구성과 연결되는 Samsung Cloud Platform의 서비스 목록입니다. 서비스 선택 및 설계 시에 참고하세요.

서비스군서비스상세 설명
ComputeVirtual Server클라우드 컴퓨팅에 최적화된 가상 서버
ContainerKubernetes EngineKubernetes 컨테이너 오케스트레이션 서비스
ContainerContainer Registry컨테이너 이미지와 OCI (Open Container Initiative) 표준 아티팩트를 보관하고 관리하는 레지스트리를 제공하는 서비스
NetworkingLoad Balancer서버 트래픽 부하를 자동으로 분산하는 서비스
NetworkingDNS도메인 이름을 시스템이 식별 가능하도록 숫자로 이루어진 IP 주소로 변환하여 서비스
DatabaseMariaDB(DBaaS)오픈소스 MariaDB을 간편하게 생성하고 관리하는 서비스
DatabasePostgreSQL(DBaaS)오픈소스 PostgreSQL을 간편하게 생성하고 관리하는 서비스
DatabaseMySQL(DBaaS)오픈소스 MySQL을 간편하게 생성하고 관리하는 서비스
DatabaseMicrosoft SQL Server(DBaaS)Microsoft SQL Server를 간편하게 생성하고 관리하는 서비스
DatabaseCacheStore(DBaaS)In-memory 기반의 데이터 스토어인 Redis OSS 및 Valkey를 제공하는 서비스를 간편하게 생성하고 관리하는 서비스
Data AnalyticsEvent Streams오픈소스 Apache Kafka를 간편하게 생성하고 관리하는 서비스
Application ServiceAPI GatewayAPI를 손쉽게 생성, 관리 및 모니터링 하는 서비스
DevOps ToolsDevOps Service개발/배포/운영을 위해 표준화된 개발 도구와 코드 프레임워크 기반의 개발 템플릿 및 통합 관리 기능을 제공하는 서비스
표. 관련 서비스 목록