継続的インテグレーションと継続的デリバリー (Azure を使用した Real-World Cloud Apps の構築)

作成者 : Rick AndersonTom Dykstra

Fix It プロジェクトのダウンロード または 電子書籍のダウンロード

Azure 電子書籍 を使用した Real World Cloud Apps の構築 は、Scott Guthrie が開発したプレゼンテーションに基づいています。 クラウド向けの Web アプリの開発を成功させるために役立つ 13 のパターンとプラクティスについて説明します。 電子書籍の詳細については、 最初の章を参照してください。

最初の 2 つの推奨される開発プロセス パターンは 、すべて自動化ソース管理であり、3 番目のプロセス パターンではそれらを組み合わせています。 継続的インテグレーション (CI) とは、開発者がソース リポジトリにコードをチェックインするたびに、ビルドが自動的にトリガーされることを意味します。 継続的デリバリー (CD) では、ビルドと自動単体テストが成功した後、より詳細なテストを実行できる環境にアプリケーションを自動的にデプロイします。

クラウドを使用すると、テスト環境を使用している限り、環境リソースに対してのみ課金されるため、テスト環境を維持するためのコストを最小限に抑えることができます。 CD プロセスでは、必要なときにテスト環境を設定でき、テストが完了したら環境を停止できます。

継続的インテグレーションと継続的デリバリーのワークフロー

一般に、開発環境とステージング環境への継続的デリバリーを行うことをお勧めします。 ほとんどのチームは、Microsoft であっても、運用環境の展開に対して手動のレビューと承認プロセスを必要とします。 運用環境のデプロイの場合は、開発チームの主要なユーザーがサポートに利用できる場合、またはトラフィックの少ない期間中に発生することを確認することをお勧めします。 ただし、開発者が行う必要があるすべてが変更にチェックされ、受け入れテスト用に環境が設定されるように、開発環境とテスト環境を完全に自動化することを妨げるものは何もありません。

継続的デリバリーに関する Microsoft のパターンとプラクティスに関する電子書籍の次の図は、一般的なワークフローを示しています。 画像をクリックすると、元のコンテキストでフルサイズが表示されます。

継続的デリバリー ワークフロー

クラウドでコスト効率の高い CI と CD を実現する方法

Azure でのこれらのプロセスの自動化は簡単です。 クラウドですべてを実行しているため、ビルドやテスト環境のサーバーを購入または管理する必要はありません。 また、テストを実行するためにサーバーが使用可能になるのを待つ必要はありません。 すべてのビルドで、自動化スクリプトを使用して Azure でテスト環境を起動し、それに対して受け入れテストまたはより詳細なテストを実行し、完了したら破棄するだけで済みます。 また、そのサーバーを 2 時間または 8 時間または 1 日だけ実行する場合は、マシンが実際に実行されている時間に対してのみ支払うので、そのサーバーに対して支払う必要がある金額は最小限です。 たとえば、Fix it アプリケーションに必要な環境は、Free レベルから 1 レベル上に進む場合、基本的に 1 時間あたり約 1 セントのコストがかかります。 1 か月間、一度に 1 時間だけ環境を実行した場合、テスト環境のコストは、スターバックスで購入したラテよりも低くなります。

Azure DevOps Services

Azure DevOps Servicesには、計画からデプロイまでのアプリケーション開発を支援するさまざまな機能が用意されています。

  • Git (分散) と TFVC (一元化) の両方のソース管理がサポートされています。
  • エラスティック ビルド サービスを提供します。これは、必要なときにビルド サーバーを動的に作成し、完了したときにそれらを停止することを意味します。 誰かがソース コードの変更をチェックインしたときにビルドを自動的に開始できます。また、ほとんどの場合、アイドル状態になっている独自のビルド サーバーに割り当てと支払いを行う必要はありません。 特定の数のビルドを超えない限り、ビルド サービスは無料です。 大量のビルドを実行する場合は、予約済みビルド サーバーに対して少しの追加料金を支払うことができます。
  • Azure への継続的デリバリーがサポートされています。
  • 自動ロード テストをサポートします。 ロード テストはクラウド アプリにとって重要ですが、遅すぎるまで無視されることがよくあります。 ロード テストでは、何千人ものユーザーによるアプリの大量の使用がシミュレートされるため、アプリを運用環境にリリースする前にボトルネックを見つけてスループットを向上させることができます。
  • チーム ルームのコラボレーションをサポートします。これにより、小規模なアジャイル チームのリアルタイムのコミュニケーションとコラボレーションが容易になります。
  • アジャイル プロジェクト管理をサポートします。

Azure DevOps Servicesの継続的インテグレーションと配信機能の詳細については、Azure DevOps のドキュメントを参照してください

ターンキープロジェクト管理、チームコラボレーション、ソース管理ソリューションをお探しの場合は、Azure DevOps Servicesチェック。 Azure DevOps Servicesでサインアップします。

まとめ

最初の 3 つのクラウド開発パターンは、繰り返し可能で信頼性の高い予測可能な開発プロセスを低サイクル時間で実装する方法についてでした。 次の では、アーキテクチャとコーディングのパターンを見始めます。

リソース

詳細については、「Azure App Serviceに Web アプリをデプロイする」を参照してください。

次のリソースも参照してください。