アプリケーションは、一緒にデプロイする必要のあるすべてのコンポーネントをまとめる役割を担います。
アプリケーションは、各コンポーネントの異なるバージョンを定義し、コンポーネントが実動までの過程で通る必要のあるさまざまな環境を定義することによって、このタスクを実行します。 さらに、アプリケーションは、各環境内でコンポーネントが必要とする構成要素のホストとシステム (リソースと呼ぶ) のマッピングも行います。
また、自動化されたデプロイメント、ロールバック、および同様のタスクの実装もアプリケーションが行います。 これらのタスクは、プロセスと呼ばれます。ただし、アプリケーション・レベルでのプロセスは、デプロイメントおよび関連タスクに必要なコンポーネントとリソースにのみ関係します。 これに対して、コンポーネント・プロセスは、コマンドや関連タスクの実行に関係します。 .
また、アプリケーションは、各コンポーネントの異なるバージョンを管理するためにスナップショットを組み込みます。 スナップショット は、環境内のアプリケーションの現行状態を表します。 通常、スナップショットは、承認ゲートのない環境で生成されます。 このような環境は、非制御環境と呼ばれます。 ほとんどのユーザーの場合、スナップショットはパイプラインを介してプッシュされます。
環境とは、アプリケーションをホストするリソースの集合です。 環境には、通常、ホスト・システムと IBM® UrbanCode Deploy エージェントが含まれます。 デプロイメントが実行されるときは、常に特定の環境内で行われます。 環境はリソースの集合ですが、リソースは環境ごとに異なる場合があります。
例えば、環境 1 には、単一の Web サーバー、単一のミドルウェア・サーバー、および単一のデータベース・サーバーが含まれている可能性があります。IBM UrbanCode Deploy は、これらのシステムを環境 1 内で稼働中の 3 つの別々のリソースとして表します。一方、環境 2 には、複数のクラスター化したデータベースとサーバーが含まれている可能性があります。これらの異なる環境に同じコンポーネントをデプロイするために、IBM UrbanCode Deploy は、リソース・グループを使用してリソース・エレメントを編成します。また、サーバーは、各環境にデプロイされるすべてのもののインベントリーの維持も行います。このようにして、IBM UrbanCode Deploy サーバーは、各環境のコンテンツを管理し、それらの環境間の違いをトラッキングします。