마이크로서비스 오케스트레이션이란 무엇인가요?

컴퓨터를 보는 두 사람

작성자

Stephanie Susnjara

Staff Writer

IBM Think

Ian Smalley

Staff Editor

IBM Think

마이크로서비스 오케스트레이션이란 무엇인가요?

마이크로서비스 오케스트레이션은 응집력 있는 애플리케이션 시스템으로 함께 작동하는 분산 마이크로서비스의 자동화된 조정으로서, 서비스 상호 작용, 종속성 관리, 내결함성, 장애 복구 및 엔드투엔드 배포를 처리합니다.

교향악단의 지휘자가 각 음악가에게 적절한 타이밍에 연주하도록 지시한다고 상상해 보세요. 마찬가지로 오케스트레이션은 각 마이크로서비스가 원활한 사용자 경험을 제공하기 위해 필요할 때 특정 기능을 수행하도록 할 수 있습니다. 이러한 조정이 없으면 서비스가 무작위로 서로 호출되고, 구성 요소에 장애가 발생하면 워크플로가 중단되며, 여러IT 인프라에서 무슨 일이 일어나고 있는지를 파악할 수 없는 등 혼란이 발생할 것입니다.

오늘날의 애플리케이션은 복잡하고 수백 개의 개별 서비스로 구성되어 있기 때문에 조직에는 오케스트레이션이 필요합니다. 마이크로서비스 오케스트레이션은 분산 아키텍처의 확장성과 유연성 이점을 유지하면서 이러한 독립 서비스를 잘 조정된 애플리케이션으로 변환하는 시스템의 역할을 합니다.

Research Nester의 보고서에 따르면, 마이크로서비스 오케스트레이션 시장의 가치는 2024년에 47억 달러로 평가되었으며 2032년에는 723억 달러에 달할 것으로 예상됩니다. 이는 예측 기간 동안 23.4%의 연평균 성장률(CAGR)에 해당하는 수치입니다.1  

전자상거래, 핀테크 및 스트리밍 서비스에 대한 수요 증가와 함께 Google 및 Amazon과 같은 글로벌 기술 회사의 애플리케이션 성장은 이 시장의 꾸준한 확장을 주도합니다.

전형적인 사용 사례는 Netflix 및 Hulu와 같은 주요 스트리밍 서비스입니다. 이러한 서비스는 사용자 인증, 콘텐츠 추천부터 비디오 스트리밍, 청구에 이르기까지 모든 것을 처리하는 수백 개의 마이크로서비스를 조정하기 위해 오케스트레이션에 의존합니다. 이 모든 요소는 수많은 개인화된 시청 경험을 동시에 제공하기 위해 모두 함께 작동해야 합니다.

마이크로서비스란?

마이크로서비스는 완전한 애플리케이션을 형성하기 위해 함께 작동하는 작고 독립적인 독립형 소프트웨어 구성 요소입니다. 이를 통해 조직은 애플리케이션을 보다 효율적으로 구축, 배포 및 확장할 수 있습니다.

기존의 모놀리식 애플리케이션과 달리 클라우드 네이티브 마이크로서비스 아키텍처는 특정 비즈니스 기능을 처리하는 더 작고 집중적인 서비스로 앱을 나눕니다. 각 마이크로서비스는 독립적으로 실행되고, 애플리케이션 프로그래밍 인터페이스(API)를 통해 통신하며, 별도로 개발, 배포 및 확장할 수 있습니다.

Uber나 Lyft와 같은 차량 공유 앱을 예로 들어보겠습니다. 애플리케이션이 차량 서비스를 처리할 때 오케스트레이터는 위치 서비스를 호출하여 운전자를 찾고, 일치 알고리즘을 시작하고, 가격을 계산합니다. 또한 오케스트레이터는 라이더와 운전자 모두에게 조정된 순서로 알림을 보냅니다.

이러한 접근 방식을 통해 조직은 변화하는 비즈니스 요구 사항에 빠르게 적응할 수 있는 보다 유연하고 확장가능한 시스템을 구축할 수 있습니다. Netflix, Amazon, Uber와 같은 기술 회사는 대규모의 빠른 소프트웨어 개발을 처리하기 위해 마이크로서비스를 개척했습니다. IBM의 2021 설문조사에 따르면 85%의 조직이 마이크로서비스 아키텍처를 도입했거나 도입할 계획인 것으로 나타나는 등, 마이크로서비스 아키텍처의 중요성이 점점 커지고 있습니다.

