継続的デリバリーとは

完了

ここでは、継続的デリバリー (CD) パイプラインを次回のリリースに役立てる方法について、Tailspin チームでの議論を追っていきます。

Tailspin チームでは、ビルド プロセスについては快適に感じ始めています。 自動化されたプロセスが Azure Pipelines で実行されているため、ビルド環境は安定しています。 Amita は、成果物をテストする必要があることをすぐに認識します。 Andy と Mara が単体テストとコード品質テストを追加し始めたため、見つかるバグは少なくなっています。 物事はうまくいっているようです。 チームの様子を見てみましょう。

朝の会議

製品マネージャーの Irwin から話があるということで、チームは会議室で彼を待っています。 進行状況について彼に報告することを楽しみにしています。 しかし、Irwin は暗い顔で入ってきます。 彼は、すぐに話し始めます。

Irwin: 今朝、管理チームと会議をしました。 ゲームと Web サイトをリリースするのに時間がかかっている理由を知りたがっています。 最も近い競合他社は、私たちよりもはるかに短期間で新しい機能と新しいゲームをリリースしています。 私たちにはスピードアップが必要です。 あなただけに警告しているのではありません。 すべてのチームに警告しています。 皆さんのチームのデプロイを迅速化するには、どうお手伝いすればよいでしょうか。

Andy: これは少し突然のお話でしたが、私たちは少し先に進んでいます。 Web サイトの構築方法を自動化してきました。 自動化をリリース プロセスにも拡張するときがきたかもしれません。

Irwin: それはどのような方法で行いますか。

Mara: Azure Pipelines を使用して、自動ビルド パイプラインを作成しました。 Amita がテストできる成果物が構築されます。 "継続的デリバリー" (CD) パイプラインを作成することもできるでしょう。

Irwin: CD パイプラインとは何ですか。

Mara が説明を始めますが、Irwin の携帯電話のビープ音で中断されます。 Irwin はテキスト メッセージを読み、小声でつぶやきます。

Irwin: 申し訳ありませんが、これは緊急です。 もう行かなくてはなりません。 皆さん全員でこの CD の方法を考えて、すぐに私に知らせてもらえますか。

Andy はチームを見回します。

Andy: コーヒーでも?

Andy と他のチーム メンバーは、プランを作成するためにコーヒー ショップに向かいます。

継続的デリバリーとは

チームはコーヒーを飲みながら会議を行い、継続的デリバリー ワークフローを設定する方法を考えています。

Andy: Mara、継続的デリバリーについて知っていることを教えてください。

Mara: 私の考えでは、CD と DevOps は切り離せないものです。 DevOps とは、エンド ユーザーに対する価値の継続的デリバリーを可能にするための、人、プロセス、および製品の結合であると定義したことを思い出してください。

単独では、CD は迅速で信頼性の高い継続的なソフトウェア デリバリーを可能にする、一連のプロセス、ツール、および手法です。 パイプラインのセットアップは重要ですが、CD はその部分だけに関するものではありません。 CD は、以下のような作業環境の設定に関するものです。

  • ソフトウェアをリリースしてデプロイするための、信頼性の高い反復可能なプロセスがあります。
  • 可能な限り自動化します。
  • 困難や痛みを伴うことは先延ばしにせずに、より頻繁に実施することで、それを当たり前にする方法を理解する。
  • すべてをソース管理下におきます。
  • "完了" とは "リリースされた" という意味であると、全員が認めています。
  • 品質をプロセスに組み込みます。 品質は付け足しではありません。
  • 全員がリリース プロセスの責任を負います。 自己中心的な働き方はもうしません。
  • 常に改善に努めます。

私たちは、これらのアイデアの多くを既に実施し、働き方が改善されたことを認めています。 CD は、私たちが既に開始したことを拡張したものです。

継続的デリバリーが必要な理由

CD を使用すると、ソフトウェア チームは、信頼性の高いソフトウェア更新プログラムを高い頻度で顧客に配信できます。 CD を使用すると、顧客と関係者の両方に、最新の機能と修正プログラムを迅速に提供することができます。

これに関するチームでの討論を引き続き聞いてみましょう。

