Files
nexus/sreweekly/articles/288/04-6-modes-of-system-resilience.html
2026-09-12 17:23:01 +08:00

932 lines
83 KiB
HTML
Raw Permalink Blame History

This file contains ambiguous Unicode characters
This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.
<!DOCTYPE html>
<html lang="en-US">
<head>
<meta charset="UTF-8">
<meta name="viewport" content="width=device-width, initial-scale=1">
<meta name="robots" content="max-image-preview:large">
<title>How 6 system resilience patterns increase software reliability &#8211; Boost software reliability | SREpath</title>
<link rel="alternate" type="application/rss+xml" title="Boost software reliability | SREpath &raquo; Feed" href="/feed/">
<link rel="alternate" type="application/rss+xml" title="Boost software reliability | SREpath &raquo; Comments Feed" href="/comments/feed/">
<script>
window._wpemojiSettings = {"baseUrl":"https:\/\/s.w.org\/images\/core\/emoji\/15.0.3\/72x72\/","ext":".png","svgUrl":"https:\/\/s.w.org\/images\/core\/emoji\/15.0.3\/svg\/","svgExt":".svg","source":{"concatemoji":"\/wp-includes\/js\/wp-emoji-release.min.js?ver=6.5.5"}};
/*! This file is auto-generated */
!function(i,n){var o,s,e;function c(e){try{var t={supportTests:e,timestamp:(new Date).valueOf()};sessionStorage.setItem(o,JSON.stringify(t))}catch(e){}}function p(e,t,n){e.clearRect(0,0,e.canvas.width,e.canvas.height),e.fillText(t,0,0);var t=new Uint32Array(e.getImageData(0,0,e.canvas.width,e.canvas.height).data),r=(e.clearRect(0,0,e.canvas.width,e.canvas.height),e.fillText(n,0,0),new Uint32Array(e.getImageData(0,0,e.canvas.width,e.canvas.height).data));return t.every(function(e,t){return e===r[t]})}function u(e,t,n){switch(t){case"flag":return n(e,"🏳️‍⚧️","🏳️​⚧️")?!1:!n(e,"🇺🇳","🇺​🇳")&&!n(e,"🏴󠁧󠁢󠁥󠁮󠁧󠁿","🏴​󠁧​󠁢​󠁥​󠁮​󠁧​󠁿");case"emoji":return!n(e,"🐦‍⬛","🐦​⬛")}return!1}function f(e,t,n){var r="undefined"!=typeof WorkerGlobalScope&&self instanceof WorkerGlobalScope?new OffscreenCanvas(300,150):i.createElement("canvas"),a=r.getContext("2d",{willReadFrequently:!0}),o=(a.textBaseline="top",a.font="600 32px Arial",{});return e.forEach(function(e){o[e]=t(a,e,n)}),o}function t(e){var t=i.createElement("script");t.src=e,t.defer=!0,i.head.appendChild(t)}"undefined"!=typeof Promise&&(o="wpEmojiSettingsSupports",s=["flag","emoji"],n.supports={everything:!0,everythingExceptFlag:!0},e=new Promise(function(e){i.addEventListener("DOMContentLoaded",e,{once:!0})}),new Promise(function(t){var n=function(){try{var e=JSON.parse(sessionStorage.getItem(o));if("object"==typeof e&&"number"==typeof e.timestamp&&(new Date).valueOf()<e.timestamp+604800&&"object"==typeof e.supportTests)return e.supportTests}catch(e){}return null}();if(!n){if("undefined"!=typeof Worker&&"undefined"!=typeof OffscreenCanvas&&"undefined"!=typeof URL&&URL.createObjectURL&&"undefined"!=typeof Blob)try{var e="postMessage("+f.toString()+"("+[JSON.stringify(s),u.toString(),p.toString()].join(",")+"));",r=new Blob([e],{type:"text/javascript"}),a=new Worker(URL.createObjectURL(r),{name:"wpTestEmojiSupports"});return void(a.onmessage=function(e){c(n=e.data),a.terminate(),t(n)})}catch(e){}c(n=f(s,u,p))}t(n)}).then(function(e){for(var t in e)n.supports[t]=e[t],n.supports.everything=n.supports.everything&&n.supports[t],"flag"!==t&&(n.supports.everythingExceptFlag=n.supports.everythingExceptFlag&&n.supports[t]);n.supports.everythingExceptFlag=n.supports.everythingExceptFlag&&!n.supports.flag,n.DOMReady=!1,n.readyCallback=function(){n.DOMReady=!0}}).then(function(){return e}).then(function(){var e;n.supports.everything||(n.readyCallback(),(e=n.source||{}).concatemoji?t(e.concatemoji):e.wpemoji&&e.twemoji&&(t(e.twemoji),t(e.wpemoji)))}))}((window,document),window._wpemojiSettings);
</script>
<style id="wp-block-site-logo-inline-css">.wp-block-site-logo{box-sizing:border-box;line-height:0}.wp-block-site-logo a{display:inline-block;line-height:0}.wp-block-site-logo.is-default-size img{height:auto;width:120px}.wp-block-site-logo img{height:auto;max-width:100%}.wp-block-site-logo a,.wp-block-site-logo img{border-radius:inherit}.wp-block-site-logo.aligncenter{margin-left:auto;margin-right:auto;text-align:center}.wp-block-site-logo.is-style-rounded{border-radius:9999px}</style>
<style id="wp-block-navigation-link-inline-css">.wp-block-navigation .wp-block-navigation-item__label{overflow-wrap:break-word}.wp-block-navigation .wp-block-navigation-item__description{display:none}.link-ui-tools{border-top:1px solid #f0f0f0;padding:8px}.link-ui-block-inserter{padding-top:8px}.link-ui-block-inserter__back{margin-left:8px;text-transform:uppercase}.components-popover-pointer-events-trap{background-color:initial;cursor:pointer;inset:0;position:fixed;z-index:1000000}</style>
<link rel="stylesheet" id="wp-block-navigation-css" href="/wp-includes/blocks/navigation/style.min.css?ver=6.5.5" media="all">
<link rel="stylesheet" id="ollie-block-core-navigation-css" href="/wp-content/themes/ollie/assets/styles/core-navigation.css?ver=6.5.5" media="all">
<style id="wp-block-group-inline-css">.wp-block-group{box-sizing:border-box}</style>
<style id="ideabox-toc-style-inline-css">html{scroll-behavior:auto !important}.ib-toc-container .ib-toc-icon-collapse,.ib-toc-container .ib-toc-icon-expand{display:none;height:20px;line-height:1}.ib-toc-container .ib-toc-icon-collapse svg,.ib-toc-container .ib-toc-icon-expand svg{fill:var(--fill)}.ib-toc-container.ib-toc-expanded .ib-toc-icon-collapse{display:inline}.ib-toc-container.ib-toc-collapsed .ib-toc-icon-expand{display:inline}.ib-toc-container .ib-toc-header{padding:10px 20px;display:flex;flex-direction:row;justify-content:space-between;align-items:center;cursor:pointer}.ib-toc-container .ib-toc-header .ib-toc-header-right{display:flex}.ib-toc-container .ib-toc-body{padding:20px}.ib-toc-container .ib-toc-separator{height:1px;background-color:#333}.ib-toc-container .ib-toc-anchors{margin:0;padding:0}.ib-toc-container .ib-toc-anchors ul,.ib-toc-container .ib-toc-anchors ol{padding-left:45px}.ib-toc-container .ib-toc-anchors li{margin-top:var(--listSpacing)}.ib-toc-container .ib-toc-anchors>li:first-of-type{margin-top:0}.ib-toc-container .ib-toc-anchors a{color:var(--linkColor)}.ib-toc-container ol{list-style:none !important;counter-reset:item}.ib-toc-container ol li{counter-increment:item}.ib-toc-container ol li:before{content:counters(item, ".") " ";display:inline-block;margin-right:.5em;text-align:right}.ib-toc-container ol.ib-toc-anchors>li:before{content:counters(item, ".") ". "}</style>
<style id="wp-block-post-terms-inline-css">.wp-block-post-terms{box-sizing:border-box}.wp-block-post-terms .wp-block-post-terms__separator{white-space:pre-wrap}</style>
<style id="ollie-block-core-post-terms-inline-css">/* Categories
--------------------------------------------- */
.is-style-term-button a {
padding: 6px 12px;
border-radius: 5px;
background-color: var(--wp--preset--color--tertiary);
font-size: var(--wp--preset--font-size--x-small);
color: var(--wp--preset--color--primary);
line-height: 1.4;
}
.single .taxonomy-post_tag.is-style-term-button {
display: flex;
gap: var(--wp--preset--spacing--small);
}
.single .taxonomy-post_tag.is-style-term-button .wp-block-post-terms__separator {
display: none;
}
.single .post-meta:empty {
display: none;
}</style>
<style id="wp-block-post-title-inline-css">.wp-block-post-title{box-sizing:border-box;word-break:break-word}.wp-block-post-title a{display:inline-block}</style>
<style id="wp-block-post-author-inline-css">.wp-block-post-author{display:flex;flex-wrap:wrap}.wp-block-post-author__byline{font-size:.5em;margin-bottom:0;margin-top:0;width:100%}.wp-block-post-author__avatar{margin-right:1em}.wp-block-post-author__bio{font-size:.7em;margin-bottom:.7em}.wp-block-post-author__content{flex-basis:0;flex-grow:1}.wp-block-post-author__name{margin:0}</style>
<style id="ollie-block-core-post-author-inline-css">/* Post Author
--------------------------------------------- */
.wp-block-post-author {
align-items: center;
}
.wp-block-post-author__name {
margin-bottom: 0;
}
.wp-block-post-author__avatar {
display: inline-flex;
align-items: center;
margin-right: .8rem;
}
.wp-block-post-author__avatar img {
width: 26px;
height: 26px;
border-radius: 100px;
}</style>
<style id="wp-block-paragraph-inline-css">.is-small-text{font-size:.875em}.is-regular-text{font-size:1em}.is-large-text{font-size:2.25em}.is-larger-text{font-size:3em}.has-drop-cap:not(:focus):first-letter{float:left;font-size:8.4em;font-style:normal;font-weight:100;line-height:.68;margin:.05em .1em 0 0;text-transform:uppercase}body.rtl .has-drop-cap:not(:focus):first-letter{float:none;margin-left:.1em}p.has-drop-cap.has-background{overflow:hidden}p.has-background{padding:1.25em 2.375em}:where(p.has-text-color:not(.has-link-color)) a{color:inherit}p.has-text-align-left[style*="writing-mode:vertical-lr"],p.has-text-align-right[style*="writing-mode:vertical-rl"]{rotate:180deg}</style>
<style id="ollie-block-core-paragraph-inline-css">/* Paragraph
--------------------------------------------- */
p.has-background {
padding: var(--wp--preset--spacing--small);
}</style>
<style id="wp-block-post-date-inline-css">.wp-block-post-date{box-sizing:border-box}</style>
<style id="wp-block-post-featured-image-inline-css">.wp-block-post-featured-image{margin-left:0;margin-right:0}.wp-block-post-featured-image a{display:block;height:100%}.wp-block-post-featured-image img{box-sizing:border-box;height:auto;max-width:100%;vertical-align:bottom;width:100%}.wp-block-post-featured-image.alignfull img,.wp-block-post-featured-image.alignwide img{width:100%}.wp-block-post-featured-image .wp-block-post-featured-image__overlay.has-background-dim{background-color:#000;inset:0;position:absolute}.wp-block-post-featured-image{position:relative}.wp-block-post-featured-image .wp-block-post-featured-image__overlay.has-background-gradient{background-color:initial}.wp-block-post-featured-image .wp-block-post-featured-image__overlay.has-background-dim-0{opacity:0}.wp-block-post-featured-image .wp-block-post-featured-image__overlay.has-background-dim-10{opacity:.1}.wp-block-post-featured-image .wp-block-post-featured-image__overlay.has-background-dim-20{opacity:.2}.wp-block-post-featured-image .wp-block-post-featured-image__overlay.has-background-dim-30{opacity:.3}.wp-block-post-featured-image .wp-block-post-featured-image__overlay.has-background-dim-40{opacity:.4}.wp-block-post-featured-image .wp-block-post-featured-image__overlay.has-background-dim-50{opacity:.5}.wp-block-post-featured-image .wp-block-post-featured-image__overlay.has-background-dim-60{opacity:.6}.wp-block-post-featured-image .wp-block-post-featured-image__overlay.has-background-dim-70{opacity:.7}.wp-block-post-featured-image .wp-block-post-featured-image__overlay.has-background-dim-80{opacity:.8}.wp-block-post-featured-image .wp-block-post-featured-image__overlay.has-background-dim-90{opacity:.9}.wp-block-post-featured-image .wp-block-post-featured-image__overlay.has-background-dim-100{opacity:1}.wp-block-post-featured-image:where(.alignleft,.alignright){width:100%}</style>
<style id="wp-block-list-inline-css">ol,ul{box-sizing:border-box}ol.has-background,ul.has-background{padding:1.25em 2.375em}</style>
<style id="ollie-block-core-list-inline-css">/* List
--------------------------------------------- */
/* List styles for default unordered lists */
.entry-content ul li,
.entry-content ol li,
.wp-block-post-content ul li,
.wp-block-post-content ol li {
margin-bottom: var(--wp--preset--spacing--small);
}
/* .entry-content > ul li,
.entry-content > ol li,
.wp-block-post-content > ul li,
.wp-block-post-content > ol li {
margin-bottom: var(--wp--preset--spacing--small);
} */
.entry-content ul ul,
.entry-content ol ul,
.wp-block-post-content ul ul,
.wp-block-post-content ol ul {
margin-top: var(--wp--preset--spacing--small);
}
/* Remove paddings */
.entry-content :not(.wp-block-group) > li:first-child {
padding-top: 0;
}
.entry-content :not(.wp-block-group) li:last-child {
padding-bottom: 0;
}
ul.is-style-list-check,
ul.is-style-list-check ul,
ul.is-style-list-check-circle,
ul.is-style-list-check-circle ul {
padding-inline-start: 0px !important;
padding-left: 0;
list-style: none;
}
.entry-content ul.is-style-list-check,
.entry-content ul.is-style-list-check-circle {
padding-inline-start: .5rem;
}
ul.is-style-list-check li,
ul.is-style-list-check-circle li {
position: relative;
padding-left: calc(var(--wp--preset--spacing--medium) + .5rem);
}
ul.is-style-list-check li:before,
ul.is-style-list-check-circle li:before {
font-family: 'Dashicons';
content: "\f147";
position: absolute;
left: 0;
}
ul.is-style-list-check-circle li:before {
content: "\f12a";
}
ul.is-style-list-check-circle li {
padding-left: calc(var(--wp--preset--spacing--medium) + .5rem);
}
/* Boxed list style */
ul.is-style-list-boxed,
ul.is-style-list-boxed.wp-block {
background: var(--wp--preset--color--tertiary);
padding: var(--wp--preset--spacing--medium) var(--wp--preset--spacing--large);
border-radius: 5px;
}
ul.is-style-list-boxed li:last-child {
margin-bottom: 0;
}</style>
<link rel="stylesheet" id="wp-block-image-css" href="/wp-includes/blocks/image/style.min.css?ver=6.5.5" media="all">
<style id="ollie-block-core-image-inline-css">/* Image
--------------------------------------------- */
.wp-block-post-content > .wp-block-image,
.wp-block-post-content > .wp-block-gallery {
margin-top: var(--wp--preset--spacing--large);
margin-bottom: var(--wp--preset--spacing--large);
}
.wp-block-image.alignleft {
margin-bottom: var(--wp--preset--spacing--small);
}
.wp-block-image.alignright {
margin-bottom: var(--wp--preset--spacing--small);
}
html .is-layout-flex .wp-block-image {
flex-shrink: 0;
}
.wp-block-image.is-style-rounded img,
.wp-block-image .is-style-rounded img {
border-radius: 10px;
}
.wp-block-image.is-style-rounded-full img,
.wp-block-image .is-style-rounded-full img {
border-radius: 1000px;
}
.is-style-media-boxed {
background-color: var(--wp--preset--color--tertiary);
padding: var(--wp--preset--spacing--large);
border-radius: 5px;
}
.is-style-media-boxed img {
box-shadow:
1px 2px 2px hsl(233deg 38% 85% / 0.2),
2px 4px 4px hsl(233deg 38% 85% / 0.2),
4px 8px 8px hsl(233deg 38% 85% / 0.2),
8px 16px 16px hsl(233deg 38% 85% / 0.2),
16px 32px 32px hsl(233deg 38% 85% / 0.2);
}
.is-style-media-boxed figcaption {
margin-bottom: calc(var(--wp--preset--spacing--small) * -1) !important;
}</style>
<style id="wp-block-quote-inline-css">.wp-block-quote{box-sizing:border-box;overflow-wrap:break-word}.wp-block-quote.is-large:where(:not(.is-style-plain)),.wp-block-quote.is-style-large:where(:not(.is-style-plain)){margin-bottom:1em;padding:0 1em}.wp-block-quote.is-large:where(:not(.is-style-plain)) p,.wp-block-quote.is-style-large:where(:not(.is-style-plain)) p{font-size:1.5em;font-style:italic;line-height:1.6}.wp-block-quote.is-large:where(:not(.is-style-plain)) cite,.wp-block-quote.is-large:where(:not(.is-style-plain)) footer,.wp-block-quote.is-style-large:where(:not(.is-style-plain)) cite,.wp-block-quote.is-style-large:where(:not(.is-style-plain)) footer{font-size:1.125em;text-align:right}.wp-block-quote>cite{display:block}</style>
<style id="ollie-block-core-quote-inline-css">/* Quote
--------------------------------------------- */
.wp-block-quote.has-text-align-center,
.wp-block-quote.has-text-align-left,
.wp-block-quote.has-text-align-right {
padding: var(--wp--preset--spacing--large);
}
.wp-block-quote p:last-of-type {
margin-bottom: var(--wp--preset--spacing--small);
}
.wp-block-quote cite,
.wp-block-pullquote cite {
display: block;
}</style>
<style id="wp-block-columns-inline-css">.wp-block-columns{align-items:normal!important;box-sizing:border-box;display:flex;flex-wrap:wrap!important}@media (min-width:782px){.wp-block-columns{flex-wrap:nowrap!important}}.wp-block-columns.are-vertically-aligned-top{align-items:flex-start}.wp-block-columns.are-vertically-aligned-center{align-items:center}.wp-block-columns.are-vertically-aligned-bottom{align-items:flex-end}@media (max-width:781px){.wp-block-columns:not(.is-not-stacked-on-mobile)>.wp-block-column{flex-basis:100%!important}}@media (min-width:782px){.wp-block-columns:not(.is-not-stacked-on-mobile)>.wp-block-column{flex-basis:0;flex-grow:1}.wp-block-columns:not(.is-not-stacked-on-mobile)>.wp-block-column[style*=flex-basis]{flex-grow:0}}.wp-block-columns.is-not-stacked-on-mobile{flex-wrap:nowrap!important}.wp-block-columns.is-not-stacked-on-mobile>.wp-block-column{flex-basis:0;flex-grow:1}.wp-block-columns.is-not-stacked-on-mobile>.wp-block-column[style*=flex-basis]{flex-grow:0}:where(.wp-block-columns){margin-bottom:1.75em}:where(.wp-block-columns.has-background){padding:1.25em 2.375em}.wp-block-column{flex-grow:1;min-width:0;overflow-wrap:break-word;word-break:break-word}.wp-block-column.is-vertically-aligned-top{align-self:flex-start}.wp-block-column.is-vertically-aligned-center{align-self:center}.wp-block-column.is-vertically-aligned-bottom{align-self:flex-end}.wp-block-column.is-vertically-aligned-stretch{align-self:stretch}.wp-block-column.is-vertically-aligned-bottom,.wp-block-column.is-vertically-aligned-center,.wp-block-column.is-vertically-aligned-top{width:100%}</style>
<style id="ollie-block-core-columns-inline-css">/* Column
--------------------------------------------- */
.is-style-column-box-shadow {
box-shadow: 0px 8px 40px -20px rgb(21 14 41 / 12%);
transition: .4s ease;
}
.is-style-column-box-shadow:hover {
box-shadow: 0px 12px 60px -20px rgb(21 14 41 / 16%);
}
.wp-block-column {
border-radius: 5px;
}</style>
<style id="wp-block-comments-inline-css">.wp-block-post-comments{box-sizing:border-box}.wp-block-post-comments .alignleft{float:left}.wp-block-post-comments .alignright{float:right}.wp-block-post-comments .navigation:after{clear:both;content:"";display:table}.wp-block-post-comments .commentlist{clear:both;list-style:none;margin:0;padding:0}.wp-block-post-comments .commentlist .comment{min-height:2.25em;padding-left:3.25em}.wp-block-post-comments .commentlist .comment p{font-size:1em;line-height:1.8;margin:1em 0}.wp-block-post-comments .commentlist .children{list-style:none;margin:0;padding:0}.wp-block-post-comments .comment-author{line-height:1.5}.wp-block-post-comments .comment-author .avatar{border-radius:1.5em;display:block;float:left;height:2.5em;margin-right:.75em;margin-top:.5em;width:2.5em}.wp-block-post-comments .comment-author cite{font-style:normal}.wp-block-post-comments .comment-meta{font-size:.875em;line-height:1.5}.wp-block-post-comments .comment-meta b{font-weight:400}.wp-block-post-comments .comment-meta .comment-awaiting-moderation{display:block;margin-bottom:1em;margin-top:1em}.wp-block-post-comments .comment-body .commentmetadata{font-size:.875em}.wp-block-post-comments .comment-form-author label,.wp-block-post-comments .comment-form-comment label,.wp-block-post-comments .comment-form-email label,.wp-block-post-comments .comment-form-url label{display:block;margin-bottom:.25em}.wp-block-post-comments .comment-form input:not([type=submit]):not([type=checkbox]),.wp-block-post-comments .comment-form textarea{box-sizing:border-box;display:block;width:100%}.wp-block-post-comments .comment-form-cookies-consent{display:flex;gap:.25em}.wp-block-post-comments .comment-form-cookies-consent #wp-comment-cookies-consent{margin-top:.35em}.wp-block-post-comments .comment-reply-title{margin-bottom:0}.wp-block-post-comments .comment-reply-title :where(small){font-size:var(--wp--preset--font-size--medium,smaller);margin-left:.5em}.wp-block-post-comments .reply{font-size:.875em;margin-bottom:1.4em}.wp-block-post-comments input:not([type=submit]),.wp-block-post-comments textarea{border:1px solid #949494;font-family:inherit;font-size:1em}.wp-block-post-comments input:not([type=submit]):not([type=checkbox]),.wp-block-post-comments textarea{padding:calc(.667em + 2px)}:where(.wp-block-post-comments input[type=submit]){border:none}</style>
<style id="ollie-block-core-comments-inline-css">/* Comments
--------------------------------------------- */
.wp-block-post-comments .commentlist {
margin-bottom: 40px;
margin-top: 40px;
}
.wp-block-comment-template ol {
padding-inline-start: var(--wp--preset--spacing--medium) !important;
}
.wp-block-comment-template > li {
margin-left: 0;
}
.wp-block-post-comments .form-submit {
margin-bottom: 0;
}
.comment-form-cookies-consent {
font-size: var(--wp--preset--font-size--small);
}
.comment .avatar {
margin-top: 8px;
}
.wp-block-comment-template + .wp-block-post-comments-form {
margin-top: var(--wp--preset--spacing--large);
}
.wp-block-comments .wp-block-group:empty {
display: none;
}
.wp-block-comments .wp-block-group:empty + .comment-respond {
margin-top: 0;
}
.wp-block-comments-pagination-numbers > * {
margin: 0 4px;
}
/* Comment Author Avatar
--------------------------------------------- */
.wp-block-post-comments .comment-author .avatar {
height: 48px;
margin-top: 2px;
width: 48px;
}</style>
<link rel="stylesheet" id="wp-block-social-links-css" href="/wp-includes/blocks/social-links/style.min.css?ver=6.5.5" media="all">
<style id="wp-block-separator-inline-css">@charset "UTF-8";.wp-block-separator{border:none;border-top:2px solid}.wp-block-separator.is-style-dots{background:none!important;border:none;height:auto;line-height:1;text-align:center}.wp-block-separator.is-style-dots:before{color:currentColor;content:"···";font-family:serif;font-size:1.5em;letter-spacing:2em;padding-left:2em}</style>
<style id="ollie-block-core-separator-inline-css">/* Separator
--------------------------------------------- */
.wp-block-separator {
opacity: 1;
}
.wp-block-separator:not(.is-style-dots),
.wp-block-separator.has-background:not(.is-style-dots) {
border-bottom: 1px solid currentColor;
height: 1px;
}
.wp-block-separator.is-style-dots::before {
font-family: sans-serif;
font-size: var(--wp--preset--font-size--large);
letter-spacing: 10px;
padding-left: 10px;
}
hr.is-style-separator-dotted,
.editor-styles-wrapper hr.is-style-separator-dotted {
width: 100% !important;
height: 1px !important;
border: none !important;
height: 1px !important;
background-color: none !important;
background: currentColor !important;
background: repeating-linear-gradient(90deg,currentColor,currentColor 2px,transparent 2px,transparent 5px) !important;
}
.is-style-separator-thin {
border: none !important;
}</style>
<style id="wp-emoji-styles-inline-css">img.wp-smiley, img.emoji {
display: inline !important;
border: none !important;
box-shadow: none !important;
height: 1em !important;
width: 1em !important;
margin: 0 0.07em !important;
vertical-align: -0.1em !important;
background: none !important;
padding: 0 !important;
}</style>
<link rel="stylesheet" id="wp-block-library-css" href="/wp-includes/css/dist/block-library/common.min.css?ver=6.5.5" media="all">
<link rel="stylesheet" id="dashicons-css" href="/wp-includes/css/dashicons.min.css?ver=6.5.5" media="all">
<style id="global-styles-inline-css">body{--wp--preset--color--black: #000000;--wp--preset--color--cyan-bluish-gray: #abb8c3;--wp--preset--color--white: #ffffff;--wp--preset--color--pale-pink: #f78da7;--wp--preset--color--vivid-red: #cf2e2e;--wp--preset--color--luminous-vivid-orange: #ff6900;--wp--preset--color--luminous-vivid-amber: #fcb900;--wp--preset--color--light-green-cyan: #7bdcb5;--wp--preset--color--vivid-green-cyan: #00d084;--wp--preset--color--pale-cyan-blue: #8ed1fc;--wp--preset--color--vivid-cyan-blue: #0693e3;--wp--preset--color--vivid-purple: #9b51e0;--wp--preset--color--primary: #4d34fa;--wp--preset--color--main: #14111f;--wp--preset--color--secondary: #636381;--wp--preset--color--main-accent: #d0ccde;--wp--preset--color--primary-accent: #e4e1fe;--wp--preset--color--tertiary: #f6f6fc;--wp--preset--color--base: #fff;--wp--preset--gradient--vivid-cyan-blue-to-vivid-purple: linear-gradient(135deg,rgba(6,147,227,1) 0%,rgb(155,81,224) 100%);--wp--preset--gradient--light-green-cyan-to-vivid-green-cyan: linear-gradient(135deg,rgb(122,220,180) 0%,rgb(0,208,130) 100%);--wp--preset--gradient--luminous-vivid-amber-to-luminous-vivid-orange: linear-gradient(135deg,rgba(252,185,0,1) 0%,rgba(255,105,0,1) 100%);--wp--preset--gradient--luminous-vivid-orange-to-vivid-red: linear-gradient(135deg,rgba(255,105,0,1) 0%,rgb(207,46,46) 100%);--wp--preset--gradient--very-light-gray-to-cyan-bluish-gray: linear-gradient(135deg,rgb(238,238,238) 0%,rgb(169,184,195) 100%);--wp--preset--gradient--cool-to-warm-spectrum: linear-gradient(135deg,rgb(74,234,220) 0%,rgb(151,120,209) 20%,rgb(207,42,186) 40%,rgb(238,44,130) 60%,rgb(251,105,98) 80%,rgb(254,248,76) 100%);--wp--preset--gradient--blush-light-purple: linear-gradient(135deg,rgb(255,206,236) 0%,rgb(152,150,240) 100%);--wp--preset--gradient--blush-bordeaux: linear-gradient(135deg,rgb(254,205,165) 0%,rgb(254,45,45) 50%,rgb(107,0,62) 100%);--wp--preset--gradient--luminous-dusk: linear-gradient(135deg,rgb(255,203,112) 0%,rgb(199,81,192) 50%,rgb(65,88,208) 100%);--wp--preset--gradient--pale-ocean: linear-gradient(135deg,rgb(255,245,203) 0%,rgb(182,227,212) 50%,rgb(51,167,181) 100%);--wp--preset--gradient--electric-grass: linear-gradient(135deg,rgb(202,248,128) 0%,rgb(113,206,126) 100%);--wp--preset--gradient--midnight: linear-gradient(135deg,rgb(2,3,129) 0%,rgb(40,116,252) 100%);--wp--preset--gradient--purple: linear-gradient(135deg, #4D34FA, #ad34fa);--wp--preset--gradient--blue: linear-gradient(135deg, #0057FF, #31B5FF);--wp--preset--gradient--pink: linear-gradient(135deg, #FF007A, #FF81BD);--wp--preset--gradient--black: linear-gradient(135deg, #14111E, #4B4462);--wp--preset--gradient--heat: linear-gradient(135deg, #F32758, #FFC581);--wp--preset--font-size--small: clamp(1rem, 1rem + ((1vw - 0.2rem) * 0.34), 1.2rem);--wp--preset--font-size--medium: clamp(1.3rem, 1.3rem + ((1vw - 0.2rem) * 0.511), 1.6rem);--wp--preset--font-size--large: clamp(1.5rem, 1.5rem + ((1vw - 0.2rem) * 0.851), 2rem);--wp--preset--font-size--x-large: clamp(2rem, 2rem + ((1vw - 0.2rem) * 1.362), 2.8rem);--wp--preset--font-size--x-small: clamp(.9rem, 0.9rem + ((1vw - 0.2rem) * 0.17), 1rem);--wp--preset--font-size--base: clamp(1.13rem, 1.13rem + ((1vw - 0.2rem) * 0.289), 1.3rem);--wp--preset--font-size--xx-large: clamp(2.6rem, 2.6rem + ((1vw - 0.2rem) * 1.957), 3.75rem);--wp--preset--font-size--xxx-large: clamp(3rem, 3rem + ((1vw - 0.2rem) * 3.064), 4.8rem);--wp--preset--font-family--primary: Inter, sans-serif;--wp--preset--font-family--monospace: monospace;--wp--preset--spacing--20: 0.44rem;--wp--preset--spacing--30: 0.67rem;--wp--preset--spacing--40: 1rem;--wp--preset--spacing--50: 1.5rem;--wp--preset--spacing--60: 2.25rem;--wp--preset--spacing--70: 3.38rem;--wp--preset--spacing--80: 5.06rem;--wp--preset--spacing--small: clamp(.5rem, 2.5vw, 1rem);--wp--preset--spacing--medium: clamp(1.5rem, 4vw, 2rem);--wp--preset--spacing--large: clamp(2rem, 5vw, 3rem);--wp--preset--spacing--x-large: clamp(3rem, 7vw, 5rem);--wp--preset--spacing--xx-large: clamp(4rem, 9vw, 7rem);--wp--preset--spacing--xxx-large: clamp(5rem, 12vw, 9rem);--wp--preset--spacing--xxxx-large: clamp(6rem, 14vw, 13rem);--wp--preset--shadow--natural: 6px 6px 9px rgba(0, 0, 0, 0.2);--wp--preset--shadow--deep: 12px 12px 50px rgba(0, 0, 0, 0.4);--wp--preset--shadow--sharp: 6px 6px 0px rgba(0, 0, 0, 0.2);--wp--preset--shadow--outlined: 6px 6px 0px -3px rgba(255, 255, 255, 1), 6px 6px rgba(0, 0, 0, 1);--wp--preset--shadow--crisp: 6px 6px 0px rgba(0, 0, 0, 1);--wp--custom--font-weight--thin: 100;--wp--custom--font-weight--extra-light: 200;--wp--custom--font-weight--light: 300;--wp--custom--font-weight--regular: 400;--wp--custom--font-weight--medium: 500;--wp--custom--font-weight--semi-bold: 600;--wp--custom--font-weight--bold: 700;--wp--custom--font-weight--extra-bold: 800;--wp--custom--font-weight--black: 900;--wp--custom--line-height--none: 1;--wp--custom--line-height--tight: 1.1;--wp--custom--line-height--snug: 1.2;--wp--custom--line-height--normal: 1.5;--wp--custom--line-height--relaxed: 1.625;--wp--custom--line-height--loose: 2;--wp--custom--line-height--body: calc(1px + 2ex + 7px);}body { margin: 0;--wp--style--global--content-size: 740px;--wp--style--global--wide-size: 1260px; }.wp-site-blocks { padding-top: var(--wp--style--root--padding-top); padding-bottom: var(--wp--style--root--padding-bottom); }.has-global-padding { padding-right: var(--wp--style--root--padding-right); padding-left: var(--wp--style--root--padding-left); }.has-global-padding :where(.has-global-padding:not(.wp-block-block)) { padding-right: 0; padding-left: 0; }.has-global-padding > .alignfull { margin-right: calc(var(--wp--style--root--padding-right) * -1); margin-left: calc(var(--wp--style--root--padding-left) * -1); }.has-global-padding :where(.has-global-padding:not(.wp-block-block)) > .alignfull { margin-right: 0; margin-left: 0; }.has-global-padding > .alignfull:where(:not(.has-global-padding):not(.is-layout-flex):not(.is-layout-grid)) > :where([class*="wp-block-"]:not(.alignfull):not([class*="__"]),p,h1,h2,h3,h4,h5,h6,ul,ol) { padding-right: var(--wp--style--root--padding-right); padding-left: var(--wp--style--root--padding-left); }.has-global-padding :where(.has-global-padding) > .alignfull:where(:not(.has-global-padding)) > :where([class*="wp-block-"]:not(.alignfull):not([class*="__"]),p,h1,h2,h3,h4,h5,h6,ul,ol) { padding-right: 0; padding-left: 0; }.wp-site-blocks > .alignleft { float: left; margin-right: 2em; }.wp-site-blocks > .alignright { float: right; margin-left: 2em; }.wp-site-blocks > .aligncenter { justify-content: center; margin-left: auto; margin-right: auto; }:where(.wp-site-blocks) > * { margin-block-start: var(--wp--preset--spacing--medium); margin-block-end: 0; }:where(.wp-site-blocks) > :first-child:first-child { margin-block-start: 0; }:where(.wp-site-blocks) > :last-child:last-child { margin-block-end: 0; }body { --wp--style--block-gap: var(--wp--preset--spacing--medium); }:where(body .is-layout-flow) > :first-child:first-child{margin-block-start: 0;}:where(body .is-layout-flow) > :last-child:last-child{margin-block-end: 0;}:where(body .is-layout-flow) > *{margin-block-start: var(--wp--preset--spacing--medium);margin-block-end: 0;}:where(body .is-layout-constrained) > :first-child:first-child{margin-block-start: 0;}:where(body .is-layout-constrained) > :last-child:last-child{margin-block-end: 0;}:where(body .is-layout-constrained) > *{margin-block-start: var(--wp--preset--spacing--medium);margin-block-end: 0;}:where(body .is-layout-flex) {gap: var(--wp--preset--spacing--medium);}:where(body .is-layout-grid) {gap: var(--wp--preset--spacing--medium);}body .is-layout-flow > .alignleft{float: left;margin-inline-start: 0;margin-inline-end: 2em;}body .is-layout-flow > .alignright{float: right;margin-inline-start: 2em;margin-inline-end: 0;}body .is-layout-flow > .aligncenter{margin-left: auto !important;margin-right: auto !important;}body .is-layout-constrained > .alignleft{float: left;margin-inline-start: 0;margin-inline-end: 2em;}body .is-layout-constrained > .alignright{float: right;margin-inline-start: 2em;margin-inline-end: 0;}body .is-layout-constrained > .aligncenter{margin-left: auto !important;margin-right: auto !important;}body .is-layout-constrained > :where(:not(.alignleft):not(.alignright):not(.alignfull)){max-width: var(--wp--style--global--content-size);margin-left: auto !important;margin-right: auto !important;}body .is-layout-constrained > .alignwide{max-width: var(--wp--style--global--wide-size);}body .is-layout-flex{display: flex;}body .is-layout-flex{flex-wrap: wrap;align-items: center;}body .is-layout-flex > *{margin: 0;}body .is-layout-grid{display: grid;}body .is-layout-grid > *{margin: 0;}body{background-color: var(--wp--preset--color--base);color: var(--wp--preset--color--main);font-family: var(--wp--preset--font-family--primary);font-size: var(--wp--preset--font-size--medium);font-weight: var(--wp--custom--font-weight--regular);line-height: var(--wp--custom--line-height--body);--wp--style--root--padding-top: 0;--wp--style--root--padding-right: var(--wp--preset--spacing--medium);--wp--style--root--padding-bottom: 0;--wp--style--root--padding-left: var(--wp--preset--spacing--medium);}a:where(:not(.wp-element-button)){color: var(--wp--preset--color--main);text-decoration: underline;}h1, h2, h3, h4, h5, h6{font-family: var(--wp--preset--font-family--primary);font-weight: var(--wp--custom--font-weight--medium);line-height: var(--wp--custom--line-height--body);}h1{font-size: var(--wp--preset--font-size--xx-large);}h2{font-size: var(--wp--preset--font-size--x-large);}h3{font-size: var(--wp--preset--font-size--large);}h4{font-size: var(--wp--preset--font-size--medium);}h5{font-size: var(--wp--preset--font-size--base);}h6{font-size: var(--wp--preset--font-size--small);}.wp-element-button, .wp-block-button__link{background-color: var(--wp--preset--color--primary);border-radius: 5px;border-width: 0;color: var(--wp--preset--color--base);font-family: inherit;font-size: var(--wp--preset--font-size--small);font-weight: var(--wp--custom--font-weight--medium);line-height: inherit;padding-top: .5em;padding-right: 1em;padding-bottom: .5em;padding-left: 1em;text-decoration: none;}.wp-element-button:hover, .wp-block-button__link:hover{background-color: var(--wp--preset--color--primary);color: var(--wp--preset--color--base);text-decoration: underline;}.has-black-color{color: var(--wp--preset--color--black) !important;}.has-cyan-bluish-gray-color{color: var(--wp--preset--color--cyan-bluish-gray) !important;}.has-white-color{color: var(--wp--preset--color--white) !important;}.has-pale-pink-color{color: var(--wp--preset--color--pale-pink) !important;}.has-vivid-red-color{color: var(--wp--preset--color--vivid-red) !important;}.has-luminous-vivid-orange-color{color: var(--wp--preset--color--luminous-vivid-orange) !important;}.has-luminous-vivid-amber-color{color: var(--wp--preset--color--luminous-vivid-amber) !important;}.has-light-green-cyan-color{color: var(--wp--preset--color--light-green-cyan) !important;}.has-vivid-green-cyan-color{color: var(--wp--preset--color--vivid-green-cyan) !important;}.has-pale-cyan-blue-color{color: var(--wp--preset--color--pale-cyan-blue) !important;}.has-vivid-cyan-blue-color{color: var(--wp--preset--color--vivid-cyan-blue) !important;}.has-vivid-purple-color{color: var(--wp--preset--color--vivid-purple) !important;}.has-primary-color{color: var(--wp--preset--color--primary) !important;}.has-main-color{color: var(--wp--preset--color--main) !important;}.has-secondary-color{color: var(--wp--preset--color--secondary) !important;}.has-main-accent-color{color: var(--wp--preset--color--main-accent) !important;}.has-primary-accent-color{color: var(--wp--preset--color--primary-accent) !important;}.has-tertiary-color{color: var(--wp--preset--color--tertiary) !important;}.has-base-color{color: var(--wp--preset--color--base) !important;}.has-black-background-color{background-color: var(--wp--preset--color--black) !important;}.has-cyan-bluish-gray-background-color{background-color: var(--wp--preset--color--cyan-bluish-gray) !important;}.has-white-background-color{background-color: var(--wp--preset--color--white) !important;}.has-pale-pink-background-color{background-color: var(--wp--preset--color--pale-pink) !important;}.has-vivid-red-background-color{background-color: var(--wp--preset--color--vivid-red) !important;}.has-luminous-vivid-orange-background-color{background-color: var(--wp--preset--color--luminous-vivid-orange) !important;}.has-luminous-vivid-amber-background-color{background-color: var(--wp--preset--color--luminous-vivid-amber) !important;}.has-light-green-cyan-background-color{background-color: var(--wp--preset--color--light-green-cyan) !important;}.has-vivid-green-cyan-background-color{background-color: var(--wp--preset--color--vivid-green-cyan) !important;}.has-pale-cyan-blue-background-color{background-color: var(--wp--preset--color--pale-cyan-blue) !important;}.has-vivid-cyan-blue-background-color{background-color: var(--wp--preset--color--vivid-cyan-blue) !important;}.has-vivid-purple-background-color{background-color: var(--wp--preset--color--vivid-purple) !important;}.has-primary-background-color{background-color: var(--wp--preset--color--primary) !important;}.has-main-background-color{background-color: var(--wp--preset--color--main) !important;}.has-secondary-background-color{background-color: var(--wp--preset--color--secondary) !important;}.has-main-accent-background-color{background-color: var(--wp--preset--color--main-accent) !important;}.has-primary-accent-background-color{background-color: var(--wp--preset--color--primary-accent) !important;}.has-tertiary-background-color{background-color: var(--wp--preset--color--tertiary) !important;}.has-base-background-color{background-color: var(--wp--preset--color--base) !important;}.has-black-border-color{border-color: var(--wp--preset--color--black) !important;}.has-cyan-bluish-gray-border-color{border-color: var(--wp--preset--color--cyan-bluish-gray) !important;}.has-white-border-color{border-color: var(--wp--preset--color--white) !important;}.has-pale-pink-border-color{border-color: var(--wp--preset--color--pale-pink) !important;}.has-vivid-red-border-color{border-color: var(--wp--preset--color--vivid-red) !important;}.has-luminous-vivid-orange-border-color{border-color: var(--wp--preset--color--luminous-vivid-orange) !important;}.has-luminous-vivid-amber-border-color{border-color: var(--wp--preset--color--luminous-vivid-amber) !important;}.has-light-green-cyan-border-color{border-color: var(--wp--preset--color--light-green-cyan) !important;}.has-vivid-green-cyan-border-color{border-color: var(--wp--preset--color--vivid-green-cyan) !important;}.has-pale-cyan-blue-border-color{border-color: var(--wp--preset--color--pale-cyan-blue) !important;}.has-vivid-cyan-blue-border-color{border-color: var(--wp--preset--color--vivid-cyan-blue) !important;}.has-vivid-purple-border-color{border-color: var(--wp--preset--color--vivid-purple) !important;}.has-primary-border-color{border-color: var(--wp--preset--color--primary) !important;}.has-main-border-color{border-color: var(--wp--preset--color--main) !important;}.has-secondary-border-color{border-color: var(--wp--preset--color--secondary) !important;}.has-main-accent-border-color{border-color: var(--wp--preset--color--main-accent) !important;}.has-primary-accent-border-color{border-color: var(--wp--preset--color--primary-accent) !important;}.has-tertiary-border-color{border-color: var(--wp--preset--color--tertiary) !important;}.has-base-border-color{border-color: var(--wp--preset--color--base) !important;}.has-vivid-cyan-blue-to-vivid-purple-gradient-background{background: var(--wp--preset--gradient--vivid-cyan-blue-to-vivid-purple) !important;}.has-light-green-cyan-to-vivid-green-cyan-gradient-background{background: var(--wp--preset--gradient--light-green-cyan-to-vivid-green-cyan) !important;}.has-luminous-vivid-amber-to-luminous-vivid-orange-gradient-background{background: var(--wp--preset--gradient--luminous-vivid-amber-to-luminous-vivid-orange) !important;}.has-luminous-vivid-orange-to-vivid-red-gradient-background{background: var(--wp--preset--gradient--luminous-vivid-orange-to-vivid-red) !important;}.has-very-light-gray-to-cyan-bluish-gray-gradient-background{background: var(--wp--preset--gradient--very-light-gray-to-cyan-bluish-gray) !important;}.has-cool-to-warm-spectrum-gradient-background{background: var(--wp--preset--gradient--cool-to-warm-spectrum) !important;}.has-blush-light-purple-gradient-background{background: var(--wp--preset--gradient--blush-light-purple) !important;}.has-blush-bordeaux-gradient-background{background: var(--wp--preset--gradient--blush-bordeaux) !important;}.has-luminous-dusk-gradient-background{background: var(--wp--preset--gradient--luminous-dusk) !important;}.has-pale-ocean-gradient-background{background: var(--wp--preset--gradient--pale-ocean) !important;}.has-electric-grass-gradient-background{background: var(--wp--preset--gradient--electric-grass) !important;}.has-midnight-gradient-background{background: var(--wp--preset--gradient--midnight) !important;}.has-purple-gradient-background{background: var(--wp--preset--gradient--purple) !important;}.has-blue-gradient-background{background: var(--wp--preset--gradient--blue) !important;}.has-pink-gradient-background{background: var(--wp--preset--gradient--pink) !important;}.has-black-gradient-background{background: var(--wp--preset--gradient--black) !important;}.has-heat-gradient-background{background: var(--wp--preset--gradient--heat) !important;}.has-small-font-size{font-size: var(--wp--preset--font-size--small) !important;}.has-medium-font-size{font-size: var(--wp--preset--font-size--medium) !important;}.has-large-font-size{font-size: var(--wp--preset--font-size--large) !important;}.has-x-large-font-size{font-size: var(--wp--preset--font-size--x-large) !important;}.has-x-small-font-size{font-size: var(--wp--preset--font-size--x-small) !important;}.has-base-font-size{font-size: var(--wp--preset--font-size--base) !important;}.has-xx-large-font-size{font-size: var(--wp--preset--font-size--xx-large) !important;}.has-xxx-large-font-size{font-size: var(--wp--preset--font-size--xxx-large) !important;}.has-primary-font-family{font-family: var(--wp--preset--font-family--primary) !important;}.has-monospace-font-family{font-family: var(--wp--preset--font-family--monospace) !important;}
.wp-block-navigation{font-weight: var(--wp--custom--font-weight--medium);}
.wp-block-navigation a:where(:not(.wp-element-button)){color: var(--wp--preset--color--primary-accent);text-decoration: none;}
.wp-block-navigation a:where(:not(.wp-element-button)):hover{color: var(--wp--preset--color--base);text-decoration: underline;}
.wp-block-navigation a:where(:not(.wp-element-button)):focus{color: var(--wp--preset--color--base);text-decoration: none;}
.wp-block-navigation a:where(:not(.wp-element-button)):active{color: var(--wp--preset--color--base);text-decoration: none;}
.wp-block-columns{margin-bottom: 0px;}
p{line-height: var(--wp--custom--line-height--body);}
.wp-block-post-terms a:where(:not(.wp-element-button)){text-decoration: none;}
.wp-block-post-title{font-size: var(--wp--preset--font-size--xx-large);line-height: var(--wp--custom--line-height--body);}
.wp-block-post-title a:where(:not(.wp-element-button)){text-decoration: none;}
.wp-block-post-title a:where(:not(.wp-element-button)):hover{text-decoration: underline;}
.wp-block-quote{border-radius: 0;border-color: var(--wp--preset--color--primary);border-width: 0 0 0 5px !important;border-style: solid;font-size: var(--wp--preset--font-size--medium);font-weight: var(--wp--custom--font-weight--medium);line-height: var(--wp--custom--line-height--normal);padding-right: var(--wp--preset--spacing--large);padding-left: var(--wp--preset--spacing--large);}
.wp-block-quote cite{color: var(--wp--preset--color--secondary);font-size: var(--wp--preset--font-size--small);margin-top: 10px;}
.wp-block-separator{color: var(--wp--preset--color--main);font-size: var(--wp--preset--font-size--large);}
.wp-block-template-part{margin-top: 0px !important;}
.sticky-sidebar {
position: sticky;
top: 4rem;
}
.wp-block-latest-posts__post-date {
margin-bottom:36px;
}.wp-block-search.wp-block-search__button-inside .wp-block-search__inside-wrapper {border: none}</style>
<style id="core-block-supports-inline-css">.wp-elements-fea50d38d3b9b114f39bcb4ad4b116ff a:where(:not(.wp-element-button)){color:var(--wp--preset--color--base);}.wp-container-core-navigation-is-layout-1.wp-container-core-navigation-is-layout-1{gap:20px;}.wp-container-core-group-is-layout-1.wp-container-core-group-is-layout-1{justify-content:space-between;}.wp-elements-72e07f095da13a7bb673ea461d9ed494 a:where(:not(.wp-element-button)){color:var(--wp--preset--color--primary);}.wp-elements-9aa739effdf6d06d6e39339e4e43e1b3 a:where(:not(.wp-element-button)){color:var(--wp--preset--color--secondary);}.wp-container-core-group-is-layout-3.wp-container-core-group-is-layout-3{flex-wrap:nowrap;gap:10px;}.wp-elements-bd79afba7f00a2d2e79e252b6511e7e8 a:where(:not(.wp-element-button)){color:var(--wp--preset--color--secondary);}.wp-container-core-group-is-layout-5.wp-container-core-group-is-layout-5{justify-content:space-between;}.wp-container-core-group-is-layout-7.wp-container-core-group-is-layout-7 > *{margin-block-start:0;margin-block-end:0;}.wp-container-core-group-is-layout-7.wp-container-core-group-is-layout-7.wp-container-core-group-is-layout-7.wp-container-core-group-is-layout-7 > * + *{margin-block-start:var(--wp--preset--spacing--medium);margin-block-end:0;}.wp-container-core-columns-is-layout-1.wp-container-core-columns-is-layout-1{flex-wrap:nowrap;}.wp-elements-6e0a8c899515679c402384022b4528f4 a:where(:not(.wp-element-button)){color:var(--wp--preset--color--base);}.wp-container-core-social-links-is-layout-1.wp-container-core-social-links-is-layout-1{gap:20px 20px;justify-content:center;}.wp-container-core-columns-is-layout-2.wp-container-core-columns-is-layout-2{flex-wrap:nowrap;gap:var(--wp--preset--spacing--x-large) var(--wp--preset--spacing--x-large);}.wp-elements-f61512c823a772c477503f2d41fb0964 a:where(:not(.wp-element-button)){color:var(--wp--preset--color--main-accent);}.wp-container-core-group-is-layout-8.wp-container-core-group-is-layout-8{gap:var(--wp--preset--spacing--small);justify-content:center;}.wp-container-core-group-is-layout-10.wp-container-core-group-is-layout-10 > *{margin-block-start:0;margin-block-end:0;}.wp-container-core-group-is-layout-10.wp-container-core-group-is-layout-10.wp-container-core-group-is-layout-10.wp-container-core-group-is-layout-10 > * + *{margin-block-start:var(--wp--preset--spacing--x-large);margin-block-end:0;}.wp-duotone-unset-2.wp-block-post-featured-image img, .wp-duotone-unset-2.wp-block-post-featured-image .wp-block-post-featured-image__placeholder, .wp-duotone-unset-2.wp-block-post-featured-image .components-placeholder__illustration, .wp-duotone-unset-2.wp-block-post-featured-image .components-placeholder::before{filter:unset;}</style>
<style id="wp-block-template-skip-link-inline-css">.skip-link.screen-reader-text {
border: 0;
clip: rect(1px,1px,1px,1px);
clip-path: inset(50%);
height: 1px;
margin: -1px;
overflow: hidden;
padding: 0;
position: absolute !important;
width: 1px;
word-wrap: normal !important;
}
.skip-link.screen-reader-text:focus {
background-color: #eee;
clip: auto !important;
clip-path: none;
color: #444;
display: block;
font-size: 1em;
height: auto;
left: 5px;
line-height: normal;
padding: 15px 23px 14px;
text-decoration: none;
top: 5px;
width: auto;
z-index: 100000;
}</style>
<link rel="stylesheet" id="ollie-css" href="/wp-content/themes/ollie/style.css?ver=1.1.0" media="all">
<style id="generateblocks-inline-css">.gb-container-d6a21a91{padding:16px 32px 32px;margin-left:32px;border-radius:10px;border:1px solid #636381;background-color:#f6f6fc;}.gb-container-e4ec5504{min-height:100%;padding-right:10px;padding-left:10px;}.gb-grid-wrapper > .gb-grid-column-befc6384{width:50%;}.gb-grid-wrapper > .gb-grid-column-befc6384 > .gb-container{display:flex;flex-direction:column;height:100%;}.gb-grid-wrapper > .gb-grid-column-db91ec36{width:50%;}.gb-grid-wrapper > .gb-grid-column-db91ec36 > .gb-container{display:flex;flex-direction:column;height:100%;}.gb-grid-wrapper-72769c23{display:flex;flex-wrap:wrap;}.gb-grid-wrapper-72769c23 > .gb-grid-column{box-sizing:border-box;}.gb-grid-wrapper > .gb-grid-column-adf39bfb{width:25%;}.gb-grid-wrapper > .gb-grid-column-6b3ae155{width:50%;}.gb-grid-wrapper > .gb-grid-column-e35f2f56{width:25%;}.gb-grid-wrapper-2a306ad3{display:flex;flex-wrap:wrap;}.gb-grid-wrapper-2a306ad3 > .gb-grid-column{box-sizing:border-box;}.gb-grid-wrapper-59f62d27{display:flex;flex-wrap:wrap;}.gb-grid-wrapper-59f62d27 > .gb-grid-column{box-sizing:border-box;}.gb-container-b8fc53d3{text-align:left;}.gb-container-b8fc53d3 > .gb-inside-container{padding-left:0;}.gb-grid-wrapper > .gb-grid-column-b8fc53d3{width:100%;}.gb-grid-wrapper > .gb-grid-column-b8fc53d3 > .gb-container{display:flex;flex-direction:column;height:100%;}.gb-container-582182de > .gb-inside-container{max-width:1100px;margin-left:auto;margin-right:auto;}.gb-grid-wrapper > .gb-grid-column-582182de > .gb-container{display:flex;flex-direction:column;height:100%;}.gb-container-f253ffaa > .gb-inside-container{max-width:1100px;margin-left:auto;margin-right:auto;}.gb-grid-wrapper > .gb-grid-column-f253ffaa > .gb-container{display:flex;flex-direction:column;height:100%;}@media (max-width: 767px) {.gb-grid-wrapper > .gb-grid-column-befc6384{width:100%;}.gb-grid-wrapper > .gb-grid-column-db91ec36{width:100%;}.gb-grid-wrapper > .gb-grid-column-adf39bfb{width:100%;}.gb-grid-wrapper > .gb-grid-column-6b3ae155{width:100%;}.gb-grid-wrapper > .gb-grid-column-e35f2f56{width:100%;}.gb-grid-wrapper > .gb-grid-column-b8fc53d3{width:100%;}}.gb-container .wp-block-image img{vertical-align:middle;}.gb-grid-wrapper .wp-block-image{margin-bottom:0;}.gb-highlight{background:none;}</style>
<script src="/wp-content/plugins/table-of-contents/assets/js/frontend.js?ver=1.0.2" id="ideabox-toc-script-js"></script>
<link rel="https://api.w.org/" href="/wp-json/">
<link rel="alternate" type="application/json" href="/wp-json/wp/v2/posts/385">
<link rel="EditURI" type="application/rsd+xml" title="RSD" href="/xmlrpc.php?rsd">
<meta name="generator" content="WordPress 6.5.5">
<link rel="canonical" href="/6-system-resilience-patterns-for-increasing-software-reliability/">
<link rel="shortlink" href="/?p=385">
<link rel="alternate" type="application/json+oembed" href="/wp-json/oembed/1.0/embed?url=%2F6-system-resilience-patterns-for-increasing-software-reliability%2F">
<link rel="alternate" type="text/xml+oembed" href="/wp-json/oembed/1.0/embed?url=%2F6-system-resilience-patterns-for-increasing-software-reliability%2F#038;format=xml">
<!-- StarBox - the Author Box for Humans 3.5.2, visit: http://wordpress.org/plugins/starbox/ -->
<!-- /StarBox - the Author Box for Humans -->
<!-- HappyForms global container -->
<script type="text/javascript">HappyForms = {};</script>
<!-- End of HappyForms global container -->
<meta name="bmi-version" content="1.4.5">
<style>.blog .wp-block-post-template .wp-block-post:last-child .entry-content + .wp-block-separator, .archive .wp-block-post-template .wp-block-post:last-child .entry-content + .wp-block-separator, .blog .wp-block-post-template .wp-block-post:last-child .entry-content + .wp-block-separator, .search .wp-block-post-template .wp-block-post:last-child .wp-block-post-excerpt + .wp-block-separator { display: none; }</style>
<script id="wp-load-polyfill-importmap">
( HTMLScriptElement.supports && HTMLScriptElement.supports("importmap") ) || document.write( '<script src="https://sysmit.com/cf22/wp-includes/js/dist/vendor/wp-polyfill-importmap.min.js?ver=1.8.2"><\/scr' + 'ipt>' );
</script>
<script type="importmap" id="wp-importmap">{"imports":{"@wordpress\/interactivity":"\/wp-includes\/js\/dist\/interactivity.min.js?ver=6.5.5"}}</script>
<script type="module" src="/wp-includes/blocks/navigation/view.min.js?ver=6.5.5" id="@wordpress/block-library/navigation-js-module"></script>
<link rel="modulepreload" href="/wp-includes/js/dist/interactivity.min.js?ver=6.5.5" id="@wordpress/interactivity-js-modulepreload">
<script>(function (s, e, n, d, er) {
s['Sender'] = er;
s[er] = s[er] || function () {
(s[er].q = s[er].q || []).push(arguments)
}, s[er].l = 1 * new Date();
var a = e.createElement(n),
m = e.getElementsByTagName(n)[0];
a.async = 1;
a.src = d;
m.parentNode.insertBefore(a, m)
})(window, document, 'script', 'https://cdn.sender.net/accounts_resources/universal.js', 'sender');
sender('bdd6b34bc12137')</script><style id="wp-fonts-local">@font-face{font-family:Inter;font-style:normal;font-weight:100 700;font-display:block;src:url('/wp-content/themes/ollie/assets/fonts/Inter-VariableFont_slnt,wght.woff2') format('woff2');font-stretch:normal;}</style>
<link rel="icon" href="/wp-content/uploads/SREpath-favicon-120x120.png" sizes="32x32">
<link rel="icon" href="/wp-content/uploads/SREpath-favicon.png" sizes="192x192">
<link rel="apple-touch-icon" href="/wp-content/uploads/SREpath-favicon.png">
<meta name="msapplication-TileImage" content="/wp-content/uploads/SREpath-favicon.png">
</head>
<body class="post-template-default single single-post postid-385 single-format-standard wp-custom-logo wp-embed-responsive">
<div class="wp-site-blocks">
<header class="site-header wp-block-template-part">
<div class="wp-block-group alignfull has-base-color has-main-background-color has-text-color has-background has-link-color wp-elements-fea50d38d3b9b114f39bcb4ad4b116ff has-global-padding is-layout-constrained wp-block-group-is-layout-constrained" style="margin-top:0px;padding-top:var(--wp--preset--spacing--large);padding-right:var(--wp--preset--spacing--medium);padding-bottom:var(--wp--preset--spacing--large);padding-left:var(--wp--preset--spacing--medium)">
<div class="wp-block-group alignwide is-content-justification-space-between is-layout-flex wp-container-core-group-is-layout-1 wp-block-group-is-layout-flex">
<div class="wp-block-site-logo"><a href="/" class="custom-logo-link" rel="home"><img width="167" height="30" src="/wp-content/uploads/SREpath-logo-main.png" class="custom-logo" alt="Boost software reliability | SREpath" decoding="async" srcset="/wp-content/uploads/SREpath-logo-main.png 478w, /wp-content/uploads/SREpath-logo-main-300x54.png 300w" sizes="(max-width: 167px) 100vw, 167px"></a></div>
<nav class="has-text-color has-base-color has-small-font-size is-responsive wp-block-navigation has-small-font-size is-horizontal is-layout-flex wp-container-core-navigation-is-layout-1 wp-block-navigation-is-layout-flex" aria-label="Main Menu" data-wp-interactive="core/navigation" data-wp-context='{"overlayOpenedBy":{"click":false,"hover":false,"focus":false},"type":"overlay","roleAttribute":"","ariaLabel":"Menu"}'><button aria-haspopup="dialog" aria-label="Open menu" class="wp-block-navigation__responsive-container-open " data-wp-on--click="actions.openMenuOnClick" data-wp-on--keydown="actions.handleMenuKeydown"><svg width="24" height="24" xmlns="http://www.w3.org/2000/svg" viewbox="0 0 24 24" aria-hidden="true" focusable="false"><rect x="4" y="7.5" width="16" height="1.5"></rect><rect x="4" y="15" width="16" height="1.5"></rect></svg></button>
<div class="wp-block-navigation__responsive-container has-text-color has-base-color has-background has-main-background-color" id="modal-1" data-wp-class--has-modal-open="state.isMenuOpen" data-wp-class--is-menu-open="state.isMenuOpen" data-wp-watch="callbacks.initMenu" data-wp-on--keydown="actions.handleMenuKeydown" data-wp-on--focusout="actions.handleMenuFocusout" tabindex="-1">
<div class="wp-block-navigation__responsive-close" tabindex="-1">
<div class="wp-block-navigation__responsive-dialog" data-wp-bind--aria-modal="state.ariaModal" data-wp-bind--aria-label="state.ariaLabel" data-wp-bind--role="state.roleAttribute">
<button aria-label="Close menu" class="wp-block-navigation__responsive-container-close" data-wp-on--click="actions.closeMenuOnClick"><svg xmlns="http://www.w3.org/2000/svg" viewbox="0 0 24 24" width="24" height="24" aria-hidden="true" focusable="false"><path d="M13 11.8l6.1-6.3-1-1-6.1 6.2-6.1-6.2-1 1 6.1 6.3-6.5 6.7 1 1 6.5-6.6 6.5 6.6 1-1z"></path></svg></button>
<div class="wp-block-navigation__responsive-container-content" data-wp-watch="callbacks.focusFirstElement" id="modal-1-content">
<ul class="wp-block-navigation__container has-text-color has-base-color has-small-font-size is-responsive wp-block-navigation has-small-font-size">
<li class="has-small-font-size wp-block-navigation-item menu-item menu-item-type-post_type menu-item-object-page menu-item-home current-menu-item page_item page-item-5215 current_page_item wp-block-navigation-link"><a class="wp-block-navigation-item__content" href="/" title=""><span class="wp-block-navigation-item__label">Home</span></a></li>
<li class="has-small-font-size wp-block-navigation-item wp-block-navigation-link"><a class="wp-block-navigation-item__content" href="/reliability-tool-database/"><span class="wp-block-navigation-item__label">Reliability Tools</span></a></li>
<li class="has-small-font-size wp-block-navigation-item wp-block-navigation-link"><a class="wp-block-navigation-item__content" href="/reliability-blueprint/"><span class="wp-block-navigation-item__label">Reliability Blueprint</span></a></li>
<li class="has-small-font-size wp-block-navigation-item wp-block-navigation-link"><a class="wp-block-navigation-item__content" href="https://read.srepath.com/"><span class="wp-block-navigation-item__label">Newsletter</span></a></li>
<li class="has-small-font-size wp-block-navigation-item menu-item menu-item-type-taxonomy menu-item-object-category wp-block-navigation-link"><a class="wp-block-navigation-item__content" href="/podcast/" title=""><span class="wp-block-navigation-item__label">Podcast</span></a></li>
<li class="has-small-font-size wp-block-navigation-item wp-block-navigation-link"><a class="wp-block-navigation-item__content" href="/about/"><span class="wp-block-navigation-item__label">About</span></a></li>
</ul>
</div>
</div>
</div>
</div></nav>
</div>
</div>
</header>
<div class="wp-block-columns is-layout-flex wp-container-core-columns-is-layout-1 wp-block-columns-is-layout-flex">
<div class="wp-block-column is-layout-flow wp-block-column-is-layout-flow" style="flex-basis:30%"><div class="gb-container gb-container-e4ec5504">
<div class="gb-container gb-container-d6a21a91 sticky-sidebar">
<div class="wp-block-ideabox-toc ib-block-toc" data-anchors="h2" data-collapsable="false"><div class="ib-toc-container ib-toc-list-style-numbers ib-toc-hierarchical ib-toc-expanded">
<div class="ib-toc-header" style="font-size:18px"><div class="ib-toc-header-title"><strong>Navigate this page</strong></div></div>
<div class="ib-toc-separator" style="height:1px"></div>
<div class="ib-toc-body" style="color:#000000;font-size:18px;--listSpacing:8px"><ol class="ib-toc-anchors"></ol></div>
</div></div>
</div>
</div></div>
<div class="wp-block-column is-layout-flow wp-block-column-is-layout-flow" style="flex-basis:60%">
<main class="wp-block-group alignwide is-layout-flow wp-container-core-group-is-layout-7 wp-block-group-is-layout-flow" style="margin-top:0;margin-bottom:0;padding-top:var(--wp--preset--spacing--small);padding-bottom:var(--wp--preset--spacing--xx-large)">
<div class="wp-block-group alignfull has-global-padding is-layout-constrained wp-block-group-is-layout-constrained">
<div style="font-style:normal;font-weight:500" class="taxonomy-category has-link-color has-text-color has-primary-color is-style-default wp-block-post-terms has-small-font-size wp-elements-72e07f095da13a7bb673ea461d9ed494">
<a href="/category/articles/" rel="tag">Articles</a><span class="wp-block-post-terms__separator">, </span><a href="/category/technical-guide/" rel="tag">Mildly Technical</a>
</div>
<h1 class="wp-block-post-title has-xx-large-font-size has-secondary-font-family">How 6 system resilience patterns increase software reliability</h1>
<div class="wp-block-group has-secondary-color has-text-color has-link-color has-small-font-size wp-elements-9aa739effdf6d06d6e39339e4e43e1b3 is-nowrap is-layout-flex wp-container-core-group-is-layout-3 wp-block-group-is-layout-flex">
<div style="font-style:normal;font-weight:500;" class="wp-block-post-author">
<div class="wp-block-post-author__avatar"><img alt="" src="https://secure.gravatar.com/avatar/866c53414d1bade269e2c68b0538d9a3?s=48&#038;d=mm&#038;r=g" srcset="https://secure.gravatar.com/avatar/866c53414d1bade269e2c68b0538d9a3?s=96&#038;d=mm&#038;r=g 2x" class="avatar avatar-48 photo" height="48" width="48" decoding="async"></div>
<div class="wp-block-post-author__content"><p class="wp-block-post-author__name">Ash Patel</p></div>
</div>
<p class="has-secondary-color has-text-color">·</p>
<div style="font-style:normal;font-weight:500;" class="wp-block-post-date"><time datetime="2022-04-01T23:42:00+10:00">April 1, 2022</time></div>
</div>
</div>
<div class="entry-content alignwide wp-block-post-content has-global-padding is-layout-constrained wp-block-post-content-is-layout-constrained">
<!-- StarBox - the Author Box for Humans 3.5.2, visit: http://wordpress.org/plugins/starbox/ -->
<!-- /StarBox - the Author Box for Humans -->
<link rel="stylesheet" id="656c5500aa-css" href="/wp-content/plugins/starbox/themes/fancy/css/frontend.min.css?ver=3.5.2" media="all">
<script src="/wp-includes/js/jquery/jquery.min.js?ver=3.7.1" id="jquery-core-js"></script>
<script src="/wp-includes/js/jquery/jquery-migrate.min.js?ver=3.4.1" id="jquery-migrate-js"></script>
<script src="/wp-content/plugins/starbox/themes/fancy/js/frontend.min.js?ver=3.5.2" id="a0f1a0d918-js"></script>
<link rel="stylesheet" id="a337511978-css" href="/wp-content/plugins/starbox/themes/admin/css/hidedefault.min.css?ver=3.5.2" media="all">
<h2 class="gb-headline gb-headline-dd531d16 gb-headline-text" id="introduction">Introduction</h2>
<p>System resilience thinking can inform better Site Reliability Engineering decisions. Specifically, it can affect how the SRE culture unfolds and handles critical situations. </p>
<p>The <em>system resilience </em>concept is rooted in theoretical computer science. </p>
<p>Don&#8217;t panic. I will explain how it can &#8211; <strong>in a practical way &#8211; support increased software reliability</strong> in production. </p>
<p>We will cover six patterns that comprise system resilience:</p>
<div class="gb-grid-wrapper gb-grid-wrapper-72769c23">
<div class="gb-grid-column gb-grid-column-befc6384"><div class="gb-container gb-container-befc6384"><div class="gb-inside-container">
<ol style="font-size:clamp(15.747px, 0.984rem + ((1vw - 3.2px) * 0.878), 24px);">
<li>Adaptive Response</li>
<li>Superior Monitoring</li>
<li>Coordinated Resilience</li>
<li>Heterogeneous Systems</li>
<li>Dynamic Repositioning</li>
<li>Requisite Availability</li>
</ol>
</div></div></div>
<div class="gb-grid-column gb-grid-column-db91ec36"><div class="gb-container gb-container-db91ec36"><div class="gb-inside-container">
<figure class="wp-block-image aligncenter size-full is-resized"><img fetchpriority="high" decoding="async" src="/wp-content/uploads/2022/04/6-system-resilience-patterns-2.png" alt="System resilience depends on orchestration of multiple patterns including superior monitoring, adaptive response, coordinated resilience, dynamic repositioning, heterogenous systems and requisite availability" class="wp-image-483" width="446" height="315" srcset="/wp-content/uploads/2022/04/6-system-resilience-patterns-2.png 595w, /wp-content/uploads/2022/04/6-system-resilience-patterns-2-300x212.png 300w" sizes="(max-width: 446px) 100vw, 446px"></figure>
</div></div></div>
</div>
<p> The above terms likely make little sense, but we will unpack each in a moment. </p>
<p>First, let&#8217;s define system resilience in the software context:</p>
<blockquote class="wp-block-quote is-style-plain has-medium-font-size is-layout-flow wp-block-quote-is-layout-flow" id="adaptive-response">
<p style="font-size:clamp(15.747px, 0.984rem + ((1vw - 3.2px) * 0.878), 24px);"><em>System resilience is the ability of organizational, hardware and software systems to <strong>mitigate the severity and likelihood of failures</strong> <strong>or losses</strong>, to adapt to changing conditions, and to respond appropriately after the fact.</em></p>
<cite>— Jackson, Scott. (2007). System Resilience: Capabilities, Culture and Infrastructure. INCOSE International Symposium.</cite>
</blockquote>
<p>It&#8217;s a very academic definition but very precise in its meaning. The concept of system resilience is important for <strong>proactively addressing software performance and reliability</strong>. </p>
<p>Now, let&#8217;s unpack each of the six patterns of system resilience:</p>
<h2 class="gb-headline gb-headline-63f81da4 gb-headline-text" id="resilience-pattern-1-superior-monitoring">Resilience pattern #1: Superior monitoring</h2>
<h3 class="gb-headline gb-headline-7053cdcb gb-headline-text" id="what-does-it-mean">What does it mean?</h3>
<p>Monitor for and detect adverse events in a timely manner, well before they can snowball into a critical issue. </p>
<h3 class="gb-headline gb-headline-cdb07f65 gb-headline-text" id="how-to-apply-it-to-sre-practice">How to apply it to SRE practice</h3>
<p>You can make for a superior monitoring effort by:</p>
<ul>
<li>seeking indicators for the likelihood and severity of system failures</li>
<li>developing integrated systems of observability (logging, tracing, and monitoring) to increase confidence that adverse events are happening</li>
<li>enhancing this approach by knowing the location, spread, and extent of the adverse event</li>
</ul>
<div style="clear:both; margin-top:0em; margin-bottom:1em;"><a href="/evolution-of-cloud-infrastructure-teams/" target="_blank" rel="dofollow" class="uf3c79acc9a5ba4ef93c6a0f7c7a5f3ff"><!-- INLINE RELATED POSTS 1/3 //--><style>.uf3c79acc9a5ba4ef93c6a0f7c7a5f3ff { padding:0px; margin: 0; padding-top:1em!important; padding-bottom:1em!important; width:100%; display: block; font-weight:bold; background-color:#eaeaea; border:0!important; border-left:4px solid #34495E!important; text-decoration:none; } .uf3c79acc9a5ba4ef93c6a0f7c7a5f3ff:active, .uf3c79acc9a5ba4ef93c6a0f7c7a5f3ff:hover { opacity: 1; transition: opacity 250ms; webkit-transition: opacity 250ms; text-decoration:none; } .uf3c79acc9a5ba4ef93c6a0f7c7a5f3ff { transition: background-color 250ms; webkit-transition: background-color 250ms; opacity: 1; transition: opacity 250ms; webkit-transition: opacity 250ms; } .uf3c79acc9a5ba4ef93c6a0f7c7a5f3ff .ctaText { font-weight:bold; color:#464646; text-decoration:none; font-size: 16px; } .uf3c79acc9a5ba4ef93c6a0f7c7a5f3ff .postTitle { color:#000000; text-decoration: underline!important; font-size: 16px; } .uf3c79acc9a5ba4ef93c6a0f7c7a5f3ff:hover .postTitle { text-decoration: underline!important; }</style>
<div style="padding-left:1em; padding-right:1em;">
<span class="ctaText">Related article:</span>&nbsp; <span class="postTitle">How cloud infrastructure teams evolve &#8211; from start to maturity</span>
</div></a></div>
<h2 class="gb-headline gb-headline-95682775 gb-headline-text" id="resilience-pattern-2-adaptive-response">Resilience pattern #2: Adaptive response</h2>
<h3 class="gb-headline gb-headline-860e43c8 gb-headline-text" id="what-does-it-mean">What does it mean?</h3>
<p>Respond to the adverse event in a timely and effective manner</p>
<h3 class="gb-headline gb-headline-10790c63 gb-headline-text" id="how-to-apply-it-to-sre-practice">How to apply it to SRE practice</h3>
<p>Make these balancing considerations when you detect an adverse event and decide to respond to it:</p>
<ul>
<li>maintain a reasonable speed of response &#8211; not so slow that the incident scales up and not so fast that you miss critical details</li>
<li>have paths of action (<a href="http://Runbooks for better incident responsehttps://www.srepath.com › runbooks-for-better-incident...">like runbooks</a>) ready, but don&#8217;t force a rigid path if the situation begins to move in an unusual direction</li>
<li>understand that initial incidents can branch into splinter issues and have adequate resources to address the likelihood of this</li>
<li>be prepared with a pre-existing tool and process set to rapidly and accurately handle incidents </li>
</ul>
<h2 class="gb-headline gb-headline-68fa05c3 gb-headline-text" id="resilience-pattern-3-coordinated-resilience">Resilience pattern #3: Coordinated resilience</h2>
<h3 class="gb-headline gb-headline-e2e3a6ce gb-headline-text" id="what-does-it-mean">What does it mean?</h3>
<p>Increase the <em>depth of resilience</em> by coordinating several proactive solutions that will hinder emerging incidents before they impact systems.</p>
<h3 class="gb-headline gb-headline-3418c14b gb-headline-text" id="how-to-apply-it-to-sre-practice">How to apply it to SRE practice</h3>
<p>Coordinated resilience begins with the architecture of the software. You can develop a coordinated resilience to incidents by doing the following:</p>
<ul>
<li>integrate methodologies like failover design, security integration, BDD/TDD and DevSecOps</li>
<li>drive developer education in ways to apply the above methods</li>
<li>adopt full-stack tracing to uncover and resolve issues at a multi-layer level</li>
</ul>
<h2 class="gb-headline gb-headline-0a04c171 gb-headline-text" id="resilience-pattern-4-heterogenous-systems">Resilience pattern #4: Heterogenous systems</h2>
<h3 class="gb-headline gb-headline-c42b5bf4 gb-headline-text" id="what-does-it-mean">What does it mean?</h3>
<p>Continually find ways to spread the attack or error vector. This implies driving redundancy in all aspects of service delivery. The aim is to reduce common-mode failure risk at every juncture. </p>
<p>An example would be finding ways to not serve all of the traffic for a high-traffic service using one type of virtual machine service.</p>
<div style="clear:both; margin-top:0em; margin-bottom:1em;"><a href="/site-reliability-engineering-culture-visual-summary-walkthrough/" target="_blank" rel="dofollow" class="uf75002a1f4221fb4750042d8a40789be"><!-- INLINE RELATED POSTS 2/3 //--><style>.uf75002a1f4221fb4750042d8a40789be { padding:0px; margin: 0; padding-top:1em!important; padding-bottom:1em!important; width:100%; display: block; font-weight:bold; background-color:#eaeaea; border:0!important; border-left:4px solid #34495E!important; text-decoration:none; } .uf75002a1f4221fb4750042d8a40789be:active, .uf75002a1f4221fb4750042d8a40789be:hover { opacity: 1; transition: opacity 250ms; webkit-transition: opacity 250ms; text-decoration:none; } .uf75002a1f4221fb4750042d8a40789be { transition: background-color 250ms; webkit-transition: background-color 250ms; opacity: 1; transition: opacity 250ms; webkit-transition: opacity 250ms; } .uf75002a1f4221fb4750042d8a40789be .ctaText { font-weight:bold; color:#464646; text-decoration:none; font-size: 16px; } .uf75002a1f4221fb4750042d8a40789be .postTitle { color:#000000; text-decoration: underline!important; font-size: 16px; } .uf75002a1f4221fb4750042d8a40789be:hover .postTitle { text-decoration: underline!important; }</style>
<div style="padding-left:1em; padding-right:1em;">
<span class="ctaText">Related article:</span>&nbsp; <span class="postTitle">Site Reliability Engineering Culture Patterns</span>
</div></a></div>
<h3 class="gb-headline gb-headline-82691b76 gb-headline-text" id="how-to-apply-to-sre-practice">How to apply to SRE practice</h3>
<p>Consider the following ways to drive heterogeneity:</p>
<ul>
<li>have a variety of service delivery modalities e.g. managed K8s <em>and</em> Lambda for critical services</li>
<li>create vendor-level redundancies where possible i.e. multi-vendor tooling and multi-cloud</li>
</ul>
<h2 class="gb-headline gb-headline-ae7e6e4c gb-headline-text" id="resilience-pattern-5-dynamic-repositioning">Resilience pattern #5: Dynamic repositioning</h2>
<h3 class="gb-headline gb-headline-de04f0ed gb-headline-text" id="what-does-it-mean">What does it mean?</h3>
<p>Increase the ability to recover from an incident by distributing and diversifying resource distribution.</p>
<h3 class="gb-headline gb-headline-86a589ac gb-headline-text" id="how-to-apply-to-sre-practice">How to apply to SRE practice</h3>
<p>This resilience pattern has never been easier thanks to cloud-based software deployment. You have options like: </p>
<ul>
<li>
<strong>Geographical repositioning </strong>&#8211; cloud services are readily available across multiple global zones</li>
<li>
<strong>Cloud repositioning</strong> &#8211; you can run your cloud with multiple public clouds or go hybrid with a combination of public cloud and private cloud</li>
</ul>
<p>Another repositioning possibility is altering how services are housed and coordinated. You can physically separate non-critical services from critical services or alter API rules so that the former doesn&#8217;t overload the latter. </p>
<h2 class="gb-headline gb-headline-1bdc3221 gb-headline-text" id="resilience-pattern-6-requisite-availability">Resilience pattern #6: Requisite availability</h2>
<h3 class="gb-headline gb-headline-b849663c gb-headline-text" id="what-does-it-mean">What does it mean?</h3>
<p>It means being realistic and delineating the importance of your software services. Some systems must be available at all times, others not necessarily. Some data is more important than others.</p>
<p>For example, enterprise users get high availability due to negotiated service-level agreements (SLAs), but free users do not get the same promise.</p>
<h3 class="gb-headline gb-headline-84db317c gb-headline-text" id="how-to-apply-it-to-sre-practice">How to apply it to SRE practice</h3>
<p>You can set tags like <em>service-priority </em>in your service catalog with a tool like Cortex to signify the critical points in the system architecture. For example, <em>&#8220;this service is mission-critical because it serves enterprise users while this one is a lower priority one for storing avatars.&#8221;</em></p>
<p>Concerning data, you can sensitive data to be non-persistent to reduce the risk of corruption or compromise. If it needs to be persisted, consider moving it to a storage option that&#8217;s not directly linked to the service grid. </p>
<div style="clear:both; margin-top:0em; margin-bottom:1em;"><a href="/sre-unique-approach-to-work/" target="_blank" rel="dofollow" class="ue34cddf94df2761b7f8536030013a854"><!-- INLINE RELATED POSTS 3/3 //--><style>.ue34cddf94df2761b7f8536030013a854 { padding:0px; margin: 0; padding-top:1em!important; padding-bottom:1em!important; width:100%; display: block; font-weight:bold; background-color:#eaeaea; border:0!important; border-left:4px solid #34495E!important; text-decoration:none; } .ue34cddf94df2761b7f8536030013a854:active, .ue34cddf94df2761b7f8536030013a854:hover { opacity: 1; transition: opacity 250ms; webkit-transition: opacity 250ms; text-decoration:none; } .ue34cddf94df2761b7f8536030013a854 { transition: background-color 250ms; webkit-transition: background-color 250ms; opacity: 1; transition: opacity 250ms; webkit-transition: opacity 250ms; } .ue34cddf94df2761b7f8536030013a854 .ctaText { font-weight:bold; color:#464646; text-decoration:none; font-size: 16px; } .ue34cddf94df2761b7f8536030013a854 .postTitle { color:#000000; text-decoration: underline!important; font-size: 16px; } .ue34cddf94df2761b7f8536030013a854:hover .postTitle { text-decoration: underline!important; }</style>
<div style="padding-left:1em; padding-right:1em;">
<span class="ctaText">Related article:</span>&nbsp; <span class="postTitle">How SREs are unique in their approach to work</span>
</div></a></div>
<h2 class="gb-headline gb-headline-51f7d5b0 gb-headline-text" id="conclusion">Conclusion</h2>
<p>I hope I have given you effective ideas and critical thinking opportunities for increasing reliability by unpacking these theoretical patterns of system resilience.</p>
<div class="abh_box abh_box_down abh_box_fancy">
<ul class="abh_tabs"> <li class="abh_about abh_active"><a href="#abh_about">Author</a></li> <li class="abh_posts"><a href="#abh_posts">Recent Posts</a></li>
</ul>
<div class="abh_tab_content">
<section class="vcard author abh_about_tab abh_tab" itemscope itemprop="author" itemtype="http://schema.org/Person" style="display:block"><div class="abh_image" itemscope itemtype="http://schema.org/ImageObject">
<a class="url" target="_blank" title="Ash Patel" rel="nofollow"> <img decoding="async" src="/wp-content/uploads/gravatar/3.jpeg" class="photo" width="250" alt="Ash Patel"></a> </div>
<div class="abh_social"> <div style="clear: both; font-size:12px; font-weight:normal; width: 85px; margin: 0 0 2px auto; line-height: 20px;">Connect?</div>
<a itemprop="sameAs" href="https://www.linkedin.com/in/ash-patel-srepath/" title="Twitter" class="abh_twitter" target="_blank" rel="nofollow"></a>
</div>
<div class="abh_text">
<div class="abh_name fn name" itemprop="name" style="font-size:20px !important;"><a class="url" target="_blank" rel="nofollow">Ash Patel</a></div>
<div class="abh_job" style="font-size:18px !important;">
<span class="title" style="font-size:18px !important;">Reliability Nut</span> at <span class="org" style="font-size:18px !important;"><a href="https://www.srepath.com/" target="_blank">SREpath</a></span>
</div>
<div class="description note abh_description" itemprop="description" style="font-size:18px !important;">Ash has an unhealthy obsession with software reliability. Maybe it&#8217;s got to do with the trauma of working at a few companies where software kept slowing or went down while he worked to turn it around. His ma hopes that he can one day turn this passion into a respectable job or business. Still waiting…</div>
</div> </section><section class="abh_posts_tab abh_tab"><div class="abh_image"><a class="url" target="_blank" title="Ash Patel" rel="nofollow"><img decoding="async" src="/wp-content/uploads/gravatar/3.jpeg" class="photo" width="250" alt="Ash Patel"></a></div>
<div class="abh_social"> <div style="clear: both; font-size:12px; font-weight:normal; width: 85px; margin: 0 0 2px auto; line-height: 20px;">Connect?</div>
<ahref title="Twitter" class="abh_twitter" target="_blank" rel="nofollow"></ahref>
</div>
<div class="abh_text">
<div class="abh_name" style="font-size:20px !important;">Latest posts by Ash Patel <span class="abh_allposts">(<a href="/author/kashaup/">see all</a>)</span>
</div>
<div class="abh_description note"><ul> <li style="font-size:18px !important;"> <a href="/sre-2016-book-reaction-chapter-1-part-1-3/">#34 From Cloud to Concrete: Should You Return to On-Prem?</a><span> &#8211; March 26, 2024</span> </li> <li style="font-size:18px !important;"> <a href="/sre-2016-book-reaction-chapter-1-part-1-2/">#33 Inside Google&#8217;s Data Center Design</a><span> &#8211; March 19, 2024</span> </li> <li style="font-size:18px !important;"> <a href="/platform-engineering-role-software-operations/">#32 Clarifying Platform Engineering&#8217;s Role (with Ajay Chankramath)</a><span> &#8211; March 14, 2024</span> </li>
</ul></div>
</div> </section>
</div> </div>
</div>
<div class="wp-block-group has-global-padding is-layout-constrained wp-block-group-is-layout-constrained">
<div class="wp-block-group post-meta has-small-font-size is-content-justification-space-between is-layout-flex wp-container-core-group-is-layout-5 wp-block-group-is-layout-flex" style="border-radius:5px;margin-top:var(--wp--preset--spacing--large)"><div class="taxonomy-post_tag has-link-color has-text-color has-secondary-color is-style-term-button wp-block-post-terms wp-elements-bd79afba7f00a2d2e79e252b6511e7e8">
<a href="/tag/system-design/" rel="tag">system design</a><span class="wp-block-post-terms__separator">, </span><a href="/tag/system-resilience/" rel="tag">system resilience</a>
</div></div>
</div>
</main>
</div>
<div class="wp-block-column is-layout-flow wp-block-column-is-layout-flow" style="flex-basis:20%"></div>
</div>
<footer class="site-footer wp-block-template-part">
<div class="wp-block-group alignfull dark-footer has-base-color has-main-background-color has-text-color has-background has-link-color wp-elements-6e0a8c899515679c402384022b4528f4 has-global-padding is-layout-constrained wp-container-core-group-is-layout-10 wp-block-group-is-layout-constrained" style="margin-top:0px;padding-top:var(--wp--preset--spacing--xx-large);padding-right:var(--wp--preset--spacing--medium);padding-bottom:var(--wp--preset--spacing--xx-large);padding-left:var(--wp--preset--spacing--medium)">
<div class="wp-block-columns alignwide is-layout-flex wp-container-core-columns-is-layout-2 wp-block-columns-is-layout-flex">
<div class="wp-block-column is-layout-flow wp-block-column-is-layout-flow">
<p class="has-text-align-center" style="font-style:normal;font-weight:600">Boost your software&#8217;s reliability</p>
<p class="has-text-align-center has-main-accent-color has-text-color has-small-font-size">That is our #1 goal on this site. </p>
<p class="has-text-align-center has-main-accent-color has-text-color has-small-font-size">We do this by decrypting the complexity around reliability-supporting practices.</p>
<p class="has-text-align-center has-main-accent-color has-text-color has-small-font-size">Practices like Site Reliability Engineering (SRE), DevOps and Platform Engineering.</p>
<p></p>
<div class="gb-grid-wrapper gb-grid-wrapper-2a306ad3">
<div class="gb-grid-column gb-grid-column-adf39bfb"><div class="gb-container gb-container-adf39bfb"></div></div>
<div class="gb-grid-column gb-grid-column-6b3ae155"><div class="gb-container gb-container-6b3ae155">
<iframe src="https://read.srepath.com/embed" width="480" height="320" style="border:1px solid #EEE; background:white;" frameborder="0" scrolling="no"></iframe>
</div></div>
<div class="gb-grid-column gb-grid-column-e35f2f56"><div class="gb-container gb-container-e35f2f56"></div></div>
</div>
<ul class="wp-block-social-links aligncenter has-icon-color has-icon-background-color is-style-default is-content-justification-center is-layout-flex wp-container-core-social-links-is-layout-1 wp-block-social-links-is-layout-flex"><li style="color: #150E29; background-color: #fff; " class="wp-social-link wp-social-link-linkedin has-main-color has-base-background-color wp-block-social-link"><a class="wp-block-social-link-anchor"><svg width="24" height="24" viewbox="0 0 24 24" version="1.1" xmlns="http://www.w3.org/2000/svg" aria-hidden="true" focusable="false"><path d="M19.7,3H4.3C3.582,3,3,3.582,3,4.3v15.4C3,20.418,3.582,21,4.3,21h15.4c0.718,0,1.3-0.582,1.3-1.3V4.3 C21,3.582,20.418,3,19.7,3z M8.339,18.338H5.667v-8.59h2.672V18.338z M7.004,8.574c-0.857,0-1.549-0.694-1.549-1.548 c0-0.855,0.691-1.548,1.549-1.548c0.854,0,1.547,0.694,1.547,1.548C8.551,7.881,7.858,8.574,7.004,8.574z M18.339,18.338h-2.669 v-4.177c0-0.996-0.017-2.278-1.387-2.278c-1.389,0-1.601,1.086-1.601,2.206v4.249h-2.667v-8.59h2.559v1.174h0.037 c0.356-0.675,1.227-1.387,2.526-1.387c2.703,0,3.203,1.779,3.203,4.092V18.338z"></path></svg><span class="wp-block-social-link-label screen-reader-text">LinkedIn</span></a></li></ul>
</div>
</div>
<hr class="wp-block-separator alignwide has-text-color has-secondary-color has-alpha-channel-opacity has-secondary-background-color has-background is-style-separator-dotted">
<div class="wp-block-group alignwide is-layout-flow wp-block-group-is-layout-flow">
<div class="wp-block-group has-main-accent-color has-text-color has-link-color wp-elements-f61512c823a772c477503f2d41fb0964 is-content-justification-center is-layout-flex wp-container-core-group-is-layout-8 wp-block-group-is-layout-flex">
<p class="has-x-small-font-size">© 2024 · SREpath.com</p>
</div>
</div>
</div>
</footer>
</div>
<script id="wp-block-template-skip-link-js-after">( function() {
var skipLinkTarget = document.querySelector( 'main' ),
sibling,
skipLinkTargetID,
skipLink;
// Early exit if a skip-link target can't be located.
if ( ! skipLinkTarget ) {
return;
}
/*
* Get the site wrapper.
* The skip-link will be injected in the beginning of it.
*/
sibling = document.querySelector( '.wp-site-blocks' );
// Early exit if the root element was not found.
if ( ! sibling ) {
return;
}
// Get the skip-link target's ID, and generate one if it doesn't exist.
skipLinkTargetID = skipLinkTarget.id;
if ( ! skipLinkTargetID ) {
skipLinkTargetID = 'wp--skip-link--target';
skipLinkTarget.id = skipLinkTargetID;
}
// Create the skip link.
skipLink = document.createElement( 'a' );
skipLink.classList.add( 'skip-link', 'screen-reader-text' );
skipLink.href = '#' + skipLinkTargetID;
skipLink.innerHTML = 'Skip to content';
// Inject the skip link.
sibling.parentElement.insertBefore( skipLink, sibling );
}() );</script>
<script src="/wp-content/plugins/mystickysidebar/js/detectmobilebrowser.js?ver=1.2.3" id="detectmobilebrowser-js"></script>
<script id="mystickysidebar-js-extra">var mystickyside_name = {"mystickyside_string":"#secondary","mystickyside_content_string":"","mystickyside_margin_top_string":"90","mystickyside_margin_bot_string":"0","mystickyside_update_sidebar_height_string":"false","mystickyside_min_width_string":"795","device_desktop":"1","device_mobile":"1"};</script>
<script src="/wp-content/plugins/mystickysidebar/js/theia-sticky-sidebar.js?ver=1.2.3" id="mystickysidebar-js"></script>
</body>
</html>