애플리케이션은 각 컴포넌트의 다른 버전을 정의하고 컴포넌트가 프로덕션으로 진행하기 위해 경험해야 하는 다양한 환경을 정의하여 이 태스크를 수행합니다. 또한 애플리케이션은 모든 환경에서 컴포넌트에 필요한 구성요소가 되는 호스트 및 시스템(자원이라고 함)을 맵핑합니다.
애플리케이션은 또한 자동화된 배치 및 롤백과 유사한 태스크를 구현합니다. 이러한 태스크를 프로세스라고 합니다. 그러나 애플리케이션 레벨에서 프로세스는 배치 및 관련 태스크에 필요한 컴포넌트 및 자원과만 연관됩니다. 대조적으로 컴포넌트 프로세스는 실행 중인 명령 및 관련 태스크와 연관됩니다..
또한 애플리케이션은 각 컴포넌트의 다른 버전을 관리하기 위해 스냅샷을 도입합니다. 스냅샷은 환경 내에서 애플리케이션의 현재 상태를 표시합니다. 일반적으로 스냅샷은 승인 게이트가 없는 환경에서 생성됩니다. 이 유형의 환경을 제어되지 않는 환경이라고 합니다. 대부분의 사용자에게 스냅샷은 파이프라인을 통해 푸시됩니다.
환경이란 애플리케이션을 호스트하는 자원 콜렉션입니다. 일반적으로 환경은 호스트 시스템 및 IBM® UrbanCode Deploy 에이전트를 포함합니다. 배치는 실행될 때 항상 환경 내에서 수행됩니다. 환경이 자원 콜렉션인 반면 자원은 환경에 따라 다를 수 있습니다.
예를 들어, 환경 1에는 단일 웹 서버, 단일 미들웨어 서버 및 단일 데이터베이스 서버가 포함될 수 있습니다. IBM UrbanCode Deploy는 이러한 시스템을 환경 1에서 실행 중인 세 개의 별도의 자원으로 표시합니다. 그러나 환경 2에는 여러 클러스터형 데이터베이스 및 서버가 포함될 수 있습니다. 이러한 다른 환경에서 동일한 컴포넌트를 배치하기 위해 IBM UrbanCode Deploy가 자원 그룹을 사용하여 자원 요소를 구성합니다. 또한 서버가 각 환경에 배치되는 모든 인벤토리를 보존합니다. 이런 방법으로 IBM UrbanCode Deploy 서버가 각 환경의 컨텐츠를 관리하고 해당 환경 간의 차이점을 추적합니다.