次の方法で共有


DevOps ツールチェーン

DevOps ツールチェーンは、DevOps チームが製品ライフサイクル全体でコラボレーションし、DevOps の主な基礎に取り組むことができるようにするツールのコレクションです。

DevOps ツールチェーンに含まれるツールは、計画、継続的インテグレーション、継続的デリバリー、運用、コラボレーション、フィードバックのための統合ユニットとして機能します。 DevOps テクノロジ エコシステムの定義に関するページで、DevOps のさまざまなステージで DevOps テクノロジの例をいくつか参照できます。

DevOps ツールチェーンに関する考慮事項

  • ツールチェーンを選択するときに、DevOps のプロセスが組織全体で既に使用中である場合があります。 チームのニーズに適したテクノロジの導入と、組織全体で DevOps エコシステムを標準化し、異種 DevOps エコシステムを回避するという目標との間で、適切なバランスを見つける必要があります。

  • 次のようなさまざまな種類の DevOps ツールチェーンを導入できます。

    • オールインワン: 他のサード パーティ製ツールと統合する可能性がない完全なソリューションを提供します。 オールインワンのツールチェーンは、DevOps の導入を開始する組織に便利です。 例: フル スタック Azure DevOps ツールチェーン
    • カスタマイズ: チームが認識し、既に使用している既存のツールを、より幅広い DevOps ツールチェーンに取り込み、組み合わせることができます。 このような種類のツールチェーンの場合、画面間の切り替え、複数の場所へのログイン、ツール間での情報共有の課題に不要な時間を費やすのを避けるために、統合が不可欠です。 例: Azure DevOps と GitHub のツールチェーン
  • 定期的に更新され、必要に応じて電子メールまたはオンライン ポータルによるサポートを受けることができるツールチェーンの使用を検討してください。 市場投入を進めている製品またはサービスには、これが必要です。

計画

  • 継続的計画 の実行をサポートするツールの導入を検討します:
    • リリース計画
    • エピックとフィーチャーの識別
    • 優先順位付け
    • 推定
    • ユーザー ストーリーの定義
    • バックログ リファインメント
    • スプリント計画
    • デイリー スクラム
    • スプリント レビュー
    • 振り返り

継続的インテグレーションと継続的デリバリー

  • 継続的インテグレーション (CI)/継続的デリバリー (CD) を実装する場合は、以下をサポートするツールの導入を検討してください:
    • バージョン管理システム。 プロジェクト内のすべてのものを、Git のような 1 つのバージョン管理リポジトリにチェックインする必要があります。つまり、コード、テスト、データベース スクリプト、ビルド & デプロイ スクリプトのほか、アプリケーションの作成、インストール、実行、テストに必要なその他のものなどです。
    • ブランチ戦略
    • 自動ビルド
  • リポジトリの選択は、データ主権/居住要件の影響も受けます。 米国以外の国/地域でデータをローカルにホストする必要がある場合、GitHub Repos を使用できないときは、Azure DevOps リポジトリが必要になります。
  • リソースのプロビジョニングに必要な手動構成の量を最小限に抑えるには、コードとしてのインフラストラクチャ (IaC) の導入を検討してください。 IaC を使用すると、テストやバージョン管理などのソフトウェア エンジニアリング プラクティスを適用できます。これにより、インフラストラクチャとデプロイの自動化、一貫性、反復可能性が実現されます。 スクリプトとテンプレートは、保守の対象となる他のすべてのコードと同様にソース管理してください。
  • コード スキャン ツールを導入して、コードの欠陥をできるだけ早く検出できるようにします。 デプロイ前のチェックを組み込んで、デプロイ (例: "what-if") 関数の前に変更を検証および確認します。
  • CI/CD ツールは、製品の市場投入までの時間を短縮します。 タスクを並列化し、クラウドでホストされるインフラストラクチャで柔軟なスケーラビリティを活用できるツールにより、CI/CD プロセスのパフォーマンスが向上します。
  • DevOps パフォーマンスの測定をサポートする CI/CD ツール機能の使用を検討してください。 ダッシュボードとレポートでは、開発プロセスの側面 (リード タイム、サイクル時間、作業速度など) を追跡できます。

継続的運用

継続的運用では、重要なサービスや機能を中断なく提供することで、組織が内部システムと顧客間で出力の継続性を維持することに重点が置かれます。 継続的運用の目標は次のとおりです。

  • 予定メンテナンス、容量の最適化、デプロイなどの計画的なダウンタイムや中断の必要性を軽減または排除します。
  • システムの全体的な信頼性と回復性を、人、プロセス、ツールの 3 つの側面で向上させます。

