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

컴퓨터를 보는 두 사람

작성자

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

전문가의 인사이트를 바탕으로 한 최신 기술 뉴스

Think 뉴스레터를 통해 AI, 자동화, 데이터 등 가장 중요하고 흥미로운 업계 동향에 대한 최신 소식을 받아보세요. IBM 개인정보 보호정책을 참조하세요.

감사합니다! 구독이 완료되었습니다.

구독한 뉴스레터는 영어로 제공됩니다. 모든 뉴스레터에는 구독 취소 링크가 있습니다. 여기에서 구독을 관리하거나 취소할 수 있습니다. 자세한 정보는 IBM 개인정보 보호정책을 참조하세요.

마이크로서비스란?

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

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

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

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

애플리케이션 개발

시작하기: 클라우드에서 기업용 애플리케이션 개발

이 영상에서 Peter Haumer 박사는 IBM Z Open Editor, IBM Wazi 및 Zowe 등 다양한 구성 요소와 사례를 시연하며 오늘날 하이브리드 클라우드에서의 최신 기업용 애플리케이션 개발이 어떤 모습인지 설명합니다. 

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

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

예를 들어, 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)을 사용하여 엔터프라이즈급 프로세스 오케스트레이션을 제공합니다. 

관련 솔루션
AI 기반 애플리케이션 개발

Watsonx.ai는 애플리케이션 개발 팀이 워크플로에 AI를 원활하게 통합할 수 있도록 지원합니다. 이 포괄적인 툴킷은 모델 생성에서 배포에 이르기까지 전체 AI 라이프사이클를 지원합니다.

watsonx.ai 살펴보기
IBM Z Development and Test Environment

x86 하드웨어에서 메인프레임 애플리케이션 개발, 테스트, 데모, 교육을 위한 플랫폼을 사용합니다.

Z 개발 환경 살펴보기
모바일 클라우드 컴퓨팅 솔루션

앱을 신속하게 설계하고 프로토타입을 제작하여 시장에 쉽게 출시할 수 있는 IBM의 모바일 앱 개발 플랫폼에 대해 알아보세요.

모바일 클라우드 살펴보기
다음 단계 안내

IBM Cloud Application Development Consulting Services는 클라우드 전략을 간소화하기 위한 전문가 지침과 혁신적인 솔루션을 제공합니다. IBM의 클라우드 및 개발 전문가와 협력해 애플리케이션을 현대화, 확장, 가속화하여 비즈니스에 혁신적인 결과를 제공하세요.

애플리케이션 개발 서비스 살펴보기 무료로 IBM Cloud에서 구축 시작하기
각주

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