1284 lines
86 KiB
HTML
1284 lines
86 KiB
HTML
<!doctype html><!--[if lt IE 7]> <html class="no-js lt-ie9 lt-ie8 lt-ie7" lang="en" > <![endif]--><!--[if IE 7]> <html class="no-js lt-ie9 lt-ie8" lang="en" > <![endif]--><!--[if IE 8]> <html class="no-js lt-ie9" lang="en" > <![endif]--><!--[if gt IE 8]><!--><html class="no-js" lang="en"><!--<![endif]--><head>
|
||
<meta charset="utf-8">
|
||
<meta http-equiv="X-UA-Compatible" content="IE=edge,chrome=1">
|
||
<meta name="author" content="Laura Nolan">
|
||
<meta name="description" content="Laura distils what she know about writing incident write-ups that people want to read, whether public or internal-only.">
|
||
<meta name="generator" content="HubSpot">
|
||
<title>Ditch the Template: Incident Write-ups They Want to Read</title>
|
||
<link rel="shortcut icon" href="https://blog.container-solutions.com/hubfs/favicon.ico">
|
||
|
||
<meta name="viewport" content="width=device-width, initial-scale=1">
|
||
|
||
<script src="/hs/hsstatic/jquery-libs/static-1.1/jquery/jquery-1.7.1.js"></script>
|
||
<script>hsjQuery = window['jQuery'];</script>
|
||
<meta property="og:description" content="Laura distils what she know about writing incident write-ups that people want to read, whether public or internal-only.">
|
||
<meta property="og:title" content="Ditch the Template: Incident Write-ups They Want to Read">
|
||
<meta name="twitter:description" content="Laura distils what she know about writing incident write-ups that people want to read, whether public or internal-only.">
|
||
<meta name="twitter:title" content="Ditch the Template: Incident Write-ups They Want to Read">
|
||
|
||
|
||
|
||
|
||
<style>
|
||
a.cta_button{-moz-box-sizing:content-box !important;-webkit-box-sizing:content-box !important;box-sizing:content-box !important;vertical-align:middle}.hs-breadcrumb-menu{list-style-type:none;margin:0px 0px 0px 0px;padding:0px 0px 0px 0px}.hs-breadcrumb-menu-item{float:left;padding:10px 0px 10px 10px}.hs-breadcrumb-menu-divider:before{content:'›';padding-left:10px}.hs-featured-image-link{border:0}.hs-featured-image{float:right;margin:0 0 20px 20px;max-width:50%}@media (max-width: 568px){.hs-featured-image{float:none;margin:0;width:100%;max-width:100%}}.hs-screen-reader-text{clip:rect(1px, 1px, 1px, 1px);height:1px;overflow:hidden;position:absolute !important;width:1px}
|
||
</style>
|
||
|
||
<link rel="stylesheet" href="https://blog.container-solutions.com/hubfs/hub_generated/module_assets/1/9848497348/1743627661455/module_image--logo.min.css">
|
||
<link rel="stylesheet" href="https://blog.container-solutions.com/hubfs/hub_generated/template_assets/1/29086683658/1743407238685/template_CS--megamenu.css">
|
||
<link rel="stylesheet" href="https://blog.container-solutions.com/hubfs/hub_generated/module_assets/1/29104102065/1743627972543/module_CS--Megamenu__helper.min.css">
|
||
<link rel="stylesheet" href="https://blog.container-solutions.com/hubfs/hub_generated/module_assets/1/29544378357/1743627988045/module_Blog2_Normal_Sidebar_Topic_Post.min.css">
|
||
<link rel="stylesheet" href="/hs/hsstatic/AsyncSupport/static-1.501/sass/comments_listing_asset.css">
|
||
<link rel="stylesheet" href="https://blog.container-solutions.com/hubfs/hub_generated/module_assets/1/29544595978/1743628123051/module_Footer_Social_Icon_CM_copy.min.css">
|
||
<!-- Editor Styles -->
|
||
<style id="hs_editor_style" type="text/css">
|
||
#hs_cos_wrapper_module_15894459824861109 { display: block !important; padding-left: 0px !important }
|
||
</style>
|
||
|
||
|
||
|
||
<!-- Added by GoogleAnalytics integration -->
|
||
<script>
|
||
var _hsp = window._hsp = window._hsp || [];
|
||
_hsp.push(['addPrivacyConsentListener', function(consent) { if (consent.allowed || (consent.categories && consent.categories.analytics)) {
|
||
(function(i,s,o,g,r,a,m){i['GoogleAnalyticsObject']=r;i[r]=i[r]||function(){
|
||
(i[r].q=i[r].q||[]).push(arguments)},i[r].l=1*new Date();a=s.createElement(o),
|
||
m=s.getElementsByTagName(o)[0];a.async=1;a.src=g;m.parentNode.insertBefore(a,m)
|
||
})(window,document,'script','//www.google-analytics.com/analytics.js','ga');
|
||
ga('create','UA-53586058-2','auto');
|
||
ga('send','pageview');
|
||
}}]);
|
||
</script>
|
||
|
||
<!-- /Added by GoogleAnalytics integration -->
|
||
|
||
<!-- Added by GoogleAnalytics4 integration -->
|
||
<script>
|
||
var _hsp = window._hsp = window._hsp || [];
|
||
window.dataLayer = window.dataLayer || [];
|
||
function gtag(){dataLayer.push(arguments);}
|
||
|
||
var useGoogleConsentModeV2 = true;
|
||
var waitForUpdateMillis = 1000;
|
||
|
||
|
||
if (!window._hsGoogleConsentRunOnce) {
|
||
window._hsGoogleConsentRunOnce = true;
|
||
|
||
gtag('consent', 'default', {
|
||
'ad_storage': 'denied',
|
||
'analytics_storage': 'denied',
|
||
'ad_user_data': 'denied',
|
||
'ad_personalization': 'denied',
|
||
'wait_for_update': waitForUpdateMillis
|
||
});
|
||
|
||
if (useGoogleConsentModeV2) {
|
||
_hsp.push(['useGoogleConsentModeV2'])
|
||
} else {
|
||
_hsp.push(['addPrivacyConsentListener', function(consent){
|
||
var hasAnalyticsConsent = consent && (consent.allowed || (consent.categories && consent.categories.analytics));
|
||
var hasAdsConsent = consent && (consent.allowed || (consent.categories && consent.categories.advertisement));
|
||
|
||
gtag('consent', 'update', {
|
||
'ad_storage': hasAdsConsent ? 'granted' : 'denied',
|
||
'analytics_storage': hasAnalyticsConsent ? 'granted' : 'denied',
|
||
'ad_user_data': hasAdsConsent ? 'granted' : 'denied',
|
||
'ad_personalization': hasAdsConsent ? 'granted' : 'denied'
|
||
});
|
||
}]);
|
||
}
|
||
}
|
||
|
||
gtag('js', new Date());
|
||
gtag('set', 'developer_id.dZTQ1Zm', true);
|
||
gtag('config', 'G-ML0V60VEZ4');
|
||
</script>
|
||
<script async src="https://www.googletagmanager.com/gtag/js?id=G-ML0V60VEZ4"></script>
|
||
|
||
<!-- /Added by GoogleAnalytics4 integration -->
|
||
|
||
|
||
|
||
<link rel="amphtml" href="https://blog.container-solutions.com/incident-write-ups-they-want-to-read?hs_amp=true">
|
||
|
||
<meta property="og:image" content="https://blog.container-solutions.com/hubfs/blog%20hero%20images/Ditch%20the%20Template%20Incident%20Write-ups%20They%20Want%20to%20Read%20-%20social%20postcard.png">
|
||
<meta property="og:image:width" content="800">
|
||
<meta property="og:image:height" content="418">
|
||
|
||
<meta name="twitter:image" content="https://blog.container-solutions.com/hubfs/blog%20hero%20images/Ditch%20the%20Template%20Incident%20Write-ups%20They%20Want%20to%20Read%20-%20social%20postcard.png">
|
||
|
||
|
||
<meta property="og:url" content="https://blog.container-solutions.com/incident-write-ups-they-want-to-read">
|
||
<meta name="twitter:card" content="summary_large_image">
|
||
|
||
<link rel="canonical" href="https://blog.container-solutions.com/incident-write-ups-they-want-to-read">
|
||
<link rel="stylesheet" href="https://blog.container-solutions.com/hubfs/Blog-Assets/prismCS.css">
|
||
<script type="text/javascript" src="https://blog.container-solutions.com/hubfs/Blog-Assets/prismCS.js"></script>
|
||
<script>
|
||
Prism.hooks.add("before-highlight", function (env) {
|
||
env.code = env.element.innerText;
|
||
});
|
||
Prism.highlightElement(code);
|
||
|
||
</script>
|
||
<meta property="og:type" content="article">
|
||
<link rel="alternate" type="application/rss+xml" href="https://blog.container-solutions.com/rss.xml">
|
||
<meta name="twitter:domain" content="blog.container-solutions.com">
|
||
<meta name="twitter:site" content="@containersoluti">
|
||
<script src="//platform.linkedin.com/in.js" type="text/javascript">
|
||
lang: en_US
|
||
</script>
|
||
|
||
<meta http-equiv="content-language" content="en">
|
||
<link rel="stylesheet" href="//7052064.fs1.hubspotusercontent-na1.net/hubfs/7052064/hub_generated/template_assets/DEFAULT_ASSET/1783348970918/template_layout.min.css">
|
||
|
||
|
||
<link rel="stylesheet" href="https://blog.container-solutions.com/hubfs/hub_generated/template_assets/1/29544378321/1743407238877/template_360_Design_Style.css">
|
||
|
||
|
||
|
||
|
||
|
||
|
||
<script src="https://unpkg.com/masonry-layout@4/dist/masonry.pkgd.min.js"></script>
|
||
<script type="text/javascript" src="//cdn2.hubspot.net/hubfs/2558854/infinite_scroll_v1.js?t=1495695879614"></script>
|
||
<link rel="stylesheet" href="https://use.fontawesome.com/releases/v5.8.2/css/all.css" integrity="sha384-oS3vJWv+0UjzBfQzYUhtDYW+Pj2yciDJxpsK1OYPAYjqT085Qq/1cq5FLXAZQ7Ay" crossorigin="anonymous">
|
||
|
||
|
||
|
||
<script>
|
||
|
||
|
||
var ias = $.ias({
|
||
container : '.post-listing',
|
||
item: '.post-item',
|
||
pagination: '.blog-pagination',
|
||
next: '.next-posts-link',
|
||
});
|
||
|
||
setTimeout(function(){
|
||
$('.post-listing').masonry({
|
||
// options
|
||
itemSelector: '.post-item',
|
||
columnWidth: '.post-item',
|
||
gutter: 1,
|
||
resizesContainer: false,
|
||
percentPosition: true,
|
||
isAnimated: true,
|
||
});
|
||
}, 300);
|
||
|
||
ias.on('loaded', function(data, items) {
|
||
$('.post-listing').removeData('masonry');
|
||
setTimeout(function(){
|
||
|
||
$('.post-listing').masonry({
|
||
// options
|
||
itemSelector: '.post-item',
|
||
columnWidth: '.post-item',
|
||
gutter: 1,
|
||
resizesContainer: false,
|
||
percentPosition: true,
|
||
isAnimated: true,
|
||
});
|
||
}, 300);
|
||
})
|
||
|
||
ias.extension(new IASSpinnerExtension());
|
||
ias.extension(new IASTriggerExtension({offset:0}));
|
||
ias.extension(new IASNoneLeftExtension({text: 'There are no more pages left to load.'}));
|
||
|
||
|
||
</script>
|
||
|
||
|
||
</head>
|
||
<body class="blog-360-style2 hs-content-id-108519604873 hs-blog-post hs-blog-id-5674137972" style="">
|
||
<div class="header-container-wrapper">
|
||
<div class="header-container container-fluid">
|
||
|
||
<div class="row-fluid-wrapper row-depth-1 row-number-1 ">
|
||
<div class="row-fluid ">
|
||
<div class="span12 widget-span widget-type-global_group " style="" data-widget-type="global_group" data-x="0" data-w="12">
|
||
<div class="" data-global-widget-path="generated_global_groups/30127606334.html"><div class="row-fluid-wrapper row-depth-1 row-number-1 ">
|
||
<div class="row-fluid ">
|
||
<div class="span12 widget-span widget-type-custom_widget line-top-nav center" style="" data-widget-type="custom_widget" data-x="0" data-w="12">
|
||
<div id="hs_cos_wrapper_module_15894459824861109" class="hs_cos_wrapper hs_cos_wrapper_widget hs_cos_wrapper_type_module widget-type-rich_text" style="" data-hs-cos-general-type="widget" data-hs-cos-type="module"><span id="hs_cos_wrapper_module_15894459824861109_" class="hs_cos_wrapper hs_cos_wrapper_widget hs_cos_wrapper_type_rich_text" style="" data-hs-cos-general-type="widget" data-hs-cos-type="rich_text"><div id="topwrappercarla" style="margin-left: 0!important;">
|
||
<p>Check out our <strong><a href="https://www.container-solutions.com/services" rel="noopener">Cloud Native Services</a> </strong>and<strong> </strong>book a call with one of our experts today! </p>
|
||
</div></span></div>
|
||
|
||
</div><!--end widget-span -->
|
||
</div><!--end row-->
|
||
</div><!--end row-wrapper -->
|
||
|
||
<div class="row-fluid-wrapper row-depth-1 row-number-2 ">
|
||
<div class="row-fluid ">
|
||
<div class="span12 widget-span widget-type-custom_widget " style="" data-widget-type="custom_widget" data-x="0" data-w="12">
|
||
<div id="hs_cos_wrapper_module_1588876584329219" class="hs_cos_wrapper hs_cos_wrapper_widget hs_cos_wrapper_type_module widget-type-space" style="" data-hs-cos-general-type="widget" data-hs-cos-type="module"><span class="hs-horizontal-spacer"></span></div>
|
||
|
||
</div><!--end widget-span -->
|
||
</div><!--end row-->
|
||
</div><!--end row-wrapper -->
|
||
|
||
<div class="row-fluid-wrapper row-depth-1 row-number-3 ">
|
||
<div class="row-fluid ">
|
||
<div class="span12 widget-span widget-type-custom_widget " style="" data-widget-type="custom_widget" data-x="0" data-w="12">
|
||
<div id="hs_cos_wrapper_module_1588876586294221" class="hs_cos_wrapper hs_cos_wrapper_widget hs_cos_wrapper_type_module widget-type-space" style="" data-hs-cos-general-type="widget" data-hs-cos-type="module"><span class="hs-horizontal-spacer"></span></div>
|
||
|
||
</div><!--end widget-span -->
|
||
</div><!--end row-->
|
||
</div><!--end row-wrapper -->
|
||
|
||
<div class="row-fluid-wrapper row-depth-1 row-number-4 ">
|
||
<div class="row-fluid ">
|
||
<div class="span12 widget-span widget-type-cell header-grp header-360" style="" data-widget-type="cell" data-x="0" data-w="12">
|
||
|
||
<div class="row-fluid-wrapper row-depth-1 row-number-5 ">
|
||
<div class="row-fluid ">
|
||
<div class="span12 widget-span widget-type-cell mega-navigation wrapper equal-height-container" style="" data-widget-type="cell" data-x="0" data-w="12">
|
||
|
||
<div class="row-fluid-wrapper row-depth-1 row-number-6 ">
|
||
<div class="row-fluid ">
|
||
<div class="span2 widget-span widget-type-custom_widget hidden-phone" style="" data-widget-type="custom_widget" data-x="0" data-w="2">
|
||
<div id="hs_cos_wrapper_module_1588861885855449" class="hs_cos_wrapper hs_cos_wrapper_widget hs_cos_wrapper_type_module widget-type-space" style="" data-hs-cos-general-type="widget" data-hs-cos-type="module"><span class="hs-horizontal-spacer"></span></div>
|
||
|
||
</div><!--end widget-span -->
|
||
<div class="span2 widget-span widget-type-custom_widget logo-image vertical-center" style="" data-widget-type="custom_widget" data-x="2" data-w="2">
|
||
<div id="hs_cos_wrapper_module_1588861885855450" class="hs_cos_wrapper hs_cos_wrapper_widget hs_cos_wrapper_type_module widget-type-logo" style="" data-hs-cos-general-type="widget" data-hs-cos-type="module"><div aria-hidden="true" class="logo-main">
|
||
<section class="logo-image">
|
||
|
||
|
||
|
||
|
||
|
||
<span id="hs_cos_wrapper_module_1588861885855450_hs_logo_widget" class="hs_cos_wrapper hs_cos_wrapper_widget hs_cos_wrapper_type_logo" style="" data-hs-cos-general-type="widget" data-hs-cos-type="logo"><a href="http://container-solutions.com" id="hs-link-module_1588861885855450_hs_logo_widget" style="border-width:0px;border:0px;"><img src="https://blog.container-solutions.com/hubfs/CS_blog/logo-main.svg" class="hs-image-widget " height="120" style="height: auto;width:120px;border-width:0px;border:0px;" width="120" alt="Container Solutions" title="Container Solutions"></a></span>
|
||
|
||
</section>
|
||
</div></div>
|
||
|
||
</div><!--end widget-span -->
|
||
<div class="span8 widget-span widget-type-cell mega-custom-menu header-menu vertical-center custom-menu-primary" style="" data-widget-type="cell" data-x="4" data-w="8">
|
||
|
||
<div class="row-fluid-wrapper row-depth-1 row-number-7 ">
|
||
<div class="row-fluid ">
|
||
<div class="span12 widget-span widget-type-custom_widget " style="" data-widget-type="custom_widget" data-x="0" data-w="12">
|
||
<div id="hs_cos_wrapper_module_1588861885855452" class="hs_cos_wrapper hs_cos_wrapper_widget hs_cos_wrapper_type_module" style="" data-hs-cos-general-type="widget" data-hs-cos-type="module"></div>
|
||
|
||
</div><!--end widget-span -->
|
||
</div><!--end row-->
|
||
</div><!--end row-wrapper -->
|
||
|
||
<div class="row-fluid-wrapper row-depth-1 row-number-8 ">
|
||
<div class="row-fluid ">
|
||
<div class="span12 widget-span widget-type-custom_widget " style="" data-widget-type="custom_widget" data-x="0" data-w="12">
|
||
<div id="hs_cos_wrapper_module_1588861885855453" class="hs_cos_wrapper hs_cos_wrapper_widget hs_cos_wrapper_type_module widget-type-menu" style="" data-hs-cos-general-type="widget" data-hs-cos-type="module">
|
||
<span id="hs_cos_wrapper_module_1588861885855453_" class="hs_cos_wrapper hs_cos_wrapper_widget hs_cos_wrapper_type_menu" style="" data-hs-cos-general-type="widget" data-hs-cos-type="menu"><div id="hs_menu_wrapper_module_1588861885855453_" class="hs-menu-wrapper active-branch flyouts hs-menu-flow-horizontal" role="navigation" data-sitemap-name="default" data-menu-id="29112379890" aria-label="Navigation Menu">
|
||
<ul role="menu">
|
||
<li class="hs-menu-item hs-menu-depth-1" role="none"><a href="https://www.container-solutions.com" role="menuitem">Home</a></li>
|
||
<li class="hs-menu-item hs-menu-depth-1" role="none"><a href="https://www.container-solutions.com/services" role="menuitem">Services</a></li>
|
||
<li class="hs-menu-item hs-menu-depth-1" role="none"><a href="https://www.container-solutions.com/events" role="menuitem">Events</a></li>
|
||
<li class="hs-menu-item hs-menu-depth-1 hs-item-has-children" role="none"><a href="javascript:;" aria-haspopup="true" aria-expanded="false" role="menuitem">Content</a>
|
||
<ul role="menu" class="hs-menu-children-wrapper">
|
||
<li class="hs-menu-item hs-menu-depth-2" role="none"><a href="https://blog.container-solutions.com" role="menuitem">Blogs</a></li>
|
||
</ul></li>
|
||
</ul>
|
||
</div></span></div>
|
||
|
||
</div><!--end widget-span -->
|
||
</div><!--end row-->
|
||
</div><!--end row-wrapper -->
|
||
|
||
<div class="row-fluid-wrapper row-depth-1 row-number-9 ">
|
||
<div class="row-fluid ">
|
||
<div class="span12 widget-span widget-type-cell mega-menu-1 hidden-phone hidden-tablet" style="" data-widget-type="cell" data-x="0" data-w="12">
|
||
|
||
<div class="row-fluid-wrapper row-depth-2 row-number-1 ">
|
||
<div class="row-fluid ">
|
||
<div class="span12 widget-span widget-type-cell mega-drop-1" style="" data-widget-type="cell" data-x="0" data-w="12">
|
||
|
||
<div class="row-fluid-wrapper row-depth-2 row-number-2 ">
|
||
<div class="row-fluid ">
|
||
<div class="span12 widget-span widget-type-cell mega-menu hidden-phone" style="" data-widget-type="cell" data-x="0" data-w="12">
|
||
|
||
<div class="row-fluid-wrapper row-depth-2 row-number-3 ">
|
||
<div class="row-fluid ">
|
||
<div class="span3 widget-span widget-type-cell nav-column" style="" data-widget-type="cell" data-x="0" data-w="3">
|
||
|
||
<div class="row-fluid-wrapper row-depth-3 row-number-1 ">
|
||
<div class="row-fluid ">
|
||
<div class="span12 widget-span widget-type-cell " style="" data-widget-type="cell" data-x="0" data-w="12">
|
||
|
||
<div class="row-fluid-wrapper row-depth-3 row-number-2 ">
|
||
<div class="row-fluid ">
|
||
<div class="span12 widget-span widget-type-custom_widget " style="" data-widget-type="custom_widget" data-x="0" data-w="12">
|
||
<div id="hs_cos_wrapper_module_16299859664272722" class="hs_cos_wrapper hs_cos_wrapper_widget hs_cos_wrapper_type_module widget-type-linked_image" style="" data-hs-cos-general-type="widget" data-hs-cos-type="module">
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
<span id="hs_cos_wrapper_module_16299859664272722_" class="hs_cos_wrapper hs_cos_wrapper_widget hs_cos_wrapper_type_linked_image" style="" data-hs-cos-general-type="widget" data-hs-cos-type="linked_image"></span></div>
|
||
|
||
</div><!--end widget-span -->
|
||
</div><!--end row-->
|
||
</div><!--end row-wrapper -->
|
||
|
||
</div><!--end widget-span -->
|
||
</div><!--end row-->
|
||
</div><!--end row-wrapper -->
|
||
|
||
</div><!--end widget-span -->
|
||
<div class="span3 widget-span widget-type-cell center nav-column" style="" data-widget-type="cell" data-x="3" data-w="3">
|
||
|
||
<div class="row-fluid-wrapper row-depth-3 row-number-3 ">
|
||
<div class="row-fluid ">
|
||
<div class="span12 widget-span widget-type-cell " style="" data-widget-type="cell" data-x="0" data-w="12">
|
||
|
||
<div class="row-fluid-wrapper row-depth-3 row-number-4 ">
|
||
<div class="row-fluid ">
|
||
<div class="span12 widget-span widget-type-custom_widget " style="" data-widget-type="custom_widget" data-x="0" data-w="12">
|
||
<div id="hs_cos_wrapper_module_16299853344462565" class="hs_cos_wrapper hs_cos_wrapper_widget hs_cos_wrapper_type_module widget-type-linked_image" style="" data-hs-cos-general-type="widget" data-hs-cos-type="module">
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
<span id="hs_cos_wrapper_module_16299853344462565_" class="hs_cos_wrapper hs_cos_wrapper_widget hs_cos_wrapper_type_linked_image" style="" data-hs-cos-general-type="widget" data-hs-cos-type="linked_image"></span></div>
|
||
|
||
</div><!--end widget-span -->
|
||
</div><!--end row-->
|
||
</div><!--end row-wrapper -->
|
||
|
||
</div><!--end widget-span -->
|
||
</div><!--end row-->
|
||
</div><!--end row-wrapper -->
|
||
|
||
</div><!--end widget-span -->
|
||
<div class="span3 widget-span widget-type-cell center nav-column" style="" data-widget-type="cell" data-x="6" data-w="3">
|
||
|
||
<div class="row-fluid-wrapper row-depth-3 row-number-5 ">
|
||
<div class="row-fluid ">
|
||
<div class="span12 widget-span widget-type-cell " style="" data-widget-type="cell" data-x="0" data-w="12">
|
||
|
||
<div class="row-fluid-wrapper row-depth-3 row-number-6 ">
|
||
<div class="row-fluid ">
|
||
<div class="span12 widget-span widget-type-custom_widget " style="" data-widget-type="custom_widget" data-x="0" data-w="12">
|
||
<div id="hs_cos_wrapper_module_16299853310642563" class="hs_cos_wrapper hs_cos_wrapper_widget hs_cos_wrapper_type_module widget-type-linked_image" style="" data-hs-cos-general-type="widget" data-hs-cos-type="module">
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
<span id="hs_cos_wrapper_module_16299853310642563_" class="hs_cos_wrapper hs_cos_wrapper_widget hs_cos_wrapper_type_linked_image" style="" data-hs-cos-general-type="widget" data-hs-cos-type="linked_image"></span></div>
|
||
|
||
</div><!--end widget-span -->
|
||
</div><!--end row-->
|
||
</div><!--end row-wrapper -->
|
||
|
||
</div><!--end widget-span -->
|
||
</div><!--end row-->
|
||
</div><!--end row-wrapper -->
|
||
|
||
</div><!--end widget-span -->
|
||
<div class="span3 widget-span widget-type-cell nav-column" style="" data-widget-type="cell" data-x="9" data-w="3">
|
||
|
||
<div class="row-fluid-wrapper row-depth-3 row-number-7 ">
|
||
<div class="row-fluid ">
|
||
<div class="span12 widget-span widget-type-cell " style="" data-widget-type="cell" data-x="0" data-w="12">
|
||
|
||
<div class="row-fluid-wrapper row-depth-3 row-number-8 ">
|
||
<div class="row-fluid ">
|
||
<div class="span12 widget-span widget-type-custom_widget " style="" data-widget-type="custom_widget" data-x="0" data-w="12">
|
||
<div id="hs_cos_wrapper_module_1648341413920261" class="hs_cos_wrapper hs_cos_wrapper_widget hs_cos_wrapper_type_module widget-type-linked_image" style="" data-hs-cos-general-type="widget" data-hs-cos-type="module">
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
<span id="hs_cos_wrapper_module_1648341413920261_" class="hs_cos_wrapper hs_cos_wrapper_widget hs_cos_wrapper_type_linked_image" style="" data-hs-cos-general-type="widget" data-hs-cos-type="linked_image"></span></div>
|
||
|
||
</div><!--end widget-span -->
|
||
</div><!--end row-->
|
||
</div><!--end row-wrapper -->
|
||
|
||
</div><!--end widget-span -->
|
||
</div><!--end row-->
|
||
</div><!--end row-wrapper -->
|
||
|
||
</div><!--end widget-span -->
|
||
</div><!--end row-->
|
||
</div><!--end row-wrapper -->
|
||
|
||
</div><!--end widget-span -->
|
||
</div><!--end row-->
|
||
</div><!--end row-wrapper -->
|
||
|
||
</div><!--end widget-span -->
|
||
</div><!--end row-->
|
||
</div><!--end row-wrapper -->
|
||
|
||
</div><!--end widget-span -->
|
||
</div><!--end row-->
|
||
</div><!--end row-wrapper -->
|
||
|
||
<div class="row-fluid-wrapper row-depth-1 row-number-1 ">
|
||
<div class="row-fluid ">
|
||
<div class="span12 widget-span widget-type-cell mega-menu-2 hidden-phone hidden-tablet" style="" data-widget-type="cell" data-x="0" data-w="12">
|
||
|
||
<div class="row-fluid-wrapper row-depth-2 row-number-1 ">
|
||
<div class="row-fluid ">
|
||
<div class="span12 widget-span widget-type-cell mega-drop-2" style="" data-widget-type="cell" data-x="0" data-w="12">
|
||
|
||
<div class="row-fluid-wrapper row-depth-2 row-number-2 ">
|
||
<div class="row-fluid ">
|
||
<div class="span12 widget-span widget-type-cell mega-menu hidden-phone" style="" data-widget-type="cell" data-x="0" data-w="12">
|
||
|
||
<div class="row-fluid-wrapper row-depth-2 row-number-3 ">
|
||
<div class="row-fluid ">
|
||
<div class="span3 widget-span widget-type-cell nav-column" style="" data-widget-type="cell" data-x="0" data-w="3">
|
||
|
||
<div class="row-fluid-wrapper row-depth-3 row-number-1 ">
|
||
<div class="row-fluid ">
|
||
<div class="span12 widget-span widget-type-cell " style="" data-widget-type="cell" data-x="0" data-w="12">
|
||
|
||
<div class="row-fluid-wrapper row-depth-3 row-number-2 ">
|
||
<div class="row-fluid ">
|
||
<div class="span12 widget-span widget-type-custom_widget " style="" data-widget-type="custom_widget" data-x="0" data-w="12">
|
||
<div id="hs_cos_wrapper_module_1594821908906860" class="hs_cos_wrapper hs_cos_wrapper_widget hs_cos_wrapper_type_module widget-type-linked_image" style="" data-hs-cos-general-type="widget" data-hs-cos-type="module">
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
<span id="hs_cos_wrapper_module_1594821908906860_" class="hs_cos_wrapper hs_cos_wrapper_widget hs_cos_wrapper_type_linked_image" style="" data-hs-cos-general-type="widget" data-hs-cos-type="linked_image"></span></div>
|
||
|
||
</div><!--end widget-span -->
|
||
</div><!--end row-->
|
||
</div><!--end row-wrapper -->
|
||
|
||
</div><!--end widget-span -->
|
||
</div><!--end row-->
|
||
</div><!--end row-wrapper -->
|
||
|
||
</div><!--end widget-span -->
|
||
<div class="span3 widget-span widget-type-cell nav-column" style="" data-widget-type="cell" data-x="3" data-w="3">
|
||
|
||
<div class="row-fluid-wrapper row-depth-3 row-number-3 ">
|
||
<div class="row-fluid ">
|
||
<div class="span12 widget-span widget-type-cell " style="" data-widget-type="cell" data-x="0" data-w="12">
|
||
|
||
<div class="row-fluid-wrapper row-depth-3 row-number-4 ">
|
||
<div class="row-fluid ">
|
||
<div class="span12 widget-span widget-type-custom_widget " style="" data-widget-type="custom_widget" data-x="0" data-w="12">
|
||
<div id="hs_cos_wrapper_module_1594822950655390" class="hs_cos_wrapper hs_cos_wrapper_widget hs_cos_wrapper_type_module widget-type-linked_image" style="" data-hs-cos-general-type="widget" data-hs-cos-type="module">
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
<span id="hs_cos_wrapper_module_1594822950655390_" class="hs_cos_wrapper hs_cos_wrapper_widget hs_cos_wrapper_type_linked_image" style="" data-hs-cos-general-type="widget" data-hs-cos-type="linked_image"></span></div>
|
||
|
||
</div><!--end widget-span -->
|
||
</div><!--end row-->
|
||
</div><!--end row-wrapper -->
|
||
|
||
</div><!--end widget-span -->
|
||
</div><!--end row-->
|
||
</div><!--end row-wrapper -->
|
||
|
||
</div><!--end widget-span -->
|
||
<div class="span3 widget-span widget-type-cell nav-column" style="" data-widget-type="cell" data-x="6" data-w="3">
|
||
|
||
<div class="row-fluid-wrapper row-depth-3 row-number-5 ">
|
||
<div class="row-fluid ">
|
||
<div class="span12 widget-span widget-type-cell " style="" data-widget-type="cell" data-x="0" data-w="12">
|
||
|
||
<div class="row-fluid-wrapper row-depth-3 row-number-6 ">
|
||
<div class="row-fluid ">
|
||
<div class="span12 widget-span widget-type-custom_widget " style="" data-widget-type="custom_widget" data-x="0" data-w="12">
|
||
<div id="hs_cos_wrapper_module_1594823562783675" class="hs_cos_wrapper hs_cos_wrapper_widget hs_cos_wrapper_type_module widget-type-linked_image" style="" data-hs-cos-general-type="widget" data-hs-cos-type="module">
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
<span id="hs_cos_wrapper_module_1594823562783675_" class="hs_cos_wrapper hs_cos_wrapper_widget hs_cos_wrapper_type_linked_image" style="" data-hs-cos-general-type="widget" data-hs-cos-type="linked_image"></span></div>
|
||
|
||
</div><!--end widget-span -->
|
||
</div><!--end row-->
|
||
</div><!--end row-wrapper -->
|
||
|
||
</div><!--end widget-span -->
|
||
</div><!--end row-->
|
||
</div><!--end row-wrapper -->
|
||
|
||
</div><!--end widget-span -->
|
||
<div class="span3 widget-span widget-type-cell nav-column" style="" data-widget-type="cell" data-x="9" data-w="3">
|
||
|
||
<div class="row-fluid-wrapper row-depth-3 row-number-7 ">
|
||
<div class="row-fluid ">
|
||
<div class="span12 widget-span widget-type-cell " style="" data-widget-type="cell" data-x="0" data-w="12">
|
||
|
||
<div class="row-fluid-wrapper row-depth-3 row-number-8 ">
|
||
<div class="row-fluid ">
|
||
<div class="span12 widget-span widget-type-custom_widget " style="" data-widget-type="custom_widget" data-x="0" data-w="12">
|
||
<div id="hs_cos_wrapper_module_1643154843573484" class="hs_cos_wrapper hs_cos_wrapper_widget hs_cos_wrapper_type_module widget-type-linked_image" style="" data-hs-cos-general-type="widget" data-hs-cos-type="module">
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
<span id="hs_cos_wrapper_module_1643154843573484_" class="hs_cos_wrapper hs_cos_wrapper_widget hs_cos_wrapper_type_linked_image" style="" data-hs-cos-general-type="widget" data-hs-cos-type="linked_image"></span></div>
|
||
|
||
</div><!--end widget-span -->
|
||
</div><!--end row-->
|
||
</div><!--end row-wrapper -->
|
||
|
||
</div><!--end widget-span -->
|
||
</div><!--end row-->
|
||
</div><!--end row-wrapper -->
|
||
|
||
</div><!--end widget-span -->
|
||
</div><!--end row-->
|
||
</div><!--end row-wrapper -->
|
||
|
||
</div><!--end widget-span -->
|
||
</div><!--end row-->
|
||
</div><!--end row-wrapper -->
|
||
|
||
</div><!--end widget-span -->
|
||
</div><!--end row-->
|
||
</div><!--end row-wrapper -->
|
||
|
||
</div><!--end widget-span -->
|
||
</div><!--end row-->
|
||
</div><!--end row-wrapper -->
|
||
|
||
</div><!--end widget-span -->
|
||
</div><!--end row-->
|
||
</div><!--end row-wrapper -->
|
||
|
||
</div><!--end widget-span -->
|
||
</div><!--end row-->
|
||
</div><!--end row-wrapper -->
|
||
|
||
</div><!--end widget-span -->
|
||
</div><!--end row-->
|
||
</div><!--end row-wrapper -->
|
||
</div>
|
||
</div><!--end widget-span -->
|
||
</div><!--end row-->
|
||
</div><!--end row-wrapper -->
|
||
|
||
</div><!--end header -->
|
||
</div><!--end header wrapper -->
|
||
|
||
<div class="body-container-wrapper">
|
||
<div class="body-container container-fluid">
|
||
|
||
<div class="row-fluid-wrapper row-depth-1 row-number-1 ">
|
||
<div class="row-fluid ">
|
||
<div class="span12 widget-span widget-type-cell wow2-blog-sec" style="" data-widget-type="cell" data-x="0" data-w="12">
|
||
|
||
<div class="row-fluid-wrapper row-depth-1 row-number-2 ">
|
||
<div class="row-fluid ">
|
||
<div class="span12 widget-span widget-type-cell wrapper" style="" data-widget-type="cell" data-x="0" data-w="12">
|
||
|
||
<div class="row-fluid-wrapper row-depth-1 row-number-3 ">
|
||
<div class="row-fluid ">
|
||
<div class="span7 widget-span widget-type-cell left-col" style="" data-widget-type="cell" data-x="0" data-w="7">
|
||
|
||
<div class="row-fluid-wrapper row-depth-1 row-number-4 ">
|
||
<div class="row-fluid ">
|
||
<div class="span12 widget-span widget-type-custom_widget " style="" data-widget-type="custom_widget" data-x="0" data-w="12">
|
||
<div id="hs_cos_wrapper_module_158381964095203" class="hs_cos_wrapper hs_cos_wrapper_widget hs_cos_wrapper_type_module widget-type-blog_content" style="" data-hs-cos-general-type="widget" data-hs-cos-type="module">
|
||
<div class="blog-section">
|
||
<div class="blog-post-wrapper cell-wrapper">
|
||
<div class="blog-section post-blog-section">
|
||
<div class="blog-social-share">
|
||
<div class="post-social-share">
|
||
<ul>
|
||
<li>share:</li>
|
||
<li><a target="_blank" href="https://www.facebook.com/sharer/sharer.php?u=https%3A%2F%2Fblog.container-solutions.com%2Fincident-write-ups-they-want-to-read"><i class="fab fa-facebook-f"></i></a></li>
|
||
<li><a target="_blank" href="https://www.twitter.com/share?url=https%3A%2F%2Fblog.container-solutions.com%2Fincident-write-ups-they-want-to-read"><i class="fab fa-twitter"></i></a></li>
|
||
<li> <a target="_blank" href="http://www.linkedin.com/shareArticle?mini=true&url=https://blog.container-solutions.com/incident-write-ups-they-want-to-read"><i class="fab fa-linkedin-in"></i></a></li>
|
||
<li><a target="_blank" href="#"><i class="fas fa-envelope"></i></a></li>
|
||
</ul>
|
||
</div>
|
||
</div>
|
||
<div class="simple-post-wrapper blog-post-wrapper cell-wrapper">
|
||
<div class="section post-header">
|
||
<div class="hs-featured-image-wrapper custom-type">
|
||
<a href="https://blog.container-solutions.com/incident-write-ups-they-want-to-read" title="" class="hs-featured-image-link">
|
||
<img src="https://blog.container-solutions.com/hubfs/blog%20hero%20images/Ditch%20the%20Template%20Incident%20Write-ups%20They%20Want%20to%20Read%20-%20Podcast%20Hero.png" alt="" class="hs-featured-image custom-type">
|
||
</a>
|
||
</div>
|
||
<p id="hubspot-topic_data">
|
||
<a class="topic-link" href="https://blog.container-solutions.com/tag/wtf-is-cloud-native">WTF Is Cloud Native</a>,
|
||
<a class="topic-link" href="https://blog.container-solutions.com/tag/cloud-native-operations">Cloud Native Operations</a>,
|
||
<a class="topic-link" href="https://blog.container-solutions.com/tag/cno">CNO</a>
|
||
</p>
|
||
<h1><span id="hs_cos_wrapper_name" class="hs_cos_wrapper hs_cos_wrapper_meta_field hs_cos_wrapper_type_text" style="" data-hs-cos-general-type="meta_field" data-hs-cos-type="text">Ditch the Template: Incident Write-ups They Want to Read</span></h1>
|
||
<div class="row-fluid post-author-sec">
|
||
<div id="hubspot-author_data" class="span6 hubspot-editable" data-hubspot-form-id="author_data" data-hubspot-name="Blog Author">
|
||
<a class="author-link" href="https://blog.container-solutions.com/author/laura-nolan">Laura Nolan</a>
|
||
<div class="hs-author-avatar"> <img src="https://blog.container-solutions.com/hubfs/Author%20Images/6324c7fd6009f19e74af2226_Laura90.jpg" alt="Laura Nolan"> </div>
|
||
</div>
|
||
<div class="span6 post-read align-right">
|
||
<div><span> March 31, 2023</span></div>
|
||
<span> 20 minutes Read</span>
|
||
</div>
|
||
</div>
|
||
</div>
|
||
<div class="section post-body">
|
||
<span id="hs_cos_wrapper_post_body" class="hs_cos_wrapper hs_cos_wrapper_meta_field hs_cos_wrapper_type_rich_text" style="" data-hs-cos-general-type="meta_field" data-hs-cos-type="rich_text"><p>Why should we try to make incident reports engaging?</p>
|
||
<!--more-->
|
||
<p>Over the past several years as the DevOps and the SRE movements have taken root in software, it has become standard practice to conduct incident reviews in the wake of customer-impacting outages or problems. This is a positive development: incidents are events that can teach us things about our systems and our organisations that we didn’t know before. If we don’t pay attention to incidents, then we pass up valuable learning opportunities that can help us to make our systems more robust and resilient.</p>
|
||
<p>But there’s more to it than simply having a meeting and filling out an incident review template. It’s very easy—and very common—to rush through and end up with a very thin analysis of the incident that doesn’t really tell us anything that we didn’t already know, and that doesn’t have any medium or long term impact on the organisation.</p>
|
||
<p>On the other hand, it is also possible to create incident writeups that engineers choose to read, that clearly describe and highlight difficult and poorly-understood aspects of our systems, and that become part of the organisation’s collective understanding. The most successful written incident reports can become a long-term store of knowledge, and often a key part of onboarding for new engineers, and eventually pass into a sort of organisational folklore. Text is an ideal medium for this kind of knowledge dissemination and storage: it is searchable, accessible, and it can encourage deep engagement and reflection.</p>
|
||
<p>The best incident reviews and reports are a way to share knowledge and context about systems, including between teams—which is always a challenge. They can help make a case to prioritise reliability work. They are a tool to encourage thoughtful reflection about our work. They can help to disseminate valuable insights about the strengths and sharp edges of SaaS and OSS tools through the entire industry.</p>
|
||
<p>Richard Cook wrote in ‘<a href="https://how.complexsystems.fail/">How Complex Systems Fail</a>’ that:</p>
|
||
<blockquote>
|
||
<p>Complex systems require substantial human expertise in their operation and management. This expertise changes in character as technology changes but it also changes because of the need to replace experts who leave. In every case, training and refinement of skill and expertise is one part of the function of the system itself. At any moment, therefore, a given complex system will contain practitioners and trainees with varying degrees of expertise. Critical issues related to expertise arise from (1) the need to use scarce expertise as a resource for the most difficult or demanding production needs and (2) the need to develop expertise for future use.</p>
|
||
</blockquote>
|
||
<p>As Cook points out, expertise is critical to reliable operations: and it is a resource that your organisation is constantly losing. Therefore, we also need to constantly rebuild expertise. Incident write-ups are not the only tool for building expertise, but they are a very important one, because they explicitly link the structure of systems with how things can go wrong—or right. Incident writeups teach us not only the form and function of our systems, but about the many constraints that shape that form.</p>
|
||
<p>This article distils what I know about writing incident write-ups that people want to read, whether public or internal-only. It isn’t an exhaustive description of how to go about conducting a post-incident review—for detail on all the steps, including gathering information and interviewing participants, see the <a href="https://www.jeli.io/howie/welcome">Howie guide to post-incident investigations</a>.</p>
|
||
<p>It is worth saying now that what I propose doing in this article is not a lightweight process. Creating an incident writeup of enduring value takes time and focus. It is neither feasible nor worthwhile to do deep sense-making and writing work for every single incident your organisation encounters. But it is almost certainly worth it for some subset of your incidents: the incidents that surprise you, that puzzle you. The incidents that happen in the dark and scary <a href="https://softwareexorcist.com/writing/haunted-graveyards">haunted graveyards</a>. The ones that were difficult to handle for some reason. The ones that seem to form part of a larger story; that seem to ask for deeper analysis. I believe it is better to focus much of your time and energy on these incidents, rather than trying to give equal attention and treatment to every single production glitch.</p>
|
||
<h2>Focus on narrative, not metadata</h2>
|
||
<p>The cardinal crime we commit against our incident writeups is turning them into forms. We take what are often fascinating tales, full of mystery and excitement… and we make them into something that’s about as fun to read as a tax return.</p>
|
||
<p>Many organisations which do incident reviews or postmortems have a <a href="https://github.com/dastergon/postmortem-templates/blob/master/templates/postmortem-template-srebook.md">detailed template</a>, covering information such as the impact start and end times, services affected, number of customers affected, what triggered the incident, and so on.</p>
|
||
<p>Templates have value: they ensure that standardised information is collected and can feed into tooling, they can help authors get started without having to conquer the empty page, and they provide a structure for readers.</p>
|
||
<p>However, there is a dark side to the use of templates. As with any form, they tend to encourage writers to speed through filling the template out. Templates do not normally distinguish between elements that should be short—such as metadata—and elements which may be long and complex, such as describing the trigger. Separating elements such as the trigger, contributing factors, resolution, and detection can also lead to a very confused and fragmented account of the event, which is difficult for readers to make sense of unless they already have significant context about the systems in question.</p>
|
||
<p>Consider <em>Jurassic Park</em> (the iconic Spielberg movie) as a template-based incident review:</p>
|
||
<ul>
|
||
<li>Incident Number: JP-001</li>
|
||
<li>Impact: 5 human deaths, facilities on island a total loss, significant reputational damage.</li>
|
||
<li>Summary: Dinosaurs escaped from enclosures. Some deaths resulted.</li>
|
||
<li>Resolution: Costa Rican military bombed the island, killing all dinosaurs.</li>
|
||
<li>Trigger: Operator disabled electric fences.</li>
|
||
<li>Root Cause: Internal processes failed to detect a corrupt employee who engaged in bribery.</li>
|
||
<li>How We Got Lucky: Several staff and visitors escaped via helicopter.</li>
|
||
</ul>
|
||
<p>[todo re-format as table?]</p>
|
||
<p>It is safe to say that in this form, this is not material for a riveting Hollywood blockbuster. Nor is it easy to follow.</p>
|
||
<p>Template-based writeups tend to be low on detail, especially about what the people in the incident were thinking and how they understood the circumstances and what was difficult or confusing—and that’s an really important aspect of incident review, because one of the most important things we’re trying to get out of this is learning: helping engineers’ expertise keep up with the complexity of the system, and having our tooling support human sense-making.</p>
|
||
<p>This makes template incident writeups often less than useful for learning, and more an exercise in bureaucracy. Instead, it is best to start with a long-form narrative that describes the incident, and to make that the heart of your incident writeup. People love a good story: so tell a story.</p>
|
||
<p>A story has a cast of characters, and a beginning, a middle, and an end. So do incidents. Many great incident narratives take the form of a mystery or a detective story (or sometimes a disaster story or a comedy!). <a href="https://www.reddit.com/r/RedditEng/comments/11xx5o0/you_broke_reddit_the_piday_outage/">Reddit’s Kubernetes cluster upgrade on March 14 2023</a> is a very good example of the genre.</p>
|
||
<p>First, present the puzzle: how did the incident begin? How was it detected? What did the responders know at this point? Were there preceding events (such as in the case of the Reddit outage)? This part of the narrative piques the reader’s interest and leaves them wanting to know more.</p>
|
||
<p>Now, the peril: how did the responders react? What was tried and failed? How did they go about making sense of the incident? What made it difficult to handle—did they have missing or misleading monitoring? Were there risky tradeoffs to balance? This part of the narrative builds suspense, helps to put the reader into the responders’ shoes, and begins to add more detail about what was happening during the incident. This part of the narrative is also valuable for engineers who might subsequently face similar incidents as it lets us mentally rehearse the kinds of decisions we might later need to make under pressure.</p>
|
||
<p>Finally, we have the resolution and the explanation. How was the incident resolved? What was happening? What triggered it? This is where the deep systems explanations often come in. Sometimes the explanation can cover years of history of a system’s evolution.</p>
|
||
<p>This narrative structure takes your readers on a journey which is both fun and informative. Making it interesting makes your readers more likely to read it closely. Presenting a puzzle means that your readers will want to know the answer: they will pay more attention to a write-up structured in this way than they will a dry account of the incident mechanism. If we want to promote learning then this is a worthwhile investment of time.</p>
|
||
<p>Another great example of narrative writeup is <a href="https://mzl.la/3PUPbMw">Christian Holler’s account of the Firefox outage on January 13th 2022</a>. A GCP config change enabling HTTP/3 triggered a latent bug in Firefox Rust HTTP/3 handling code that caused an infinite loop, blocking all network access. Christian writes that “we quickly discovered that the client was hanging inside a network request to one of the Firefox internal services. However, at this point we neither had an explanation for why this would trigger just now, nor what the scope of the problem was.” Christian is presenting a mystery, and showing the reader what the responders knew and didn’t know. Here’s another example of describing the investigators’ mindset: “Although we couldn’t see it, we suspected that there had been some kind of “invisible” change rolled out by one of our cloud providers that somehow modified load balancer behaviour.”</p>
|
||
<p>Devin Sylva’s account of <a href="https://bit.ly/gl-consul-ir">the Consul outage that never happened</a> is an absolutely riveting account of an incident in which GitLab discovered that the self-signed certs that their Consul cluster was using to communicate with itself had expired and couldn’t be replaced because the CA key had been lost. Sylva writes: “Effectively, we were in the middle of an outage that had already started, but hadn't yet gotten to the point of taking down the site. [...] We all held our breath, and watched the database for signs of distress. Six minutes is a long time to think: ‘It's 4am in Europe, so they won't notice’ and ‘It's dinner time on the US west coast, maybe they won't notice’.”</p>
|
||
<p>These accounts are memorable: and <strong>memorable stories encourage durable learning</strong>.</p>
|
||
<h2>Support your readers</h2>
|
||
<p>Another weakness of template-based incident write-ups is that they often do a poor job of supporting the reader. Supporting the reader means helping the reader to make sense of the incident. If a reader has to stop and puzzle through something, then it breaks the flow of the narrative, meaning that readers are less likely to stick with reading the writeup, and will miss opportunities for learning.</p>
|
||
<p>The place to start is by writing your incident report for any engineer to be able to read. The engineer shouldn’t need detailed knowledge of the specific systems being described: your account should explain what is necessary to understand the outage.</p>
|
||
<p>This means avoiding or explaining jargon and internal system names. It also means explaining the purpose of each system or component: what does it do? Who uses it and why?</p>
|
||
<p>It is best to weave concise explanations into the narrative as needed, and to link out to more detailed documentation where appropriate. There is no sense in rewriting detailed documentation that exists elsewhere, but it is also not easy on readers to require them to jump between different documents to understand the flow of your narrative.</p>
|
||
<p><a href="https://blog.sentry.io/2015/07/23/transaction-id-wraparound-in-postgres/">David Cramer’s 2015 writeup of a Sentry outage</a> is a nice example of weaving background information into a report while linking to authoritative information elsewhere. The issue was caused by Postgres transaction ID wraparound. Cramer writes:</p>
|
||
<blockquote>
|
||
<p>The first time a transaction manipulates rows in the database (typically via an INSERT, UPDATE, or DELETE statement) the database’s XID counter is incremented. This counter is used to determine row visibility. The best human-readable description we’ve found is <a href="https://devcenter.heroku.com/articles/postgresql-concurrency">Heroku’s topic on the MVCC and concurrency</a>.</p>
|
||
<p>Eventually, that database is going to reach a situation where the XID counter has reached its maximum value. […] Since there are no longer any unique XID values available to identify new transactions, the database must halt to prevent XID re-use — otherwise, transactions that occurred in the past could suddenly appear to be in the future, leading to all kinds of strange and undesirable behavior.</p>
|
||
</blockquote>
|
||
<p>You don’t need to jump out to the linked documentation to make sense of Cramer’s narrative: but it’s there for readers who do want to go deeper.</p>
|
||
<p>Ben Wheatley’s account of <a href="https://bit.ly/gocardless-ir">GoCardless’s outage on October 25 2020</a> is another example of deftly weaving supporting information about how and why they use Hashicorp’s Vault into an incident narrative:</p>
|
||
<blockquote>
|
||
<p>At GoCardless we aim to keep velocity high by ensuring that [...] secret data can be managed by the engineers building these services, rather than relying on an operational team to make changes. To this end, we've implemented a system based on Hashicorp's <a href="https://www.hashicorp.com/products/vault">Vault</a> product.</p>
|
||
<p>We run an instance of Vault that all engineers can authenticate with, using their Google identity, and have the permissions to write secrets into, but not read the secret data out of. We additionally have policies configured in Vault that ensure our applications, authenticated via their Kubernetes service account token, can read secret data belonging to that application only.</p>
|
||
</blockquote>
|
||
<p>You can read these short paragraphs and understand exactly what Vault is used for at GoCardless—without having to go and read documentation about Vault and puzzle it out, breaking the flow of Wheatley’s tale.</p>
|
||
<h2>Be visual</h2>
|
||
<p>A picture is worth a thousand words, and diagrams and visualisations have never been easier to create, thanks to the plethora of tools such as LucidCharts, Miro, and Excalidraw that make it very simple to create quite sophisticated images.</p>
|
||
<p>Visuals break up walls of text, making it easier for readers to orient themselves towards these important ‘landmarks’. This helps particularly with rereading or finding particular passages in a long write-up. Images also help to support the reader, by reinforcing complex flows, structures, or relationships which are described in your text. You can include all kinds of visual elements: graphs, architecture diagrams, sequence diagrams, topologies, flowcharts, timelines—you can also be creative and build your own custom visualisations.</p>
|
||
<p>Cloudflare produces many excellent incident writeups, and are particularly strong in their use of visuals. <a href="https://bit.ly/cf-bgp-ir">Tom Strickx and Jeremy Hartman’s report of the Cloudflare outage on June 21 2022</a> includes this graphic that helps to explain how BGP policies work, and how reordering terms can inadvertently cause withdrawal of routes to an IP space:<img src="https://blog.container-solutions.com/hs-fs/hubfs/Blog%20graphics/Cloudflare%E2%80%99s%20visualisation%20of%20BGP%20term%20matching.png?width=770&height=774&name=Cloudflare%E2%80%99s%20visualisation%20of%20BGP%20term%20matching.png" alt="Cloudflare’s visualisation of BGP term matching" width="770" height="774" loading="lazy" style="height: auto; max-width: 100%; width: 770px;" srcset="https://blog.container-solutions.com/hs-fs/hubfs/Blog%20graphics/Cloudflare%E2%80%99s%20visualisation%20of%20BGP%20term%20matching.png?width=385&height=387&name=Cloudflare%E2%80%99s%20visualisation%20of%20BGP%20term%20matching.png 385w, https://blog.container-solutions.com/hs-fs/hubfs/Blog%20graphics/Cloudflare%E2%80%99s%20visualisation%20of%20BGP%20term%20matching.png?width=770&height=774&name=Cloudflare%E2%80%99s%20visualisation%20of%20BGP%20term%20matching.png 770w, https://blog.container-solutions.com/hs-fs/hubfs/Blog%20graphics/Cloudflare%E2%80%99s%20visualisation%20of%20BGP%20term%20matching.png?width=1155&height=1161&name=Cloudflare%E2%80%99s%20visualisation%20of%20BGP%20term%20matching.png 1155w, https://blog.container-solutions.com/hs-fs/hubfs/Blog%20graphics/Cloudflare%E2%80%99s%20visualisation%20of%20BGP%20term%20matching.png?width=1540&height=1548&name=Cloudflare%E2%80%99s%20visualisation%20of%20BGP%20term%20matching.png 1540w, https://blog.container-solutions.com/hs-fs/hubfs/Blog%20graphics/Cloudflare%E2%80%99s%20visualisation%20of%20BGP%20term%20matching.png?width=1925&height=1935&name=Cloudflare%E2%80%99s%20visualisation%20of%20BGP%20term%20matching.png 1925w, https://blog.container-solutions.com/hs-fs/hubfs/Blog%20graphics/Cloudflare%E2%80%99s%20visualisation%20of%20BGP%20term%20matching.png?width=2310&height=2322&name=Cloudflare%E2%80%99s%20visualisation%20of%20BGP%20term%20matching.png 2310w" sizes="(max-width: 770px) 100vw, 770px"></p>
|
||
<strong>Fig 1: Cloudflare’s visualisation of BGP term matching</strong>
|
||
<p> </p>
|
||
<p><a href="https://bit.ly/honeycomb-fires">Honeycomb’s lengthy report ‘Do You Remember, the Twenty Fires of September’</a> deals with a sequence of incidents that Honeycomb experienced in 2021. Again, they use a custom visualisation to help to explain a particularly complex point, to do with how a sharding scheme created hotspotting in one of their services.</p>
|
||
<p><img src="https://blog.container-solutions.com/hs-fs/hubfs/Blog%20graphics/image3-1.png?width=618&height=275&name=image3-1.png" alt="Honeycomb’s illustration of two sharding strategies" width="618" height="275" loading="lazy" style="height: auto; max-width: 100%; width: 618px;" srcset="https://blog.container-solutions.com/hs-fs/hubfs/Blog%20graphics/image3-1.png?width=309&height=138&name=image3-1.png 309w, https://blog.container-solutions.com/hs-fs/hubfs/Blog%20graphics/image3-1.png?width=618&height=275&name=image3-1.png 618w, https://blog.container-solutions.com/hs-fs/hubfs/Blog%20graphics/image3-1.png?width=927&height=413&name=image3-1.png 927w, https://blog.container-solutions.com/hs-fs/hubfs/Blog%20graphics/image3-1.png?width=1236&height=550&name=image3-1.png 1236w, https://blog.container-solutions.com/hs-fs/hubfs/Blog%20graphics/image3-1.png?width=1545&height=688&name=image3-1.png 1545w, https://blog.container-solutions.com/hs-fs/hubfs/Blog%20graphics/image3-1.png?width=1854&height=825&name=image3-1.png 1854w" sizes="(max-width: 618px) 100vw, 618px"></p>
|
||
<p><strong>Fig 2: Honeycomb’s illustration of two sharding strategies</strong></p>
|
||
<p><a href="https://bit.ly/slack-dnssec-ir">Rafael Elvira’s writeup for Slack of ‘The Case of the Recursive Resolvers’</a> includes this graphic which summarises a very complex DNS migration timeline, involving several domain names and multiple successful changes and rollbacks.<img src="https://blog.container-solutions.com/hs-fs/hubfs/Blog%20graphics/Slack%E2%80%99s%20complex%20DNS%20migration%20timeline.png?width=770&height=582&name=Slack%E2%80%99s%20complex%20DNS%20migration%20timeline.png" alt="Slack’s complex DNS migration timeline" width="770" height="582" loading="lazy" style="height: auto; max-width: 100%; width: 770px;" srcset="https://blog.container-solutions.com/hs-fs/hubfs/Blog%20graphics/Slack%E2%80%99s%20complex%20DNS%20migration%20timeline.png?width=385&height=291&name=Slack%E2%80%99s%20complex%20DNS%20migration%20timeline.png 385w, https://blog.container-solutions.com/hs-fs/hubfs/Blog%20graphics/Slack%E2%80%99s%20complex%20DNS%20migration%20timeline.png?width=770&height=582&name=Slack%E2%80%99s%20complex%20DNS%20migration%20timeline.png 770w, https://blog.container-solutions.com/hs-fs/hubfs/Blog%20graphics/Slack%E2%80%99s%20complex%20DNS%20migration%20timeline.png?width=1155&height=873&name=Slack%E2%80%99s%20complex%20DNS%20migration%20timeline.png 1155w, https://blog.container-solutions.com/hs-fs/hubfs/Blog%20graphics/Slack%E2%80%99s%20complex%20DNS%20migration%20timeline.png?width=1540&height=1164&name=Slack%E2%80%99s%20complex%20DNS%20migration%20timeline.png 1540w, https://blog.container-solutions.com/hs-fs/hubfs/Blog%20graphics/Slack%E2%80%99s%20complex%20DNS%20migration%20timeline.png?width=1925&height=1455&name=Slack%E2%80%99s%20complex%20DNS%20migration%20timeline.png 1925w, https://blog.container-solutions.com/hs-fs/hubfs/Blog%20graphics/Slack%E2%80%99s%20complex%20DNS%20migration%20timeline.png?width=2310&height=1746&name=Slack%E2%80%99s%20complex%20DNS%20migration%20timeline.png 2310w" sizes="(max-width: 770px) 100vw, 770px"></p>
|
||
<p><strong>Fig 3: Slack’s complex DNS migration timeline</strong></p>
|
||
<p>Visuals are one area where there really are no rules, and no constraints except for time and creativity. Engineers have used diagrams of many kinds for as long as engineering has existed: they are an incredible tool for sharing knowledge about complex systems and situations.</p>
|
||
<h2>Don’t be afraid of analysis</h2>
|
||
<p>Many incident write-ups focus primarily on events and action items. However, If an incident write-up is a story, the analysis is the moral of the story. Sharing analysis is by far the most satisfying way to wrap up an IR, creating a feeling of resolution.</p>
|
||
<p>Performing analysis—and sharing your analyses—also helps us to spot recurring patterns, both in our organisations and more broadly in the entire software industry. Patterns help us to think, as David Woods and co-authors write in their white paper <a href="https://www.skybrary.aero/sites/default/files/bookshelf/5987.pdf">‘Patterns in How People Think and Work’</a>: we can recognise situations as specific cases of more general patterns.</p>
|
||
<p>Devin Sylva’s <a href="https://bit.ly/gl-consul-ir">the Consul outage that never happened</a> provides a good example of an analysis:</p>
|
||
<blockquote>
|
||
<p>Every once in a while we get into a situation that all of the fancy management tools just can't fix. In these types of situations there is no shortcut around thinking things through methodically. In this case, there were no tools or technologies that could solve the problem. Even in this new world of infrastructure as code, site reliability engineering, and cloud automation, there is still room for old fashioned system administrator tricks. There is just no substitute for understanding how everything works.</p>
|
||
</blockquote>
|
||
<p>Maybe we won’t face Sylva’s exact problem, but many of us will face problems where we need to use ingenuity to improvise ways out of situations that our modern infrastructure tools cannot handle. This is a pattern.</p>
|
||
<p><a href="https://bit.ly/honeycomb-fires">Honeycomb’s ‘Do You Remember, the Twenty Fires of September’</a> includes this analysis:</p>
|
||
<blockquote>
|
||
<p>If we operate too far from the edge, we lose sight of it, stop knowing where it is, and can’t anticipate when corrective work should be emphasized. But if we operate too close to it, then we are constantly stuck in high-stake risky situations and firefighting.</p>
|
||
<p>This gets exhausting and we lose the capacity, both in terms of time and cognitive space, to be able study, tweak, and adjust behavior of the system. This points towards a dynamic, tricky balance to strike between being too close to the boundary and too far from it, seeking some sort of Goldilocks operational zone.</p>
|
||
</blockquote>
|
||
<p>Again, we may not find ourselves in Honeycomb’s exact circumstances, but this tension between being too safe and losing touch with how our systems behave at the boundaries versus the potential burnout that results from too many incidents is certainly familiar to most software operations practitioners.</p>
|
||
<p>Patterns can exist at every level of our stack, from these sociotechnical examples to the purely technical, such as <a href="https://blog.sentry.io/2015/07/23/transaction-id-wraparound-in-postgres/">Cramer’s account of postgres transaction ID wraparound</a>, a technical pattern which has recurred in many production systems.</p>
|
||
<p>Analysis is valuable because it deals with the relationships between elements, helping to uncover durable lessons that we can apply not only in this specific situation but in other situations that include similar kinds of elements or relationships. <a href="https://engineering.fb.com/2014/11/14/production-engineering/solving-the-mystery-of-link-imbalance-a-metastable-failure-state-at-scale/">Facebook’s Nathan Bronson authored a report </a>of an incident involving custom MySQL connection pools becoming overloaded. It contains the following analysis:</p>
|
||
<blockquote>
|
||
<p><br>Facebook collocates many of a user’s nodes and edges in the social graph. That means that when somebody logs in after a while and their data isn’t in the cache, we might suddenly perform 50 or 100 database queries to a single database to load their data. This starts a race among those queries. The queries that go over a congested link will lose the race reliably, even if only by a few milliseconds. That loss makes them the most recently used when they are put back in the pool. The effect is that during a query burst we stack the deck against ourselves, putting all of the congested connections at the top of the deck.</p>
|
||
</blockquote>
|
||
<p>Bronson’s conclusion here is valuable because it applies not only to this specific situation, but can be broadly applied to connection-pooling situations. Many incidents can provide this kind of insight, if we take the time to uncover them. This is the work that makes us better engineers.</p>
|
||
<p>More than anything else, stories help us to grasp the complexities of the systems - human and technical - that we must navigate every day. As Jean Luc Godard said, "Sometimes reality is too complex. Stories give it form."</p>
|
||
<p><!--HubSpot Call-to-Action Code --><span class="hs-cta-wrapper" id="hs-cta-wrapper-10b4db99-79c9-4583-9813-c130c94cdab8"><span class="hs-cta-node hs-cta-10b4db99-79c9-4583-9813-c130c94cdab8" id="hs-cta-10b4db99-79c9-4583-9813-c130c94cdab8"><!--[if lte IE 8]><div id="hs-cta-ie-element"></div><![endif]--><a href="https://cta-redirect.hubspot.com/cta/redirect/2252258/10b4db99-79c9-4583-9813-c130c94cdab8" target="_blank" rel="noopener"><img class="hs-cta-img" id="hs-cta-img-10b4db99-79c9-4583-9813-c130c94cdab8" style="border-width:0px;" height="1742" width="3334" src="https://no-cache.hubspot.com/cta/default/2252258/10b4db99-79c9-4583-9813-c130c94cdab8.png" alt="New call-to-action"></a></span><script charset="utf-8" src="/hs/cta/cta/current.js"></script><script type="text/javascript"> hbspt.cta._relativeUrls=true;hbspt.cta.load(2252258, '10b4db99-79c9-4583-9813-c130c94cdab8', {"useNewLoader":"true","region":"na1"}); </script></span><!-- end HubSpot Call-to-Action Code --></p></span>
|
||
</div>
|
||
</div>
|
||
</div>
|
||
</div>
|
||
</div>
|
||
<script type="text/javascript">
|
||
$(document).ready(function(){
|
||
var $sticky = $('.post-social-share');
|
||
var $stickyrStopper = $('.post-pagination-sec');
|
||
if (!!$sticky.offset()) { // make sure ".sticky" element exists
|
||
var generalSidebarHeight = $sticky.innerHeight();
|
||
var stickyTop = $sticky.offset().top + 500;
|
||
var stickOffset = 0;
|
||
var stickyStopperPosition = $stickyrStopper.offset().top;
|
||
var stopPoint = stickyStopperPosition - generalSidebarHeight - stickOffset;
|
||
var diff = stopPoint + stickOffset;
|
||
$(window).scroll(function(){ // scroll event
|
||
var windowTop = $(window).scrollTop(); // returns number
|
||
if (stopPoint < windowTop) {
|
||
$sticky.css({ position: 'absolute',opacity:'0'});
|
||
} else if (stickyTop < windowTop+stickOffset) {
|
||
$sticky.css({ position: 'fixed', top: stickOffset,opacity:'1' });
|
||
} else {
|
||
$sticky.css({position: 'absolute', top: 'initial',opacity:'1'});
|
||
}
|
||
});
|
||
}
|
||
});
|
||
</script>
|
||
</div>
|
||
|
||
</div><!--end widget-span -->
|
||
</div><!--end row-->
|
||
</div><!--end row-wrapper -->
|
||
|
||
</div><!--end widget-span -->
|
||
<div class="span5 widget-span widget-type-cell right-col" style="" data-widget-type="cell" data-x="7" data-w="5">
|
||
|
||
<div class="row-fluid-wrapper row-depth-1 row-number-5 ">
|
||
<div class="row-fluid ">
|
||
<div class="span12 widget-span widget-type-cell listing-sidebar-rss" style="" data-widget-type="cell" data-x="0" data-w="12">
|
||
|
||
<div class="row-fluid-wrapper row-depth-2 row-number-1 ">
|
||
<div class="row-fluid ">
|
||
<div class="span12 widget-span widget-type-custom_widget " style="" data-widget-type="custom_widget" data-x="0" data-w="12">
|
||
<div id="hs_cos_wrapper_module_1585037683162262" class="hs_cos_wrapper hs_cos_wrapper_widget hs_cos_wrapper_type_module" style="" data-hs-cos-general-type="widget" data-hs-cos-type="module">
|
||
<div class="sidebar-rss">
|
||
<div class="sidebar-recent-post-section">
|
||
<div class="sidebar-recent-related-post">
|
||
|
||
</div>
|
||
</div>
|
||
</div></div>
|
||
|
||
</div><!--end widget-span -->
|
||
</div><!--end row-->
|
||
</div><!--end row-wrapper -->
|
||
|
||
</div><!--end widget-span -->
|
||
</div><!--end row-->
|
||
</div><!--end row-wrapper -->
|
||
|
||
</div><!--end widget-span -->
|
||
</div><!--end row-->
|
||
</div><!--end row-wrapper -->
|
||
|
||
</div><!--end widget-span -->
|
||
</div><!--end row-->
|
||
</div><!--end row-wrapper -->
|
||
|
||
</div><!--end widget-span -->
|
||
</div><!--end row-->
|
||
</div><!--end row-wrapper -->
|
||
|
||
<div class="row-fluid-wrapper row-depth-1 row-number-1 ">
|
||
<div class="row-fluid ">
|
||
<div class="span12 widget-span widget-type-custom_widget " style="" data-widget-type="custom_widget" data-x="0" data-w="12">
|
||
<div id="hs_cos_wrapper_module_1585037960356419" class="hs_cos_wrapper hs_cos_wrapper_widget hs_cos_wrapper_type_module" style="" data-hs-cos-general-type="widget" data-hs-cos-type="module"><div class="post-pagination-sec">
|
||
<div class="row-fluid-wrapper">
|
||
<div class="row-fluid">
|
||
<div class="widget-span widget-type-cell wrapper equal-height-container">
|
||
<div class="row-fluid-wrapper">
|
||
<div class="row-fluid">
|
||
|
||
<div class="span6 left-col">
|
||
|
||
<div class="span6 prev-post">
|
||
<a href="/regulating-the-cloud-for-financial-services">
|
||
<div class="span8 prev-pagi-text-sec">
|
||
|
||
<h3>Regulating the Cloud for the Financial Services Sector</h3>
|
||
</div>
|
||
<div class="span4 featured-image" style="background:url(https://blog.container-solutions.com/hubfs/blog%20hero%20images/Regulating%20the%20Cloud%20for%20the%20Financial%20Services%20Sector%20-%20blog%20social%20postcard.png);background-repeat:no-repeat;
|
||
background-size:cover;height:80px;">
|
||
|
||
</div>
|
||
</a>
|
||
</div>
|
||
<div class="span6 prev-anchor align-right">
|
||
<a href="/regulating-the-cloud-for-financial-services"> <img src="https://cdn2.hubspot.net/hubfs/3842749/Wow%202019/Images/left-arrow.png" alt="prev-arrow">
|
||
Previous article</a>
|
||
</div>
|
||
|
||
</div>
|
||
<div class="span6 right-col">
|
||
|
||
<div class="span6 next-anchor align-left">
|
||
<a href="/jennifer-mace-on-how-google-does-sre"> Next article <img src="https://cdn2.hubspot.net/hubfs/3842749/Wow%202019/Images/right-arrow.png" alt="next-arrow">
|
||
</a>
|
||
</div>
|
||
<div class="span6 next-post">
|
||
<a href="/jennifer-mace-on-how-google-does-sre">
|
||
<div class="span4 featured-image" style="background:url(https://blog.container-solutions.com/hubfs/blog%20hero%20images/Podcast%20Jennifer%20Mace%20on%20How%20Google%20Does%20SRE%20-%20social%20postcard.png);background-size:cover;
|
||
background-repeat:no-repeat;height:80px;">
|
||
</div>
|
||
<div class="span8 next-pagi-text-sec">
|
||
|
||
<h3>Podcast: Jennifer Mace on How Google Does SRE</h3>
|
||
</div>
|
||
</a>
|
||
</div>
|
||
|
||
</div>
|
||
|
||
</div>
|
||
</div>
|
||
</div>
|
||
</div>
|
||
</div>
|
||
</div></div>
|
||
|
||
</div><!--end widget-span -->
|
||
</div><!--end row-->
|
||
</div><!--end row-wrapper -->
|
||
|
||
<div class="row-fluid-wrapper row-depth-1 row-number-2 ">
|
||
<div class="row-fluid ">
|
||
<div class="span12 widget-span widget-type-cell comment-sec" style=" display:block; " data-widget-type="cell" data-x="0" data-w="12">
|
||
|
||
<div class="row-fluid-wrapper row-depth-1 row-number-3 ">
|
||
<div class="row-fluid ">
|
||
<div class="span12 widget-span widget-type-cell wrapper" style="" data-widget-type="cell" data-x="0" data-w="12">
|
||
|
||
<div class="row-fluid-wrapper row-depth-1 row-number-4 ">
|
||
<div class="row-fluid ">
|
||
<div class="span12 widget-span widget-type-cell " style="" data-widget-type="cell" data-x="0" data-w="12">
|
||
|
||
<div class="row-fluid-wrapper row-depth-1 row-number-5 ">
|
||
<div class="row-fluid ">
|
||
<div class="span12 widget-span widget-type-custom_widget comment-sec-heading-text" style="" data-widget-type="custom_widget" data-x="0" data-w="12">
|
||
<div id="hs_cos_wrapper_module_158382180556003" class="hs_cos_wrapper hs_cos_wrapper_widget hs_cos_wrapper_type_module widget-type-text" style="" data-hs-cos-general-type="widget" data-hs-cos-type="module"><span id="hs_cos_wrapper_module_158382180556003_" class="hs_cos_wrapper hs_cos_wrapper_widget hs_cos_wrapper_type_text" style="" data-hs-cos-general-type="widget" data-hs-cos-type="text">Comments</span></div>
|
||
|
||
</div><!--end widget-span -->
|
||
</div><!--end row-->
|
||
</div><!--end row-wrapper -->
|
||
|
||
<div class="row-fluid-wrapper row-depth-1 row-number-6 ">
|
||
<div class="row-fluid ">
|
||
<div class="span12 widget-span widget-type-cell comment-form-sec" style="" data-widget-type="cell" data-x="0" data-w="12">
|
||
|
||
<div class="row-fluid-wrapper row-depth-2 row-number-1 ">
|
||
<div class="row-fluid ">
|
||
<div class="span12 widget-span widget-type-custom_widget comment-heading-text" style="" data-widget-type="custom_widget" data-x="0" data-w="12">
|
||
<div id="hs_cos_wrapper_module_158382180556005" class="hs_cos_wrapper hs_cos_wrapper_widget hs_cos_wrapper_type_module widget-type-text" style="" data-hs-cos-general-type="widget" data-hs-cos-type="module"><span id="hs_cos_wrapper_module_158382180556005_" class="hs_cos_wrapper hs_cos_wrapper_widget hs_cos_wrapper_type_text" style="" data-hs-cos-general-type="widget" data-hs-cos-type="text">Leave your Comment</span></div>
|
||
|
||
</div><!--end widget-span -->
|
||
</div><!--end row-->
|
||
</div><!--end row-wrapper -->
|
||
|
||
<div class="row-fluid-wrapper row-depth-2 row-number-2 ">
|
||
<div class="row-fluid ">
|
||
<div class="span12 widget-span widget-type-custom_widget " style="" data-widget-type="custom_widget" data-x="0" data-w="12">
|
||
<div id="hs_cos_wrapper_module_158382180556006" class="hs_cos_wrapper hs_cos_wrapper_widget hs_cos_wrapper_type_module widget-type-blog_comments" style="" data-hs-cos-general-type="widget" data-hs-cos-type="module"><span id="hs_cos_wrapper_module_158382180556006_blog_comments" class="hs_cos_wrapper hs_cos_wrapper_widget hs_cos_wrapper_type_blog_comments" style="" data-hs-cos-general-type="widget" data-hs-cos-type="blog_comments">
|
||
<div class="section post-footer">
|
||
<div id="comments-listing" class="new-comments"></div>
|
||
|
||
<div id="hs_form_target_e5ba3739-20e2-48cd-8272-c926646d555c"></div>
|
||
|
||
|
||
|
||
|
||
|
||
</div>
|
||
|
||
</span></div>
|
||
|
||
</div><!--end widget-span -->
|
||
</div><!--end row-->
|
||
</div><!--end row-wrapper -->
|
||
|
||
</div><!--end widget-span -->
|
||
</div><!--end row-->
|
||
</div><!--end row-wrapper -->
|
||
|
||
</div><!--end widget-span -->
|
||
</div><!--end row-->
|
||
</div><!--end row-wrapper -->
|
||
|
||
</div><!--end widget-span -->
|
||
</div><!--end row-->
|
||
</div><!--end row-wrapper -->
|
||
|
||
</div><!--end widget-span -->
|
||
</div><!--end row-->
|
||
</div><!--end row-wrapper -->
|
||
|
||
</div><!--end body -->
|
||
</div><!--end body wrapper -->
|
||
|
||
<div class="footer-container-wrapper">
|
||
<div class="footer-container container-fluid">
|
||
|
||
<div class="row-fluid-wrapper row-depth-1 row-number-1 ">
|
||
<div class="row-fluid ">
|
||
<div class="span12 widget-span widget-type-global_group " style="" data-widget-type="global_group" data-x="0" data-w="12">
|
||
<div class="" data-global-widget-path="generated_global_groups/29544596322.html"><div class="row-fluid-wrapper row-depth-1 row-number-1 ">
|
||
<div class="row-fluid ">
|
||
<div class="span12 widget-span widget-type-cell footer-grp" style="" data-widget-type="cell" data-x="0" data-w="12">
|
||
|
||
<div class="row-fluid-wrapper row-depth-1 row-number-2 ">
|
||
<div class="row-fluid ">
|
||
<div class="span12 widget-span widget-type-cell wrapper equal-height-container" style="" data-widget-type="cell" data-x="0" data-w="12">
|
||
|
||
<div class="row-fluid-wrapper row-depth-1 row-number-3 ">
|
||
<div class="row-fluid ">
|
||
<div class="span12 widget-span widget-type-custom_widget footer-logo" style="" data-widget-type="custom_widget" data-x="0" data-w="12">
|
||
<div id="hs_cos_wrapper_module_1579264940018354" class="hs_cos_wrapper hs_cos_wrapper_widget hs_cos_wrapper_type_module widget-type-linked_image" style="" data-hs-cos-general-type="widget" data-hs-cos-type="module">
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
<span id="hs_cos_wrapper_module_1579264940018354_" class="hs_cos_wrapper hs_cos_wrapper_widget hs_cos_wrapper_type_linked_image" style="" data-hs-cos-general-type="widget" data-hs-cos-type="linked_image"><img src="https://blog.container-solutions.com/hs-fs/hubfs/cs-logo-white.png?width=150&height=61&name=cs-logo-white.png" class="hs-image-widget " width="150" height="61" style="max-width: 100%; height: auto;" alt="cs-logo-white" title="cs-logo-white" srcset="https://blog.container-solutions.com/hs-fs/hubfs/cs-logo-white.png?width=75&height=31&name=cs-logo-white.png 75w, https://blog.container-solutions.com/hs-fs/hubfs/cs-logo-white.png?width=150&height=61&name=cs-logo-white.png 150w, https://blog.container-solutions.com/hs-fs/hubfs/cs-logo-white.png?width=225&height=92&name=cs-logo-white.png 225w, https://blog.container-solutions.com/hs-fs/hubfs/cs-logo-white.png?width=300&height=122&name=cs-logo-white.png 300w, https://blog.container-solutions.com/hs-fs/hubfs/cs-logo-white.png?width=375&height=153&name=cs-logo-white.png 375w, https://blog.container-solutions.com/hs-fs/hubfs/cs-logo-white.png?width=450&height=183&name=cs-logo-white.png 450w" sizes="(max-width: 150px) 100vw, 150px"></span></div>
|
||
|
||
</div><!--end widget-span -->
|
||
</div><!--end row-->
|
||
</div><!--end row-wrapper -->
|
||
|
||
<div class="row-fluid-wrapper row-depth-1 row-number-4 ">
|
||
<div class="row-fluid ">
|
||
<div class="span8 widget-span widget-type-cell four-col" style="" data-widget-type="cell" data-x="0" data-w="8">
|
||
|
||
<div class="row-fluid-wrapper row-depth-1 row-number-5 ">
|
||
<div class="row-fluid ">
|
||
<div class="span6 widget-span widget-type-custom_widget " style="" data-widget-type="custom_widget" data-x="0" data-w="6">
|
||
<div id="hs_cos_wrapper_module_15783825602011356" class="hs_cos_wrapper hs_cos_wrapper_widget hs_cos_wrapper_type_module widget-type-simple_menu" style="" data-hs-cos-general-type="widget" data-hs-cos-type="module"><span id="hs_cos_wrapper_module_15783825602011356_" class="hs_cos_wrapper hs_cos_wrapper_widget hs_cos_wrapper_type_simple_menu" style="" data-hs-cos-general-type="widget" data-hs-cos-type="simple_menu"><div id="hs_menu_wrapper_module_15783825602011356_" class="hs-menu-wrapper active-branch flyouts hs-menu-flow-vertical" role="navigation" data-sitemap-name="" data-menu-id="" aria-label="Navigation Menu">
|
||
<ul role="menu" class="active-branch">
|
||
<li class="hs-menu-item hs-menu-depth-1" role="none"><a href="https://www.container-solutions.com" role="menuitem" target="_self">Home</a></li>
|
||
<li class="hs-menu-item hs-menu-depth-1" role="none"><a href="https://www.container-solutions.com/events" role="menuitem" target="_self">Events</a></li>
|
||
<li class="hs-menu-item hs-menu-depth-1" role="none"><a href="https://www.container-solutions.com/services" role="menuitem" target="_self">Services</a></li>
|
||
<li class="hs-menu-item hs-menu-depth-1 active active-branch" role="none"><a href="https://blog.container-solutions.com" role="menuitem" target="_self">Blog</a></li>
|
||
</ul>
|
||
</div></span></div>
|
||
|
||
</div><!--end widget-span -->
|
||
<div class="span6 widget-span widget-type-custom_widget " style="" data-widget-type="custom_widget" data-x="6" data-w="6">
|
||
<div id="hs_cos_wrapper_module_15783825632451363" class="hs_cos_wrapper hs_cos_wrapper_widget hs_cos_wrapper_type_module widget-type-simple_menu" style="" data-hs-cos-general-type="widget" data-hs-cos-type="module"><span id="hs_cos_wrapper_module_15783825632451363_" class="hs_cos_wrapper hs_cos_wrapper_widget hs_cos_wrapper_type_simple_menu" style="" data-hs-cos-general-type="widget" data-hs-cos-type="simple_menu"><div id="hs_menu_wrapper_module_15783825632451363_" class="hs-menu-wrapper active-branch flyouts hs-menu-flow-vertical" role="navigation" data-sitemap-name="" data-menu-id="" aria-label="Navigation Menu">
|
||
<ul role="menu">
|
||
<li class="hs-menu-item hs-menu-depth-1" role="none"><a href="https://www.container-solutions.com/website-terms-of-use" role="menuitem" target="_self">Website terms of use</a></li>
|
||
<li class="hs-menu-item hs-menu-depth-1" role="none"><a href="https://www.container-solutions.com/privacy-policy" role="menuitem" target="_self">Privacy policy</a></li>
|
||
<li class="hs-menu-item hs-menu-depth-1" role="none"><a href="https://www.container-solutions.com/sexual-harassment-policy" role="menuitem" target="_self">Sexual Harassment Policy</a></li>
|
||
<li class="hs-menu-item hs-menu-depth-1" role="none"><a href="https://www.container-solutions.com/data-privacy-notice-for-job-applicants" role="menuitem" target="_self">Data Privacy for Job Seekers</a></li>
|
||
<li class="hs-menu-item hs-menu-depth-1" role="none"><a href="https://www.container-solutions.com/cookie-notice" role="menuitem" target="_self">Cookie Notice</a></li>
|
||
<li class="hs-menu-item hs-menu-depth-1" role="none"><a href="https://www.container-solutions.com/events-code-of-conduct" role="menuitem" target="_self">Events Code of Conduct</a></li>
|
||
</ul>
|
||
</div></span></div>
|
||
|
||
</div><!--end widget-span -->
|
||
</div><!--end row-->
|
||
</div><!--end row-wrapper -->
|
||
|
||
</div><!--end widget-span -->
|
||
<div class="span4 widget-span widget-type-cell four-col" style="" data-widget-type="cell" data-x="8" data-w="4">
|
||
|
||
<div class="row-fluid-wrapper row-depth-1 row-number-6 ">
|
||
<div class="row-fluid ">
|
||
<div class="span12 widget-span widget-type-custom_widget " style="" data-widget-type="custom_widget" data-x="0" data-w="12">
|
||
<div id="hs_cos_wrapper_module_15783822780451167" class="hs_cos_wrapper hs_cos_wrapper_widget hs_cos_wrapper_type_module widget-type-rich_text" style="" data-hs-cos-general-type="widget" data-hs-cos-type="module"><span id="hs_cos_wrapper_module_15783822780451167_" class="hs_cos_wrapper hs_cos_wrapper_widget hs_cos_wrapper_type_rich_text" style="" data-hs-cos-general-type="widget" data-hs-cos-type="rich_text"><h4 style="line-height: 1.5; font-size: 20px; margin-bottom: 5px !important;"><span style="color: #1b1464;"><strong>Talk to sales</strong></span></h4>
|
||
<div style="line-height: 1.5;"><span style="color: #1b1464;"><a href="mailto:info@container-Solutions.com" rel=" noopener" style="color: #1b1464;">info@container-solutions.com</a></span></div></span></div>
|
||
|
||
</div><!--end widget-span -->
|
||
</div><!--end row-->
|
||
</div><!--end row-wrapper -->
|
||
|
||
<div class="row-fluid-wrapper row-depth-1 row-number-7 ">
|
||
<div class="row-fluid ">
|
||
<div class="span12 widget-span widget-type-custom_widget " style="" data-widget-type="custom_widget" data-x="0" data-w="12">
|
||
<div id="hs_cos_wrapper_module_158452391621561" class="hs_cos_wrapper hs_cos_wrapper_widget hs_cos_wrapper_type_module" style="" data-hs-cos-general-type="widget" data-hs-cos-type="module"><link rel="stylesheet" href="https://use.fontawesome.com/releases/v5.5.0/css/all.css" integrity="sha384-B4dIYHKNBt8Bc12p+WXckhzcICo0wtJAoU8YZTY5qE0Id1GSseTk6S+L3BlXeVIU" crossorigin="anonymous">
|
||
<div class="row-fluid">
|
||
<div class="span12 connected-col" style="margin-left:0">
|
||
<div class="row-fluid-wrapper">
|
||
<div class="row-fluid">
|
||
<h4 class="footer_header">
|
||
Stay In Touch
|
||
</h4>
|
||
<ul>
|
||
<li><a href="https://www.linkedin.com/company/container-solutions/" target="_blank"><i class="fab fa-linkedin" style="color:white"></i></a></li>
|
||
<li><a href="https://twitter.com/containersoluti" target="_blank"><i class="fab fa-twitter" style="color:white"></i></a></li>
|
||
</ul>
|
||
</div>
|
||
</div>
|
||
</div>
|
||
</div></div>
|
||
|
||
</div><!--end widget-span -->
|
||
</div><!--end row-->
|
||
</div><!--end row-wrapper -->
|
||
|
||
<div class="row-fluid-wrapper row-depth-1 row-number-8 ">
|
||
<div class="row-fluid ">
|
||
<div class="span12 widget-span widget-type-custom_widget copy-right-text" style="" data-widget-type="custom_widget" data-x="0" data-w="12">
|
||
<div id="hs_cos_wrapper_module_15783823043581171" class="hs_cos_wrapper hs_cos_wrapper_widget hs_cos_wrapper_type_module widget-type-rich_text" style="" data-hs-cos-general-type="widget" data-hs-cos-type="module"><span id="hs_cos_wrapper_module_15783823043581171_" class="hs_cos_wrapper hs_cos_wrapper_widget hs_cos_wrapper_type_rich_text" style="" data-hs-cos-general-type="widget" data-hs-cos-type="rich_text"><p><span style="color: #1b1464;">© 2024 Container Solutions</span></p></span></div>
|
||
|
||
</div><!--end widget-span -->
|
||
</div><!--end row-->
|
||
</div><!--end row-wrapper -->
|
||
|
||
</div><!--end widget-span -->
|
||
</div><!--end row-->
|
||
</div><!--end row-wrapper -->
|
||
|
||
</div><!--end widget-span -->
|
||
</div><!--end row-->
|
||
</div><!--end row-wrapper -->
|
||
|
||
</div><!--end widget-span -->
|
||
</div><!--end row-->
|
||
</div><!--end row-wrapper -->
|
||
|
||
<div class="row-fluid-wrapper row-depth-1 row-number-9 ">
|
||
<div class="row-fluid ">
|
||
<div class="span12 widget-span widget-type-custom_widget " style="" data-widget-type="custom_widget" data-x="0" data-w="12">
|
||
<div id="hs_cos_wrapper_module_1585658103724856" class="hs_cos_wrapper hs_cos_wrapper_widget hs_cos_wrapper_type_module" style="" data-hs-cos-general-type="widget" data-hs-cos-type="module"><!-- <script>
|
||
$(window).load(function() {
|
||
$("body").addClass('all-loaded');
|
||
});
|
||
</script> --></div>
|
||
|
||
</div><!--end widget-span -->
|
||
</div><!--end row-->
|
||
</div><!--end row-wrapper -->
|
||
</div>
|
||
</div><!--end widget-span -->
|
||
</div><!--end row-->
|
||
</div><!--end row-wrapper -->
|
||
|
||
</div><!--end footer -->
|
||
</div><!--end footer wrapper -->
|
||
|
||
|
||
<!-- HubSpot performance collection script -->
|
||
<script defer src="/hs/hsstatic/content-cwv-embed/static-1.1293/embed.js"></script>
|
||
<script src="https://blog.container-solutions.com/hubfs/hub_generated/template_assets/1/29544596312/1743407268787/template_360_Design_Script.min.js"></script>
|
||
<script>
|
||
var hsVars = hsVars || {}; hsVars['language'] = 'en';
|
||
</script>
|
||
|
||
<script src="/hs/hsstatic/cos-i18n/static-1.53/bundles/project.js"></script>
|
||
<script src="https://blog.container-solutions.com/hubfs/hub_generated/template_assets/1/29086575625/1743407264175/template_CS--Megamenu.min.js"></script>
|
||
<script src="https://blog.container-solutions.com/hubfs/hub_generated/module_assets/1/29104102065/1743627972543/module_CS--Megamenu__helper.min.js"></script>
|
||
<script src="/hs/hsstatic/keyboard-accessible-menu-flyouts/static-1.17/bundles/project.js"></script>
|
||
<script src="/hs/hsstatic/AsyncSupport/static-1.501/js/comment_listing_asset.js"></script>
|
||
<script>
|
||
function hsOnReadyPopulateCommentsFeed() {
|
||
var options = {
|
||
commentsUrl: "https://api-na1.hubapi.com/comments/v3/comments/thread/public?portalId=2252258&offset=0&limit=10000&contentId=108519604873&collectionId=5674137972",
|
||
maxThreadDepth: 10,
|
||
showForm: true,
|
||
|
||
target: "hs_form_target_e5ba3739-20e2-48cd-8272-c926646d555c",
|
||
replyTo: "Reply to <em>{{user}}</em>",
|
||
replyingTo: "Replying to {{user}}"
|
||
};
|
||
window.hsPopulateCommentsFeed(options);
|
||
}
|
||
|
||
if (document.readyState === "complete" ||
|
||
(document.readyState !== "loading" && !document.documentElement.doScroll)
|
||
) {
|
||
hsOnReadyPopulateCommentsFeed();
|
||
} else {
|
||
document.addEventListener("DOMContentLoaded", hsOnReadyPopulateCommentsFeed);
|
||
}
|
||
|
||
</script>
|
||
|
||
|
||
<!--[if lte IE 8]>
|
||
<script charset="utf-8" src="https://js.hsforms.net/forms/v2-legacy.js"></script>
|
||
<![endif]-->
|
||
|
||
<script data-hs-allowed="true" src="/_hcms/forms/v2.js"></script>
|
||
|
||
<script data-hs-allowed="true">
|
||
hbspt.forms.create({
|
||
portalId: '2252258',
|
||
formId: 'e5ba3739-20e2-48cd-8272-c926646d555c',
|
||
pageId: '108519604873',
|
||
region: 'na1',
|
||
pageName: "Ditch the Template: Incident Write-ups They Want to Read",
|
||
contentType: 'blog-post',
|
||
|
||
formsBaseUrl: '/_hcms/forms/',
|
||
|
||
|
||
|
||
css: '',
|
||
target: "#hs_form_target_e5ba3739-20e2-48cd-8272-c926646d555c",
|
||
type: 'BLOG_COMMENT',
|
||
|
||
submitButtonClass: 'hs-button primary',
|
||
formInstanceId: '8122',
|
||
getExtraMetaDataBeforeSubmit: window.hsPopulateCommentFormGetExtraMetaDataBeforeSubmit
|
||
});
|
||
|
||
window.addEventListener('message', function(event) {
|
||
var origin = event.origin; var data = event.data;
|
||
if ((origin != null && (origin === 'null' || document.location.href.toLowerCase().indexOf(origin.toLowerCase()) === 0)) && data !== null && data.type === 'hsFormCallback' && data.id == 'e5ba3739-20e2-48cd-8272-c926646d555c') {
|
||
if (data.eventName === 'onFormReady') {
|
||
window.hsPopulateCommentFormOnFormReady({
|
||
successMessage: "Hi, your comment will be reviewed and posted as soon as possible.",
|
||
target: "#hs_form_target_e5ba3739-20e2-48cd-8272-c926646d555c"
|
||
});
|
||
} else if (data.eventName === 'onFormSubmitted') {
|
||
window.hsPopulateCommentFormOnFormSubmitted();
|
||
}
|
||
}
|
||
});
|
||
</script>
|
||
|
||
|
||
<!-- Start of HubSpot Analytics Code -->
|
||
<script type="text/javascript">
|
||
var _hsq = _hsq || [];
|
||
_hsq.push(["setContentType", "blog-post"]);
|
||
_hsq.push(["setCanonicalUrl", "https:\/\/blog.container-solutions.com\/incident-write-ups-they-want-to-read"]);
|
||
_hsq.push(["setPageId", "108519604873"]);
|
||
_hsq.push(["setContentMetadata", {
|
||
"contentPageId": 108519604873,
|
||
"legacyPageId": "108519604873",
|
||
"contentFolderId": null,
|
||
"contentGroupId": 5674137972,
|
||
"abTestId": null,
|
||
"languageVariantId": 108519604873,
|
||
"languageCode": "en",
|
||
|
||
|
||
}]);
|
||
</script>
|
||
|
||
<script type="text/javascript" id="hs-script-loader" async defer src="/hs/scriptloader/2252258.js"></script>
|
||
<!-- End of HubSpot Analytics Code -->
|
||
|
||
|
||
<script type="text/javascript">
|
||
var hsVars = {
|
||
render_id: "a12fffdc-b987-4bce-9033-dd1a7a03ab35",
|
||
ticks: 1783393705771,
|
||
page_id: 108519604873,
|
||
|
||
content_group_id: 5674137972,
|
||
portal_id: 2252258,
|
||
app_hs_base_url: "https://app.hubspot.com",
|
||
cp_hs_base_url: "https://cp.hubspot.com",
|
||
language: "en",
|
||
analytics_page_type: "blog-post",
|
||
scp_content_type: "",
|
||
|
||
analytics_page_id: "108519604873",
|
||
category_id: 3,
|
||
folder_id: 0,
|
||
is_hubspot_user: false
|
||
}
|
||
</script>
|
||
|
||
|
||
<script defer src="/hs/hsstatic/HubspotToolsMenu/static-1.640/js/index.js"></script>
|
||
|
||
|
||
|
||
<!-- Twitter universal website tag code -->
|
||
<script>
|
||
!function(e,t,n,s,u,a){e.twq||(s=e.twq=function(){s.exe?s.exe.apply(s,arguments):s.queue.push(arguments);
|
||
},s.version='1.1',s.queue=[],u=t.createElement(n),u.async=!0,u.src='//static.ads-twitter.com/uwt.js',
|
||
a=t.getElementsByTagName(n)[0],a.parentNode.insertBefore(u,a))}(window,document,'script');
|
||
// Insert Twitter Pixel ID and Standard Event data below
|
||
twq('init','ny8jx');
|
||
twq('track','PageView');
|
||
</script>
|
||
<!-- End Twitter universal website tag code -->
|
||
|
||
<div id="fb-root"></div>
|
||
<script>(function(d, s, id) {
|
||
var js, fjs = d.getElementsByTagName(s)[0];
|
||
if (d.getElementById(id)) return;
|
||
js = d.createElement(s); js.id = id;
|
||
js.src = "//connect.facebook.net/en_GB/sdk.js#xfbml=1&version=v3.0";
|
||
fjs.parentNode.insertBefore(js, fjs);
|
||
}(document, 'script', 'facebook-jssdk'));</script> <script>!function(d,s,id){var js,fjs=d.getElementsByTagName(s)[0];if(!d.getElementById(id)){js=d.createElement(s);js.id=id;js.src="https://platform.twitter.com/widgets.js";fjs.parentNode.insertBefore(js,fjs);}}(document,"script","twitter-wjs");</script>
|
||
|
||
|
||
|
||
|
||
<!-- Generated by the HubSpot Template Builder - template version 1.03 -->
|
||
|
||
</body></html> |