A | B | C | D | E | F | G | I | J | K | L | M | N | O | P | Q | R | S | T | U | V | W | X | Y | Z | |
---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
1 | Service Maturity Model | ||||||||||||||||||||||||
2 | 0 | 1 | 2 | 3 | 4 | 5 | |||||||||||||||||||
3 | Self Service | No knowledge of this dimension to make a comment | Nothing. Completely Manual. Requests done via ticketing. | Basic Scripts, teams granted access to run | Base R/O abilities via ChatOps or Website. Easily Discoverable. Audit and trace data availble for execution history | Active abiliities via ChatOps or Website. Easily Discoverable. Audit and trace data availble for execution history | Bot able to service w/o human intervention. AI and/or machine learning. Permissions to accomplish tasks unneeded. | ||||||||||||||||||
4 | Reliability | No knowledge of this dimension to make a comment | No init daemon. no failover. Manual installation. Consistent failure | Basic daemon. Application data captured for future analysis. | OS Daemon or other supervisor. Auto restart. Simple, manual failover. Able to degrade, but requires manual intervention. | Full HA (Active/Passive). Graceful degredation of services. Auto recovery (automatically repair after failure of downstream services. autoscaling based on basic metrics. Apps can gracefully degrade into R/O or other partial service modes during backend failure | Full HA (Active/Active). Testing failures always using Chaos Monkey. Self healing. Autoscaling based on seasonality and cost metrics. | ||||||||||||||||||
5 | Continuous Integration | No knowledge of this dimension to make a comment | No tests. NADA | Basic CI. Measurement of code coverage. | Integration + Functional E2E tests using existing environments. CI runs in less than 5 minutes. At least 60% code coverage. | Cleanroom CI on each build. New environments created each build. Code is capable to be run off of a branch in production. Code takes less than 3 minutes to test. At least 70% code coverage | Load Tests. Fully automated environment created on each build. Over 80% code coverage. All tests run in under 1 minute. | ||||||||||||||||||
6 | Continuous Delivery | No knowledge of this dimension to make a comment | Manual deployment | Push code w/ Jenkins via webhook. Only master or pre-defined/static environments (QA, Stage) | Reproducable, Verifiable Deploys. (Usually via artifact). Ability to deploy branches to different environments. Deployments happen in less than 5 minutes. | Basic % or incremental rollout (Blue/Green, basic canary). Immediate or near-immediate failback. Ability to leverage "Previews" (deploy code to a subsection of nodes). Deployments take less than 3 minutes to happen. | % or incremental rollouts (Canary). Automatic failback on failure. Strategy of deployment based on business risk. Code is able to be deployed to any environment from any branch to any % of servers. Deployment in less than a minute | ||||||||||||||||||
7 | Visibilty | No knowledge of this dimension to make a comment | Nothing. Maybe local logging | Logging centrally. Basic OS monitoring | Implementation of all visibily tools: monitoring, logging, instrumentation, and exception handling. Basic dashboards showing monitoring/time series data for common cases | Ability to automatically de-reference an alert to a line of code. Understand impact of upstream and downstream services as it relates to providing services. Overlay important company events into existing graphs (deploys, upgrades). Defined and visible business metrics | Application instrumented relating to key business KPIs. Include application trends and analyisis to understand performance seasonality. | ||||||||||||||||||
8 | Configuration Management | No knowledge of this dimension to make a comment | Configs are edited by hand on each host. Hosts are hand crafted by artisans | Configuration and scripts edited by hand and stored in a central location. Configurations applied to infrastructure on an ad-hoc basis. | Configurations centrally stored and versioned so one copy is distributed to hosts. Site specific information is prevalent in files. Configuration in primary CM system (Terraform) | File templates used, stored, and versioned. Config data and metadata is injected into templates from outside sources. Templates likely include inherit assumptions about site-specific content, such as DNS, IP ranges, etc. | Metadata queried from infrastructure itsefl and through a metadata repositiry. Metadata is reduced to the smallest amount required to describe the infrastructure. Configuration management is portable w/o code modificaton, only to metadata repository. | ||||||||||||||||||
9 | Docs | No knowledge of this dimension to make a comment | No docs | Docs written, and stored "somewhere". Not easily discoverable. | Docs discoverable. Some aged or outdated docs. | Full doc coverage. Periodic reviews. Docs easily discoverable | Programatically generated docs. Dynamic polling via App/Chat | ||||||||||||||||||
11 | |||||||||||||||||||||||||
12 | |||||||||||||||||||||||||
13 | |||||||||||||||||||||||||
14 | |||||||||||||||||||||||||
15 | |||||||||||||||||||||||||
16 | |||||||||||||||||||||||||
17 | |||||||||||||||||||||||||
18 | |||||||||||||||||||||||||
19 | |||||||||||||||||||||||||
20 | |||||||||||||||||||||||||
21 | |||||||||||||||||||||||||
22 | |||||||||||||||||||||||||
23 | |||||||||||||||||||||||||
24 | |||||||||||||||||||||||||
25 | |||||||||||||||||||||||||
26 | |||||||||||||||||||||||||
27 | |||||||||||||||||||||||||
28 | |||||||||||||||||||||||||
29 | |||||||||||||||||||||||||
30 | |||||||||||||||||||||||||
31 | |||||||||||||||||||||||||
32 | |||||||||||||||||||||||||
33 | |||||||||||||||||||||||||
34 | |||||||||||||||||||||||||
35 | |||||||||||||||||||||||||
36 | |||||||||||||||||||||||||
37 | |||||||||||||||||||||||||
38 | |||||||||||||||||||||||||
39 | |||||||||||||||||||||||||
40 | |||||||||||||||||||||||||
41 | |||||||||||||||||||||||||
42 | |||||||||||||||||||||||||
43 | |||||||||||||||||||||||||
44 | |||||||||||||||||||||||||
45 | |||||||||||||||||||||||||
46 | |||||||||||||||||||||||||
47 | |||||||||||||||||||||||||
48 | |||||||||||||||||||||||||
49 | |||||||||||||||||||||||||
50 | |||||||||||||||||||||||||
51 | |||||||||||||||||||||||||
52 | |||||||||||||||||||||||||
53 | |||||||||||||||||||||||||
54 | |||||||||||||||||||||||||
55 | |||||||||||||||||||||||||
56 | |||||||||||||||||||||||||
57 | |||||||||||||||||||||||||
58 | |||||||||||||||||||||||||
59 | |||||||||||||||||||||||||
60 | |||||||||||||||||||||||||
61 | |||||||||||||||||||||||||
62 | |||||||||||||||||||||||||
63 | |||||||||||||||||||||||||
64 | |||||||||||||||||||||||||
65 | |||||||||||||||||||||||||
66 | |||||||||||||||||||||||||
67 | |||||||||||||||||||||||||
68 | |||||||||||||||||||||||||
69 | |||||||||||||||||||||||||
70 | |||||||||||||||||||||||||
71 | |||||||||||||||||||||||||
72 | |||||||||||||||||||||||||
73 | |||||||||||||||||||||||||
74 | |||||||||||||||||||||||||
75 | |||||||||||||||||||||||||
76 | |||||||||||||||||||||||||
77 | |||||||||||||||||||||||||
78 | |||||||||||||||||||||||||
79 | |||||||||||||||||||||||||
80 | |||||||||||||||||||||||||
81 | |||||||||||||||||||||||||
82 | |||||||||||||||||||||||||
83 | |||||||||||||||||||||||||
84 | |||||||||||||||||||||||||
85 | |||||||||||||||||||||||||
86 | |||||||||||||||||||||||||
87 | |||||||||||||||||||||||||
88 | |||||||||||||||||||||||||
89 | |||||||||||||||||||||||||
90 | |||||||||||||||||||||||||
91 | |||||||||||||||||||||||||
92 | |||||||||||||||||||||||||
93 | |||||||||||||||||||||||||
94 | |||||||||||||||||||||||||
95 | |||||||||||||||||||||||||
96 | |||||||||||||||||||||||||
97 | |||||||||||||||||||||||||
98 | |||||||||||||||||||||||||
99 | |||||||||||||||||||||||||
100 | |||||||||||||||||||||||||
101 |