このガイドでは、KPIを確立し、New Relicを使用して、コードデプロイメントの品質とリズムを改善および最適化する方法について説明します。これは、可観測性の成熟度に関するシリーズの一部です。
概要
開発チームは、最終的にリリースの頻度と成功によって評価されます。リリースが遅すぎるチームは、ビジネスの需要やイノベーションに追いつくことができません。失敗したリリースを作成しすぎるチームは、顧客満足度、収益、およびシステム全体の安定性に悪影響を及ぼします。
GoogleのDevOpsResearchand Assessment (DORA)チームは、ソフトウェア開発組織のパフォーマンスを示す4つの主要な指標を特定しました。当社のイノベーションと成長のバリュードライバーは、これらの指標を使用して、より効率的で応答性の高い開発チームと、より信頼性が高くパフォーマンスの高いアプリケーションを推進する全体的なプログラムを作成します。このリリース品質(RelQual)ガイドは、展開頻度、アプリケーションパフォーマンス、およびアプリケーションの信頼性を促進することにより、そのプログラムに貢献します。
望ましい結果
このリリース品質ガイドのプロセスを使用して、展開の頻度を増やしながら、サイズと範囲を縮小します。これにより、アイデアを本番コードに実装する時間が短縮されると同時に、ソフトウェアの欠陥による影響(またはブラスト半径)が減少します。
さらに、RelQualプロセスにより、パフォーマンスのボトルネックやエラーの原因を特定し、開発プロセスにフィードバックして解決できるようにする予定です。これにより、信頼性と顧客満足度を向上させるとともに、インフラコストを低減させることができます。
RelQualの全体的な目標は、パフォーマンス向上の継続的なサイクルを作成し、より少ない変更でより多くのリリースのパターンを推進することです。これにより、ビジネスの評判と収益に対するリスクを軽減し、アプリケーションのパフォーマンスと信頼性を向上させることができます。
重要な概念
Kepの概念は次のとおりです。
伝える、修正する、革新する
New Relicの可観測性成熟度プラクティスの中心的なテーマの1つは、「コミュニケーション、修復、革新」です。 RelQualは、特定のKPIを使用して、開発プラクティスとアプリケーションの現在の状態を利害関係者に伝達できるようにすることで、そのテーマをサポートします。次に、これらのKPIを使用して、開発プラクティスを調整し、低速で信頼性の低いアプリケーションコンポーネントを特定して、後続の開発スプリントで修正できるようにします。最後に、これらのKPIを使用して開発慣行を加速し、革新のための時間を追加します。
トランクベースの開発
トランクベースの開発は、DevOps Research and Assessment(DORA)組織によって、より迅速な配信とより高い組織パフォーマンスを推進する主要な機能として特定されたプラクティスです。これはCI/CDに必須のプラクティスです。
つまり、トランクベースの開発では、開発作業が小さなバッチに分割され、単一のトランクのブランチに対して実行されます。作業のバッチが完了するとすぐに、ブランチはトランクにマージされます。各ブランチの有効期間は短いと予想されるため、トランクへのマージが簡単になり、すべての開発者がコードベースの最新リリースから作業できるようになります。
RelQualは、このDevOpsのベストプラクティスの採用を推進し、その遵守を保証します。そうすることで、本番環境へのコード投入を加速させることができます。
ITサービスバウンダリー
RelQualのユースケースは、ITサービス境界のレベルで機能します。境界でサービスを測定することにより、その上流で何が起こっているかを把握できます。
ご覧のとおり、可観測性成熟度シリーズのサービスレベル管理ガイドでは、サービス境界の概念を使用して、サービスとその依存関係の応答時間とエラー率を測定しています。 RelQualは同じ概念を使用して、開発プラクティスがサービスに与える影響を測定し、ITサービスの進化に合わせて、開発チームの応答性、革新能力、およびアプリケーションの安定性を向上させます。
主要業績評価指標
開発品質プロセスを使用して、次のKPIを収集および測定します。
- 放出率
- リリースサイズ/スコープ
- アプリの応答性、エラー発生率
- 生産への影響
- サポートチケット量
- インフラコスト
- 観測可能範囲
各指標の詳細情報は以下の通りです。
前提条件
開始する前に、同等の経験がない場合は、 New Relic University (NRU) Overview Course を修了しておく必要があります。また、以下の基本的な理解も必要です。
KPIの現状を把握する
他の継続的改善プロセスと同様に、RelQualの最初のステップは、KPIの現在の状態を確立することです。そのためには、次のタスクを実行します。
これらについては、以下で詳しく説明します。
アプリケーションの特定
最初のステップは、RelQualプロセスの最初の反復の対象であるアプリケーションを特定することです。RelQualプロセスに含めるべきアプリケーションは、以下のようなものです。
- 積極的に開発中
- 重要なオペレーションサービスである
- 開発サイクルが遅い
- デプロイメントに失敗した実績がある
必要なKPIを収集する
リリース品質ユースケースの成功は、その主要なパフォーマンス指標に大きく依存します。CI/CDプラットフォーム、ソース・リポジトリ、観測可能なソリューションなどの明確なソースから定義されたKPIを確実に収集することから始める必要があります。KPI のソースを特定したら、それらを抽出して New Relic プラットフォームにインポートするための方法を特定する必要があります。
このユースケースに必要なKPIと最低限必要な属性は、主要業績評価指標のセクションにリストされています。通常、開発ツールチェーンのAPIを使用してKPIとその属性を抽出し、カスタムイベントAPIを使用してそれらをNewRelicに送信します。
カスタム統合作業を開始する前に、目標を満たすすぐに使用できる統合が存在するかどうかを判断する必要があります。
RelQualダッシュボードの実装
レルクアル 品質改善プロセスの主要な原動力です。KPI と傾向が表示されるので、改善の取り組みを特定して優先順位を付けることができます。
サンプルのRelQualダッシュボードは、GitHubの可観測性成熟度リソースセンターにあります。
ダッシュボードで提示する情報の一部は、開発ツールチェーンに依存するため、ダッシュボードはサンプルからの変更が必要な場合があります。
ベースラインを設定する
RelQualプロセスでは、ベースラインが必要です。これにより、 最初のイネーブルメント を実行することができます。ベースラインには、リリース活動の代表的なサンプルを含める必要があります。ベースラインには、少なくとも1つの完全なリリースサイクルを含める必要がありますが、有効なベースラインを得るためには、より多くのサイクルが必要な場合もあります。
ベースラインの収集と評価のサイクルは、アジャイル・スプリントと一致させ、RelQualイベント・データが期待通りに蓄積されていることを定期的に確認する必要があります。
イニシャルイネーブルメントの実施
この段階では、開発チームとその他の利害関係者に、ベースラインのRelQualデータと、実行する継続的な改善プロセスを紹介します。
このプロセスは4つのアクティビティで構成されています。
- トランクベースの開発の概念を紹介します。あなたと利害関係者は、トラックベースの開発のコアコンセプトを確認し、現在の慣行がどこで異なるかを特定し、それを実装するための戦略を作成します。
- リリースのKPIと傾向を確認します。リリースレートとリリースサイズ/スコープKPIを確認して、トランクベースの開発の実装に向けて進歩していることを確認します。あなたの目標は、新しいリリースのサイズ/範囲を縮小しながら、リリース率を上げることです。
- アプリケーションのKPIと傾向を確認します。ここでは、アプリケーションのパフォーマンスとエラーKPIを確認して、アプリケーションの信頼性とパフォーマンスの向上に向けた取り組みを特定し、優先順位を付けます。
- 技術的な提言を行う。 ここでは、あなたと関連するステークホルダーが、リリースワークフローや観測可能性戦略の変更など、技術的な推奨事項を特定し、検討します。
セッションテンプレート プレゼンテーション を使用すると、RelQual プロセスのこの部分を整理することができます。
改善プロセス
これは、継続的改善プロセスの進行中のフェーズです。このフェーズでは、最初の有効化手順を繰り返して、ベースラインに対する進捗状況を確認し、戦略と戦術を調整して、必要な前向きなビジネス成果を実現します。
改善プロセスの各サイクルは、リリースプロセスのいくつかの反復の後に発生する必要があります。別の方法として、各アジャイル・スプリントの中間点と終了時に評価を予定することもできます。
この段階では、あなたは
- KPIを上層部に報告することで、ステークホルダーチームが適切に作業の優先順位をつけていることを確認し、約束されたビジネス成果への進捗を示すことができます。
- 数ヶ月から数年にわたり、毎週のKPIを記録・保存し、基準値を設定し、改善率を表示します。
これは継続的な改善プロセスであることに注意してください。 RelQualの目標を確実に達成するために、長期にわたってKPIの収集と評価を継続します。
価値の実現
RelQualプロセスの実装が成熟すると、アプリケーションの展開に関連するビジネスリスクと技術リスクが減少し、アプリケーションのパフォーマンスが向上します。これにより、顧客満足度が向上し、間接費が削減され、収益の可能性が向上します。
まだ行っていない場合は、 開発品質ガイドを確認して使用することもお勧めします。