IBM DevOps

DevOps란 무엇인가요?

Andrea Crawford는 DevOps의 정의, DevOps의 가치, 그리고 DevOps 사례와 툴이 아이디어 구상부터 프로덕션에 이르기까지 전체 소프트웨어 Delivery Pipeline을 통해 앱을 이동하는 데 어떻게 도움이 되는지 설명합니다. 최고의 IBM 사고 리더가 이끄는 이 커리큘럼은 비즈니스 리더가 성장을 주도할 수 있는 AI 투자의 우선순위를 정하는 데 필요한 지식을 얻을 수 있도록 설계되었습니다.

마이크로서비스 오케스트레이션은 어떻게 작동하나요?

마이크로서비스 오케스트레이션 프레임워크는 동기식 서비스 호출을 통해 비즈니스 프로세스를 분산하는 중앙 집중식 워크플로 관리 시스템을 사용합니다. 오케스트레이터는 워크플로 정의를 유지 관리하고, 서비스 종속성을 이해하며, 마이크로서비스가 올바른 순서로 실행되도록 할 수 있습니다.

예를 들어, Amazon과 같은 전자상거래 회사가 고객 주문을 처리할 때 오케스트레이터는 재고 서비스를 호출하여 가용성을 확인하고, 결제 처리를 시작하고, 배송을 준비하고, 고객 알림을 보냅니다. 오케스트레이터는 이러한 모든 작업을 조정된 순서로 수행합니다.

이러한 조정은 애플리케이션을 컨테이너화하기 위한 Docker, 컨테이너 배포, 확장 및 서비스 검색을 관리하기 위한 Kubernetes와 같은 컨테이너 오케스트레이션 플랫폼 등의 핵심 기술에 의존합니다. 이러한 도구를 사용하면 서비스가 인프라 전반에 걸쳐 리소스 할당을 최적화하면서 동적으로 통신할 수 있습니다. 오케스트레이터는 프로세스 흐름의 각 단계를 지속적으로 모니터링하므로 문제가 발생하면 실패한 작업을 다시 시도하거나, 문제가 있는 변경 사항을 롤백하거나, 관리자에게 경고하여 시스템 안정성을 유지할 수 있습니다.

마이크로서비스 오케스트레이션의 이점

마이크로서비스 오케스트레이션의 주요 이점은 다음과 같습니다. 

  • 향상된 확장성 및 리소스 관리: 오케스트레이션 플랫폼은 모든 마이크로서비스에서 지능적 Auto Scaling 및 리소스 관리를 제공하여 수요 패턴을 기반으로 시스템 전반의 확장 결정을 내립니다.
  • 향상된 시스템 복원력 및 장애 격리: 중앙 집중식 오케스트레이션은 작업을 다시 시도하여 장애를 자동으로 처리해 특정 서비스에서의 장애 발생이 전체 애플리케이션을 중단으로 이어지지 않도록 방지하고 모든 서비스에서 데이터 일관성을 유지합니다.
  • 더 빠른 개발 및 배포 주기: 자동화된 서비스 조정을 통해 수동 통합 작업이 없어지며, 개발자는 조정된 출시를 통해 보다 안전한 배포를 실현하는 동시에 비즈니스 로직에 집중할 수 있습니다.
  • 더 나은 기술 다양성과 유연성: 개발팀은 통합 오케스트레이션을 통해 조정된 워크플로에 참여하는 동시에 특정 서비스에 맞는 최적의 언어, 데이터베이스 및 프레임워크를 선택할 수 있습니다.
  • AI/ML 워크로드 지원: 오케스트레이션은 데이터 전처리 및 모델 학습에서 배포 및 모니터링에 이르기까지 기계 학습(ML) 파이프라인에 필요한 복잡한 조정을 처리합니다. 또한 다양한 인공 지능(AI) 서비스의 다양한 컴퓨팅 요구 사항을 관리합니다.

주요 마이크로서비스 설계 패턴 및 오케스트레이션

성공적인 오케스트레이션은 일반적인 분산 시스템 과제를 해결하는 검증된 마이크로서비스 설계 패턴에 달려 있습니다. 다음은 가장 중요한 몇 가지 예입니다.

Saga 패턴

saga 패턴은 분산 트랜잭션을 되돌릴 수 있는 단계로 나누어 관리합니다. 단계가 실패하면 saga는 보상 작업을 실행하여 이전 작업을 실행 취소하고 서비스 간 데이터 일관성을 유지합니다.

