次の方法で共有


App Service ランディング ゾーン アクセラレータのプラットフォームの自動化と DevOps

この記事では、Azure App Service ランディング ゾーン アクセラレータを使用するときに適用できるプラットフォームの自動化と DevOps に関する設計上の考慮事項と推奨事項について説明します。 プラットフォームの自動化と DevOps は、コードとしてのインフラストラクチャを使用したデプロイへのアプローチを最新化するための機会を提供します。

詳細については、プラットフォームの自動化と DevOps の設計領域を参照してください。

設計上の考慮事項

自動化と DevOps は最新のソフトウェア開発での重要なプラクティスであり、App Service は Web アプリケーションをビルドおよびデプロイするための強力なプラットフォームです。 自動化と DevOps の手法を使用することで、ワークフローを合理化し、アプリケーションの品質と信頼性を向上させることができます。

App Service のデプロイを準備するときは、次の考慮事項を検討してください。

  • 自動化に最適なツールとアプローチを判断できるように、プロジェクトの要件と目標を把握します。 この手順には、インフラストラクチャのプロビジョニング、コードのデプロイ、テストなどの、自動化対象のタスクを特定する作業が含まれます。 自動化の実装に使用するツールとテクノロジの特定も含まれます。

  • App Service で自動化と CI/CD パイプラインを設計するときに、セキュリティを最優先事項にします。 セキュリティ タスクに、パイプラインとそのコンポーネントへのアクセスの保護に役立つ、認証と承認の手段の実装を含めることができます。 機密データの保護に役立つ暗号化やその他のセキュリティ対策の実装を含めることもできます。

  • 継続的なインテグレーションとデプロイを設定します。 App Service では、Azure Repos、GitHub、Bitbucket などの、さまざまなソース管理システムからの継続的なインテグレーションとデプロイがサポートされています。 これらのツールを使用して、ビルドとデプロイのプロセスを自動化し、アプリが常に最新で使用可能になるようにできます。

  • 自動化スクリプトを検討します。 App Service には、PowerShell、Azure CLI、Bicep、Azure Resource Manager (ARM) テンプレートなどの、さまざまな自動化スクリプトが用意されています。 これらのスクリプトを使用して、リソースのプロビジョニングやスケーリングなどの一般的なタスクを自動化できます。

  • セルフホステッド エージェントを使用する必要があるかどうかを評価します。 ネットワーク構成によっては、App Services がパブリック インターネットから利用できない場合があります。 できない場合、パブリック ホステッド エージェントはデプロイに対して機能しません。 そのシナリオではセルフホステッド エージェントの使用を計画します。

  • 柔軟性も提供しながら共同作業を行うのに役立つブランチ戦略を採用します。 戦略をシンプルに保ち、短寿命の機能の分離を使用し、手動および自動コード分析を使用してプル要求経由でメイン ブランチに変更を返すことができるようにします。

  • ビルド パイプラインの単体テストによってビジネス ロジックがチェックされていることを確認します。 リリース パイプラインの統合テストを使用して、新しいリリース後にすべてのサービスとリソースが連携していることを確認します。 自動 UI テストを使用して、最も重要な UI 要素を確認します。 ステージング環境で k6 や JMeter などのツール経由のロード テストを使用して、機能しないパフォーマンス要件を確認します。

  • 自動化と CI/CD パイプラインを監視して保守します。 このプロセスに、パイプラインのパフォーマンスと正常性を追跡するためのログ記録と監視のツールの実装を含めることができます。 パイプラインを効果的かつ効率的な状態に維持するために、定期的に見直して更新するプロセスの実装を含めることもできます。

App Service でプラットフォームの自動化と CI/CD パイプラインの実装を成功させる鍵は、デプロイするアプリケーションの特定のニーズと要件を考慮して、ソリューションを慎重に計画して設計することです。 適切なアプローチを使用すると、クラウドにアプリケーションをデプロイして管理するためのスケーラブルで安全で効率的なプラットフォームを作成できます。

設計の推奨事項

App Service をデプロイするときは、次のベスト プラクティスに留意してください。

  • CI/CD パイプラインに Azure DevOps を使用します。 Azure DevOps は、アプリケーションのビルド、テスト、デプロイを自動化するための完全なソリューションを提供します。

  • パイプラインまたはアクションを使用して、次の作業を行います。

    • 適用されたプラクティスの利点をチーム全体で最大化します。
    • プロセスを再発明するという負担の大半を除去します。
    • 全体的な品質と機敏性に関する予測可能性と分析情報を取得します。
  • トリガーベースおよびスケジュールされたパイプラインを使用して、早い段階で頻繁にデプロイします。 トリガーベースのパイプラインにより、変更が適切な検証を経て行われるようになります。 スケジュールされたパイプラインにより、変更される環境での動作が管理されます。

  • インフラストラクチャのデプロイをアプリケーションのデプロイから分離します。 コア インフラストラクチャの変更は、アプリケーションよりも少なくなります。 それぞれの種類のデプロイを別のフローとパイプラインとして扱います。

  • ARM や Bicep テンプレートなどのコードとしてのインフラストラクチャ ツールを使用して、Azure リソースのプロビジョニングと管理を自動化します。 ARM と Bicep テンプレートを使用して、コードとしてインフラストラクチャを定義できるため、リソースのデプロイのバージョン コントロール、共同作業、自動化が簡単になります。

  • シークレットやその他の機密成果物は、該当シークレット ストア (Azure Key Vault、GitHub シークレットなど) に格納します。 アクションとその他のワークフロー パーツを必要に応じて読み取ることができるようにします。

  • 構成と設定をハードコードしないようにして、デプロイの同時実行性を最大化するように努めます。

  • パイプラインの初期段階で、コンテナー スキャナーなどの脆弱性とシークレットのスキャン ツールを含めることで、シフト レフト セキュリティを実装します。

  • ダウンタイムを最小限に抑え、デプロイ エラーのリスクを削減するために、ブルーグリーンまたはカナリア デプロイの原則を実装するデプロイ戦略を設定します。 これにより、アプリケーションの新しいバージョンをユーザー ベース全体にロールアウトする前に、ユーザーの小さなサブセットに徐々にロールアウトできます。

  • App Service デプロイ スロットを使用して、ブルーグリーン デプロイ戦略を実装します。 これにより、デプロイを運用環境にデプロイする前に、ステージング環境で検証してテストできます。 この戦略は、デプロイのスムーズかつ正常な実行、アプリケーションの変更の検証、ダウンタイムの最小化に役立ちます。

  • Application Insights を使用して、アプリケーションのパフォーマンスと可用性を監視および追跡します。 Application Insights は、アプリケーションの正常性と使用状況に関するリアルタイムの分析情報を提供します。 発生した問題をすばやく診断して解決するのにも役立ちます。

  • アジャイル開発手法や、タスクと依存関係を追跡および管理するためのツールなどの、コミュニケーションとコラボレーションを促進するツールとプロセスを実装します。 プラットフォームの自動化、DevOps、CI/CD プロセスの成功は、チーム メンバー間の効果的なコラボレーションとコミュニケーションに依存します。

App Service を使用したプラットフォームの自動化、DevOps、CI/CD を成功させる鍵は、スケーラブルで安全で、十分に監視され、コラボレーションできるプロセスとシステムを設計して実装することです。 これらの推奨事項は、IT とクラウド エンジニアが、アプリと API によって可能な限り最高のパフォーマンスとユーザー エクスペリエンスを提供するのに役立ちます。