ABCDEFGIJKLMNOPQRSTUVWXYZ
1
Service Maturity Model
2
012345
3
Self ServiceNo knowledge of this dimension to make a commentNothing. Completely Manual. Requests done via ticketing.Basic Scripts, teams granted access to runBase R/O abilities via ChatOps or Website. Easily Discoverable. Audit and trace data availble for execution historyActive abiliities via ChatOps or Website. Easily Discoverable. Audit and trace data availble for execution historyBot able to service w/o human intervention. AI and/or machine learning. Permissions to accomplish tasks unneeded.
4
ReliabilityNo knowledge of this dimension to make a commentNo init daemon. no failover. Manual installation. Consistent failureBasic 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 failureFull HA (Active/Active). Testing failures always using Chaos Monkey. Self healing. Autoscaling based on seasonality and cost metrics.
5
Continuous IntegrationNo knowledge of this dimension to make a commentNo tests. NADABasic 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 coverageLoad Tests. Fully automated environment created on each build. Over 80% code coverage. All tests run in under 1 minute.
6
Continuous DeliveryNo knowledge of this dimension to make a commentManual deploymentPush 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
VisibiltyNo knowledge of this dimension to make a commentNothing. Maybe local loggingLogging centrally. Basic OS monitoringImplementation of all visibily tools: monitoring, logging, instrumentation, and exception handling. Basic dashboards showing monitoring/time series data for common casesAbility 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 metricsApplication instrumented relating to key business KPIs. Include application trends and analyisis to understand performance seasonality.
8
Configuration ManagementNo knowledge of this dimension to make a commentConfigs are edited by hand on each host. Hosts are hand crafted by artisansConfiguration 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
DocsNo knowledge of this dimension to make a commentNo docsDocs written, and stored "somewhere". Not easily discoverable. Docs discoverable. Some aged or outdated docs.Full doc coverage. Periodic reviews. Docs easily discoverableProgramatically 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