プロジェクトの展開

デプロイ プロジェクトとは?

Bamboo のデプロイ プロジェクトは、デプロイするソフトウェア プロジェクト (ビルドしてテストしたリリースと、リリースをデプロイする環境) を保持するためのコンテナーです。チームには一般的に、QA 環境、ステージング環境、および本番環境があります。 

なぜデプロイ プロジェクトを使用するのか?

継続的インテグレーションは、継続的なデリバリーを目的として設計されていません。継続的インテグレーションは、開発者が最新のコード変更の状態を常に把握できるように設計されています。

継続的インテグレーションでは、開発者にとって重要となるのは最新のビルドのみのため、変更を加えるたびに過去のビルド結果 (および課題やコミットなどの情報) は重要ではなくなります。

継続的なデリバリーに従来の継続的インテグレーション サーバーを使用することは 、次の理由から理想的とは言えません。

  • デプロイされたビルドは見つけるのが難しい — 数日前にデプロイされたばかりのビルドでも、システムによって重視されなくなります。これは継続的インテグレーションのワークフローには良いことですが、この動作により、チームメンバーはどのビルドがいつデプロイされたか、どのビルドがデプロイされていないかを特定するのが難しくなります。チームはラベル付けを使用するシステムでこれを回避できますが、チームメンバーがラベル付けを正しく使用するためのトレーニングを受けていない限り、どのように機能しているかは一見わかりません。
  • デプロイ間でどのような変更が行われたかを明確化するのが難しい — ビルド結果は、特定のビルド結果とその直前のビルド結果との間のコミットと課題データをレポートします。2 つの異なるデプロイ間で多数のビルド結果が存在する可能性があります。多くの場合、2 つのデプロイ間の変化を完全に把握するには、2 つのデプロイ間の履歴全体をナビゲートする必要があります。場合によっては、バージョン管理システムなど、他のツールを使用しなければならないこともあります。
  • 何がデプロイされ、いつ、どこにデプロイされたかを知るのが難しい — ビルドでは、コードがデプロイされた場所や、以前に環境に何がデプロイされたかを把握できません。
  • QA プロセスに関するインサイトが欠如している — ビルドは、デプロイ候補のリストを考慮して、テスト済みリリースを「承認」したり、リリースを破損またはリリース不能とマークしたりするための QA 用の明確な方法 (コメント機能やラベル付け以外) を提供していません。
  • 誰がデプロイできるかについての管理が不十分 – ビルドを実行、表示、または編集できる権限で制御することはできますが、チームのどのメンバーが本番環境やその他の機密環境にデプロイできるかを十分にきめ細かく制御することができません。要するに、ビルドを実行する権限を持っていれば、誰もがいつでも好きなときにソフトウェアをデプロイすることができます。

これらの課題を解決するために、Bamboo は以下のコンセプトを提供しています。

  • デプロイ プロジェクト — デプロイするソフトウェア (Web アプリなど)、デプロイされたソフトウェアのリリース、およびライフサイクル全体を通じてデプロイされる環境を指します。
  • 環境 — ソフトウェア リリースがデプロイされたサーバーまたはサーバー グループ、およびデプロイを円滑に機能させるために必要なタスクを指します。環境の例としては、開発、QA、ステージング、本番などがあります。環境には、誰が環境をデプロイ、編集、または表示できるかをきめ細かく制御し、さらにデプロイされたリリースの全履歴を記録することができる権限があります。
  • リリース — アーティファクトとそれに関連付けられたデータ (コミット、JIRA 課題、テストに使用されたビルドなど) のスナップショットを特定します。リリースにはリリース自体と以前のリリースの違いに関する情報が含まれているため、リリース間の変更や、2 つの異なる環境にデプロイされたソフトウェア間の違いを容易に確認できます。リリースが、どの環境にデプロイされたかも追跡します。

デプロイ プロジェクトの仕組み

次の図を考えてみましょう。

On this page:

継続的なデリバリーとは?

継続的なデリバリーとは、ソフトウェア プロジェクトに加えられたすべての変更を自動的にビルドおよびテストし、ユーザーへのデプロイ準備を整えるプラクティスです。実際には、プロジェクトのビルドとテストが完了すると、手動で検証できる場所に「ステージング」され、ユーザーが利用できるようになります。

継続的デプロイ (コードの変更が人間の介在なしに自動的にビルド、テスト、デプロイされるプロセス) とは異なり、通常、ソフトウェアの品質が十分かどうか、または企業がユーザーに対してソフトウェアを利用可能にする正しいタイミングかどうかは、人間が判断します。

アーティファクト

ビルド計画でデプロイ可能なアーティファクトを作成してテストします。Bamboo でデプロイするアーティファクトには、環境のデプロイ手順で使用できるように、必ず「共有」としてフラグ付けしてください。

Releases

テストに成功したアーティファクトはリリースの作成に使用できます。リリースは好きな数だけ作成できます。Bamboo は、関連するコミットや JIRA 課題などのその他のメタデータを各リリースに追加します。これにより、各リリースが環境内を移動する様子をレポートおよび追跡できます。

Environments

Bamboo の環境は、IT インフラストラクチャの開発環境、テスト環境、および本番環境を反映しています。各環境のホスト名と認証資格情報は、デプロイ ジョブ内のタスクレベルにあります。どの時点でも、各環境でどのリリースが実行されているか、どのリリースに置き換えられたか、いつデプロイされたか、誰がデプロイしたかを確認できます。また、関連付けられた JIRA 課題も確認できます。

最終更新日 2016 年 5 月 26 日

この内容はお役に立ちましたか?

はい
いいえ
この記事についてのフィードバックを送信する
Powered by Confluence and Scroll Viewport.