애플리케이션이 여러 서비스(예: 업무 서비스 + 데이터베이스 + 메시지 큐)로 구성되면 오케스트레이션 파일에서 정의, 의존성과 실행 방식을 한곳에 선언할 수 있습니다. 오케스트레이션 실행은 장치 에이전트가 통합 수행합니다. Release에 구성하면 장치가 자동 배포하므로 장치에서 수동으로 작업할 필요가 없습니다.
장치 측 실행 방식
섹션 제목: “장치 측 실행 방식”Release에 오케스트레이션 설정 선언(services + programs) │ ▼장치 에이전트가 목표 상태 동기화 ──▶ 이미지/애플리케이션 패키지 가져오기 ──▶ 서비스 생성 및 시작 ──▶ 지속적인 감시 │ │ │ ▼ └────────────────────────────── 버전 업데이트/롤백 ◀────── 오류 발생 시 자동 재시작- 여러 서비스의 시작 순서와 의존 관계는 장치 에이전트가 오케스트레이션 선언에 따라 처리합니다.
- 서비스가 비정상 종료되면 자동 재시작하고 장치 재시작 후 자동 복구합니다.
- 버전 업그레이드와 롤백은 Release로 관리하며 장치 에이전트가 자동 수행합니다.
오케스트레이션 구성 예제
섹션 제목: “오케스트레이션 구성 예제”다음은 Release의 오케스트레이션 구성입니다. 전체 필드는 docker-compose 호환성과 확장을 참조하세요.
version: "2.4"
services: app: image: myapp:1.0.0 restart: always ports: - "8080:80" depends_on: - db
db: image: postgres:16 volumes: - dbdata:/var/lib/postgresql/data
programs: collector: command: collector --config /data/collector.conf restart: on-failure
volumes: dbdata:Release에서 구성
섹션 제목: “Release에서 구성”Release를 생성할 때 오케스트레이션 구성을 입력합니다. 편집 모드 또는 파일 업로드를 지원합니다. 애플리케이션 패키지(컨테이너 이미지 / 네이티브 애플리케이션 패키지)는 Release 상세 화면에서 업로드합니다. 자세한 절차는 다음을 참조하세요.
데이터 영구 저장
섹션 제목: “데이터 영구 저장”- 오케스트레이션의 데이터 볼륨은 컨테이너 수명 주기와 독립적이므로 컨테이너 재생성이나 업그레이드가 데이터에 영향을 주지 않습니다.
- 중요 데이터는 장치의 데이터 파티션에도 마운트하는 것이 좋습니다.
호환성 안내
섹션 제목: “호환성 안내”- 오케스트레이션은 2.x 규격을 기반으로 지원하며 일반적인 오케스트레이션 파일을 바로 사용할 수 있습니다.
- 3.x에서 추가된 필드는 지원 범위에 포함되지 않습니다.
- 전체 필드와 호환성 안내는 docker-compose 호환성과 확장을 참조하세요.
관련 문서
섹션 제목: “관련 문서”- 애플리케이션 관리 — Release 체계 개요
- 네이티브 애플리케이션과 ProgramSet — 네이티브 애플리케이션의 Release 구성
- 클라우드 애플리케이션 배포와 OTA — 배포 및 업데이트 흐름