예를 들어 전자상거래 사이트에서 결제 중에 결제가 실패하면 saga는 재고 보류를 취소하고 장바구니를 복원합니다.

회로 차단기 패턴

회로 차단기는 다운스트림 서비스에 대한 호출을 모니터링하고 오류가 감지되면 요청을 중지하여 계단식 오류를 방지합니다.

예를 들어 제품 권장 사항 서비스가 실패하기 시작하면 회로 차단기가 자동으로 요청을 차단하고 이전에 캐시된 권장 사항을 대신 표시합니다.

다시 시도 및 시간 초과 패턴

다시 시도 및 시간 제한 패턴은 스마트 타이밍으로 실패한 요청을 다시 대기하고 다시 시도하여 일시적인 서비스 오류를 자동으로 처리합니다.

예를 들어, 결제 서비스를 일시적으로 사용할 수 없는 경우 시스템은 기다렸다가 다시 시도합니다.

마이크로서비스 오케스트레이션과 구성 비교

분산 시스템을 구축할 때 DevOps 팀과 개발자는 서비스를 중앙에서 조정할지, 아니면 자체적으로 조정할지 결정해야 합니다. 이 결정은 마이크로서비스가 통신하는 방식, 팀이 복잡성을 관리하는 방법, 시간이 지남에 따라 시스템이 확장되는 방식을 형성합니다.

  • 마이크로서비스 오케스트레이션은 모든 서비스 상호 작용을 관리하는 중앙 집중식 코디네이터를 사용합니다. 프로젝트 관리자와 마찬가지로 오케스트레이터는 전체 워크플로를 알고 각 서비스에 조치를 취해야 할 시기를 알려줍니다. 이 방법은 복잡한 프로세스에 대한 명확한 가시성을 제공하고, 비즈니스 규칙을 구현하고 감사 추적을 더 쉽게 유지할 수 있도록 해줍니다.
  • 마이크로서비스 구성은 중앙 제어 없이 이벤트를 통해 서비스가 스스로 조정하는 정반대의 접근 방식을 취합니다. 작업을 완료한 서비스는 다른 서비스의 작동을 트리거하는 이벤트를 게시합니다. Apache Kafka와 같은이벤트 스트리밍 플랫폼은 많은 경우 서비스 간에 대규모로 메시지를 안정적으로 전달하여 이러한 상호 작용을 지원합니다.

명시적인 워크플로 제어, 중앙 집중식 거버넌스 및 엄격한 데이터 일관성이 필요한 팀은 오케스트레이션을 선택합니다. 이는 규정 준수 및 감사 가능성이 필수적인 금융, 의료 및 물류 분야에서 특히 유용합니다.

확장성, 복원력 및 서비스 자율성이 우선 순위인 팀은 구성을 선택합니다. 이는 이벤트 기반 아키텍처, 실시간 시스템, 대용량 처리(예: 콘텐츠 플랫폼 및 사물인터넷(IoT) 시스템)에 적합합니다.

대부분의 성공적인 마이크로서비스 아키텍처는 하이브리드 접근 방식을 취합니다. 이 접근 방식은 독립적인 처리의 이점을 누리는 느슨하게 결합된 상호 작용에 대한 엄격한 제어 및 구성이 필요한 중요한 비즈니스 워크플로에 대한 오케스트레이션을 의미할 수 있습니다.

최고의 마이크로서비스 오케스트레이션 툴

오늘날의 오케스트레이션은 배포 및 확장부터 통신 및 모니터링에 이르기까지 마이크로서비스 라이프사이클을 관리하기 위해 함께 작동하는 여러 카테고리의 툴을 사용합니다. 다음에 제시되는 각 카테고리는 효과적인 마이크로서비스 오케스트레이션을 가능하게 하는 데 있어 특정한 역할을 합니다.

  • 컨테이너 오케스트레이션 플랫폼
  • 서비스 메시
  • 서버리스 플랫폼
  • API 게이트웨이
  • 서비스 검색 툴
  • 워크플로 및 오케스트레이션 엔진

컨테이너 오케스트레이션 플랫폼

컨테이너 오케스트레이션 플랫폼은 컨테이너화된 애플리케이션의 배포, 확장 및 관리를 자동화합니다. 이러한 플랫폼은 서비스 검색, 부하 분산, Auto-Scaling 및 롤링 배포를 처리하여 마이크로서비스 오케스트레이션을 위한 기반 계층을 제공합니다.