Andy: ありがとうございます、Mara。 ご存じのように、世界が変わったので CD が必要です。 新しい機能のリリースは、より迅速になっています。 更新プログラムとバグ修正は、すぐに使用できるようにする必要があります。 リリースを迅速化したいと考えているのは経営陣だけではありません。 経営陣は、お客様の要求に反応しているにすぎません。 お客様は、希望するものを当社から得られない場合、他へ行くでしょう。

Tim: そうですね。 すぐにでも始めたいです。

Andy: 皆さん、ありがとうございます。 Mara と私で簡単な概念実証 (POC) をまとめることを提案します。 動作している CD パイプラインを見ることができれば、何事もはるかに理解しやすくなると思います。

Amita: 二人とも、がんばってください。

チームはその場を離れ、Andy と Mara は詳細を検討するために残ります。

継続的デリバリーと右クリック発行の比較

多くの開発ツールには、Microsoft インターネット インフォメーション サービス (IIS) や Azure などの一部のターゲット環境にアプリケーションを直接発行する方法が用意されています。 たとえば、 Visual Studio を使用して Azure に ASP.NET Core アプリを発行することができます。 このプロセスは "右クリック発行" と呼ばれることもあります。

右クリック発行は、プロトタイプをすばやく構築するための優れた方法です。 たとえば、新しいアイデアをチームと共有できるように、アプリケーションを Azure に右クリック発行することができます。 ただし、この方法には制限があります。

継続的デリバリーを使用すると、あなたがコードをチェックインするたびに、あなたとチームは一貫した方法で、アプリケーションのテスト、デプロイ、および監視を継続的に行うことができます。 アプリケーションを右クリック発行した場合、コードが適切にテストされていることや、実際の使用状況で期待どおりに動作することは保証されません。

この短いビデオでは、Microsoft のクラウド アドボケイトである Abel Wang が、詳細について説明しています。

継続的デリバリーと継続的デプロイの比較

DevOps コミュニティでは、"継続的デリバリー" と "継続的デプロイ" という用語を耳にすることがあります。 これらの用語は同じことを意味するのでしょうか。 この短いビデオでは、Abel が違いについて説明しています。

使用できる継続的デリバリー ツール

会議が終了した後、Andy と Mara は次のステップを計画します。 Azure Pipelines を使用してソフトウェアをビルドします。 リリース プロセスを支援するために、Azure Pipelines など、どのツールを使用できるかを検討したいと考えています。

Mara: どこから始めましょうか。

Andy: まず、リリース管理ツールを決める必要があります。 次のようなツールを選択する必要があります。

  • 使用しているバージョン コントロール システムがサポートされている。
  • 作業をテストして検証するために、複数の環境にデプロイできる。
  • デプロイ タスクを簡単に定義できる。
  • 容易に拡張できる。

Mara: Azure DevOps は、他のいくつかの継続的インテグレーション (CI) および CD ソリューションと統合されています。 多くのソリューションがありますが、私たちはそのいずれにも投資していません。 していたなら、それを使用することが理にかなっていたでしょう。 人気の高い CI システムと CD システムには、Jenkins、Circle CI、GitLab、Travis CI、Azure Pipelines などがあります。

これらのツールには類似点がありますが、それぞれの長所もあります。 これらのツールには、オープンソースのもの、無料のもの、支払いが必要なものがあります。 また、他のソフトウェア ツールとの統合も組み込まれています。

たとえば、Jenkins はオープンソースです。 多くのプラグインを備えており、多くの企業で使用されています。 Circle CI は、クラウドまたはオンプレミスで実行できます。 これはカスタマイズする必要があると思います。 GitLab は、ソフトウェア開発のライフ サイクル全体を対象とした単一のアプリケーションです。 私たちに現在必要なものより大きいかもしれません。 Azure Pipelines は、使用を継続できます。

次の短いビデオでは、Abel が DevOps のベスト プラクティスを使用して Azure にコードをデプロイする方法について説明しています。

Mara: 私は Azure Pipelines を使用し続けることを選びます。

Andy: 同意します。 これまで Azure Pipelines は非常に役立ってきましたし、別の新しいテクノロジを学ぶ必要がありません。

Mara: すばらしい。 それではパイプラインの詳細に取りかかりましょう。

Andy と Mara 会議室に移動して、CD パイプラインを計画します。