クラウドネイティブ ツールを使用して、次の操作を行います。

  • サービスのパフォーマンスと可用性の主なメトリックを監視します。
  • デジタル エクスペリエンスとカスタマー分析情報を取得します。
  • インシデント、システムの回復、またはスケーリングに対するインテリジェンスに基づく応答を生成します
    • Azure Diagnostics および Application Insights は、Azure リソースの正常性や状態を追跡するための標準の方法です。 Azure Monitor でも、クラウドまたはハイブリッド ソリューション向けの一元化された監視および管理が提供されます。
  • プロアクティブ メンテナンスと、デプロイやシステム更新などのタスクを自動化します。
    • Azure Automation は、問題を診断して解決するためにイベント ベースの自動化の作成に使用できるクラウドネイティブ ツールです。

コラボレーションとフィードバック

  • CI/CD プロセスの中心にあるのは、迅速なフィードバック ループです。 CI/CD ツールは、フィードバックを使用して CI/CD ワークフロー ロジックの条件を解決し、通常はダッシュボードを介してユーザーに情報を表示します。

  • 電子メール通知のサポートと IDE や通信プラットフォームとの統合により、ダッシュボードをチェックしなくても、何が起こっているかについて常に情報を得ることができます。 アラートが多すぎるとバックグラウンド ノイズに変換されるため、受信するアラートを柔軟に構成できることを確認します。

  • コラボレーション用に選択するツールは、以下のコラボレーション プラクティスをサポートする必要があります。

    • かんばんコラボレーション
    • Wiki コンテンツ コラボレーション
    • ChatOps コラボレーション
    • チーム ルーム

Azure ランディング ゾーンに関する DevOps ツールチェーンの推奨事項

Azure ランディング ゾーン実装用の DevOps ツールチェーンでは、前に説明したすべての DevOps フェーズを検討する必要があります。

  • 計画
  • CI/CD (コードとしてのインフラストラクチャなどの自動化機能を含む)
  • 操作
  • コラボレーションとフィードバック

ランディング ゾーン導入の選択に関するページで、ランディング ゾーンのデプロイに関するガイダンスと実装オプションの選択に関する考慮事項を確認します。

選択した手法 (小規模から始めて拡張、またはエンタープライズ規模) に関係なく、企業が DevOps ワークフローやツールチェーンを設計する際に従う傾向がある一般的なトポロジがいくつかあります。

  • フル スタック Azure DevOps ツールチェーン: 既に Microsoft エコシステムに多額の投資を行っている企業の場合、このトポロジでは、Microsoft 製品とサービス間のネイティブ統合を最大限に活用し、主なプロセスを合理化できます。
  • Azure DevOps と GitHub のツールチェーン: このトポロジを使用すると、Azure と GitHub の両方の長所を、適切に統合されたソリューションの一部として使用できます。

フル スタック Azure DevOps ツールチェーン

フルスタック Azure DevOps ツールチェーンの図。

DevOps ステージ ツール
計画 Azure Boards は、階層バックログ、カスタマイズ可能なかんばんボード、豊富なプロセスのカスタマイズ、チーム ダッシュボード、カスタム レポートなど、開発者やその他の担当者に強力で柔軟な計画機能を提供します。
CI/ CD Azure Repos では、プライベート Git リポジトリを作成でき、さまざまな Git クライアント、ブランチ戦略、保護がサポートされます。 また、Azure Repos では、ヨーロッパの規制への準拠を可能にするために、クラウドにローカライズされたデータ所在地も提供されます。 Azure Pipelines では、顧客が高度なテスト レポートを含む CI/CD 用の自動パイプラインを設定でき、マルチステージ パイプラインを強力にサポートします。 Azure Pipelines のきめ細かいアクセス許可、ゲート、カスタム チェック、自動テスト結果レポートは、セキュリティ、コンプライアンス、安全なデプロイのベスト プラクティスを組織で適用し、並列ステップの実行とスケーラビリティをサポートします。 Azure Artifacts では、パッケージを格納し、セキュリティのために各パッケージを確認および検証するためのフィードが用意されており、きめ細かいアクセス許可の制御と監査も提供されます。 Azure DevOps の Azure Test Plans は、探索的テスト、手動テスト、ユーザー受け入れテスト用のブラウザー ベースのテスト管理ソリューションを提供します。 Azure Test Plans のユーザーは、通常、計画とプロジェクト管理に Azure Boards も使用します。 ユーザー ストーリーやその他の要件をテスト ケースにリンクし、テストにより見つかったバグを文書化できます。 DevOps のマーケットプレース拡張機能を導入して、資格情報スキャナー、オープンソース スキャナー、バグと脆弱性のスキャナーなどのツールを使用して静的コード分析を改善します。
操作 Azure ダッシュボードとレポートでは、主なサービス パフォーマンス メトリックを監視するのに役立つカスタム レポートが提供されます。 Azure Diagnostics および Application Insights は、Azure リソースの正常性や状態を追跡するための標準の方法です。 Azure Monitor では、監視と管理が一元化されます。 Azure Automation を使用すると、問題を診断して解決するためのイベント ベースの自動化を作成できます。 Defender for Cloud DevOps では、中央コンソールを使用して、Azure DevOps や GitHub などのマルチパイプライン環境全体で、コードからクラウドまでのアプリケーションとリソースを保護する機能をセキュリティ チームに提供します。
コラボレーションとフィードバック Azure DevOps Wiki では、他のチームのメンバーと情報を共有でき、そのコンテンツと構造の共同編集がサポートされます。 Azure Boards では、バックログ項目のコメントとディスカッションのためのかんばんコラボレーションとサポートが提供されます。 Microsoft Teams を Azure DevOps と統合して、チームの完全なコラボレーション エクスペリエンスを実現できます。

