Files
nexus/sreweekly/articles/300/02-day-2-reliability-as-a-product-feature.html
2026-09-12 17:23:01 +08:00

1564 lines
61 KiB
HTML

<!DOCTYPE html>
<html dir='ltr' xmlns='http://www.w3.org/1999/xhtml' xmlns:b='http://www.google.com/2005/gml/b' xmlns:data='http://www.google.com/2005/gml/data' xmlns:expr='http://www.google.com/2005/gml/expr'>
<head>
<link href='https://www.blogger.com/static/v1/widgets/4165133002-widget_css_bundle.css' rel='stylesheet' type='text/css'/>
<meta content='text/html; charset=UTF-8' http-equiv='Content-Type'/>
<meta content='blogger' name='generator'/>
<link href='https://sysadvent.blogspot.com/favicon.ico' rel='icon' type='image/x-icon'/>
<link href='https://sysadvent.blogspot.com/2021/12/reliability-as-product-feature.html' rel='canonical'/>
<link rel="alternate" type="application/atom+xml" title="sysadvent - Atom" href="https://sysadvent.blogspot.com/feeds/posts/default" />
<link rel="alternate" type="application/rss+xml" title="sysadvent - RSS" href="https://sysadvent.blogspot.com/feeds/posts/default?alt=rss" />
<link rel="service.post" type="application/atom+xml" title="sysadvent - Atom" href="https://draft.blogger.com/feeds/3615332969083650973/posts/default" />
<link rel="alternate" type="application/atom+xml" title="sysadvent - Atom" href="https://sysadvent.blogspot.com/feeds/3453013363765834694/comments/default" />
<!--Can't find substitution for tag [blog.ieCssRetrofitLinks]-->
<link href='https://lh4.googleusercontent.com/425sdbwBKobjYHRoNHZFVNag1SaP2kxrHT7vP82yphtuNUnJbge9PTz85RZjLMeL-Ut-xjbIvD24K1vdzIQm4SuZND44ZtOJSNSwmXPCQp_GQMsuZvfZpfvWZFKGq1GQFa3Xt8ri' rel='image_src'/>
<meta content='https://sysadvent.blogspot.com/2021/12/reliability-as-product-feature.html' property='og:url'/>
<meta content='Day 2 - Reliability as a Product Feature' property='og:title'/>
<meta content=' By: Martin Smith ( @martinb3 ) Edited by: Jennifer Davis ( @sigje ) Abstract SRE was born out of thinking about reliabil...' property='og:description'/>
<meta content='https://lh4.googleusercontent.com/425sdbwBKobjYHRoNHZFVNag1SaP2kxrHT7vP82yphtuNUnJbge9PTz85RZjLMeL-Ut-xjbIvD24K1vdzIQm4SuZND44ZtOJSNSwmXPCQp_GQMsuZvfZpfvWZFKGq1GQFa3Xt8ri=w1200-h630-p-k-no-nu' property='og:image'/>
<title>
sysadvent: Day 2 - Reliability as a Product Feature
</title>
<style type='text/css'>@font-face{font-family:'Allerta';font-style:normal;font-weight:400;font-display:swap;src:url(//fonts.gstatic.com/s/allerta/v19/TwMO-IAHRlkbx940YnYXSCiN9uc.woff2)format('woff2');unicode-range:U+0000-00FF,U+0131,U+0152-0153,U+02BB-02BC,U+02C6,U+02DA,U+02DC,U+0304,U+0308,U+0329,U+2000-206F,U+20AC,U+2122,U+2191,U+2193,U+2212,U+2215,U+FEFF,U+FFFD;}@font-face{font-family:'Arimo';font-style:normal;font-weight:400;font-display:swap;src:url(//fonts.gstatic.com/s/arimo/v36/P5sfzZCDf9_T_3cV7NCUECyoxNk37cxcDRrBdwcoaaQwpBQ.woff2)format('woff2');unicode-range:U+0460-052F,U+1C80-1C8A,U+20B4,U+2DE0-2DFF,U+A640-A69F,U+FE2E-FE2F;}@font-face{font-family:'Arimo';font-style:normal;font-weight:400;font-display:swap;src:url(//fonts.gstatic.com/s/arimo/v36/P5sfzZCDf9_T_3cV7NCUECyoxNk37cxcBBrBdwcoaaQwpBQ.woff2)format('woff2');unicode-range:U+0301,U+0400-045F,U+0490-0491,U+04B0-04B1,U+2116;}@font-face{font-family:'Arimo';font-style:normal;font-weight:400;font-display:swap;src:url(//fonts.gstatic.com/s/arimo/v36/P5sfzZCDf9_T_3cV7NCUECyoxNk37cxcDBrBdwcoaaQwpBQ.woff2)format('woff2');unicode-range:U+1F00-1FFF;}@font-face{font-family:'Arimo';font-style:normal;font-weight:400;font-display:swap;src:url(//fonts.gstatic.com/s/arimo/v36/P5sfzZCDf9_T_3cV7NCUECyoxNk37cxcAxrBdwcoaaQwpBQ.woff2)format('woff2');unicode-range:U+0370-0377,U+037A-037F,U+0384-038A,U+038C,U+038E-03A1,U+03A3-03FF;}@font-face{font-family:'Arimo';font-style:normal;font-weight:400;font-display:swap;src:url(//fonts.gstatic.com/s/arimo/v36/P5sfzZCDf9_T_3cV7NCUECyoxNk37cxcAhrBdwcoaaQwpBQ.woff2)format('woff2');unicode-range:U+0307-0308,U+0590-05FF,U+200C-2010,U+20AA,U+25CC,U+FB1D-FB4F;}@font-face{font-family:'Arimo';font-style:normal;font-weight:400;font-display:swap;src:url(//fonts.gstatic.com/s/arimo/v36/P5sfzZCDf9_T_3cV7NCUECyoxNk37cxcDxrBdwcoaaQwpBQ.woff2)format('woff2');unicode-range:U+0102-0103,U+0110-0111,U+0128-0129,U+0168-0169,U+01A0-01A1,U+01AF-01B0,U+0300-0301,U+0303-0304,U+0308-0309,U+0323,U+0329,U+1EA0-1EF9,U+20AB;}@font-face{font-family:'Arimo';font-style:normal;font-weight:400;font-display:swap;src:url(//fonts.gstatic.com/s/arimo/v36/P5sfzZCDf9_T_3cV7NCUECyoxNk37cxcDhrBdwcoaaQwpBQ.woff2)format('woff2');unicode-range:U+0100-02BA,U+02BD-02C5,U+02C7-02CC,U+02CE-02D7,U+02DD-02FF,U+0304,U+0308,U+0329,U+1D00-1DBF,U+1E00-1E9F,U+1EF2-1EFF,U+2020,U+20A0-20AB,U+20AD-20C0,U+2113,U+2C60-2C7F,U+A720-A7FF;}@font-face{font-family:'Arimo';font-style:normal;font-weight:400;font-display:swap;src:url(//fonts.gstatic.com/s/arimo/v36/P5sfzZCDf9_T_3cV7NCUECyoxNk37cxcABrBdwcoaaQw.woff2)format('woff2');unicode-range:U+0000-00FF,U+0131,U+0152-0153,U+02BB-02BC,U+02C6,U+02DA,U+02DC,U+0304,U+0308,U+0329,U+2000-206F,U+20AC,U+2122,U+2191,U+2193,U+2212,U+2215,U+FEFF,U+FFFD;}</style>
<style id='page-skin-1' type='text/css'><!--
/*
-----------------------------------------------
Blogger Template Style
Name: Minima
Designer: Douglas Bowman
URL: www.stopdesign.com
Date: 26 Feb 2004
Updated by: Blogger Team
----------------------------------------------- */
/* Variable definitions
====================
<Variable name="bgcolor" description="Page Background Color"
type="color" default="#fff">
<Variable name="textcolor" description="Text Color"
type="color" default="#333">
<Variable name="linkcolor" description="Link Color"
type="color" default="#58a">
<Variable name="pagetitlecolor" description="Blog Title Color"
type="color" default="#666">
<Variable name="descriptioncolor" description="Blog Description Color"
type="color" default="#999">
<Variable name="titlecolor" description="Post Title Color"
type="color" default="#c60">
<Variable name="bordercolor" description="Border Color"
type="color" default="#ccc">
<Variable name="sidebarcolor" description="Sidebar Title Color"
type="color" default="#999">
<Variable name="sidebartextcolor" description="Sidebar Text Color"
type="color" default="#666">
<Variable name="visitedlinkcolor" description="Visited Link Color"
type="color" default="#999">
<Variable name="bodyfont" description="Text Font"
type="font" default="normal normal 100% Georgia, Serif">
<Variable name="headerfont" description="Sidebar Title Font"
type="font"
default="normal normal 78% 'Trebuchet MS',Trebuchet,Arial,Verdana,Sans-serif">
<Variable name="pagetitlefont" description="Blog Title Font"
type="font"
default="normal normal 200% Georgia, Serif">
<Variable name="descriptionfont" description="Blog Description Font"
type="font"
default="normal normal 78% 'Trebuchet MS', Trebuchet, Arial, Verdana, Sans-serif">
<Variable name="postfooterfont" description="Post Footer Font"
type="font"
default="normal normal 78% 'Trebuchet MS', Trebuchet, Arial, Verdana, Sans-serif">
<Variable name="startSide" description="Side where text starts in blog language"
type="automatic" default="left">
<Variable name="endSide" description="Side where text ends in blog language"
type="automatic" default="right">
*/
/* Use this with templates/template-twocol.html */
body {
background:#ffffff;
margin:0;
color:#333333;
font:x-small Georgia Serif;
font-size/* */:/**/small;
font-size: /**/small;
text-align: center;
}
a:link {
color:#5588aa;
text-decoration:none;
}
a:visited {
color:#999999;
text-decoration:none;
}
a:hover {
color:#cc6600;
text-decoration:underline;
}
a img {
border-width:0;
}
/* Header
-----------------------------------------------
*/
#header-wrapper {
width:760px;
margin:0 auto 10px;
/*border:1px solid #cccccc;*/
}
#header-inner {
background-position: center;
margin-left: auto;
margin-right: auto;
}
#header {
margin: 5px;
/*border: 1px solid #cccccc;*/
text-align: center;
color:#666666;
}
#header h1 {
margin:5px 5px 0;
padding:15px 20px .25em;
line-height:1.2em;
text-transform:uppercase;
letter-spacing:.2em;
font: normal normal 200% Georgia, Serif;
}
#header a {
color:#666666;
text-decoration:none;
}
#header a:hover {
color:#666666;
}
#header .description {
margin:0 5px 5px;
padding:0 20px 15px;
max-width:800px;
text-transform:uppercase;
letter-spacing:.2em;
line-height: 1.4em;
font: normal normal 78% 'Trebuchet MS', Trebuchet, Arial, Verdana, Sans-serif;
color: #999999;
}
#header img {
margin-left: auto;
margin-right: auto;
}
/* Outer-Wrapper
----------------------------------------------- */
#outer-wrapper {
width: 760px;
margin:0 auto;
padding:10px;
text-align:left;
font: normal normal 100% Arimo;
}
#main-wrapper {
width: 510px;
float: left;
word-wrap: break-word; /* fix for long text breaking sidebar float in IE */
overflow: hidden; /* fix for long non-text content breaking IE sidebar float */
}
#sidebar-wrapper {
width: 220px;
float: right;
word-wrap: break-word; /* fix for long text breaking sidebar float in IE */
overflow: hidden; /* fix for long non-text content breaking IE sidebar float */
}
/* Headings
----------------------------------------------- */
h2 {
margin:1.5em 0 .75em;
font:normal normal 130% Allerta;
line-height: 1.4em;
text-transform:uppercase;
letter-spacing:.2em;
color:#999999;
}
/* Posts
-----------------------------------------------
*/
h2.date-header {
margin:1.5em 0 .5em;
}
.post {
margin:.5em 0 1.5em;
border-bottom:1px dotted #cccccc;
padding-bottom:1.5em;
}
.post h3 {
margin:.25em 0 0;
padding:0 0 4px;
font-size:140%;
font-weight:normal;
line-height:1.4em;
color:#cc6600;
}
.post h3 a, .post h3 a:visited, .post h3 strong {
display:block;
text-decoration:none;
color:#cc6600;
font-weight:normal;
}
.post h3 strong, .post h3 a:hover {
color:#333333;
}
.post-body {
margin:0 0 .75em;
line-height:1.6em;
}
.post-body blockquote {
line-height:1.3em;
}
.post-footer {
margin: .75em 0;
color:#999999;
text-transform:uppercase;
letter-spacing:.1em;
font: normal normal 78% 'Trebuchet MS', Trebuchet, Arial, Verdana, Sans-serif;
line-height: 1.4em;
}
.comment-link {
margin-left:.6em;
}
.post img {
padding:4px;
border:1px solid #cccccc;
}
.post blockquote {
margin:1em 20px;
}
.post blockquote p {
margin:.75em 0;
}
.post pre {
overflow: auto;
padding-left: 5px;
padding-right: 5px;
border: 1px solid #CCCCFF !important;
}
.post pre a {
text-decoration: underline;
}
/* Comments
----------------------------------------------- */
#comments h4 {
margin:1em 0;
font-weight: bold;
line-height: 1.4em;
text-transform:uppercase;
letter-spacing:.2em;
color: #999999;
}
#comments-block {
margin:1em 0 1.5em;
line-height:1.6em;
}
#comments-block .comment-author {
margin:.5em 0;
}
#comments-block .comment-body {
margin:.25em 0 0;
}
#comments-block .comment-footer {
margin:-.25em 0 2em;
line-height: 1.4em;
text-transform:uppercase;
letter-spacing:.1em;
}
#comments-block .comment-body p {
margin:0 0 .75em;
}
.deleted-comment {
font-style:italic;
color:gray;
}
#blog-pager-newer-link {
float: left;
}
#blog-pager-older-link {
float: right;
}
#blog-pager {
text-align: center;
}
.feed-links {
clear: both;
line-height: 2.5em;
}
/* Sidebar Content
----------------------------------------------- */
.sidebar {
color: #666666;
line-height: 1.5em;
}
.sidebar ul {
list-style:none;
margin:0 0 0;
padding:0 0 0;
}
.sidebar li {
margin:0;
padding-top:0;
padding-right:0;
padding-bottom:.25em;
padding-left:15px;
text-indent:-15px;
line-height:1.5em;
}
.sidebar .widget, .main .widget {
border-bottom:1px dotted #cccccc;
margin:0 0 1.5em;
padding:0 0 1.5em;
}
.main .Blog {
border-bottom-width: 0;
}
/* Profile
----------------------------------------------- */
.profile-img {
float: left;
margin-top: 0;
margin-right: 5px;
margin-bottom: 5px;
margin-left: 0;
padding: 4px;
border: 1px solid #cccccc;
}
.profile-data {
margin:0;
text-transform:uppercase;
letter-spacing:.1em;
font: normal normal 78% 'Trebuchet MS', Trebuchet, Arial, Verdana, Sans-serif;
color: #999999;
font-weight: bold;
line-height: 1.6em;
}
.profile-datablock {
margin:.5em 0 .5em;
}
.profile-textblock {
margin: 0.5em 0;
line-height: 1.6em;
}
.profile-link {
font: normal normal 78% 'Trebuchet MS', Trebuchet, Arial, Verdana, Sans-serif;
text-transform: uppercase;
letter-spacing: .1em;
}
/* Footer
----------------------------------------------- */
#footer {
width:760px;
clear:both;
margin:0 auto;
padding-top:15px;
line-height: 1.6em;
text-transform:uppercase;
letter-spacing:.1em;
text-align: center;
}
@media only screen and (max-width:480px) {
a:link {
color: #d12a39;
}
.mobile-link-button {
background-color: #d12a39;
}
.mobile-link-button a:link, .mobile-link-button a:visited {
color: #ffffff;
}
}
--></style>
<link href='https://draft.blogger.com/dyncss/3615332969083650973/authorization.css?zx=24cd04b2-38ff-45f4-a3f0-f0a07f75ec8f' media='none' onload='if(media!=&#39;all&#39;)media=&#39;all&#39;' rel='stylesheet'/><noscript><link href='https://draft.blogger.com/dyncss/3615332969083650973/authorization.css?zx=24cd04b2-38ff-45f4-a3f0-f0a07f75ec8f' rel='stylesheet'/></noscript>
<meta name='google-adsense-platform-account' content='ca-host-pub-1556223355139109'/>
<meta name='google-adsense-platform-domain' content='blogspot.com'/>
<!-- data-ad-client=ca-pub-6194074709963145 -->
</head>
<body>
<div class='navbar section' id='navbar'><div class='widget Navbar' data-version='1' id='Navbar1'><script type="text/javascript">
function setAttributeOnload(object, attribute, val) {
if(window.addEventListener) {
window.addEventListener('load',
function(){ object[attribute] = val; }, false);
} else {
window.attachEvent('onload', function(){ object[attribute] = val; });
}
}
</script>
<div id="navbar-iframe-container"></div>
<script type="text/javascript" src="https://apis.google.com/js/platform.js"></script>
<script type="text/javascript">
gapi.load("gapi.iframes:gapi.iframes.style.bubble", function() {
if (gapi.iframes && gapi.iframes.getContext) {
gapi.iframes.getContext().openChild({
url: 'https://draft.blogger.com/navbar/3615332969083650973?po\x3d3453013363765834694\x26origin\x3dhttps://sysadvent.blogspot.com',
where: document.getElementById("navbar-iframe-container"),
id: "navbar-iframe"
});
}
});
</script><script type="text/javascript">
(function() {
var script = document.createElement('script');
script.type = 'text/javascript';
script.src = '//pagead2.googlesyndication.com/pagead/js/google_top_exp.js';
var head = document.getElementsByTagName('head')[0];
if (head) {
head.appendChild(script);
}})();
</script>
</div></div>
<div id='outer-wrapper'>
<div id='wrap2'>
<!-- skip links for text browsers -->
<span id='skiplinks' style='display:none;'>
<a href='#main'>
skip to main
</a>
|
<a href='#sidebar'>
skip to sidebar
</a>
</span>
<div id='header-wrapper'>
<div class='header section' id='header'><div class='widget Header' data-version='1' id='Header1'>
<div id='header-inner'>
<a href='https://sysadvent.blogspot.com/' style='display: block'>
<img alt='sysadvent' height='240px; ' id='Header1_headerimg' src='https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEiYVlIMEU0sXvTBtcY5iFj5QtiT3Klf0S3sgSamkTPsjU1QGvOWHA-6yq173iHys3-ImrIFY26KIPuKEoSNSbitvtnXsZU6b8YPGQ48ir-8Jo2NFrTsaiO_Nl9W9XLt_wyWhTM_16_HeN0/s750/sys-advent-long.png' style='display: block' width='750px; '/>
</a>
</div>
</div></div>
</div>
<div id='content-wrapper'>
<div id='crosscol-wrapper' style='text-align:center'>
<div class='crosscol no-items section' id='crosscol'></div>
</div>
<div id='main-wrapper'>
<div class='main section' id='main'><div class='widget Blog' data-version='1' id='Blog1'>
<div class='blog-posts hfeed'>
<!--Can't find substitution for tag [defaultAdStart]-->
<div class="date-outer">
<h2 class='date-header'>
<span>
December 2, 2021
</span>
</h2>
<div class="date-posts">
<div class='post-outer'>
<div class='post hentry'>
<a name='3453013363765834694'></a>
<h3 class='post-title entry-title'>
<a href='https://sysadvent.blogspot.com/2021/12/reliability-as-product-feature.html'>
Day 2 - Reliability as a Product Feature
</a>
</h3>
<div class='post-header-line-1'></div>
<div class='post-body entry-content'>
<p>
By: Martin Smith (<a href="https://twitter.com/martinb3">@martinb3</a>)<br />
Edited by: Jennifer Davis (<a href="https://twitter.com/sigje">@sigje</a>)
</p>
<h2>Abstract</h2>
<p>
SRE was born out of thinking about reliability as a product feature. However,
all of the industry focus in the last few years on things like SLOs and Error
Budgets and Production Engineering teams, and others, that constitute "doing
SRE," sometimes means teams don&#8217;t take advantage of a product-centric approach
to reliability these days. And they lose some of the advantages of doing so as a
result. This post covers some project maturity levels, some suggestions for
thinking about reliability as an SRE engaged in those kinds of projects, as well
as what kinds of collaboration might be most successful in driving
reliability-as-product-feature in each phase.
</p>
<h2>A brief history</h2>
<p>
Site Reliability Engineering, or SRE for short, was <a href="https://www.oreilly.com/content/site-reliability-engineering-sre-a-simple-overview/">born
in 2003</a> out of a need to improve service reliability at <a href="https://sre.google/">Google</a>. Often described as, &#8220;an implementation of
<a href="https://aws.amazon.com/devops/what-is-devops/">DevOps</a>,&#8221; the
practice of SRE aims to <strong>treat operations as a software problem</strong>
that can be addressed through software engineering techniques.
</p>
<p>
And according to <a href="https://insights.devopsinstitute.com/hubfs/Automation%20Downloads/Upskilling%202021-Enterprise%20DevOps%20Skills%20Report.pdf">a
survey by the DevOps Institute</a>, SRE has truly taken off. This approach has
been widely adopted, with <strong>22% of organizations saying they have an SRE
team in 2021</strong>. This shift can also be seen with the rise of conferences
like USENIX&#8217;s SREcon which began in 2014, or the release of the popular, &#8220;Google
SRE book,&#8221; a few years later in 2016.
</p>
<p>
Whether or not your organization has an SRE team that plans work using SLOs and
Error Budgets, regularly reduces toil through automation, or has adopted one of
the <a href="https://www.oreilly.com/content/site-reliability-engineering-sre-a-simple-overview/">many
SRE rules of thumb</a>, the basic premise of <strong>what impact SRE can have
sometimes gets lost</strong> -- that operations is a software problem. Or,
shifting the focus back to the customer perspective, that <strong>reliability is
a product feature</strong> that we build.
</p>
<p>
Having held <em>DevOps Engineer</em> and <em>Site Reliability Engineer</em>
roles in the past, and having been a technical lead for SRE teams, I&#8217;ve had many
opportunities to define the role, activities, and most importantly, the
<strong>impact of an SRE team</strong>. In each case, I&#8217;ve found that
<strong>focusing back on our customers&#8217; experience of reliability</strong> has
been the most useful framing when speaking to company leaders about SRE team&#8217;s,
&#8220;<a href="https://simonsinek.com/product/find-your-why/">why</a>,&#8221; instead of
reciting a long, confusing list of things SREs might do in a quarter. I&#8217;ve also
found that it&#8217;s an easy litmus test for myself to ensure I&#8217;m working on the
right things at the right time. If I can&#8217;t explain how my work affects customer
reliability, keeping in mind that <strong>reliability for operators usually
leads to reliability for customers, </strong>it might be a sign that I need to
work on something else.
</p>
<p>
</p>
<h2>Shifting focus back to product reliability</h2>
<p>
Shifting the focus from operations and software engineering to talking about
<strong>reliability as a product feature</strong> has some major benefits.
First, it helps our organizations better understand what reliability might mean
for them and their product(s) -- whether that&#8217;s <strong>resilience</strong>
(tolerant of failure), <strong>scalability</strong> (can function with large
volumes of work), <strong>observability</strong> (understanding internal state
from outputs), or <strong>security</strong> (trust of the system). These are all
product capabilities that often aren&#8217;t well understood, but fundamentally all
matter to customers.
</p>
<p>
Reliability <strong>benefits from product management support</strong>
(communication with stakeholders, building roadmaps, helping with prioritization
and decisions, etc). For example, do you know who your internal stakeholders are
for the scalability of your product? What&#8217;s on the roadmap for observability
over the next 6 months? 2 years? And importantly, what metrics will you collect
to be sure you&#8217;ve accomplished those goals and delivered on that roadmap? How
does it align with other features&#8217; roadmaps? As a friend and former colleague of
mine says, &#8220;reliability is a product feature whether you devote engineering time
to it or not.&#8221; If you don&#8217;t explicitly plan for that, your customers will
implicitly make their own assumptions about your reliability.
</p>
<p>
Reliability may start to sound like any other product feature, with both
internal and external stakeholders, and that&#8217;s by design. Making reliability an
explicit part of your organizational planning also has many benefits.
Thoughtworks&#8217; <a href="https://www.thoughtworks.com/content/dam/thoughtworks/documents/radar/2021/10/tr_technology_radar_vol_25_en.pdf">Technology
Radar (Volume 25)</a> from October of this year recommends adoption of this kind
of thinking -- that even <strong>internal teams should think of themselves as
product teams</strong>. They also recommend using concepts from the popular <a href="https://teamtopologies.com/">Team Topologies</a> book to figure out how to
organize these internal teams. In reviewing examples of team structures from the
book, many organizations have adopted Simon Wardley&#8217;s <a href="https://blog.gardeviance.org/2015/03/on-pioneers-settlers-town-planners-and.html">Pioneer-Settler-Town
Planner</a> (or &#8220;PST&#8221;) framework, too.
</p>
<p>
Let&#8217;s take a look at how one might apply these two ideas (reliability as a
product feature, having a specific team profile) to improve the effectiveness of
an SRE team.
</p>
<ol>
<li>First, <strong>there&#8217;s no one-size-fits-all approach to improving
reliability</strong>; different stages of a project will benefit from different
kinds of SRE involvement. In this post, I&#8217;ll divide products/services into three
levels of maturity: <strong>beginning, growing, and established</strong>.
<li>Then, I&#8217;ll describe <strong>what kinds of SRE work could be most effective
at that maturity level</strong>, using the PST framework.
</li>
</ol>
<p>
Here&#8217;s a graphic that explains the <a href="https://leadingedgeforum.com/insights/a-lesson-from-the-past-on-pioneering-organizational-structures/">PST
framework</a>&#8217;s three kinds of roles/activities in more detail.
</p>
<img src="https://lh4.googleusercontent.com/425sdbwBKobjYHRoNHZFVNag1SaP2kxrHT7vP82yphtuNUnJbge9PTz85RZjLMeL-Ut-xjbIvD24K1vdzIQm4SuZND44ZtOJSNSwmXPCQp_GQMsuZvfZpfvWZFKGq1GQFa3Xt8ri" style="margin-left: 0px; margin-top: 0px;" width="492" />
<p>
Team Profiles, from blog post <a href="https://blog.gardeviance.org/2012/06/pioneers-settlers-and-town-planners.html">Pioneers,
Settlers and Town Planners</a> by Simon Wardley
</p>
<h2>Beginning phase (with Pioneer SREs)</h2>
<p>
In new projects, there&#8217;s <strong>often uncertainty and unanswered
questions</strong>. Small changes in direction could have large future benefits,
but experimental work may be completely discarded, too. SREs can drive
reliability at this stage by helping teams build prototypes, fail faster, and
make agile decisions, <strong>all with reliability as a top of mind
concern</strong>.
</p>
<p>
Have you ever had a project get close to production/release <strong>without
thinking about reliability or operational burdens</strong>? &#8220;Pioneer SREs&#8221; can
help. They should be part of the team that&#8217;s working to deliver a new product
development, evaluate vendors, build out proofs of concept, or make major
architectural changes. At this stage of a project, any work to &#8220;cover&#8221;
reliability gaps should be identified or entire directions could be changed due
to reliability concerns raised by the team.
</p>
<p>
<strong>Embedding</strong> in a team building the new product or feature is a
great way for SREs to drive reliability early on in these kinds of projects.
When teams only consult briefly on reliability or operational concerns, often
the final output doesn&#8217;t adequately reflect customer or engineering expectations
of reliability of the product or operability of the internals.
</p>
<p>
The <strong>success of Pioneer SREs</strong> can be measured by looking at how
quickly new products or features show up on the roadmap, how quickly vendor
implementations happen, or how quickly a project moves from, &#8220;exploration,&#8221; to,
&#8220;concrete proposal.&#8221;
</p>
<p>
The<strong> largest risk</strong> in this phase is having your SRE team end up
owners of the system&#8217;s reliability, since they helped design it. Hiding the
overall reliability of your system from the other developers, behind an SRE
team, will typically turn into a situation where the <strong>SRE team ends up
being treated as an operational team</strong> for any product/service problems.
Well-scoped embedding engagements can help avoid this problem by emphasizing
that embedded SREs are a <strong>training resource </strong>for the rest of the
team to learn, <strong>not coverage</strong> for the team once the embedding is
over.
</p>
<h2>Growing phase (with Settler SREs)</h2>
<p>
In this phase, projects are often working to build <strong>production-quality
infrastructure</strong>, <strong>launch</strong> to customers, or
<strong>scale</strong> to the required audience. SREs can help actually build
mature and scalable components from the initial prototypes. They could also
level up the engineering organization on how to prepare for any <strong>new
operational burdens</strong> by emphasizing best practices like automating away
toil or choosing good SLOs.
</p>
<p>
<strong>Continuing to embed</strong> with teams is a great way for SREs to have
a hand in the reliability of a nearly-launched product or feature, especially if
SREs influence the team to build for observability, scalability, and security
into the product. <strong>Consulting </strong>with teams on production
readiness, especially for brand new teams or brand new services, is another way
that SREs can ensure that everything reaching production will meet the original
reliability requirements of the product, as well as operational best practices
(e.g. automation instead of manual database migrations).
</p>
<p>
At this phase, SRE building and maintaining an idea of <strong>Production
Readiness</strong> is especially important as a product or organization scales.
This ensures a consistent approach to reliability across products or services,
as well as creates a minimum bar for reliability that must be satisfied. SREs at
this stage may even build automation into a pipeline to guarantee minimum scale
or ensure resilience on specific failures.
</p>
<p>
The <strong>success of Settler SREs</strong> can be measured by looking at how
many new services and features are safely being launched into production, as
well as examining things like ease of observability (e.g. effective logging,
metrics, or monitoring). Success in this phase is also about
<strong>establishing patterns</strong> that make projects successful (e.g.
proposal templates). <strong>Project retrospectives</strong> are a great way to
find those patterns as well as improve SRE engagement with the project.
</p>
<h3>Established phase (with Town Planner SREs)</h3>
<p>
In this most mature phase, products or services are usually already generally
available, and systemic issues like overall architecture or developer tooling
are the most likely to impact reliability.
</p>
<p>
SREs can influence reliability here by identifying and working to resolve
<strong>systemic reliability issues</strong> (e.g. repeated incidents, poor SLO
choices, lack of on-call process, etc). <strong>Driving</strong>
<strong>continuous improvement </strong>is a very common way that SREs influence
reliability at this phase.
</p>
<p>
In addition, SREs can often identify ways to <strong>reduce operational burdens
or eliminate large scale toil</strong> during this phase, whether through
technical automation or architecture changes, or through helping teams build
process, knowledge, skills, tools and techniques they need for large scale
projects to be repeatedly successful and reliable.
</p>
<p>
This can be a phase where <strong>some SREs will feel there&#8217;s a stigma
associated with doing less technical work</strong>, but the impact of this work
cannot be overstated -- it&#8217;s where SRE can act as a <strong>true
multiplier</strong> as more and more teams and products/services are launched.
<strong>Examples include</strong> running an incident management program, SLA
program, On-call Program, Disaster Recovery/Business Continuity planning, or
even a Chaos Engineering program. A strategy to address this concern is to pair
SREs with a <a href="https://blog.tryexponent.com/what-is-the-role-of-a-technical-program-manager/">technical
program management function</a> (TPM) so that SREs can focus most on the
technical aspects of improvement while TPMs can help with the organizational
changes needed to improve a process or execute a program.
</p>
<p>
Measuring the <strong>success of Town Planner SREs</strong> can be especially
tricky. You might look for simple metric improvements like fewer incidents,
reduced incident duration, reduced pages, improved SLO targets, or number of DR
tests -- but isolating the SRE impact to these kinds of metrics can be
difficult. <strong>Qualitative feedback from an SRE team&#8217;s internal
customers</strong> is also frequently used to measure success at this stage. The
most impactful SREs at this stage tend to <strong>cause paradigm shifts for the
other development teams</strong>, and often even for their own SRE teammates.
</p>
<h2>Wrapping up</h2>
<p>
<em>[PST is] how you take a highly effective company and push it [...]
towards a continuously adaptive system. </em><a href="https://twitter.com/swardley/status/1258690134725349376">May 8th, 2020</a>
<a href="https://twitter.com/swardley/">@swardley</a>
</p>
<p>
I hope that the grouping above is useful to readers for structuring work to
drive reliability at various levels of product maturity.
Reliability-as-a-product-feature isn&#8217;t a magic bullet to solve for an
organization that doesn&#8217;t understand where it fits in the market or what kind of
value it delivers, nor will it make a large difference with an unhealthy product
management practice that might not know how to develop and drive delivery of a
product and its features over time.
</p>
<p>
As mentioned earlier, there usually isn&#8217;t a, &#8220;one-size fits all,&#8221; approach to
driving reliability. You may still need to <strong>establish some best practices
for your organization</strong> such as &#8220;Limit toil to 50% of our work&#8221; or &#8220;Every
product feature that goes live must have a reliability review.&#8221; Combined with
these kinds of rules of thumb, the proposed divisions and strategies above
should help focus your team(s) to make the biggest improvement to reliability
for your products and services.
</p>
<p>
In researching this post, it was helpful to review <a href="https://github.com/upgundecha/howtheysre">how organizations &#8220;do SRE&#8221;</a>
at various organizations and companies. <a href="https://www.cnpatterns.org/organization-culture/sre-team">Continuous
improvement</a> was a clear shared trait among them. It&#8217;s also worth reviewing
the huge amount of content out there about how SRE can effectively collaborate
with other teams (e.g. <a href="https://sre.google/sre-book/operational-overload/">embedding SREs</a>); a
poor relationship or failed collaboration with another team can jeopardize all
of your efforts.
</p>
<p>
I invite and encourage you to write about and share your own experiences, both
good and bad, focusing on reliability as a first class product feature at your
organization. Special thanks to my own SRE team for the many discussions and
ideation sessions on how we can best work to drive reliability. And special
thanks to Jennifer Davis, Michael Lumsden, David Nolan, Jordan Rinke, and Kerim
Satirli for feedback and editing on this post.
</p>
<div style='clear: both;'></div>
</div>
<div class='post-footer'>
<div class='post-footer-line post-footer-line-1'>
<span class='post-author vcard'>
Posted by
<span class='fn'>
sigje
</span>
</span>
<span class='post-timestamp'>
</span>
<span class='post-comment-link'>
</span>
<span class='post-icons'>
<span class='item-action'>
<a href='https://draft.blogger.com/email-post/3615332969083650973/3453013363765834694' title='Email Post'>
<img alt="" class="icon-action" height="13" src="//www.blogger.com/img/icon18_email.gif" width="18">
</a>
</span>
<span class='item-control blog-admin pid-1271197227'>
<a href='https://draft.blogger.com/post-edit.g?blogID=3615332969083650973&postID=3453013363765834694&from=pencil' title='Edit Post'>
<img alt="" class="icon-action" height="18" src="//img2.blogblog.com/img/icon18_edit_allbkg.gif" width="18">
</a>
</span>
</span>
</div>
<div class='post-footer-line post-footer-line-2'>
<span class='post-labels'>
Labels:
<a href='https://sysadvent.blogspot.com/search/label/PST' rel='tag'>
PST
</a>
,
<a href='https://sysadvent.blogspot.com/search/label/reliability' rel='tag'>
reliability
</a>
,
<a href='https://sysadvent.blogspot.com/search/label/sre' rel='tag'>
sre
</a>
</span>
</div>
<div class='post-footer-line post-footer-line-3'></div>
</div>
</div>
<div class='comments' id='comments'>
<a name='comments'></a>
<h4>
No comments
:
</h4>
<div id='Blog1_comments-block-wrapper'>
<dl class='' id='comments-block'>
</dl>
</div>
<p class='comment-footer'>
<a href='https://draft.blogger.com/comment/fullpage/post/3615332969083650973/3453013363765834694' onclick=''>
Post a Comment
</a>
</p>
<div id='backlinks-container'>
<div id='Blog1_backlinks-container'>
</div>
</div>
</div>
</div>
</div></div>
<!--Can't find substitution for tag [adEnd]-->
</div>
<div class='blog-pager' id='blog-pager'>
<span id='blog-pager-newer-link'>
<a class='blog-pager-newer-link' href='https://sysadvent.blogspot.com/2021/12/keeping-config-management-simple-with.html' id='Blog1_blog-pager-newer-link' title='Newer Post'>
Newer Post
</a>
</span>
<span id='blog-pager-older-link'>
<a class='blog-pager-older-link' href='https://sysadvent.blogspot.com/2021/12/the-myths-and-magic-in-my-search-for.html' id='Blog1_blog-pager-older-link' title='Older Post'>
Older Post
</a>
</span>
<a class='home-link' href='https://sysadvent.blogspot.com/'>
Home
</a>
</div>
<div class='clear'></div>
<div class='post-feeds'>
<div class='feed-links'>
Subscribe to:
<a class='feed-link' href='https://sysadvent.blogspot.com/feeds/3453013363765834694/comments/default' target='_blank' type='application/atom+xml'>
Post Comments
(
Atom
)
</a>
</div>
</div>
</div></div>
</div>
<div id='sidebar-wrapper'>
<div class='sidebar section' id='sidebar'><div class='widget HTML' data-version='1' id='HTML2'>
<h2 class='title'>
What is sysadvent?
</h2>
<div class='widget-content'>
<p>
One article for each day of December, ending on the 25th article.
</p><p>
With the goals of sharing, openness, and mentoring, we aim to provide great articles about systems administration topics written by fellow sysadmins.
</p><p>
Want to get involved? Join the <a href="http://groups.google.com/group/sysadvent">mailing list</a>!
<p></p></p>
</div>
<div class='clear'></div>
</div><div class='widget Subscribe' data-version='1' id='Subscribe1'>
<div style='white-space:nowrap'>
<h2 class='title'>
Subscribe
</h2>
<div class='widget-content'>
<div class='subscribe-wrapper subscribe-type-POST'>
<div class='subscribe expanded subscribe-type-POST' id='SW_READER_LIST_Subscribe1POST' style='display:none;'>
<div class='top'>
<span class='inner' onclick='return(_SW_toggleReaderList(event, "Subscribe1POST"));'>
<img class='subscribe-dropdown-arrow' src='https://resources.blogblog.com/img/widgets/arrow_dropdown.gif'/>
<img align='absmiddle' alt='' border='0' class='feed-icon' src='https://resources.blogblog.com/img/icon_feed12.png'/>
Posts
</span>
<div class='feed-reader-links'>
<a class='feed-reader-link' href='http://www.netvibes.com/subscribe.php?url=https%3A%2F%2Fsysadvent.blogspot.com%2Ffeeds%2Fposts%2Fdefault' target='_blank'>
<img src='https://resources.blogblog.com/img/widgets/subscribe-netvibes.png'/>
</a>
<a class='feed-reader-link' href='http://add.my.yahoo.com/content?url=https%3A%2F%2Fsysadvent.blogspot.com%2Ffeeds%2Fposts%2Fdefault' target='_blank'>
<img src='https://resources.blogblog.com/img/widgets/subscribe-yahoo.png'/>
</a>
<a class='feed-reader-link' href='https://sysadvent.blogspot.com/feeds/posts/default' target='_blank'>
<img align='absmiddle' class='feed-icon' src='https://resources.blogblog.com/img/icon_feed12.png'/>
Atom
</a>
</div>
</div>
<div class='bottom'></div>
</div>
<div class='subscribe' id='SW_READER_LIST_CLOSED_Subscribe1POST' onclick='return(_SW_toggleReaderList(event, "Subscribe1POST"));'>
<div class='top'>
<span class='inner'>
<img class='subscribe-dropdown-arrow' src='https://resources.blogblog.com/img/widgets/arrow_dropdown.gif'/>
<span onclick='return(_SW_toggleReaderList(event, "Subscribe1POST"));'>
<img align='absmiddle' alt='' border='0' class='feed-icon' src='https://resources.blogblog.com/img/icon_feed12.png'/>
Posts
</span>
</span>
</div>
<div class='bottom'></div>
</div>
</div>
<div class='subscribe-wrapper subscribe-type-PER_POST'>
<div class='subscribe expanded subscribe-type-PER_POST' id='SW_READER_LIST_Subscribe1PER_POST' style='display:none;'>
<div class='top'>
<span class='inner' onclick='return(_SW_toggleReaderList(event, "Subscribe1PER_POST"));'>
<img class='subscribe-dropdown-arrow' src='https://resources.blogblog.com/img/widgets/arrow_dropdown.gif'/>
<img align='absmiddle' alt='' border='0' class='feed-icon' src='https://resources.blogblog.com/img/icon_feed12.png'/>
Comments
</span>
<div class='feed-reader-links'>
<a class='feed-reader-link' href='http://www.netvibes.com/subscribe.php?url=https%3A%2F%2Fsysadvent.blogspot.com%2Ffeeds%2F3453013363765834694%2Fcomments%2Fdefault' target='_blank'>
<img src='https://resources.blogblog.com/img/widgets/subscribe-netvibes.png'/>
</a>
<a class='feed-reader-link' href='http://add.my.yahoo.com/content?url=https%3A%2F%2Fsysadvent.blogspot.com%2Ffeeds%2F3453013363765834694%2Fcomments%2Fdefault' target='_blank'>
<img src='https://resources.blogblog.com/img/widgets/subscribe-yahoo.png'/>
</a>
<a class='feed-reader-link' href='https://sysadvent.blogspot.com/feeds/3453013363765834694/comments/default' target='_blank'>
<img align='absmiddle' class='feed-icon' src='https://resources.blogblog.com/img/icon_feed12.png'/>
Atom
</a>
</div>
</div>
<div class='bottom'></div>
</div>
<div class='subscribe' id='SW_READER_LIST_CLOSED_Subscribe1PER_POST' onclick='return(_SW_toggleReaderList(event, "Subscribe1PER_POST"));'>
<div class='top'>
<span class='inner'>
<img class='subscribe-dropdown-arrow' src='https://resources.blogblog.com/img/widgets/arrow_dropdown.gif'/>
<span onclick='return(_SW_toggleReaderList(event, "Subscribe1PER_POST"));'>
<img align='absmiddle' alt='' border='0' class='feed-icon' src='https://resources.blogblog.com/img/icon_feed12.png'/>
Comments
</span>
</span>
</div>
<div class='bottom'></div>
</div>
</div>
<div style='clear:both'></div>
</div>
</div>
<div class='clear'></div>
</div><div class='widget BlogArchive' data-version='1' id='BlogArchive2'>
<h2>
Blog Archive
</h2>
<div class='widget-content'>
<div id='ArchiveList'>
<div id='BlogArchive2_ArchiveList'>
<ul class='hierarchy'>
<li class='archivedate expanded'>
<a class='toggle' href='javascript:void(0)'>
<span class='zippy toggle-open'>
&#9660;&#160;
</span>
</a>
<a class='post-count-link' href='https://sysadvent.blogspot.com/2021/'>
2021
</a>
<span class='post-count' dir='ltr'>
(
22
)
</span>
<ul class='hierarchy'>
<li class='archivedate expanded'>
<a class='toggle' href='javascript:void(0)'>
<span class='zippy toggle-open'>
&#9660;&#160;
</span>
</a>
<a class='post-count-link' href='https://sysadvent.blogspot.com/2021/12/'>
December
</a>
<span class='post-count' dir='ltr'>
(
22
)
</span>
<ul class='posts'>
<li>
<a href='https://sysadvent.blogspot.com/2021/12/day-23-what-is-ebpf.html'>
Day 23 - What is eBPF?
</a>
</li>
<li>
<a href='https://sysadvent.blogspot.com/2021/12/day-22-so-youre-incident-commander-now.html'>
Day 22 - So, You&#39;re Incident Commander, Now What?
</a>
</li>
<li>
<a href='https://sysadvent.blogspot.com/2021/12/day-20-to-deploy-or-not-to-deploy-that.html'>
Day 20 - To Deploy or Not to Deploy? That is the q...
</a>
</li>
<li>
<a href='https://sysadvent.blogspot.com/2021/12/day-19-into-world-of-chaos-engineering.html'>
Day 19 - Into the World of Chaos Engineering
</a>
</li>
<li>
<a href='https://sysadvent.blogspot.com/2021/12/day-18-minimizing-false-positive.html'>
Day 18 - Minimizing False Positive Monitoring Aler...
</a>
</li>
<li>
<a href='https://sysadvent.blogspot.com/2021/12/day-17-death-to-localhost-benefits-of.html'>
Day 17 - Death to Localhost: The Benefits of Devel...
</a>
</li>
<li>
<a href='https://sysadvent.blogspot.com/2021/12/day-16-setting-up-k3s-in-your-home-lab.html'>
Day 16 - Setting up k3s in your home lab
</a>
</li>
<li>
<a href='https://sysadvent.blogspot.com/2021/12/day-15-introduction-to-pagerduty-api.html'>
Day 15 - Introduction to the PagerDuty API
</a>
</li>
<li>
<a href='https://sysadvent.blogspot.com/2021/12/day-14-whats-in-job-description-and-who.html'>
Day 14 - What&#39;s in a job description (and who does...
</a>
</li>
<li>
<a href='https://sysadvent.blogspot.com/2021/12/day-13-ephemeral-pr-environments.html'>
Day 13 - Ephemeral PR Environments: Enabling autom...
</a>
</li>
<li>
<a href='https://sysadvent.blogspot.com/2021/12/day-12-terraform-refactoring.html'>
Day 12 - Terraform Refactoring
</a>
</li>
<li>
<a href='https://sysadvent.blogspot.com/2021/12/day-11-moving-from-engineering-manager.html'>
Day 11 - Moving from Engineering Manager to IC
</a>
</li>
<li>
<a href='https://sysadvent.blogspot.com/2021/12/day-10-assembling-your-year-in-review.html'>
Day 10 - Assembling Your Year In Review
</a>
</li>
<li>
<a href='https://sysadvent.blogspot.com/2021/12/3-things-parenting-taught-me-about.html'>
Day 9 - 3 things parenting taught me about system ...
</a>
</li>
<li>
<a href='https://sysadvent.blogspot.com/2021/12/day-8-d-for-sres.html'>
Day 8 - D&amp;D for SREs
</a>
</li>
<li>
<a href='https://sysadvent.blogspot.com/2021/12/day-7-baking-multi-architecture-docker.html'>
Day 7 - Baking Multi-architecture Docker Images
</a>
</li>
<li>
<a href='https://sysadvent.blogspot.com/2021/12/day-6-more-to-come-tomorrow.html'>
Day 6 - More to come tomorrow!
</a>
</li>
<li>
<a href='https://sysadvent.blogspot.com/2021/12/least-privilege-using-strace.html'>
Day 5 - Least Privilege using strace
</a>
</li>
<li>
<a href='https://sysadvent.blogspot.com/2021/12/gwlb-panacea-for-cloud-dmz-on-aws.html'>
Day 4 - GWLB: Panacea for Cloud DMZ on AWS
</a>
</li>
<li>
<a href='https://sysadvent.blogspot.com/2021/12/keeping-config-management-simple-with.html'>
Day 3 - Keeping Config Management Simple with Itamae
</a>
</li>
<li>
<a href='https://sysadvent.blogspot.com/2021/12/reliability-as-product-feature.html'>
Day 2 - Reliability as a Product Feature
</a>
</li>
<li>
<a href='https://sysadvent.blogspot.com/2021/12/the-myths-and-magic-in-my-search-for.html'>
Day 1 - The Myths and the Magic in My Search for A...
</a>
</li>
</ul>
</li>
</ul>
</li>
</ul>
<ul class='hierarchy'>
<li class='archivedate collapsed'>
<a class='toggle' href='javascript:void(0)'>
<span class='zippy'>
&#9658;&#160;
</span>
</a>
<a class='post-count-link' href='https://sysadvent.blogspot.com/2019/'>
2019
</a>
<span class='post-count' dir='ltr'>
(
25
)
</span>
<ul class='hierarchy'>
<li class='archivedate collapsed'>
<a class='toggle' href='javascript:void(0)'>
<span class='zippy'>
&#9658;&#160;
</span>
</a>
<a class='post-count-link' href='https://sysadvent.blogspot.com/2019/12/'>
December
</a>
<span class='post-count' dir='ltr'>
(
25
)
</span>
</li>
</ul>
</li>
</ul>
<ul class='hierarchy'>
<li class='archivedate collapsed'>
<a class='toggle' href='javascript:void(0)'>
<span class='zippy'>
&#9658;&#160;
</span>
</a>
<a class='post-count-link' href='https://sysadvent.blogspot.com/2017/'>
2017
</a>
<span class='post-count' dir='ltr'>
(
25
)
</span>
<ul class='hierarchy'>
<li class='archivedate collapsed'>
<a class='toggle' href='javascript:void(0)'>
<span class='zippy'>
&#9658;&#160;
</span>
</a>
<a class='post-count-link' href='https://sysadvent.blogspot.com/2017/12/'>
December
</a>
<span class='post-count' dir='ltr'>
(
25
)
</span>
</li>
</ul>
</li>
</ul>
<ul class='hierarchy'>
<li class='archivedate collapsed'>
<a class='toggle' href='javascript:void(0)'>
<span class='zippy'>
&#9658;&#160;
</span>
</a>
<a class='post-count-link' href='https://sysadvent.blogspot.com/2016/'>
2016
</a>
<span class='post-count' dir='ltr'>
(
25
)
</span>
<ul class='hierarchy'>
<li class='archivedate collapsed'>
<a class='toggle' href='javascript:void(0)'>
<span class='zippy'>
&#9658;&#160;
</span>
</a>
<a class='post-count-link' href='https://sysadvent.blogspot.com/2016/12/'>
December
</a>
<span class='post-count' dir='ltr'>
(
25
)
</span>
</li>
</ul>
</li>
</ul>
<ul class='hierarchy'>
<li class='archivedate collapsed'>
<a class='toggle' href='javascript:void(0)'>
<span class='zippy'>
&#9658;&#160;
</span>
</a>
<a class='post-count-link' href='https://sysadvent.blogspot.com/2015/'>
2015
</a>
<span class='post-count' dir='ltr'>
(
25
)
</span>
<ul class='hierarchy'>
<li class='archivedate collapsed'>
<a class='toggle' href='javascript:void(0)'>
<span class='zippy'>
&#9658;&#160;
</span>
</a>
<a class='post-count-link' href='https://sysadvent.blogspot.com/2015/12/'>
December
</a>
<span class='post-count' dir='ltr'>
(
25
)
</span>
</li>
</ul>
</li>
</ul>
<ul class='hierarchy'>
<li class='archivedate collapsed'>
<a class='toggle' href='javascript:void(0)'>
<span class='zippy'>
&#9658;&#160;
</span>
</a>
<a class='post-count-link' href='https://sysadvent.blogspot.com/2014/'>
2014
</a>
<span class='post-count' dir='ltr'>
(
25
)
</span>
<ul class='hierarchy'>
<li class='archivedate collapsed'>
<a class='toggle' href='javascript:void(0)'>
<span class='zippy'>
&#9658;&#160;
</span>
</a>
<a class='post-count-link' href='https://sysadvent.blogspot.com/2014/12/'>
December
</a>
<span class='post-count' dir='ltr'>
(
25
)
</span>
</li>
</ul>
</li>
</ul>
<ul class='hierarchy'>
<li class='archivedate collapsed'>
<a class='toggle' href='javascript:void(0)'>
<span class='zippy'>
&#9658;&#160;
</span>
</a>
<a class='post-count-link' href='https://sysadvent.blogspot.com/2013/'>
2013
</a>
<span class='post-count' dir='ltr'>
(
25
)
</span>
<ul class='hierarchy'>
<li class='archivedate collapsed'>
<a class='toggle' href='javascript:void(0)'>
<span class='zippy'>
&#9658;&#160;
</span>
</a>
<a class='post-count-link' href='https://sysadvent.blogspot.com/2013/12/'>
December
</a>
<span class='post-count' dir='ltr'>
(
25
)
</span>
</li>
</ul>
</li>
</ul>
<ul class='hierarchy'>
<li class='archivedate collapsed'>
<a class='toggle' href='javascript:void(0)'>
<span class='zippy'>
&#9658;&#160;
</span>
</a>
<a class='post-count-link' href='https://sysadvent.blogspot.com/2012/'>
2012
</a>
<span class='post-count' dir='ltr'>
(
25
)
</span>
<ul class='hierarchy'>
<li class='archivedate collapsed'>
<a class='toggle' href='javascript:void(0)'>
<span class='zippy'>
&#9658;&#160;
</span>
</a>
<a class='post-count-link' href='https://sysadvent.blogspot.com/2012/12/'>
December
</a>
<span class='post-count' dir='ltr'>
(
25
)
</span>
</li>
</ul>
</li>
</ul>
<ul class='hierarchy'>
<li class='archivedate collapsed'>
<a class='toggle' href='javascript:void(0)'>
<span class='zippy'>
&#9658;&#160;
</span>
</a>
<a class='post-count-link' href='https://sysadvent.blogspot.com/2011/'>
2011
</a>
<span class='post-count' dir='ltr'>
(
25
)
</span>
<ul class='hierarchy'>
<li class='archivedate collapsed'>
<a class='toggle' href='javascript:void(0)'>
<span class='zippy'>
&#9658;&#160;
</span>
</a>
<a class='post-count-link' href='https://sysadvent.blogspot.com/2011/12/'>
December
</a>
<span class='post-count' dir='ltr'>
(
25
)
</span>
</li>
</ul>
</li>
</ul>
<ul class='hierarchy'>
<li class='archivedate collapsed'>
<a class='toggle' href='javascript:void(0)'>
<span class='zippy'>
&#9658;&#160;
</span>
</a>
<a class='post-count-link' href='https://sysadvent.blogspot.com/2010/'>
2010
</a>
<span class='post-count' dir='ltr'>
(
25
)
</span>
<ul class='hierarchy'>
<li class='archivedate collapsed'>
<a class='toggle' href='javascript:void(0)'>
<span class='zippy'>
&#9658;&#160;
</span>
</a>
<a class='post-count-link' href='https://sysadvent.blogspot.com/2010/12/'>
December
</a>
<span class='post-count' dir='ltr'>
(
25
)
</span>
</li>
</ul>
</li>
</ul>
<ul class='hierarchy'>
<li class='archivedate collapsed'>
<a class='toggle' href='javascript:void(0)'>
<span class='zippy'>
&#9658;&#160;
</span>
</a>
<a class='post-count-link' href='https://sysadvent.blogspot.com/2009/'>
2009
</a>
<span class='post-count' dir='ltr'>
(
26
)
</span>
<ul class='hierarchy'>
<li class='archivedate collapsed'>
<a class='toggle' href='javascript:void(0)'>
<span class='zippy'>
&#9658;&#160;
</span>
</a>
<a class='post-count-link' href='https://sysadvent.blogspot.com/2009/12/'>
December
</a>
<span class='post-count' dir='ltr'>
(
26
)
</span>
</li>
</ul>
</li>
</ul>
<ul class='hierarchy'>
<li class='archivedate collapsed'>
<a class='toggle' href='javascript:void(0)'>
<span class='zippy'>
&#9658;&#160;
</span>
</a>
<a class='post-count-link' href='https://sysadvent.blogspot.com/2008/'>
2008
</a>
<span class='post-count' dir='ltr'>
(
25
)
</span>
<ul class='hierarchy'>
<li class='archivedate collapsed'>
<a class='toggle' href='javascript:void(0)'>
<span class='zippy'>
&#9658;&#160;
</span>
</a>
<a class='post-count-link' href='https://sysadvent.blogspot.com/2008/12/'>
December
</a>
<span class='post-count' dir='ltr'>
(
25
)
</span>
</li>
</ul>
</li>
</ul>
</div>
</div>
<div class='clear'></div>
</div>
</div></div>
</div>
<!-- spacer for skins that want sidebar and main to be the same height-->
<div class='clear'>
&#160;
</div>
</div>
<!-- end content-wrapper -->
<div id='footer-wrapper'>
<div class='footer no-items section' id='footer'></div>
</div>
</div>
</div>
<!-- end outer-wrapper -->
<script type='text/javascript'>
var gaJsHost = (("https:" == document.location.protocol) ? "https://ssl." : "http://www.");
document.write(unescape("%3Cscript src='" + gaJsHost + "google-analytics.com/ga.js' type='text/javascript'%3E%3C/script%3E"));
</script>
<script type='text/javascript'>
try {
var pageTracker = _gat._getTracker("UA-6522917-1");
pageTracker._trackPageview();
} catch(err) {}</script>
<script type="text/javascript" src="https://www.blogger.com/static/v1/widgets/851759228-widgets.js"></script>
<script type='text/javascript'>
window['__wavt'] = 'AAPvtVnre8ixtRLqAt2cjiGJy1j_:1789178145880';_WidgetManager._Init('//draft.blogger.com/rearrange?blogID\x3d3615332969083650973','//sysadvent.blogspot.com/2021/12/reliability-as-product-feature.html','3615332969083650973');
_WidgetManager._SetDataContext([{'name': 'blog', 'data': {'blogId': '3615332969083650973', 'title': 'sysadvent', 'url': 'https://sysadvent.blogspot.com/2021/12/reliability-as-product-feature.html', 'canonicalUrl': 'https://sysadvent.blogspot.com/2021/12/reliability-as-product-feature.html', 'homepageUrl': 'https://sysadvent.blogspot.com/', 'searchUrl': 'https://sysadvent.blogspot.com/search', 'canonicalHomepageUrl': 'https://sysadvent.blogspot.com/', 'blogspotFaviconUrl': 'https://sysadvent.blogspot.com/favicon.ico', 'bloggerUrl': 'https://draft.blogger.com', 'hasCustomDomain': false, 'httpsEnabled': true, 'enabledCommentProfileImages': false, 'gPlusViewType': 'FILTERED_POSTMOD', 'adultContent': false, 'analyticsAccountNumber': '', 'encoding': 'UTF-8', 'locale': 'en', 'localeUnderscoreDelimited': 'en', 'languageDirection': 'ltr', 'isPrivate': false, 'isMobile': false, 'isMobileRequest': false, 'mobileClass': '', 'isPrivateBlog': false, 'isDynamicViewsAvailable': true, 'feedLinks': '\x3clink rel\x3d\x22alternate\x22 type\x3d\x22application/atom+xml\x22 title\x3d\x22sysadvent - Atom\x22 href\x3d\x22https://sysadvent.blogspot.com/feeds/posts/default\x22 /\x3e\n\x3clink rel\x3d\x22alternate\x22 type\x3d\x22application/rss+xml\x22 title\x3d\x22sysadvent - RSS\x22 href\x3d\x22https://sysadvent.blogspot.com/feeds/posts/default?alt\x3drss\x22 /\x3e\n\x3clink rel\x3d\x22service.post\x22 type\x3d\x22application/atom+xml\x22 title\x3d\x22sysadvent - Atom\x22 href\x3d\x22https://draft.blogger.com/feeds/3615332969083650973/posts/default\x22 /\x3e\n\n\x3clink rel\x3d\x22alternate\x22 type\x3d\x22application/atom+xml\x22 title\x3d\x22sysadvent - Atom\x22 href\x3d\x22https://sysadvent.blogspot.com/feeds/3453013363765834694/comments/default\x22 /\x3e\n', 'meTag': '', 'adsenseClientId': 'ca-pub-6194074709963145', 'adsenseHostId': 'ca-host-pub-1556223355139109', 'adsenseHasAds': false, 'adsenseAutoAds': false, 'boqCommentIframeForm': true, 'loginRedirectParam': '', 'isGoogleEverywhereLinkTooltipEnabled': true, 'view': '', 'dynamicViewsCommentsSrc': '//www.blogblog.com/dynamicviews/4224c15c4e7c9321/js/comments.js', 'dynamicViewsScriptSrc': '//www.blogblog.com/dynamicviews/31d4351e075118ef', 'plusOneApiSrc': 'https://apis.google.com/js/platform.js', 'disableGComments': true, 'interstitialAccepted': false, 'sharing': {'platforms': [{'name': 'Get link', 'key': 'link', 'shareMessage': 'Get link', 'target': ''}, {'name': 'Facebook', 'key': 'facebook', 'shareMessage': 'Share to Facebook', 'target': 'facebook'}, {'name': 'BlogThis!', 'key': 'blogThis', 'shareMessage': 'BlogThis!', 'target': 'blog'}, {'name': 'X', 'key': 'twitter', 'shareMessage': 'Share to X', 'target': 'twitter'}, {'name': 'Pinterest', 'key': 'pinterest', 'shareMessage': 'Share to Pinterest', 'target': 'pinterest'}, {'name': 'Email', 'key': 'email', 'shareMessage': 'Email', 'target': 'email'}], 'disableGooglePlus': true, 'googlePlusShareButtonWidth': 0, 'googlePlusBootstrap': '\x3cscript type\x3d\x22text/javascript\x22\x3ewindow.___gcfg \x3d {\x27lang\x27: \x27en\x27};\x3c/script\x3e'}, 'hasCustomJumpLinkMessage': false, 'jumpLinkMessage': 'Read more', 'pageType': 'item', 'postId': '3453013363765834694', 'postImageThumbnailUrl': 'https://lh4.googleusercontent.com/425sdbwBKobjYHRoNHZFVNag1SaP2kxrHT7vP82yphtuNUnJbge9PTz85RZjLMeL-Ut-xjbIvD24K1vdzIQm4SuZND44ZtOJSNSwmXPCQp_GQMsuZvfZpfvWZFKGq1GQFa3Xt8ri\x3ds72-c', 'postImageUrl': 'https://lh4.googleusercontent.com/425sdbwBKobjYHRoNHZFVNag1SaP2kxrHT7vP82yphtuNUnJbge9PTz85RZjLMeL-Ut-xjbIvD24K1vdzIQm4SuZND44ZtOJSNSwmXPCQp_GQMsuZvfZpfvWZFKGq1GQFa3Xt8ri', 'pageName': 'Day 2 - Reliability as a Product Feature', 'pageTitle': 'sysadvent: Day 2 - Reliability as a Product Feature'}}, {'name': 'features', 'data': {}}, {'name': 'messages', 'data': {'edit': 'Edit', 'linkCopiedToClipboard': 'Link copied to clipboard!', 'ok': 'Ok', 'postLink': 'Post Link'}}, {'name': 'template', 'data': {'name': 'custom', 'localizedName': 'Custom', 'isResponsive': false, 'isAlternateRendering': false, 'isCustom': true}}, {'name': 'view', 'data': {'classic': {'name': 'classic', 'url': '?view\x3dclassic'}, 'flipcard': {'name': 'flipcard', 'url': '?view\x3dflipcard'}, 'magazine': {'name': 'magazine', 'url': '?view\x3dmagazine'}, 'mosaic': {'name': 'mosaic', 'url': '?view\x3dmosaic'}, 'sidebar': {'name': 'sidebar', 'url': '?view\x3dsidebar'}, 'snapshot': {'name': 'snapshot', 'url': '?view\x3dsnapshot'}, 'timeslide': {'name': 'timeslide', 'url': '?view\x3dtimeslide'}, 'isMobile': false, 'title': 'Day 2 - Reliability as a Product Feature', 'description': ' By: Martin Smith ( @martinb3 ) Edited by: Jennifer Davis ( @sigje ) Abstract SRE was born out of thinking about reliabil...', 'featuredImage': 'https://lh4.googleusercontent.com/425sdbwBKobjYHRoNHZFVNag1SaP2kxrHT7vP82yphtuNUnJbge9PTz85RZjLMeL-Ut-xjbIvD24K1vdzIQm4SuZND44ZtOJSNSwmXPCQp_GQMsuZvfZpfvWZFKGq1GQFa3Xt8ri', 'url': 'https://sysadvent.blogspot.com/2021/12/reliability-as-product-feature.html', 'type': 'item', 'isSingleItem': true, 'isMultipleItems': false, 'isError': false, 'isPage': false, 'isPost': true, 'isHomepage': false, 'isArchive': false, 'isLabelSearch': false, 'postId': 3453013363765834694}}]);
_WidgetManager._RegisterWidget('_NavbarView', new _WidgetInfo('Navbar1', 'navbar', document.getElementById('Navbar1'), {}, 'displayModeFull'));
_WidgetManager._RegisterWidget('_HeaderView', new _WidgetInfo('Header1', 'header', document.getElementById('Header1'), {}, 'displayModeFull'));
_WidgetManager._RegisterWidget('_BlogView', new _WidgetInfo('Blog1', 'main', document.getElementById('Blog1'), {'cmtInteractionsEnabled': false, 'lightboxEnabled': true, 'lightboxModuleUrl': 'https://www.blogger.com/static/v1/jsbin/120969204-lbx.js', 'lightboxCssUrl': 'https://www.blogger.com/static/v1/v-css/828616780-lightbox_bundle.css'}, 'displayModeFull'));
_WidgetManager._RegisterWidget('_HTMLView', new _WidgetInfo('HTML2', 'sidebar', document.getElementById('HTML2'), {}, 'displayModeFull'));
_WidgetManager._RegisterWidget('_SubscribeView', new _WidgetInfo('Subscribe1', 'sidebar', document.getElementById('Subscribe1'), {}, 'displayModeFull'));
_WidgetManager._RegisterWidget('_BlogArchiveView', new _WidgetInfo('BlogArchive2', 'sidebar', document.getElementById('BlogArchive2'), {'languageDirection': 'ltr', 'loadingMessage': 'Loading\x26hellip;'}, 'displayModeFull'));
</script>
</body>
</html>