DevOps ツールチェーンは、DevOps チームが製品ライフサイクル全体で共同作業を行い、DevOps の主要な基礎に取り組むことができるツールのコレクションです。
DevOps ツールチェーンに含まれるツールは、計画、継続的インテグレーション、継続的デリバリー、運用、コラボレーション、フィードバックのための統合ユニットとして動作します。 DevOps テクノロジ エコシステムの定義に関するページでは、さまざまな DevOps ステージで DevOps テクノロジの例をいくつか確認できます。
DevOps ツールチェーンに関する考慮事項
ツールチェーンを選択すると、DevOps のプロセスは組織全体で既に使用できます。 チームのニーズに適したテクノロジの導入と、組織全体の異種 DevOps エコシステムを標準化して回避するという目標との間で、適切なバランスを見つける必要があります。
さまざまな種類の DevOps ツールチェーンを採用できます。
- オールインワン: 他のサード パーティ製ツールと統合されない可能性がある完全なソリューションを提供します。 オールインワンのツールチェーンは、DevOps 体験を開始する組織に役立ちます。 例: フル スタックの Azure DevOps ツールチェーン。
- カスタマイズ: チームが知っていて、既に使用している既存のツールを、より広範な DevOps ツールチェーンに取り込んで組み合わせることができます。 このようなツールチェーンの統合は、画面の切り替え、複数の場所へのログイン、ツール間での情報共有の課題を回避するために、このようなツールチェーンに不可欠です。 例: Azure DevOps と GitHub ツールチェーン。
定期的に更新され、電子メールまたはオンライン ポータルで必要なときにいつでもサポートを受けるツールチェーンを使用することを検討してください。 これは、市場への重要なパスにあるすべての製品またはサービスの要件です。
計画
-
継続的計画のプラクティスをサポートするツールの採用を検討してください。
- リリース計画
- エピックと機能の特定
- 優先順位付け
- 予測
- ユーザー ストーリーの定義
- バックログの改善
- スプリント計画
- 日次スクラム
- スプリント レビュー
- 回顧 展
継続的インテグレーションと継続的デリバリー
- 継続的インテグレーション (CI)/Continuous Delivery (CD) を実装する場合は、次をサポートするツールの採用を検討してください。
- リポジトリの選択も、データ主権/所在地の要件の影響を受けます。 米国以外の国/リージョンでデータをローカルでホストする必要がある場合は、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 ツールチェーン
| DevOps ステージ | Tools |
|---|---|
| 計画 | 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 用 Marketplace 拡張機能を採用して、資格情報スキャナー、オープンソース スキャナー、バグと脆弱性スキャナーなどのツールを使用して静的コード分析を改善します。 |
| オペレーション | Azure ダッシュボードとレポートでは、 主要なサービス パフォーマンス メトリックを監視するのに役立つカスタム レポートが提供されます。 Azure Diagnostics と Application Insights は、Azure リソースの正常性と状態を追跡する標準的な方法です。 Azure Monitor は、一元的な監視と管理を提供します。 Azure Automation を使用して、問題を診断して解決するためのイベント ベースの自動化を作成できます。 Defender for Cloud DevOps は、中央コンソールを使用して、Azure DevOps や GitHub を含む複数のパイプライン環境にわたって、コードからクラウドにアプリケーションとリソースを保護する機能をセキュリティ チームに提供します。 |
| コラボレーションとフィードバック | Azure DevOps Wiki を使用すると、他のチームのメンバーと情報を共有し、そのコンテンツと構造の共同編集をサポートできます。 Azure Boards では 、バックログ項目のコメントとディスカッションにかんばんコラボレーションとサポートが提供されます。 |
Azure DevOps と GitHub ツールチェーン
| DevOps ステージ | Tools |
|---|---|
| 計画 | Azure Boards は 、計画、リポジトリ管理、データの視覚化、階層的作業項目の編成のための安定したスケーラブルなソリューションを提供します。 GitHub と統合されるため、作業項目と GitHub コミットをリンクできます。 また、シンプルですぐに使用できるワークフローでも、強力で柔軟な Azure Boards カスタマイズ エンジンを使用して構築するカスタム ワークフローでも、理想的なワークフローを選択できます。 データを視覚化する必要がある場合、Azure Boards を使用すると、カスタム ダッシュボードを簡単に構築して構成し、プロジェクトのライフサイクル全体の進行状況を監視できます。 |
| CI/CD | GitHub リポジトリ、GitHub 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 Packages は、独自のパッケージをプライベートまたはパブリックにホストできるソフトウェア パッケージ サービスです。 GitHub では、Docker または OCI イメージをホストするためのコンテナー レジストリのサポートが提供されています。 パッケージを発行、インストール、または削除し、パッケージのライフサイクル管理をセキュリティで保護するために、アクセス トークンが必要です。 パッケージを自動化するには、GitHub Packages と GitHub Actions、GitHub API、Webhook を統合して、コード、CI、デプロイをすべて 1 つのインターフェイスに含む DevOps ワークフローを作成できます。 |
| オペレーション | GitHub Insights では、GitHub Enterprise Server インスタンスのデータに基づく分析レポートが提供され、ソフトウェア配信プロセスを理解して改善するのに役立ちます。 ランディング ゾーンの診断と管理については、 フル スタックの Azure DevOps シナリオで推奨される Azure サービスを使用します。 |
| コラボレーションとフィードバック | GitHub ディスカッションを使用して、質問、アイデア、会話、コメント要求 (RFC)、リソース計画、お知らせを共有できます。 Azure Boards を使用して、カスタム ダッシュボードを簡単に構築および構成し、プロジェクトのライフサイクル全体の進行状況を監視します。 完全なチーム コラボレーション エクスペリエンスのためにMicrosoft Teamsを採用します。 |