この記事では、Azure ランディング ゾーンでの DevOps に関する考慮事項と推奨事項について説明します。
DevOps とは
DevOps は、開発 (開発) と運用 (ops) に継続的な価値を提供する人、プロセス、テクノロジの和集合です。 DevOps アプローチは、組織が効率的かつ大規模に運用するのに役立つ反復可能なプロセスを作成するチームコラボレーションを促進します。
Azure ランディング ゾーンのコンテキストでは、DevOps は、次のような領域で Azure ランディング ゾーンのライフサイクル管理全体を担当するチーム (またはチーム) をガイドするフレームワークになります。
- 自律性とガバナンスの適切なバランスを実現するために、他のチームとの境界を自己整理して定義する方法
- Azure ランディング ゾーン アーキテクチャの設計を継続的に進化させる方法 (Conway の法則)
- 設計されたアーキテクチャの実装を計画、優先順位付け、反復する方法
- Azure ランディング ゾーン コードのバージョン管理、継続的インテグレーション、継続的デプロイを実装する方法
- 所有しているシステムとプラットフォームのインシデントを運用して対応する方法
- Azure ランディング ゾーンのプロビジョニングと自己復旧に適用する自動化のレベル
- アジャイルで結果指向の方法で組織内の他のチームと共同作業する方法
- セキュリティ、品質、ユーザー中心性、継続的学習の生成文化を作成する方法
クラウド運用モデルを確認するときに行う決定は、DevOps フレームワークの使用方法に影響を与える可能性があります。
DevOps の設計に関する考慮事項
DevOps フレームワークを定義するか、組織の DevOps とクラウド導入戦略に合わせます。 DevOps の定義と、チームが従う必要がある原則とプラクティスを含めます。 DevOps 戦略をビジネス戦略に結び付ける必要があります。
チームが DevOps のパフォーマンスを向上させることができる メトリック を確立します。 ハイパフォーマンスチームは仮説を使用してアイデアをテストし、それを測定して仮説がどのように機能するかを確認し、必要に応じて変更を加えます。 DevOps の最終的な目的は、デプロイの頻度、変更を適用する平均時間、低下したサービスを復元する時間などの側面を改善することです。 最終的に全体的なビジネス パフォーマンスに影響を与えるために、これらすべてのメトリックを設計する必要があります。
チームが現在のスキルに基づいて最初に実装する DevOps プラクティス を決定し、チームが DevOps メトリックを改善するのに役立つ新しいプラクティスを段階的に適用するためのロードマップを設計します。 エンジニアリングの機能とリソースへの投資は非常に重要です。
チームが DevOps プラクティスの実装に使用する DevOps ツールチェーンを決定します。 異種 DevOps エコシステムのシナリオで Azure ランディング ゾーンまたはワークロードデプロイの複雑さが増すのを避けるために、ツールが DevOps 戦略全体と一致していることを確認します。
実装した DevOps プラクティスと DevOps ツールが Azure ランディング ゾーンの設計に与える影響を評価します。
チームのスキルを継続的に成長させる準備計画を作成します。 DevOps モデルの一括適用では、対応する DevOps チームがすぐに確立されることはありません。
組織の DevOps 戦略とクラウド運用モデルに最適なチーム トポロジを決定し、チーム間の明確な境界、責任、依存関係を確立します。
Azure ランディング ゾーンを担当するチームが組織内の他のチームと共同作業して、設計と実装を更新し、インシデントを解決し、依存関係を最小限に抑え、ビジネスの優先順位に合わせる新しい Azure ランディング ゾーンの要件を把握する方法を決定します。
DevOps の推奨事項
次のセクションには、組織内で DevOps フレームワークを実装するのに役立つ推奨事項が含まれています。
DevOps フレームワークを定義する
DevOps フレームワークを確立するには、定義済みの実証済みの一連のプラクティスから始めるために既に使用できるフレームワークの使用を検討してください。
Microsoft DevOps Resource Center には、Azure ランディング ゾーンのライフサイクル管理に適応できる、次のような豊富な定義、プラクティス、および機能が用意されています。
Microsoft DevOps Dojo は、4 つの基本的な柱と 8 つの機能に基づいて構築された DevOps 分類を確立します。
Azure ランディング ゾーン管理の DevOps プラクティスを定義する
Azure ランディング ゾーンの次の DevOps プラクティスを検討してください。
- コードとして Azure ランディング ゾーンの開発ライフサイクルを管理する方法を確認します。
- DevOps 領域の Azure ランディング ゾーンの セキュリティに関する考慮事項 を確認します。
DevOps 実装体験を計画する
DevOps 実装体験を定義し、組織の クラウド導入計画に合わせます。
- チームの現在の場所を次の領域で決定します。
- 組織のクラウド導入計画を使用して、チームに必要なモデルを定義します。
- 組織の 変革タイムラインに合わせた反復および増分モードで目的のモデルを実装するための反復的なロードマップを確立します。
必要な DevOps メトリックを実装する
チームの DevOps パフォーマンスの測定に使用するメトリックを特定します。 メトリックを使用して、 ビジネス成果に結び付くチームの望ましい習慣を促進します。 チームがアクティビティに対する影響を測定できるようにメトリックを確立します。 透明性によって信頼が促進され、組織の目標との整合性が促進されるため、主要メトリックをすべてのユーザーに表示します。
ビジネスへの影響を改善するために DevOps のパフォーマンスを測定するメトリックの例を次に示します。
ビジネス成果:
- 目標と主要な結果をツールとして使用して、チームを "出力" の考え方から離れ、"結果" の考え方に移行します。 たとえば、Azure にデプロイされたポリシーの数に対するコンプライアンス評価を向上させたワークロードの数を使用できます。
- 顧客またはエンド ユーザーの満足度。 例としては、ネット プロモーター スコア (NPS)、アンケート、インタビューなどがあります。
- ビジネスの成長。 たとえば、収益性の向上、収益の増加、新しい収益源の獲得などがあります。
- 人事指標。 例としては、Employee Net Promoter Score (eNPS)、使用率、リテンション期間、満足度などがあります。
- コスト。 たとえば、コストの削減を使用できます。
ソフトウェア配信のパフォーマンス:
- 変更のリード タイム、バグ修正、新機能、またはその他の変更がアイデアからデプロイから運用環境に移行するまでにかかる時間。
- デプロイ頻度とは、コード変更が1日あたりどの程度本番環境にデプロイされるかを示します。
- 平均復元時間。インシデントが発生した後、運用環境でサービスを復元するのにかかる時間です。
- 変更失敗率とは、運用環境への変更(構成の変更など)が障害を引き起こす割合です。
品質:
- ディフェクト エスケープ 率。エンド ユーザーによって識別された欠陥の数。
- 計画外の作業または再作業。計画外の作業または作業の実行に費やされた時間の割合。
- アクティブなバグ、まだ修正されていないバグの数。
- コードの正常性。単体テストされていないコードの割合。
DevOps テクノロジ エコシステムを定義する
Azure ランディング ゾーンのライフサイクルを管理するために選択した DevOps ツールチェーンは、次の影響を受けます。
- DevOps の原則とプラクティスを実装するための戦略
- DevOps ライフサイクルのセキュリティに関する考慮事項
- Azure Landing Zones ライフサイクル管理の全体的なアーキテクチャ設計
前に定義した DevOps フレームワーク を使用して、各 DevOps プロセスに使用するツールを特定します。 チームのニーズに最も適した DevOps テクノロジを選択しますが、組織全体の標準化を実現できる一方で、DevOps エコシステムの複雑さや異種性を回避できるバランスを見つけてください。
さまざまな DevOps ステージにわたる DevOps テクノロジの例を次に示します。
- 企画: Atlassian Jira、Atlassian Trello、Azure Boards、GitHub
- 継続的インテグレーション (CI) とテスト: Atlassian Bitbucket、Azure Repos、GitHub Repos、npm、NuGet、Selenium、SmartBear Cucumber、SonarSource SonarQube、Zed Attack Proxy
-
継続的デリバリー (CD): Atlassian Bamboo、Azure Pipelines、GitHub Actions、Jenkins、Octopus Deploy、Perforce Puppet、RedHat Ansible
- コードとしてのインフラストラクチャ: Bicep、Pulumi、Terraform
- ブートストラップ: ArgoCD GitOps、Flux GitOps、Progress Chef、PowerShell Desired State Configuration (DSC)
- オペレーションズ: Azure Automation、Azure Monitor、CISCO Splunk、Grafana、Microsoft Power BI
- コラボレーションとフィードバック: Atlassian Confluence、Azure DevOps Wikis、GitHub ディスカッション、GitHub Wikis、Microsoft Teams、Slack、Stack Overflow
次の図は、Azure DevOps ツールチェーンを選択した DevOps フレームワークの例を示しています。
次の図は、Azure DevOps と GitHub ツールチェーンを選択した DevOps フレームワークの例を示しています。