継続的デリバリーとは

完了

ここでは、Tailspin チームに従って、継続的デリバリー (CD) パイプラインが今後のリリースにどのように役立つかについて説明します。

Tailspin チームは、ビルド プロセスについてより良い気持ちを感じ始めています。 Azure Pipelines で実行される自動化されたプロセスがあるため、ビルド環境は安定しています。 Amita は、成果物をテストする必要があるときにすぐに認識します。 Andy と Mara が単体テストとコード品質テストの追加を開始したため、バグが少なくなります。 人生は良く見えます。 チームの状況を確認しましょう。

午前の会議

チームは、製品マネージャーである Irwin が話しかけるのを待っている会議室にいます。 彼らは彼らの進歩について彼に話すのを楽しみにしています。 しかし、アーウィンが中に入ると、彼は幸せに見えません。 彼はすぐに話し始めます。

アーウィン: 今朝、経営陣と会議を行いました。 彼らは、私たちがゲームやウェブサイトをリリースするのに時間がかかっている理由を知りたいと考えています。 私たちの最も近い競合他社は、私たちよりもはるかに速く新機能や新しいゲームを公開します。 私たちは物事をスピードアップする必要があります。 私はあなただけに警告していません。 私はすべてのチームに警告しています。 チームの迅速なデプロイを支援するために何ができますか?

アンディ: 少し突然ですが、私たちはあなたより少し進んでいます。 Web サイトの構築方法を自動化してきました。 今は、自動化をリリース プロセスに拡張する時間です。

アーウィン: どのようにしますか?

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

アーウィン: CD パイプラインとは

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

アーウィン: 申し訳ございませんが、これは緊急です。 私は行かなくてはいけません。 皆さんでこのCDの件を検討して、早めにご報告いただけませんか。

アンディは彼のチームを見回します。

アンディ: コーヒー。

Andy とチームの残りの部分は、計画を作成するためにコーヒー ショップに向かいます。

継続的デリバリーとは

チームはコーヒーを使って会議を行い、継続的デリバリー ワークフローを設定する方法を把握しています。

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

マラ: 私にとって、CD と DevOps は切り離せないです。 エンド ユーザーに価値を継続的に提供できるように、DevOps を人、プロセス、製品の和集合として定義したことを思い出してください。

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

  • Microsoft には、ソフトウェアをリリースして展開するための信頼性の高い反復可能なプロセスがあります。
  • 可能な限り自動化します。
  • 難しいことや痛いことはやめられません。代わりに、ルーチンにする方法を理解するために、より頻繁に行います。
  • すべての情報をソース管理に保持します。
  • 私たちは皆、完了リリースを意味することに同意しています。
  • プロセスに品質を組み込みます。 品質は決して後の考えではありません。
  • リリース プロセスは、すべて Microsoft が担当します。 サイロで作業することはなくなりました。
  • 私たちは常に改善を試みます。

これらのアイデアの多くは既に導入されており、全員が作業方法を改善したことに同意しています。 CD は、既に開始した内容の拡張機能です。

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

CD は、ソフトウェア チームが顧客に信頼性の高いソフトウェア更新プログラムを迅速に提供するのに役立ちます。 CD は、お客様と関係者の両方に最新の機能と修正プログラムを迅速に提供するのにも役立ちます。

チームがこれを話し合う中で、引き続きチームに耳を傾けましょう。

アンディ: Mara さん、ありがとうございます。 CDが必要なのは、私たち全員が知っているとおり、世界が変わったからです。 新機能のリリースが高速化されています。 更新プログラムとバグ修正は、すぐに使用できる必要があります。 リリースを高速化したいのは、単なる管理ではありません。 管理は、お客様の要求に単純に対応しています。 顧客が私たちに望むものを手に入れることができない場合は、他の場所に行きます。

ティム: 合意! 私は始めるのを待つことはありません。

アンディ: ありがとう、皆さん。 Mara と私は簡単な概念実証 (POC) をまとめることを提案します。 私はあなたが動作しているCDパイプラインを見ることができるならば、すべてがはるかに理解しやすいと思います。

Amita: 二人とも、頑張って。

チームは Andy と Mara を離れ、詳細を確認します。

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

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

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

継続的デリバリーは、コードをチェックインするたびに、お客様とチームがアプリケーションを継続的にテスト、デプロイ、監視するための一貫した方法を提供します。 アプリケーションの発行を右クリックしても、コードが正しくテストされたこと、または実際の使用で想定どおりに動作する保証はありません。

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

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

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

どのような継続的デリバリー ツールを使用できますか?

会議が終了した後、Andy と Mara は次の手順を計画します。 Azure Pipelines を使用してソフトウェアを構築します。 Azure Pipelines を含め、リリース プロセスに役立つツールを検討したいと考えています。

マラ: どこから始めますか?

アンディ: まず、リリース管理ツールに同意する必要があります。 選択したツールを確認しましょう。

  • バージョン管理システムをサポートします。
  • 作業をテストして検証できるように、複数の環境にデプロイできます。
  • デプロイ タスクを簡単に定義できます。
  • 拡張が容易です。

マラ: Azure DevOps は、他のいくつかの継続的インテグレーション (CI) および CD ソリューションと統合されます。 多くのソリューションが存在し、どのソリューションにも投資していません。 もしそうなら、それを使うのが理にかなっています。 一般的な CI および CD システムには、Jenkins、Circle CI、GitLab、Travis CI、Azure Pipelines が含まれます。

これらのツールには類似点がありますが、それぞれに特定の強みもあります。 これらのツールの一部はオープンソースで、一部は無料で、一部は支払う必要があります。 また、他のソフトウェア ツールとの組み込みの統合も提供します。

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

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

マラ: 私の投票は、Azure Pipelines に留まる事です。

アンディ: 賛成です。 Azure Pipelines はこれまでうまく機能しており、別の新しいテクノロジを学ぶ必要はありません。

マラ: すごい。 パイプラインの詳細について説明します。

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