Azure DevOps と GitHub のツールチェーン

Azure DevOps と GitHub のツールチェーンの図。

DevOps ステージ ツール
計画 Azure Boards では、計画、リポジトリ管理、データ視覚化、作業項目の階層編成のための安定したスケーラブルなソリューションを提供します。 GitHub と統合されるため、作業項目と GitHub コミットをリンクできます。 また、シンプルですぐに使用できるワークフローであっても、強力で柔軟な Azure Boards カスタマイズ エンジンを使用して構築するカスタム ワークフローであっても、最適なワークフローを選択できるようにします。 データを視覚化する必要がある場合、Azure Boards は、カスタム ダッシュボードを簡単に構築して構成し、プロジェクトのライフサイクル全体で進行状況を監視するのに役立ちます。
CI/ CD GitHub RepoGitHub Advanced Security (GHAS)、および GitHub Advanced Security for Azure DevOps を含む、GitHub Enterprise (GHE) バージョンの GitHub を使用します。 GHAS には、CodeQLコード スキャンシークレット スキャン依存関係のレビューが含まれています。 GHE には、コードの開発に使用できるクラウド IDE である Codespaces も用意されており、Visual Studio Code を置き換えることができます。これは、組織が通常、フル スタックの Azure DevOps シナリオに含めます。 リポジトリが GitHub にある場合は、GitHub Actions を使用して非ビルド ワークフローを自動化できます。 GitHub の外部からコードにアクセスする必要がある、またはワークフロー テンプレートとビルド パイプラインの管理の一元化を必要とする、より複雑なシナリオがある場合は、Azure Pipelines を採用します。 Azure Boards では、Azure Pipelines と GitHub リポジトリを統合できます。 Azure DevOps と GitHub の統合の詳細については、「Azure DevOps と GitHub の操作」を参照してください。 GitHub パッケージは、独自のパッケージをプライベートまたはパブリックにホストできるようにするソフトウェア パッケージ サービスです。 GitHub では、Docker または OCI イメージをホストするためのコンテナー レジストリのサポートが提供されます。 パッケージを発行、インストール、または削除し、パッケージのライフサイクル管理をセキュリティで保護するには、アクセス トークンが必要です。 パッケージを自動化するには、GitHub パッケージを GitHub Actions、GitHub API、Webhook と統合して、コード、CI、デプロイをすべて 1 つのインターフェイスに含む DevOps ワークフローを作成できます。
操作 GitHub Insights では、GitHub Enterprise サーバー インスタンスのデータに基づく分析レポートが提供され、ソフトウェア配信プロセスの理解と改善に役立ちます。 ランディング ゾーンの診断と管理には、フル スタック Azure DevOps シナリオで推奨される Azure サービスを使用します。
コラボレーションとフィードバック GitHub Discussions を使用して、質問、アイデア、会話、RFC (Request for Comments)、リソース計画、お知らせを共有できます。 Azure Boards を使用して、カスタム ダッシュボードを簡単に構築および構成し、プロジェクトのライフサイクル全体で進行状況を監視します。 完全なチーム コラボレーション エクスペリエンスのために Microsoft Teams を採用します。