최근 클라우드 환경과 분산 시스템의 발전으로, 애플리케이션 개발자들은 마이크로서비스 아키텍처를 통해 더 나은 유연성과 확장성을 추구하고 있습니다. 하지만 이러한 구조에서는 서비스 간의 조율과 관리가 큰 도전 과제가 됩니다. 이러한 문제를 해결하기 위해 Netflix에서 개발한 오픈소스 프로젝트인 Conductor가 주목받고 있습니다. Conductor는 내구성이 뛰어난 워크플로우 엔진으로, 마이크로서비스와 AI 에이전트의 조율을 간편하게 해주는 플랫폼입니다.
Conductor의 주요 기능과 특징
1. 내구성 있는 실행
Conductor는 모든 워크플로우의 상태를 지속적으로 저장하므로, 시스템 장애나 네트워크 문제 발생 시에도 안전하게 복구할 수 있습니다. 개발자는 각 단계에서 발생할 수 있는 실패를 걱정할 필요가 없어집니다.
2. 비즈니스 로직과 분리된 오케스트레이션
Conductor는 비즈니스 로직과 오케스트레이션을 분리하여, 워크플로우 그래프가 구조적으로 결정론적입니다. 이는 의도하지 않은 오류를 줄이고, 개발자가 더 나은 코드 품질을 유지할 수 있도록 도와줍니다.
3. AI 에이전트 조율
Conductor는 14개 이상의 네이티브 LLM(대형 언어 모델) 공급자를 지원합니다. 이를 통해 AI 기반 작업과 인간 검토가 유기적으로 결합되어 더욱 효과적인 워크플로우를 구성할 수 있습니다.
4. 런타임 동적 처리
프로세스 중에 동적으로 작업과 서브워크플로우를 생성할 수 있으며, LLM이 JSON 형식의 워크플로우 정의를 생성하여 즉시 실행할 수 있습니다.
5. 완전한 재실행 가능성
워크플로우는 언제든지 다시 시작할 수 있으며, 특정 단계에서 중단된 후에도 그 지점부터 다시 실행할 수 있습니다.
빠른 시작 가이드
사전 요구 사항
Conductor를 실행하기 위해서는 Node.js (v16 이상)와 Java (v21 이상)가 설치되어 있어야 합니다.
설치
먼저, Conductor CLI를 설치합니다:
npm install -g @conductor-oss/conductor-cli
이제 Conductor 서버를 시작해 보겠습니다:
conductor server start
서버가 실행되면 브라우저에서 http://localhost:8080으로 이동하여 기본 UI를 확인할 수 있습니다.
첫 번째 워크플로우 실행하기
워크플로우를 생성하여 API를 호출하고 그 응답을 파싱해 보겠습니다. 다음 명령어를 사용하여 워크플로우 JSON 파일을 다운로드합니다:
curl -s https://raw.githubusercontent.com/conductor-oss/conductor/main/docs/quickstart/workflow.json -o workflow.json
이제 워크플로우를 생성합니다:
conductor workflow create workflow.json
Note: 이 명령어를 두 번 실행하면 오류가 발생합니다. 이미 존재하는 워크플로우이기 때문입니다. 기존 워크플로우를 수정하려면 conductor workflow update를 사용하세요.
워크플로우를 시작해 보겠습니다:
conductor workflow start -w hello_workflow --sync
자세한 내용은 빠른 시작 가이드를 참조하여 작업자 작성 및 워크플로우 재실행 방법을 익혀 보세요.
Docker 이미지로 Conductor 실행하기
Docker를 사용할 경우 다음 명령어로 Conductor를 실행할 수 있습니다:
docker run -p 8080:8080 conductoross/conductor:latest
실무에서의 활용 시나리오
예를 들어, 전자상거래 웹사이트에서 주문 처리 시스템을 구축한다고 가정해 보겠습니다. 사용자가 주문을 하면, Conductor를 통해 다음과 같은 워크플로우가 실행될 수 있습니다:
- 결제 검증
- 재고 확인
- 배송 요청
- 사용자에게 주문 확인 이메일 발송
- 마이크로서비스 아키텍처를 사용하는 팀
- 내구성이 중요한 워크플로우를 구축하는 기업
- AI와 연계된 복잡한 비즈니스 로직을 처리해야 하는 프로젝트
각 단계에서 필요한 서비스를 호출하고, 실패 시 자동으로 재시도하도록 설정할 수 있습니다. 이러한 방식으로 시스템의 가용성과 신뢰성을 높일 수 있습니다.
비슷한 도구와의 비교
Conductor와 유사한 도구로는 Apache Airflow와 Camunda가 있습니다. Airflow는 데이터 파이프라인 오케스트레이션에 중점을 두고 있으며, Camunda는 비즈니스 프로세스 모델링에 중점을 두고 있어, 특정 요구 사항에 따라 선택할 수 있습니다. 그러나 Conductor는 마이크로서비스 조율과 AI 에이전트 통합에 특화되어 있어, 현대적인 아키텍처에서 더 많은 유연성을 제공합니다.
추천 대상
Conductor는 다음과 같은 개발자에게 추천합니다:
GitHub에서 Conductor의 더욱 자세한 내용을 확인하고 싶다면 여기를 방문해 주세요. Conductor의 무한한 가능성을 경험해 보시기 바랍니다!