サービス成熟度は、Scorecardを単調な合否のパーセンテージから、構造化された改善パスへと変換します。すべてのルールを平等に扱うのではなく、Scorecardのルールは成熟度レベルにグループ化され、オプションで個別の重みが割り当てられます。これにより、開発チームに明確で優先順位付けされたロードマップが提供されます:すべての集計を同時に解決しようとするのではなく、サービスは、最小限の運用基準を満たすことから卓越した運用を実証することまで、定義された品質の段階を体系的に進みます。
サービス成熟度の仕組み
Scorecardのすべてのルールは、単一の成熟度レベルに属します。エンティティ(サービスなど)が各レベルのルールに合格すると、そのScorecardの成熟度ラダーを上がります。これには2つの独立した概念が関係しています:
- 成熟度レベルは、ルールをステージに編成し、エンティティから導き出される成熟度を決定します。
- 加重スコアリングは、各ルールがScorecardの総合スコアにどの程度貢献するかを決定します。
これら2つの概念は独立して機能します:成熟度はサービスがどの技術標準を満たしているかを追跡し、重みはルールが数値スコアにどれだけ影響するかを管理します。
成熟度レベル
デフォルトでは、Scorecardには3つの成熟度レベルがあります。New Relicはこれらを使用して、サービスのライフサイクルを説明します:
成熟度レベル | 説明 |
|---|---|
Basic (下限) | 最小限の、必須の運用基準です。このレベルのサービスは、すべてのコアコンプライアンス、セキュリティ、および所有権のチェックを満たしています。サービスがBasicルールに違反した場合、本番環境の準備ができているとは見なされません。 |
Intermediate (標準) | 安定した、成熟したサービスに期待される基準です。これには、強力な自動化とドキュメントに裏付けられた、信頼性、継続的な配信、および包括的な監視のためのベストプラクティスが含まれています。 |
Advanced (目標) | 卓越性のエリート基準です。これらのサービスは、プロアクティブな最適化、厳格なSLOの遵守を示し、予想される成長に対して将来も対応できるように構築されています。 |
成熟度レベルは、作成、名前変更、および並べ替えが可能です。1つのScorecardは、1から5までの個別のレベルをサポートできます。デフォルトの3つを超えるレベルのカスタマイズはAPIを通じてのみ利用可能であるため、設定手順についてはAPIを使用した成熟度レベルの管理をご覧ください。
エンティティの成熟度
各エンティティにはスコアカードごとに成熟度レベルが割り当てられ、New Relicはエンティティが満たしたルールからそれを導き出します:
- エンティティは、そのレベルおよびそれ以下のすべてのレベルのすべてのルールに合格した場合にのみ、成熟度レベルを達成します。たとえば、BasicのすべてのルールとIntermediateのすべてのルールに合格したエンティティの成熟度は、Intermediateになります。
- Basicルールに不合格となったエンティティはBelow basicとなり、最小限の運用基準を満たしていないことを意味します。
エンティティの成熟度は純粋に整理のためのものです:エンティティとルールがどのようにグループ化され、表示されるかを変更しますが、スコアカードの数値スコアは変更しません。
重み付けスコアリング
すべてのルールが等しく重要というわけではありません。各ルールには整数の重み(impactWeight)があり、Scorecardの総合スコアは、各ルールの個別スコアの加重平均になります:
すべてのルールが運用上同じ重要性を持つわけではありません。各ルールには整数の重み(impactWeight)が含まれており、Scorecardの総合スコアは、各ルールの個別スコアの加重平均として計算されます:
Scorecard score = (sum of each rule's score x its weight) / (sum of all weights)重み値について知っておくべきいくつかの事項は次のとおりです:
- これは相対的な乗数であり、パーセンテージではありません。
20の重みは20%を意味するわけではありません。そのルールが、重み10のルールの2倍としてカウントされ、重み2および1と同じとしてカウントされることを意味します。ルールの重み間の比率のみが重要です。 - デフォルトの重みは
1であるため、すべてのルールが同じ重みを持つ場合、Scorecardのスコアはルールスコアの単純な(重み付けされていない)平均になります。 - 重みは
1~100の整数です。 - 重みはスコアにのみ影響します;エンティティの成熟度レベルを変更するものではありません。
たとえば、Scorecardには3つのルールがあり、それぞれに独自のスコアと重みがあります:
ルール | ルールスコア | 重み |
|---|---|---|
重要なセキュリティチェック | 90% | 5 |
設定済み集計 | 60% | 3 |
ドキュメントリンクが存在します | 40% | 1 |
Scorecardの総合スコアは、これらのルールスコアの加重平均です:
(90 × 5) + (60 × 3) + (40 × 1) 670------------------------------ = --- ≈ 74% 5 + 3 + 1 9重要なセキュリティルールが最も大きな重みを持つため、Scorecardのスコア(≈74%)は、単純な重み付けなしの平均よりも、そのルールのスコアに近くなります((90 + 60 + 40) / 3 ≈ 63%)。
ヒント
ルールの重みはUIではなく、APIを通じて設定されます。重みを割り当てるには、APIを使用した成熟度レベルの管理およびNerdGraphスコアカードのチュートリアルをご覧ください。
成熟度レベルを定義します
スコアカードを作成する際、作成ウィザードにはDefine maturity levels [成熟度レベルの定義]ステップが含まれます。ここでは、ルールを各成熟度バケットにドラッグアンドドロップして、重要度順にランク付けします。エンティティが各バケットのルールを満たすにつれて、その成熟度レベルでのステータスが向上します。
UIで成熟度レベルにルールを割り当てるには:
- テンプレートからScorecardを作成するか、独自のScorecardを構築します。完全なフローについては、新しいScorecardの作成をご覧ください。
- 成熟度レベルの定義ステップで、各ルールを適切なバケットにドラッグアンドドロップします:Below basic、Basic maturity、Intermediate maturity、またはAdvanced maturity。
- Review & save [確認して保存]に進み、Scorecardを作成します。
後でルールを編集して、ルールの成熟度レベルを変更できます。ルールの重みを設定したり、デフォルトの3つを超えるカスタム成熟度レベルを作成したりするには、APIを使用します。APIを使用した成熟度レベルの管理をご覧ください。
Scorecardでサービスの成熟度を表示します
1つのScorecardには、成熟度を表示する2つのビューが用意されています:Rule viewとEntity view。Scorecardの右上でこれらを切り替えることができます。
ルールビュー
ルールビューでは、スコアカードのルールが成熟度レベル(基本、中級、上級)ごとにグループ化されるため、ルールの分布や各ルールのパフォーマンスを確認できます。サイドパネルには、スコアカード全体のパフォーマンス、エンティティ全体のMaturity level distribution [成熟度レベルの分布]、Entity maturity profile [エンティティの成熟度プロファイル]、および時間の経過に伴うルールのパフォーマンスの概要が表示されます。

エンティティビュー
エンティティビューには、Scorecardによって評価されたすべてのエンティティが一覧表示され、Maturity列と、各エンティティが合格したルールの数のレベルごとの内訳(たとえば、Basic rules 2/2、Intermediate 1/1、Advanced 0/1)が表示されます。これにより、マネージャーはサービスをフィルタリングして、それぞれが成熟度ラダーのどこに位置しているかを正確に確認できます。

サービスをレベル間で進める
成熟度レベルは、チームに明確な次のステップを示します。チームは、抽象的なパーセンテージを追いかけるのではなく、スプリントの終わりまでにサービスをBasicからIntermediateに移行するといった具体的な目標に集中できます。
スコアカードを単一のエンティティにフィルタリングすると、サイドパネルには、そのエンティティの現在の成熟度がBasicからIntermediate、Advancedへの進行状況として表示され、次のレベルに到達するために残っている未対応項目の数(たとえば、「Basicの成熟度に到達するには1つの未対応項目を解決してください」)も表示されます。ルールは成熟度レベルごとにグループ化されているため、チームは次にどのチェックに対処すべきかを正確に把握できます。

カタログにおけるサービスの成熟度
成熟度はカタログにも表示されます。エンティティの詳細を開くと、属している各スコアカードの成熟度レベル(たとえば、あるスコアカードでは「Below basic」、別のスコアカードでは「Advanced」など)を確認できるため、すべての標準におけるサービスの状況をすばやく把握できます。
APIを使用した成熟度レベルの管理
NerdGraph APIを使用して、成熟度レベルとルールの重みを作成、読み取り、更新、削除できます。APIでは、成熟度レベルはprogress levelsと呼ばれます:
- Scorecardの成熟度レベルは、その
progressLevelsによって定義されます。 - ルールの成熟度レベルは
progressLevelで設定され、その重みはimpactWeightで設定されます。
ルールの重みを設定し、4番目のレベルの追加やデフォルトの3つのレベルの名前変更など、カスタム(デフォルト以外)の成熟度レベルを作成する唯一の方法はAPIです。ミューテーションと例についてはNerdGraph Scorecardsチュートリアルを参照してください。