Files
nexus/sreweekly/articles/385/03-inside-disney-s-site-reliability-engineering-practice.html
2026-09-12 17:23:01 +08:00

1118 lines
93 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>Inside Disney&#8217;s Site Reliability Engineering practice &#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-heading-inline-css">h1.has-background,h2.has-background,h3.has-background,h4.has-background,h5.has-background,h6.has-background{padding:1.25em 2.375em}h1.has-text-align-left[style*=writing-mode]:where([style*=vertical-lr]),h1.has-text-align-right[style*=writing-mode]:where([style*=vertical-rl]),h2.has-text-align-left[style*=writing-mode]:where([style*=vertical-lr]),h2.has-text-align-right[style*=writing-mode]:where([style*=vertical-rl]),h3.has-text-align-left[style*=writing-mode]:where([style*=vertical-lr]),h3.has-text-align-right[style*=writing-mode]:where([style*=vertical-rl]),h4.has-text-align-left[style*=writing-mode]:where([style*=vertical-lr]),h4.has-text-align-right[style*=writing-mode]:where([style*=vertical-rl]),h5.has-text-align-left[style*=writing-mode]:where([style*=vertical-lr]),h5.has-text-align-right[style*=writing-mode]:where([style*=vertical-rl]),h6.has-text-align-left[style*=writing-mode]:where([style*=vertical-lr]),h6.has-text-align-right[style*=writing-mode]:where([style*=vertical-rl]){rotate:180deg}</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-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>
<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>
<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-spacer-inline-css">.wp-block-spacer{clear:both}</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-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-spacer{margin-top: 0 !important;}
.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-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-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/5482">
<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="/inside-disneys-site-reliability-engineering-practice/">
<link rel="shortlink" href="/?p=5482">
<link rel="alternate" type="application/json+oembed" href="/wp-json/oembed/1.0/embed?url=%2Finside-disneys-site-reliability-engineering-practice%2F">
<link rel="alternate" type="text/xml+oembed" href="/wp-json/oembed/1.0/embed?url=%2Finside-disneys-site-reliability-engineering-practice%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-5482 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/case-studies/" rel="tag">Case Studies</a>
</div>
<h1 class="wp-block-post-title has-xx-large-font-size has-secondary-font-family">Inside Disney&#8217;s Site Reliability Engineering practice</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="2023-04-05T22:19:22+10:00">April 5, 2023</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="wp-block-heading" id="introduction"><strong>Introduction</strong></h2>
<p>It is no small feat to run an ecosystem of entertainment experiences to delight a wide range of people, from young children to older &#8220;Disney adults&#8221;.</p>
<p>Almost every Disney experience relies on a sophisticated technology stack working in the background.</p>
<blockquote class="wp-block-quote is-layout-flow wp-block-quote-is-layout-flow">
<p>&#8220;Steve Jobs once said technology amplifies human ability. At Disney, we use technology to create digital experiences that bring magic to people all around the world.&#8221; — Jason Cox, Director of Global SRE at Disney</p>
</blockquote>
<p>Disney’s SRE teams have ensured that the magic keeps happening, even as experiences and their underlying technology become more and more complex.</p>
<h2 class="wp-block-heading" id="history-of-sre-at-disney"><strong>History of SRE at Disney</strong></h2>
<p>Jason Cox has been the Director of Global SRE at Disney since 2011. </p>
<p>He has helped Disney remain a global leader in the entertainment industry. This is by keeping the company up-to-date as technology has become a critical driver in entertainment.</p>
<p>His promotion to Systems Reliability Engineering tzar at the company saw its challenges.</p>
<p class="has-base-2-background-color has-background">📌 For the record, SRE at Disney is denoted as <em>Systems Reliability Engineering</em>.</p>
<p>He had already been at the company for several years prior, working in the operations team of Disney’s Internet group. The biggest hurdle he saw to effectiveness was that they and every other group operated in siloes.</p>
<p>There weren’t only siloes among departments like technology, product, etc. Disney had four large divisions with separate autonomous CTOs. These divisions were: Studios, Consumer Products and Interactive, Parks and Support, and Media Networks.</p>
<p>While this allowed each division to operate independently, it also resulted in institutionalized Shadow IT. <strong>Every division had its own way of doing things, even for very trivial work.</strong></p>
<p>However, rapid growth necessitated cross-company changes, so a DevOps transformation was undertaken. Jason and his team applied DevOps principles to each part of the business, not just technically but culturally, by breaking down silos and scaling DevOps.</p>
<p>The goal was to improve communication and collaboration, getting technologists from various disciplines to work together and embrace new ideas.</p>
<p>The following issues were on top of mind for the SRE group:</p>
<ul>
<li>As Disney’s businesses expanded digitally, the<strong> </strong>workload and firefighting increased. Development teams faced immense increases in workload as their server counts jumped from 10s to servers to 100s and 1000s.</li>
<li>Bureaucracy and manual processes<strong> </strong>— like tickets for even the smallest of requests — slowed down engineering teams’ ability to deal with business needs and customer demands for rapid iteration e.g. cloud accounts took weeks to provision rather than minutes</li>
<li>Production systems were suffering from low reliability, security, resiliency, and quality</li>
<li>Agile work practices were improving the velocity of development that was hitting production, but that itself was challenging operations because of the scale and speed of changes to production systems</li>
<li>Engineers were burning out due to high cognitive load trying to perform operational heroics during extended periods of firefighting <em>and</em> having no time to improve on the work &#8211; they only had time to react and move on to the next problem</li>
</ul>
<p>Disney’s servers had nicknames after Snow White&#8217;s dwarves — grumpy, sleepy, and dopey to reflect server behaviors — but this amusing behavior revealed a more significant issue of difficulty staying on top of server configurations</p>
<p>😅 <strong>Servers began to take on the personality they were named after</strong></p>
<ul>
<li>Grumpy regularly showed errors</li>
<li>Sleepy kept suffering from high latency</li>
<li>Bashful would disappear from the network for days</li>
</ul>
<p>To address these issues, the newly minted SRE teams worked to create a more centralized IT infrastructure that would streamline operations across all divisions.</p>
<p>They championed several initiatives including:</p>
<ul>
<li>the implementation of company-wide systems of operation — like self-service portals — that would allow different departments to work more efficiently</li>
<li>adoption of newer technologies such as cloud computing and virtualization, which have allowed Disney to scale its operations more effectively</li>
<li>building infrastructure-as-code (IAC) and coupling it with the application code while leveraging technology such as containerization and serverless architecture</li>
<li>shifting focus to reliability with the aim of delivering more reliable applications and experiences through platform abstraction</li>
</ul>
<blockquote class="wp-block-quote is-layout-flow wp-block-quote-is-layout-flow">
<p>&#8220;Our DevOps transformation at Disney focused on technology, leadership, and community. Technology is crucial because it amplifies human ability.&#8221; — Jason Cox, Director, Global SRE at Disney</p>
</blockquote>
<p>With Jason&#8217;s timely vision and his team’s hard work, Disney has been able to stay ahead of the competition and remain a leader in the entertainment industry.</p>
<div style="clear:both; margin-top:0em; margin-bottom:1em;"><a href="/netflixs-site-reliability-engineering-sre-culture-and-practices-audio/" target="_blank" rel="dofollow" class="u0ef5c268fc8ca5c0fa2c3588ccf8d884"><!-- INLINE RELATED POSTS 1/3 //--><style>.u0ef5c268fc8ca5c0fa2c3588ccf8d884 { 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; } .u0ef5c268fc8ca5c0fa2c3588ccf8d884:active, .u0ef5c268fc8ca5c0fa2c3588ccf8d884:hover { opacity: 1; transition: opacity 250ms; webkit-transition: opacity 250ms; text-decoration:none; } .u0ef5c268fc8ca5c0fa2c3588ccf8d884 { transition: background-color 250ms; webkit-transition: background-color 250ms; opacity: 1; transition: opacity 250ms; webkit-transition: opacity 250ms; } .u0ef5c268fc8ca5c0fa2c3588ccf8d884 .ctaText { font-weight:bold; color:#464646; text-decoration:none; font-size: 16px; } .u0ef5c268fc8ca5c0fa2c3588ccf8d884 .postTitle { color:#000000; text-decoration: underline!important; font-size: 16px; } .u0ef5c268fc8ca5c0fa2c3588ccf8d884: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">Netflix&#8217;s Site Reliability Engineering (SRE) Culture and Practices [Audio]</span>
</div></a></div>
<h2 class="wp-block-heading" id="how-sre-has-helped-disneys-tech-operations"><strong>How SRE has helped Disney’s tech operations</strong></h2>
<p>The Systems Reliability Engineering (SRE) team at Disney revolutionized its technology landscape by emphasizing the importance of core DevOps processes.</p>
<p>By incorporating <strong>best practices such as continuous integration and delivery, automated testing, and monitoring</strong>, the team was able to improve the efficiency and reliability of various systems and applications.</p>
<p>The team also worked closely with cross-functional teams to identify and address key pain points, resulting in a more streamlined and effective workflow.</p>
<p>As a result of these efforts, the Disney SRE team was able to significantly enhance the overall performance and scalability of Disney&#8217;s technology infrastructure, leading to improved customer experiences.</p>
<p>In particular, they addressed 2 key challenges…</p>
<h3 class="wp-block-heading" id="disneys-challenge-poor-visibility-across-systems"><strong>Disney&#8217;s challenge: poor visibility across systems</strong></h3>
<p>With operations spread out across multiple locations and environments, it was crucial for Disney SREs to have a way to <strong>track and analyze data from all of their systems in one place</strong>. To achieve this, they invested in sophisticated technology and trained their staff to use it effectively.</p>
<p>They recognized the importance of keeping a close eye on their operations, so they sought to implement systems that could provide them with comprehensive monitoring and observation capabilities.</p>
<p>They also established <strong>clear protocols for identifying and addressing issues, as well as for reporting on progress and performance</strong>.</p>
<p>By taking these steps, Disney was able to ensure that their systems were running smoothly and efficiently, which in turn allowed them to provide the high-quality experiences that their customers have come to expect.</p>
<h3 class="wp-block-heading" id="%25e2%2586%25aa%25ef%25b8%258fnbspsolution-comprehensive-observability">↪️ S<strong>olution: comprehensive observability</strong>
</h3>
<p>Disney employs a variety of methods and technologies to ensure the effectiveness of their monitoring and observability processes. In addition to Splunk, which they use for log analysis, they also utilize Grafana for metrics visualization and PagerDuty for incident management.</p>
<p>Disney&#8217;s use of <strong>Splunk allows them to efficiently analyze logs</strong>, which helps to identify potential problems and expedite the process of resolving them.</p>
<p>By using <strong>Grafana to visualize metrics</strong>, Disney can gain a better understanding of their systems&#8217; performance and proactively address any issues that arise.</p>
<p>Furthermore, PagerDuty&#8217;s <strong>incident management capabilities ensure that the appropriate teams are notified in real-time</strong> when any critical events occur.</p>
<p>In summary, Disney&#8217;s strategic use of these tools and techniques enables them to maintain a highly effective monitoring and observability system, which is essential to ensuring the efficient operation of their complex technological infrastructure.</p>
<hr class="wp-block-separator has-alpha-channel-opacity">
<h3 class="wp-block-heading" id="disneys-challenge-driving-consistent-reliability-at-scale"><strong>Disney&#8217;s challenge: driving consistent reliability at scale</strong></h3>
<p>Disney faced a significant challenge in achieving consistent reliability at scale across all their environments and locations. This was especially challenging due to the sheer size of the organization and the diverse range of locations where they operate.</p>
<h3 class="wp-block-heading" id="%25e2%2586%25aa%25ef%25b8%258fnbspsolution-1-deploy-configuration-management">↪️ S<strong>olution 1: deploy configuration management</strong>
</h3>
<p>To address this challenge, Disney turned to the use of configuration management tools such as Puppet and Chef. These tools have been crucial in helping Disney achieve consistent infrastructure across their numerous environments and locations.</p>
<p>In fact, with the help of Puppet and Chef, the average time to deploy a new environment was reduced from 2 weeks to just 2 hours.</p>
<p>By having a <strong>centralized system for managing configurations</strong>, Disney is able to ensure that all of its systems are running smoothly and are up-to-date.</p>
<div style="clear:both; margin-top:0em; margin-bottom:1em;"><a href="/developer-survive-you-built-it-you-run-it/" target="_blank" rel="dofollow" class="u3cfdbabc5ce1dc5963441411bc730981"><!-- INLINE RELATED POSTS 2/3 //--><style>.u3cfdbabc5ce1dc5963441411bc730981 { 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; } .u3cfdbabc5ce1dc5963441411bc730981:active, .u3cfdbabc5ce1dc5963441411bc730981:hover { opacity: 1; transition: opacity 250ms; webkit-transition: opacity 250ms; text-decoration:none; } .u3cfdbabc5ce1dc5963441411bc730981 { transition: background-color 250ms; webkit-transition: background-color 250ms; opacity: 1; transition: opacity 250ms; webkit-transition: opacity 250ms; } .u3cfdbabc5ce1dc5963441411bc730981 .ctaText { font-weight:bold; color:#464646; text-decoration:none; font-size: 16px; } .u3cfdbabc5ce1dc5963441411bc730981 .postTitle { color:#000000; text-decoration: underline!important; font-size: 16px; } .u3cfdbabc5ce1dc5963441411bc730981: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 developers can survive &#8220;you build it, you run it&#8221;</span>
</div></a></div>
<p>Let’s go through 2 examples where configuration management has made a positive impact:</p>
<p><strong>Example 1 of configuration management</strong></p>
<p>Before implementing CM, employees would <strong>spend eight hours each night manually updating the 100 servers</strong> involved in the &#8220;Toy Story Mania&#8221; attraction. But now, thanks to configuration management, <strong>a single person can update the entire fleet in just 30 minutes</strong>!</p>
<p>By enforcing configuration and converging each system together, configuration management has also helped reduce system drift for Disney. This means that each system is more consistent and performs at a higher level, leading to improved operations and better results.</p>
<p><strong>Example 2 of configuration management</strong></p>
<p>Disney was also able to ensure consistency across the 220 stores they have across the U.S., each with multiple point-of-sale devices. By converging these devices through configuration management, employees could easily verify that everything was working as intended.</p>
<p>→ This is important because it allows the stores to provide a consistent experience for customers, regardless of which store they visit.</p>
<p>In addition, configuration management helps to ensure that employees are able to spend more time helping customers and less time troubleshooting technical issues. By streamlining its technical infrastructure, Disney has also been able to reduce costs associated with maintenance and support.</p>
<p>→ This has allowed them to invest more in other areas of their business, such as marketing and product development.</p>
<h3 class="wp-block-heading" id="%25e2%2586%25aa%25ef%25b8%258fnbspsolution-2-bespoke-automation-tools">↪️ Solution 2: bespoke automation tools</h3>
<p>In addition to using open-source tools, Disney SREs also developed their own internal configuration management tool called the &#8220;Disney Deployment Framework.&#8221;</p>
<p>This framework allows them to <strong>automate the application deployment process and ensure consistency across different environments</strong>. By having a tailored solution that fits the unique needs of the organization, Disney is able to achieve even greater levels of reliability and consistency.</p>
<p>Disney SREs also emphasize the importance of testing configuration management code rigorously. They have developed <strong>a tool called &#8220;Simba&#8221; that allows them to test changes to infrastructure code before deploying it to production</strong>. By doing so, they can catch any issues before they cause problems for the business.</p>
<p>The impact of configuration management has been “truly magical” for Disney. By streamlining their IT processes and ensuring that everything is running smoothly, they are able to focus on delivering an exceptional experience to their customers.</p>
<h2 class="wp-block-heading" id="what-is-disneys-sre-culture-like"><strong>What is Disney’s SRE culture like?</strong></h2>
<h3 class="wp-block-heading" id="the-3-cs-value-system">The 3 C’s value system</h3>
<p>The value system at the Disney company consists of better, faster, safer, happier.</p>
<p>“How do we go for higher quality? That is taking it to the next level of quality.”</p>
<p>“Go faster. Got to get it to market faster.”</p>
<p>Disney’s SRE team culture takes inspiration from this for three values of its own — the 3 C’s:</p>
<figure class="wp-block-image size-full"><img fetchpriority="high" decoding="async" width="742" height="715" src="/wp-content/uploads/disney-sre-culture-three-cs-2.png" alt="" class="wp-image-5488" srcset="/wp-content/uploads/disney-sre-culture-three-cs-2.png 742w, /wp-content/uploads/disney-sre-culture-three-cs-2-300x289.png 300w" sizes="(max-width: 742px) 100vw, 742px"></figure>
<div style="height:48px" aria-hidden="true" class="wp-block-spacer"></div>
<p>This value set has allowed operations-facing engineers at Disney to:</p>
<ul>
<li>become less transactional and more integrated with the work</li>
<li>do less manual work and drive more self-service and automation</li>
</ul>
<h3 class="wp-block-heading" id="lets-fix-the-job-title">“Let’s fix the job title”</h3>
<p>Until 2017, Disney’s operations engineers / SREs were called “Systems operators”. They changed the naming to “Systems Engineers” to reflect that they weren’t just the people “operating the train” but also those who designed the train, built the train, the tracks, and the bridges.</p>
<p>Disney’s SREs began their journey at the company by working with other teams to espouse the above ethos — that they were integrated with the value chain and not outside of it.</p>
<blockquote class="wp-block-quote is-layout-flow wp-block-quote-is-layout-flow">
<p>We began to engineer our future, and as part of that, we became embedded with the teams that we&#8217;re supporting the product teams and the business teams. — Jason Cox</p>
</blockquote>
<h3 class="wp-block-heading" id="toward-a-generative-culture">Toward a generative culture</h3>
<p>SRE leadership has eschewed the traditional management mantra of fear, power orientation, command-and-control, and bureaucracy. They aim to <strong>lead with a generative culture that empowers knowledge workers to achieve their <em>edge</em>.</strong></p>
<p>At the same time, the SRE teams have a unique way of making engineers not become arrogant with thoughts of grandeur that they are A-player rockstars above everyone else.</p>
<div style="clear:both; margin-top:0em; margin-bottom:1em;"><a href="/rundown-of-uber-sre-practice/" target="_blank" rel="dofollow" class="u39884d9477a62bc3751967a14acff49d"><!-- INLINE RELATED POSTS 3/3 //--><style>.u39884d9477a62bc3751967a14acff49d { 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; } .u39884d9477a62bc3751967a14acff49d:active, .u39884d9477a62bc3751967a14acff49d:hover { opacity: 1; transition: opacity 250ms; webkit-transition: opacity 250ms; text-decoration:none; } .u39884d9477a62bc3751967a14acff49d { transition: background-color 250ms; webkit-transition: background-color 250ms; opacity: 1; transition: opacity 250ms; webkit-transition: opacity 250ms; } .u39884d9477a62bc3751967a14acff49d .ctaText { font-weight:bold; color:#464646; text-decoration:none; font-size: 16px; } .u39884d9477a62bc3751967a14acff49d .postTitle { color:#000000; text-decoration: underline!important; font-size: 16px; } .u39884d9477a62bc3751967a14acff49d: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">Rundown of Uber&#8217;s SRE practice</span>
</div></a></div>
<h3 class="wp-block-heading" id="fostering-a-service-mindset">Fostering a service mindset</h3>
<p>“My team sits at the <em>bottom</em> of the corporate hierarchy” — at least that’s the mindset that Jason Cox has instilled in his SRE teams. They are there to be of service to the business stakeholders and the technologists on the ground.</p>
<p>In Jason’s words, “My goal is to say, ‘How can I help?’ So as I go into each one of these segments, I say, ‘I&#8217;m with corporate. I&#8217;m here to help.’&#8221;</p>
<p>People on the ground are still apprehensive when he and his team approach them, especially with the “I’m with corporate” phrase being part of their approach.</p>
<p>He adds that they work and continually communicate to make sure that people and especially engineers on the ground don’t see them as an imposing force, “here to take away your fun”.</p>
<h3 class="wp-block-heading" id="developing-tshaped-skillsets">Developing T-shaped skillsets</h3>
<p>SRE teams acted as tech evangelists that were helping champion the positive changes mentioned earlier across the organization, as well as augmenting product teams with their T-shaped skills.</p>
<p>T-shaped skills refer to the concept that SREs should possess a broad range of skills and knowledge across different fields, while also having deep expertise in a particular area.</p>
<p>For instance, a Site Reliability Engineer may have experience in software development, operations, project management, security, and more. At least a very thin layer of one or several of these areas, enough to be empathetic and have an understanding to lean in and help.</p>
<p>However, they should also have a deeper understanding of one area, such as cloud computing, security, networks, or automation. By having this broad and deep skill set simultaneously, SREs can better understand and empathize with their colleagues in different disciplines.</p>
<h3 class="wp-block-heading" id="a-culture-of-continuous-learning">A culture of continuous learning</h3>
<p>This in turn has helped Disney’s SREs foster more effective collaboration and problem-solving. Furthermore, possessing a diverse range of skills and knowledge can help SREs identify and address issues that may arise in a complex system.</p>
<p>To continue developing their skills, Disney ensures its SREs participate in a community of practice, nicknamed Jedi Engineering Training (JET).</p>
<p>This community has two distinct benefits:</p>
<ol>
<li>New technologies are promoted while a community of people is fostered around discussing technologies and collaborative problem-solving.</li>
<li>External and internal experts visit to speak about their current projects. The community uses these insights to work through problems, adopt innovations, and connect with each other.</li>
</ol>
<h2 class="wp-block-heading" id="parting-words"><strong>Parting words</strong></h2>
<p>As you have read, Disney’s Site Reliability Engineering (SRE) has revolutionized its technology landscape by emphasizing the importance of core DevOps processes such as continuous integration and delivery, automated testing, and observability.</p>
<p>They have also worked to create a more centralized IT infrastructure that would streamline operations across all divisions.</p>
<p>Disney&#8217;s SRE culture consists of collaboration, curiosity, and courage. They aim to lead toward a generative culture that empowers knowledge workers to achieve their edge.</p>
<p>What Walt Disney himself said about Disney’s secret rings very true to how a successful Site Reliability Engineering team can operate:</p>
<p><em>“There’s really no secret about our approach. We keep opening new doors and doing new things — because we’re curious. And curiosity keeps leading us down new paths.”</em></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/digital-transformation/" rel="tag">digital transformation</a><span class="wp-block-post-terms__separator">, </span><a href="/tag/sre-culture/" rel="tag">SRE culture</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>