주요 클라우드 제공업체는 AWS의 Amazon ECS 및 EKS, Google GKE, Microsoft AKS 및 IBM Cloud Kubernetes Service 등의 관리형 오케스트레이션 서비스를 제공합니다.

서비스 메시

서비스 메시는 애플리케이션 코드를 변경할 필요 없이 서비스 간 통신, 보안 및 관측 가능성을 처리합니다. 또한 자동 로드 밸런싱, 회로 차단, 시간 초과 및 마이크로서비스 상호 작용에 대한 포괄적인 원격 측정을 제공합니다.

구성가능한 오픈 소스 서비스 메시인Istio는 기존 애플리케이션에 고급 트래픽 관리 및 정책 적용 기능을 통해 투명하게 계층화됩니다. 이 제품은 Kubernetes 및 기타 여러 서비스 메시 인접 기술과 잘 작동합니다.

오픈 소스이기도 한 Linkerd는 단순성과 성능에 중점을 두고 운영 오버헤드를 최소화하면서 필수 서비스 메시 기능을 제공합니다.

서버리스 플랫폼

서버리스 플랫폼은 수요에 따라 자동으로 확장되는 이벤트 기반 마이크로서비스를 지원합니다. 이러한 플랫폼은 0에서 수천 개의 인스턴스까지 자동 확장과 안전한 배포를 위한 기본 제공 트래픽 관리 기능을 제공합니다.

Knative는 Kubernetes에서 실행되어 컨테이너화된 워크로드에 서버리스 기능을 제공하여 자동 확장과 간소화된 배포를 가능하게 합니다.

API Gateway

API Gateway는 마이크로서비스를 위한 통합 진입점을 제공하고 인증, 속도 제한, 요청 변환 및 포괄적인 로깅을 처리합니다. 이 서비스는 외부 클라이언트와 내부 서비스 간의 상호 작용을 조율하는 데 필수적입니다.

Kong과 같은 오픈 소스 옵션부터 주요 제공업체의 클라우드 관리 서비스에 이르기까지 다양한 API 게이트웨이 솔루션을 사용할 수 있습니다.

서비스 검색 도구

서비스 검색 툴을 사용하면 마이크로서비스가 동적으로 서로를 찾고 통신할 수 있으므로 하드코딩된 종속성이 제거됩니다. 이러한 툴은 서비스 등록, 건강 확인 및 로드 밸런싱 조정을 처리합니다.

널리 사용되는 솔루션으로는 Kubernetes 환경을 위한 etcd 및 Amazon Web Services(AWS) Cloud Map과 같은 클라우드 네이티브 옵션이 있습니다.

워크플로 및 오케스트레이션 엔진

워크플로 및 오케스트레이션 엔진은 시간이 지날수록 여러 마이크로서비스에서 복잡한 다단계 프로세스를 조정합니다. 이러한 플랫폼은 분산된 비즈니스 프로세스를 관리하기 위한 워크플로 정의, 자동 오류 처리 및 다시 시도 로직을 제공합니다.

Netflix Conductor는 마이크로서비스 환경을 위해 특별히 설계된 워크플로 오케스트레이션을 처리합니다. Camunda Zeebe는 시각적 워크플로 정의 및 포괄적인 프로세스 관리를 위해 비즈니스 프로세스 모델 및 표기법(BPMN)을 사용하여 엔터프라이즈급 프로세스 오케스트레이션을 제공합니다. 

관련 솔루션
IBM Instana Observability

AI와 자동화를 활용하여 애플리케이션 스택 전반의 문제를 선제적으로 해결하세요.

IBM Instana Observability 살펴보기
DevOps 솔루션

DevOps 소프트웨어와 도구를 사용해 다양한 장치와 환경에서 클라우드 네이티브 앱을 구축하고, 배포하고, 관리하세요.

DevOps 솔루션 살펴보기
클라우드 컨설팅 서비스

IBM 클라우드 컨설팅 서비스로 모든 플랫폼에서 애플리케이션을 지속적으로 현대화하여 기업의 민첩성과 성장을 가속화하세요.

클라우드 컨설팅 서비스 살펴보기
다음 단계 안내

IBM Instana®를 통한 사전 예방 문제 감지부터 스택 전반의 실시간 인사이트에 이르기까지 클라우드 네이티브 애플리케이션을 안정적으로 실행할 수 있습니다.

  1. IBM Instana® 살펴보기
  2. DevOps 솔루션 살펴보기
각주

1. Microservices Global Market Size and Share, Research Nester, 2024년