Files
nexus/sreweekly/articles/228/01-change-advisory-boards-don-t-work.html
2026-09-12 17:23:01 +08:00

1793 lines
127 KiB
HTML
Raw 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 dir="ltr" lang="en" class="initial"> <head><meta charset="utf-8"><title>Change Advisory Boards Don&#39;t Work | Octopus blog</title><meta name="robots" content="max-image-preview:large, index, follow"><meta name="keywords"><meta name="description" content="Proper scrutiny is important, but CABs are an inefficient and ineffective way to scrutinize."><link rel="preconnect" href="https://octopus.com" crossorigin><link rel="preload" as="image" href="/blog/i/x/cover/change-advisory-boards.png" imagesrcset="/blog/i/600/cover/change-advisory-boards.webp 600w, /blog/i/1000/cover/change-advisory-boards.webp 750w" imagesizes="(min-width: 1680px) 1000px, (min-width: 940px) calc(71.81vw - 192px), calc(100vw - 32px)" fetchpriority="high"><link rel="stylesheet" href="https://octopus.com/octopus-public/assets/pu-vars.css"><link rel="stylesheet" href="https://octopus.com/octopus-public/assets/navbar-pu-styles.css"><link rel="stylesheet" href="https://octopus.com/octopus-public/assets/footer-pu-styles.css" media="print" onload="this.media='all';this.onload=null"><link rel="stylesheet" href="https://octopus.com/octopus-public/assets/marketo-pu-styles.css" media="print" onload="this.media='all';this.onload=null"><noscript><link rel="stylesheet" href="https://octopus.com/octopus-public/assets/footer-pu-styles.css"><link rel="stylesheet" href="https://octopus.com/octopus-public/assets/marketo-pu-styles.css"></noscript><link rel="stylesheet" href="/blog/css/vars.css"><link rel="stylesheet" href="/blog/css/main.css"><meta name="viewport" content="width=device-width, initial-scale=1, minimum-scale=1"><meta name="format-detection" content="telephone=no"><meta name="theme-color" content="#311e3e"><link rel="canonical" href="https://octopus.com/blog/change-advisory-boards-dont-work"><link rel="alternate" type="application/atom+xml" title="Octopus blog" href="/blog/feed.xml"><link rel="alternate" href="/blog/sitemap.xml" type="application/rss+xml"><link rel="shortcut icon" href="/blog/icons/favicon.ico" type="image/x-icon"><link rel="apple-touch-icon" href="/blog/icons/apple-touch-icon.png"><meta property="og:type" content="website"><meta property="og:url" content="https://octopus.com/blog/change-advisory-boards-dont-work"><meta property="og:title" content="Change Advisory Boards Don't Work"><meta property="og:description" content="Proper scrutiny is important, but CABs are an inefficient and ineffective way to scrutinize."><meta property="og:image" content="https://octopus.com/blog/img/cover/change-advisory-boards.png"><meta property="og:image:alt" content="Change Advisory Boards Don't Work"><meta name="twitter:card" content="summary_large_image"><meta name="twitter:title" content="Change Advisory Boards Don't Work"><meta name="twitter:description" content="Proper scrutiny is important, but CABs are an inefficient and ineffective way to scrutinize."><meta name="twitter:image" content="https://octopus.com/blog/img/cover/change-advisory-boards.png"><meta name="twitter:image:alt" content="Change Advisory Boards Don't Work"><meta name="view-transition" content="same-origin"><!-- Icons are decorative and used on ~10% of pages - load off the critical path -->
<link href="/blog/css/fa/css/fontawesome.css" rel="stylesheet" media="print" onload="this.media='all';this.onload=null">
<link href="/blog/css/fa/css/brands.css" rel="stylesheet" media="print" onload="this.media='all';this.onload=null">
<link href="/blog/css/fa/css/solid.css" rel="stylesheet" media="print" onload="this.media='all';this.onload=null">
<noscript>
<link href="/blog/css/fa/css/fontawesome.css" rel="stylesheet">
<link href="/blog/css/fa/css/brands.css" rel="stylesheet">
<link href="/blog/css/fa/css/solid.css" rel="stylesheet">
</noscript>
<meta name="google-site-verification" content="nIbWsTU_ELqMnLNxIexH_s6ch3m-s_MaFnl5u8WoaRM" />
<!-- Inline Script to set the initial theme -->
<script>
(() => {
const theme = localStorage.getItem('theme') || (window.matchMedia('(prefers-color-scheme: dark)').matches ? 'dark' : 'light');
document.documentElement.setAttribute('data-theme', theme);
})();
</script>
<script defer>
const whenActivated = new Promise((resolve) => {
if (document.prerendering) {
document.addEventListener('prerenderingchange', resolve);
} else {
resolve();
}
});
async function add_gtm(w,d,s,l,i) {
// Only add analytics if the page is not "pre-rendering"
await whenActivated;
w[l] = w[l]||[];w[l].push({'gtm.start': new Date().getTime(), event:'gtm.js'});
var f = d.getElementsByTagName(s)[0],
j = d.createElement(s),
dl = l != 'dataLayer'
? '&l=' + l
: '';
j.defer=true;
j.src= 'https://www.googletagmanager.com/gtm.js?id='+i+dl;
f.parentNode.insertBefore(j, f);
}
if (document.location.hostname === 'octopus.com'
|| document.location.hostname === 'www.octopus.com') {
// Only add analytics to production site
add_gtm(window, document, 'script', 'dataLayer', 'GTM-MQ943TFN');
}
</script><script type="application/ld+json">{
"@context": "https://schema.org",
"@type": "NewsArticle",
"headline": "Change Advisory Boards Don't Work",
"description": "Proper scrutiny is important, but CABs are an inefficient and ineffective way to scrutinize.",
"author": {
"@type": "Person",
"name": "Alex Yates"
},
"datePublished": "2020-07-16T00:00:00.000Z",
"dateModified": "2020-07-16T00:00:00.000Z",
"publisher": {
"@type": "Organization",
"name": "Octopus Deploy",
"logo": {
"@type": "ImageObject",
"url": "/blog/img/octopus-glyph.png",
"width": 32,
"height": 32
}
},
"mainEntityOfPage": {
"@type": "WebPage",
"@id": "https://octopus.com/blog/change-advisory-boards-dont-work"
},
"image": {
"@type": "ImageObject",
"url": "https://octopus.com/blog/img/cover/change-advisory-boards.png",
"width": 1200,
"height": 800
},
"articleSection": "DevOps"
}</script><script type="application/ld+json">{"@context":"https://schema.org","@type":"BreadcrumbList","itemListElement":[{"@type":"ListItem","position":1,"name":"Home","item":"https://octopus.com/"},{"@type":"ListItem","position":2,"name":"Blog","item":"https://octopus.com/blog"},{"@type":"ListItem","position":3,"name":"Change Advisory Boards Don't Work","item":"https://octopus.com/blog/change-advisory-boards-dont-work"}]}</script></head> <body data-theme="dark"> <nav class="skip-links" aria-label="Skip Links" id="site-top"> <a href="#site-nav">Skip to navigation</a> <a href="#site-main">Skip to main content</a> <a href="#site-footer">Skip to footer</a> </nav> <div data-shared-source="live" data-shared-fragment="navbar" data-shared-note="fetched https://octopus.com/fragments/navbar at 2026-09-11T10:55:57.546Z">
<nav class="navbar navbar-pu site-header" aria-label="Main" data-navbar-pu itemscope itemtype="https://schema.org/SiteNavigationElement">
<div class="nav-container">
<div class="navbar-content">
<a class="navbar__logo" href="https://octopus.com/" aria-label="Octopus Deploy homepage" data-navbar-logo itemprop="url">
<svg id="glyph-icon" class="icon icon--octopus" xmlns="http://www.w3.org/2000/svg" width="144.4" height="154.6" version="1.1" viewBox="0 0 144.4 154.6">
<!-- Generator: Adobe Illustrator 29.3.1, SVG Export Plug-In . SVG Version: 2.1.0 Build 151) -->
<defs>
<style>
.logo-color {
fill: #0d80d8;
}
</style>
</defs>
<path id="glyph-icon1" data-name="glyph-icon" class="logo-color" d="M9.5,117.2c11.5-7.6,24.9-20.4,20-35.4-2.8-8.3-6.6-15.2-7.3-24.2-.5-7.6.7-15.2,3.3-22.1C35.8,7.4,66.6-5.9,94.4,2.4c25.6,7.8,43.2,38,32.7,64.1-6.1,15.2-8.9,27.1,4.7,38.7,3.8,3.1,12.7,8.1,12.7,13.8s-14.6-1.7-16-2.8c1.9,3.3,20,22.3,8.5,23.8-10.6,1.2-20-13.8-26.3-20.2-10.8-10.9-8.9,13.1-8.9,18.1,0,7.8-5.6,23.8-15.3,13.3-8-8.6-4.9-22.1-10.6-31.6-6.1-10.5-16.5,10.5-19,14.3-2.8,4.3-17.2,24.7-22.8,13.8-4.7-8.8,2.8-22.8,6.3-30.9-1.4,2.8-10.8,7.1-13.4,8.6-5.9,3.3-12.7,5-19.5,4.5-14.8-1-3.8-8.8,2.1-12.6Z"/>
</svg>
<svg id="wordmark-octopus-deploy" class="icon icon--octopus-deploy-wordmark" xmlns="http://www.w3.org/2000/svg" width="751.5" height="98.9" version="1.1" viewBox="0 0 751.5 98.9">
<!-- Generator: Adobe Illustrator 29.3.1, SVG Export Plug-In . SVG Version: 2.1.0 Build 151) -->
<defs>
<style>
.logo-wordmark-color {
fill: #0a151e;
}
</style>
</defs>
<path id="wordmark-octopus-deploy1" data-name="wordmark-octopus-deploy" class="logo-wordmark-color" d="M70.2,39.2c0,8.2-1.5,15.3-4.6,21.2-3.1,5.8-7.2,10.3-12.5,13.4-5.3,3.1-11.3,4.7-17.9,4.7s-12.7-1.6-18-4.7c-5.3-3.1-9.4-7.6-12.5-13.5C1.5,54.5,0,47.5,0,39.2s1.5-15.3,4.6-21.1c3.1-5.9,7.3-10.4,12.5-13.5C22.4,1.6,28.4,0,35.1,0s12.7,1.6,17.9,4.7c5.3,3.1,9.5,7.6,12.5,13.5,3.1,5.8,4.6,12.9,4.6,21.1ZM56.3,39.2c0-5.8-.9-10.7-2.7-14.7-1.8-4-4.3-7-7.5-9.1-3.2-2.1-6.9-3.1-11-3.1s-7.8,1-11,3.1c-3.2,2-5.7,5.1-7.5,9.1-1.8,4-2.7,8.9-2.7,14.7s.9,10.7,2.7,14.7c1.8,4,4.3,7,7.5,9.1,3.2,2,6.9,3.1,11,3.1s7.8-1,11-3.1c3.2-2.1,5.7-5.1,7.5-9.1,1.8-4,2.7-8.9,2.7-14.7ZM103.6,78.6c-5.7,0-10.6-1.3-14.7-3.8-4.1-2.5-7.2-6-9.4-10.4-2.2-4.5-3.3-9.6-3.3-15.4s1.1-11,3.4-15.4c2.2-4.5,5.4-8,9.5-10.4,4.1-2.5,9-3.8,14.5-3.8s8.8.9,12.3,2.6c3.6,1.7,6.5,4.1,8.6,7.2,2.1,3.1,3.4,6.7,3.7,10.8h-12.9c-.5-2.8-1.8-5.1-3.7-6.9-1.9-1.9-4.5-2.8-7.8-2.8s-5.2.7-7.3,2.2c-2.1,1.5-3.7,3.6-4.9,6.3-1.1,2.8-1.7,6.1-1.7,9.9s.6,7.3,1.7,10.1c1.1,2.8,2.7,4.9,4.8,6.5,2.1,1.5,4.5,2.2,7.4,2.2s3.8-.4,5.3-1.1c1.6-.8,2.9-1.9,4-3.3,1.1-1.4,1.8-3.2,2.2-5.3h12.9c-.3,4.1-1.5,7.6-3.6,10.8-2.1,3.1-4.9,5.5-8.4,7.3-3.6,1.7-7.7,2.6-12.5,2.6ZM163.8,20.1v10.4h-32.9v-10.4h32.9ZM139,6.4h13.5v53.8c0,1.8.3,3.2.8,4.2.6.9,1.3,1.6,2.2,1.9.9.3,1.9.5,3.1.5s1.6,0,2.3-.2c.7-.1,1.3-.2,1.6-.3l2.3,10.6c-.7.2-1.8.5-3.1.8-1.3.3-2.9.5-4.8.5-3.4.1-6.4-.4-9.1-1.5-2.7-1.1-4.9-2.9-6.5-5.3-1.6-2.4-2.3-5.4-2.3-9V6.4ZM195.4,78.6c-5.6,0-10.4-1.2-14.5-3.7-4.1-2.5-7.3-5.9-9.6-10.3-2.2-4.4-3.4-9.6-3.4-15.5s1.1-11.1,3.4-15.6c2.3-4.5,5.4-7.9,9.6-10.4,4.1-2.5,9-3.7,14.5-3.7s10.4,1.2,14.6,3.7c4.1,2.5,7.3,5.9,9.5,10.4,2.3,4.5,3.4,9.6,3.4,15.6s-1.1,11.1-3.4,15.5c-2.2,4.4-5.4,7.9-9.5,10.3-4.1,2.5-9,3.7-14.6,3.7ZM195.5,67.7c3,0,5.6-.8,7.6-2.5,2-1.7,3.6-4,4.6-6.8,1-2.8,1.5-6,1.5-9.5s-.5-6.7-1.5-9.5c-1-2.9-2.5-5.1-4.6-6.8-2-1.7-4.6-2.5-7.6-2.5s-5.7.8-7.8,2.5c-2,1.7-3.6,4-4.6,6.8-1,2.8-1.5,6-1.5,9.5s.5,6.6,1.5,9.5c1,2.8,2.5,5.1,4.6,6.8,2.1,1.7,4.7,2.5,7.8,2.5ZM230.3,98.9V20.1h13.3v9.5h.8c.7-1.4,1.7-2.9,2.9-4.4,1.3-1.6,3-2.9,5.1-4.1,2.2-1.1,4.9-1.7,8.3-1.7s8.4,1.1,12,3.4c3.6,2.2,6.4,5.6,8.5,10,2.1,4.4,3.2,9.7,3.2,16.1s-1,11.6-3.1,16c-2.1,4.4-4.9,7.8-8.4,10.1-3.6,2.3-7.6,3.5-12.1,3.5s-6-.5-8.2-1.6c-2.2-1.1-3.9-2.4-5.2-4-1.3-1.6-2.3-3-3-4.4h-.6v30.5h-13.5ZM243.5,48.8c0,3.7.5,7,1.6,9.7,1.1,2.8,2.6,5,4.6,6.5,2,1.5,4.5,2.3,7.3,2.3s5.5-.8,7.5-2.4c2-1.6,3.5-3.8,4.6-6.6,1-2.8,1.6-6,1.6-9.6s-.5-6.7-1.5-9.5c-1-2.8-2.5-4.9-4.6-6.5-2-1.6-4.5-2.4-7.5-2.4s-5.3.8-7.3,2.3c-2,1.5-3.5,3.6-4.6,6.4-1,2.7-1.5,6-1.5,9.7ZM328.4,53.3V20.1h13.5v57.3h-13.1v-10.2h-.6c-1.3,3.2-3.4,5.8-6.4,7.9-2.9,2-6.6,3.1-10.9,3.1s-7.1-.8-10-2.5c-2.9-1.7-5.1-4.1-6.7-7.3-1.6-3.2-2.4-7.1-2.4-11.7V20.1h13.5v34.4c0,3.6,1,6.5,3,8.7,2,2.1,4.6,3.2,7.8,3.2s3.9-.5,5.8-1.5c1.9-1,3.4-2.4,4.6-4.3,1.2-1.9,1.8-4.4,1.8-7.3ZM397,35.3l-12.3,1.3c-.3-1.2-1-2.4-1.8-3.5-.8-1.1-2-2-3.4-2.6-1.4-.7-3.2-1-5.3-1s-5.2.6-7.1,1.8c-1.9,1.2-2.8,2.8-2.8,4.7,0,1.7.6,3,1.8,4.1,1.3,1,3.4,1.9,6.3,2.6l9.8,2.1c5.4,1.2,9.5,3,12.1,5.6,2.7,2.5,4,5.9,4,10,0,3.6-1.1,6.8-3.2,9.6-2.1,2.7-4.9,4.9-8.6,6.4-3.7,1.5-7.9,2.3-12.7,2.3-7,0-12.7-1.5-16.9-4.4-4.3-3-6.8-7.1-7.6-12.3l13.2-1.3c.6,2.6,1.9,4.5,3.8,5.9,1.9,1.3,4.5,2,7.6,2s5.8-.7,7.7-2c2-1.3,2.9-2.9,2.9-4.9s-.6-3-1.9-4.1c-1.2-1.1-3.2-1.9-5.8-2.5l-9.8-2.1c-5.5-1.1-9.6-3.1-12.2-5.8-2.6-2.7-3.9-6.2-3.9-10.4,0-3.5.9-6.6,2.9-9.2,2-2.6,4.7-4.6,8.2-6,3.5-1.4,7.5-2.2,12.1-2.2,6.7,0,12,1.4,15.9,4.3,3.9,2.9,6.3,6.7,7.2,11.6ZM453.8,77.4h-25.9V1h26.4c7.6,0,14.1,1.5,19.5,4.6,5.5,3,9.7,7.4,12.6,13.1,2.9,5.7,4.4,12.5,4.4,20.4s-1.5,14.8-4.4,20.5c-2.9,5.7-7.2,10.1-12.7,13.2-5.5,3.1-12.2,4.6-19.9,4.6ZM441.7,65.5h11.4c5.3,0,9.8-1,13.3-2.9,3.6-2,6.2-4.9,8-8.8,1.8-3.9,2.7-8.8,2.7-14.6s-.9-10.7-2.7-14.5c-1.8-3.9-4.4-6.8-7.9-8.7-3.5-1.9-7.8-2.9-13-2.9h-11.8v52.5ZM524.7,78.6c-5.7,0-10.7-1.2-14.9-3.6-4.2-2.4-7.3-5.8-9.6-10.2-2.2-4.4-3.4-9.6-3.4-15.6s1.1-11.1,3.4-15.5c2.3-4.5,5.4-8,9.5-10.4,4.1-2.5,8.8-3.8,14.3-3.8s6.9.6,10,1.7c3.2,1.1,5.9,2.9,8.4,5.2,2.4,2.4,4.4,5.4,5.7,9,1.4,3.6,2.1,8,2.1,13v4.1h-47v-9.1h34c0-2.6-.6-4.9-1.7-6.9-1.1-2-2.6-3.6-4.6-4.8-1.9-1.2-4.2-1.8-6.8-1.8s-5.2.7-7.3,2c-2.1,1.3-3.7,3.1-4.9,5.2-1.1,2.1-1.7,4.5-1.8,7.1v7.9c0,3.3.6,6.2,1.8,8.6,1.2,2.4,2.9,4.2,5.1,5.4,2.2,1.2,4.8,1.9,7.7,1.9s3.7-.3,5.3-.8c1.6-.6,3-1.4,4.1-2.5,1.2-1.1,2.1-2.4,2.6-4.1l12.6,1.4c-.8,3.3-2.3,6.2-4.6,8.7-2.2,2.5-5,4.4-8.5,5.7-3.5,1.3-7.4,2-11.9,2ZM557.5,98.9V20.1h13.3v9.5h.8c.7-1.4,1.7-2.9,2.9-4.4,1.3-1.6,3-2.9,5.1-4.1,2.2-1.1,4.9-1.7,8.3-1.7s8.4,1.1,12,3.4c3.6,2.2,6.4,5.6,8.5,10,2.1,4.4,3.2,9.7,3.2,16.1s-1,11.6-3.1,16c-2.1,4.4-4.9,7.8-8.4,10.1-3.6,2.3-7.6,3.5-12.1,3.5s-6-.5-8.2-1.6c-2.2-1.1-3.9-2.4-5.2-4-1.3-1.6-2.3-3-3-4.4h-.6v30.5h-13.5ZM570.8,48.8c0,3.7.5,7,1.6,9.7,1.1,2.8,2.6,5,4.6,6.5,2,1.5,4.5,2.3,7.3,2.3s5.5-.8,7.5-2.4c2-1.6,3.5-3.8,4.6-6.6,1-2.8,1.6-6,1.6-9.6s-.5-6.7-1.5-9.5c-1-2.8-2.5-4.9-4.6-6.5-2-1.6-4.5-2.4-7.5-2.4s-5.3.8-7.3,2.3c-2,1.5-3.5,3.6-4.6,6.4-1,2.7-1.5,6-1.5,9.7ZM632.6,1v76.4h-13.5V1h13.5ZM667.4,78.6c-5.6,0-10.4-1.2-14.5-3.7-4.1-2.5-7.3-5.9-9.5-10.3-2.2-4.4-3.4-9.6-3.4-15.5s1.1-11.1,3.4-15.6c2.3-4.5,5.4-7.9,9.5-10.4s9-3.7,14.5-3.7,10.4,1.2,14.5,3.7c4.1,2.5,7.3,5.9,9.5,10.4,2.3,4.5,3.4,9.6,3.4,15.6s-1.1,11.1-3.4,15.5c-2.2,4.4-5.4,7.9-9.5,10.3-4.1,2.5-9,3.7-14.5,3.7ZM667.5,67.7c3,0,5.6-.8,7.6-2.5,2-1.7,3.6-4,4.6-6.8,1-2.8,1.5-6,1.5-9.5s-.5-6.7-1.5-9.5c-1-2.9-2.5-5.1-4.6-6.8-2-1.7-4.6-2.5-7.6-2.5s-5.7.8-7.8,2.5c-2,1.7-3.6,4-4.6,6.8-1,2.8-1.5,6-1.5,9.5s.5,6.6,1.5,9.5c1,2.8,2.5,5.1,4.6,6.8,2.1,1.7,4.7,2.5,7.8,2.5ZM708.7,98.9c-1.8,0-3.5-.1-5.1-.4-1.5-.3-2.8-.6-3.7-1l3.1-10.5c2,.6,3.7.8,5.3.8s2.9-.5,4.1-1.5c1.2-.9,2.2-2.5,3-4.6l1.2-3.1-20.8-58.5h14.3l13.2,43.3h.6l13.2-43.3h14.4l-22.9,64.2c-1.1,3-2.5,5.6-4.3,7.8-1.8,2.2-3.9,3.9-6.5,5-2.5,1.2-5.6,1.8-9.1,1.8Z"/>
</svg>
<span class="visually-hidden" itemprop="name">Octopus Deploy</span>
</a>
<div id="main-navbar" class="navbar__menu" data-navbar-menu>
<ul class="navbar__sections">
<li class="navbar__section">
<button type="button" class="navbar__button" aria-expanded="false" aria-controls="dropdown-solutions"
data-navbar-section-toggle data-target="dropdown-solutions"
aria-label="Solutions menu">
<span>Solutions</span>
<svg class="icon icon--chevron-navbar" width="13" height="8" viewBox="0 0 13 8" fill="none" xmlns="http://www.w3.org/2000/svg">
<path d="M1.98755 1.5L6.98755 6.5L11.9875 1.5" stroke="#303E49" stroke-width="2" stroke-linecap="round" stroke-linejoin="round"/>
</svg>
</button>
</li>
<li class="navbar__section">
<a class="navbar__button" href="https://octopus.com/pricing/overview" itemprop="url">
<span itemprop="name">Pricing</span>
</a>
</li>
<li class="navbar__section">
<a class="navbar__button" href="https://octopus.com/docs" target="_blank" rel="noopener noreferrer" itemprop="url">
<span itemprop="name">Docs</span>
</a>
</li>
<li class="navbar__section">
<button type="button" class="navbar__button" aria-expanded="false" aria-controls="dropdown-resources"
data-navbar-section-toggle data-target="dropdown-resources"
aria-label="Resources menu">
<span>Resources</span>
<svg class="icon icon--chevron-navbar" width="13" height="8" viewBox="0 0 13 8" fill="none" xmlns="http://www.w3.org/2000/svg">
<path d="M1.98755 1.5L6.98755 6.5L11.9875 1.5" stroke="#303E49" stroke-width="2" stroke-linecap="round" stroke-linejoin="round"/>
</svg>
</button>
</li>
<li class="navbar__section">
<button type="button" class="navbar__button" aria-expanded="false" aria-controls="dropdown-company"
data-navbar-section-toggle data-target="dropdown-company"
aria-label="Company menu">
<span>Company</span>
<svg class="icon icon--chevron-navbar" width="13" height="8" viewBox="0 0 13 8" fill="none" xmlns="http://www.w3.org/2000/svg">
<path d="M1.98755 1.5L6.98755 6.5L11.9875 1.5" stroke="#303E49" stroke-width="2" stroke-linecap="round" stroke-linejoin="round"/>
</svg>
</button>
</li>
</ul>
<ul class="navbar__sections navbar__sections--secondary" data-navbar-secondary>
<li class="navbar__section" data-navbar-signin>
<a class="navbar__button" href="https://octopus.com/signin" rel="nofollow" itemprop="url">
<span itemprop="name">Sign in</span>
</a>
</li>
<li class="navbar__section navbar__section--contact">
<a class="navbar__button navbar__button--contact button button--secondary" href="https://octopus.com/company/contact" itemprop="url">
<span itemprop="name">Contact us</span>
</a>
</li>
<li class="navbar__section" data-navbar-signup>
<a class="navbar__button navbar__button--signup button button--primary" href="https://octopus.com/free-signup?location=nav-bar" rel="nofollow" itemprop="url">
<span itemprop="name">Start for free</span>
</a>
</li>
<li class="navbar__section navbar__section--user" data-navbar-profile hidden>
<div class="navbar__user-menu">
<button type="button" class="navbar__button navbar__user-toggle" data-navbar-profile-link
aria-expanded="false" aria-controls="dropdown-user" data-target="dropdown-user"
aria-label="User profile menu">
<span class="navbar__profile-image" data-navbar-profile-image>
<img src="data:image/gif;base64,R0lGODlhAQABAAAAACw=" alt="" loading="lazy" hidden />
</span>
<span class="personal" data-navbar-profile-name>User</span>
<svg class="icon icon--chevron-navbar" width="13" height="8" viewBox="0 0 13 8" fill="none" xmlns="http://www.w3.org/2000/svg">
<path d="M1.98755 1.5L6.98755 6.5L11.9875 1.5" stroke="#303E49" stroke-width="2" stroke-linecap="round" stroke-linejoin="round"/>
</svg>
</button>
</div>
</li>
</ul>
</div>
<button class="navbar__toggler" type="button" aria-label="Open navigation menu" aria-controls="main-navbar" aria-expanded="false" data-navbar-toggler>
<span class="hamburger" aria-hidden="true">
<span class="hamburger__bar"></span>
<span class="hamburger__bar"></span>
<span class="hamburger__bar"></span>
</span>
</button>
</div>
</div>
<div class="navbar__panels" data-navbar-panels>
<nav class="navbar__dropdown" id="dropdown-solutions" data-navbar-dropdown aria-label="Solutions">
<button type="button" class="navbar__back-btn" data-navbar-back aria-label="Back to menu">
<svg class="icon icon--chevron-navbar" width="13" height="8" viewBox="0 0 13 8" fill="none" xmlns="http://www.w3.org/2000/svg">
<path d="M1.98755 1.5L6.98755 6.5L11.9875 1.5" stroke="#303E49" stroke-width="2" stroke-linecap="round" stroke-linejoin="round"/>
</svg>
<span>Back</span>
</button>
<div class="navbar__subsection">
<ul class="navbar__subsection-items">
<li class="navbar__item">
<span class="navbar__item-sub-category">Octopus Deploy</span>
</li>
<li class="navbar__item">
<a class="navbar__item-link" href="https://octopus.com/use-case/kubernetes" itemprop="url">
<span class="navbar__item-icon" aria-hidden="true">
<span class="image-wrapper">
<img src="https://a.storyblok.com/f/185929/45x45/c234e77f86/icon-kubernetes.svg" alt="Kubernetes icon logo steer blue gradient" loading="lazy" width="45" height="45" />
</span>
</span>
<span class="navbar__item-label" itemprop="name">Kubernetes deployments</span>
</a>
</li>
<li class="navbar__item">
<a class="navbar__item-link" href="https://octopus.com/use-case/platform-hub" itemprop="url">
<span class="navbar__item-icon" aria-hidden="true">
<span class="image-wrapper">
<img src="https://a.storyblok.com/f/185929/45x45/cc44e17bdf/icon-platform-hub.svg" alt="Blue boxes stacked on top of each other" loading="lazy" width="45" height="45" />
</span>
</span>
<span class="navbar__item-label" itemprop="name">Platform Hub</span>
</a>
</li>
<li class="navbar__item">
<a class="navbar__item-link" href="https://octopus.com/use-case/environment-promotion" itemprop="url">
<span class="navbar__item-icon" aria-hidden="true">
<span class="image-wrapper">
<img src="https://a.storyblok.com/f/185929/45x45/e2c09018a3/icon-environment-promotion.svg" alt="icon environment promotion gear blue gradient" loading="lazy" width="45" height="45" />
</span>
</span>
<span class="navbar__item-label" itemprop="name">Environment promotion</span>
</a>
</li>
<li class="navbar__item">
<a class="navbar__item-link" href="https://octopus.com/ai-tools" itemprop="url">
<span class="navbar__item-icon" aria-hidden="true">
<span class="image-wrapper">
<img src="https://a.storyblok.com/f/185929/45x45/bd93d826d3/icon-ai.svg" alt="AI icon" loading="lazy" width="45" height="45" />
</span>
</span>
<span class="navbar__item-label" itemprop="name">AI tools</span>
</a>
</li>
<li class="navbar__item">
<a class="navbar__item-link" href="https://octopus.com/use-case/argo-cd-in-octopus" itemprop="url">
<span class="navbar__item-icon" aria-hidden="true">
<span class="image-wrapper">
<img src="https://a.storyblok.com/f/185929/45x45/d42ce2a726/icon-argo.svg" alt="Argo icon" loading="lazy" width="45" height="45" />
</span>
</span>
<span class="navbar__item-label" itemprop="name">Argo CD in Octopus</span>
</a>
</li>
<li class="navbar__item">
<a class="navbar__item-link" href="https://octopus.com/use-case/runbooks" itemprop="url">
<span class="navbar__item-icon" aria-hidden="true">
<span class="image-wrapper">
<img src="https://a.storyblok.com/f/185929/45x45/d9ab08e6a3/icon-runbooks.svg" alt="runbooks running book with a wrench on it blue gradient" loading="lazy" width="45" height="45" />
</span>
</span>
<span class="navbar__item-label" itemprop="name">Automate operations tasks</span>
</a>
</li>
<li class="navbar__item">
<a class="navbar__item-link" href="https://octopus.com/use-case/tenanted-deployments" itemprop="url">
<span class="navbar__item-icon" aria-hidden="true">
<span class="image-wrapper">
<img src="https://a.storyblok.com/f/185929/45x45/c89e19472b/icon-tenanted-deployments.svg" alt="icon tenanted deployments blue gradient three people" loading="lazy" width="45" height="45" />
</span>
</span>
<span class="navbar__item-label" itemprop="name">Tenanted deployments</span>
</a>
</li>
</ul>
</div>
<div class="navbar__subsection">
<ul class="navbar__subsection-items">
<li class="navbar__item">
<span class="navbar__item-sub-category">Explore</span>
</li>
<li class="navbar__item">
<a class="navbar__item-link" href="https://octopus.com/downloads" itemprop="url">
<span class="navbar__item-label" itemprop="name">Install Octopus self-hosted</span>
</a>
</li>
<li class="navbar__item">
<a class="navbar__item-link" href="https://octopus.com/downloads/compare" itemprop="url">
<span class="navbar__item-label" itemprop="name">Compare releases</span>
</a>
</li>
<li class="navbar__item">
<a class="navbar__item-link" href="https://octopus.com/integrations" itemprop="url">
<span class="navbar__item-label" itemprop="name">Integrations</span>
</a>
</li>
<li class="navbar__item">
<a class="navbar__item-link" href="https://roadmap.octopus.com/tabs/2-planned" itemprop="url">
<span class="navbar__item-label" itemprop="name">Octopus Roadmap</span>
</a>
</li>
<li class="navbar__item">
<a class="navbar__item-link" href="https://octopus.com/free" itemprop="url">
<span class="navbar__item-label" itemprop="name">Start for free</span>
</a>
</li>
</ul>
</div>
<svg class="icon icon--marker-navbar" xmlns="http://www.w3.org/2000/svg" width="32" height="15" viewBox="0 0 32 15" fill="none">
<path d="M13.8787 1.12132L0 15H32L18.1213 1.12132C16.9497 -0.0502526 15.0503 -0.050255 13.8787 1.12132Z" fill="white"/>
</svg>
</nav>
<nav class="navbar__dropdown" id="dropdown-resources" data-navbar-dropdown aria-label="Resources">
<button type="button" class="navbar__back-btn" data-navbar-back aria-label="Back to menu">
<svg class="icon icon--chevron-navbar" width="13" height="8" viewBox="0 0 13 8" fill="none" xmlns="http://www.w3.org/2000/svg">
<path d="M1.98755 1.5L6.98755 6.5L11.9875 1.5" stroke="#303E49" stroke-width="2" stroke-linecap="round" stroke-linejoin="round"/>
</svg>
<span>Back</span>
</button>
<div class="navbar__subsection">
<p class="navbar__subsection-title" id="dropdown-resources-explore">Explore</p>
<ul class="navbar__subsection-items" aria-labelledby="dropdown-resources-explore">
<li class="navbar__item">
<a class="navbar__item-link" href="https://octopus.com/company/customers" itemprop="url">
<span class="navbar__item-icon" aria-hidden="true">
<span class="image-wrapper">
<img src="https://a.storyblok.com/f/185929/45x45/00525c876d/icon-customer-stories.svg" alt="icon customer stories success example graduate" loading="lazy" width="45" height="45" />
</span>
</span>
<span class="navbar__item-label" itemprop="name">Customer stories</span>
</a>
</li>
<li class="navbar__item">
<a class="navbar__item-link" href="https://octopus.com/webinars" itemprop="url">
<span class="navbar__item-icon" aria-hidden="true">
<span class="image-wrapper">
<img src="https://a.storyblok.com/f/185929/45x45/a7c01192c7/icon-webinars.svg" alt="icon camera webinars videos capture" loading="lazy" width="45" height="45" />
</span>
</span>
<span class="navbar__item-label" itemprop="name">Webinars</span>
</a>
</li>
<li class="navbar__item">
<a class="navbar__item-link" href="https://octopus.com/publications" itemprop="url">
<span class="navbar__item-icon" aria-hidden="true">
<span class="image-wrapper">
<img src="https://a.storyblok.com/f/185929/45x45/1845d0555a/icon-nav-publications.svg" alt="Publications icon" loading="lazy" width="45" height="45" />
</span>
</span>
<span class="navbar__item-label" itemprop="name">Publications</span>
</a>
</li>
<li class="navbar__item">
<a class="navbar__item-link" href="https://octopus.com/downloads" itemprop="url">
<span class="navbar__item-icon" aria-hidden="true">
<span class="image-wrapper">
<img src="https://a.storyblok.com/f/185929/45x45/0008b1a75e/nav-icon-downloads.svg" alt="Downloads icon" loading="lazy" width="45" height="45" />
</span>
</span>
<span class="navbar__item-label" itemprop="name">Downloads</span>
</a>
</li>
</ul>
</div>
<div class="navbar__subsection">
<p class="navbar__subsection-title" id="dropdown-resources-support-and-services">Support and services</p>
<ul class="navbar__subsection-items" aria-labelledby="dropdown-resources-support-and-services">
<li class="navbar__item">
<a class="navbar__item-link" href="https://octopus.com/docs" itemprop="url">
<span class="navbar__item-icon" aria-hidden="true">
<span class="image-wrapper">
<img src="https://a.storyblok.com/f/185929/45x45/0724935a2e/icon-devops-handbook.svg" alt="icon book devops DevOps handbook ci cd cycle" loading="lazy" width="45" height="45" />
</span>
</span>
<span class="navbar__item-label" itemprop="name">Documentation</span>
</a>
</li>
<li class="navbar__item">
<a class="navbar__item-link" href="https://octopus.com/support" itemprop="url">
<span class="navbar__item-icon" aria-hidden="true">
<span class="image-wrapper">
<img src="https://a.storyblok.com/f/185929/45x45/ecb140a3aa/icon-partners.svg" alt="icon support partners handshake trust" loading="lazy" width="45" height="45" />
</span>
</span>
<span class="navbar__item-label" itemprop="name">Customer support</span>
</a>
</li>
<li class="navbar__item">
<a class="navbar__item-link" href="https://learning.octopus.com/" target="_blank" rel="noopener noreferrer" itemprop="url">
<span class="navbar__item-icon" aria-hidden="true">
<span class="image-wrapper">
<img src="https://a.storyblok.com/f/185929/45x45/7802cd7dd7/icon-certificates-1.svg" alt="Certification icon" loading="lazy" width="45" height="45" />
</span>
</span>
<span class="navbar__item-label" itemprop="name">Certification</span>
</a>
</li>
<li class="navbar__item">
<a class="navbar__item-link" href="https://octopus.com/company/trust" itemprop="url">
<span class="navbar__item-icon" aria-hidden="true">
<span class="image-wrapper">
<img src="https://a.storyblok.com/f/185929/45x45/d01a1b10a9/icon-trust-security.svg" alt="icon trust and security lock pad" loading="lazy" width="45" height="45" />
</span>
</span>
<span class="navbar__item-label" itemprop="name">Trust and security</span>
</a>
</li>
</ul>
</div>
<div class="navbar__subsection">
<p class="navbar__subsection-title" id="dropdown-resources-publications">Publications</p>
<ul class="navbar__subsection-items" aria-labelledby="dropdown-resources-publications">
<li class="navbar__item">
<a class="navbar__item-link" href="https://octopus.com/publications/ai-pulse-report" itemprop="url">
<span class="navbar__item-label" itemprop="name">AI Pulse report</span>
</a>
</li>
<li class="navbar__item">
<a class="navbar__item-link" href="https://octopus.com/publications/compliance-through-continuous-delivery" itemprop="url">
<span class="navbar__item-label" itemprop="name">Compliance through CD</span>
</a>
</li>
<li class="navbar__item">
<a class="navbar__item-link" href="https://octopus.com/publications/platform-engineering-pulse" itemprop="url">
<span class="navbar__item-label" itemprop="name">Platform Engineering Pulse report</span>
</a>
</li>
<li class="navbar__item">
<a class="navbar__item-link" href="https://octopus.com/publications/state-of-gitops-report" itemprop="url">
<span class="navbar__item-label" itemprop="name">State of GitOps report</span>
</a>
</li>
<li class="navbar__item">
<a class="navbar__item-link" href="https://octopus.com/publications/argo-cd-best-practices" itemprop="url">
<span class="navbar__item-label" itemprop="name">Argo CD best practices</span>
</a>
</li>
<li class="navbar__item">
<a class="navbar__item-link" href="https://octopus.com/whitepapers/kubernetes-delivery-unlocked" itemprop="url">
<span class="navbar__item-label" itemprop="name">Kubernetes delivery unlocked</span>
</a>
</li>
<li class="navbar__item">
<a class="navbar__item-link" href="https://octopus.com/publications" itemprop="url">
<span class="navbar__item-label" itemprop="name">View all publications</span>
</a>
</li>
</ul>
</div>
<svg class="icon icon--marker-navbar" xmlns="http://www.w3.org/2000/svg" width="32" height="15" viewBox="0 0 32 15" fill="none">
<path d="M13.8787 1.12132L0 15H32L18.1213 1.12132C16.9497 -0.0502526 15.0503 -0.050255 13.8787 1.12132Z" fill="white"/>
</svg>
</nav>
<nav class="navbar__dropdown" id="dropdown-company" data-navbar-dropdown aria-label="Company">
<button type="button" class="navbar__back-btn" data-navbar-back aria-label="Back to menu">
<svg class="icon icon--chevron-navbar" width="13" height="8" viewBox="0 0 13 8" fill="none" xmlns="http://www.w3.org/2000/svg">
<path d="M1.98755 1.5L6.98755 6.5L11.9875 1.5" stroke="#303E49" stroke-width="2" stroke-linecap="round" stroke-linejoin="round"/>
</svg>
<span>Back</span>
</button>
<div class="navbar__subsection">
<p class="navbar__subsection-title" id="dropdown-company-careers">Careers</p>
<ul class="navbar__subsection-items" aria-labelledby="dropdown-company-careers">
<li class="navbar__item">
<a class="navbar__item-link" href="https://octopus.com/company/careers" itemprop="url">
<span class="navbar__item-icon" aria-hidden="true">
<span class="image-wrapper">
<img src="https://a.storyblok.com/f/185929/45x45/91b747265a/icon-careers-join-us.svg" alt="icon person plus career join us" loading="lazy" width="45" height="45" />
</span>
</span>
<span class="navbar__item-label" itemprop="name">Join us</span>
</a>
</li>
<li class="navbar__item">
<a class="navbar__item-link" href="https://handbook.octopus.com/" target="_blank" rel="noopener noreferrer" itemprop="url">
<span class="navbar__item-icon" aria-hidden="true">
<span class="image-wrapper">
<img src="https://a.storyblok.com/f/185929/45x45/94e4d7a548/icon-company-handbook.svg" alt="icon octopus handbook book" loading="lazy" width="45" height="45" />
</span>
</span>
<span class="navbar__item-label" itemprop="name">Company handbook</span>
</a>
</li>
</ul>
</div>
<div class="navbar__subsection">
<p class="navbar__subsection-title" id="dropdown-company-explore">Explore</p>
<ul class="navbar__subsection-items" aria-labelledby="dropdown-company-explore">
<li class="navbar__item">
<a class="navbar__item-link" href="https://octopus.com/company" itemprop="url">
<span class="navbar__item-label" itemprop="name">About us</span>
</a>
</li>
<li class="navbar__item">
<a class="navbar__item-link" href="https://octopus.com/company/contact" itemprop="url">
<span class="navbar__item-label" itemprop="name">Contact us</span>
</a>
</li>
<li class="navbar__item">
<a class="navbar__item-link" href="https://octopus.com/news" itemprop="url">
<span class="navbar__item-label" itemprop="name">News and media</span>
</a>
</li>
<li class="navbar__item">
<a class="navbar__item-link" href="https://octopus.com/events" itemprop="url">
<span class="navbar__item-label" itemprop="name">Events</span>
</a>
</li>
<li class="navbar__item">
<a class="navbar__item-link" href="https://octopus.com/partners" itemprop="url">
<span class="navbar__item-label" itemprop="name">Our partners</span>
</a>
</li>
<li class="navbar__item">
<a class="navbar__item-link" href="https://shop.octopus.com/" target="_blank" rel="noopener noreferrer" itemprop="url">
<span class="navbar__item-label" itemprop="name">Swag</span>
</a>
</li>
</ul>
</div>
<svg class="icon icon--marker-navbar" xmlns="http://www.w3.org/2000/svg" width="32" height="15" viewBox="0 0 32 15" fill="none">
<path d="M13.8787 1.12132L0 15H32L18.1213 1.12132C16.9497 -0.0502526 15.0503 -0.050255 13.8787 1.12132Z" fill="white"/>
</svg>
</nav>
<nav class="navbar__dropdown" id="dropdown-user" data-navbar-profile-dropdown aria-label="User profile">
<button type="button" class="navbar__back-btn" data-navbar-back aria-label="Back to menu">
<svg class="icon icon--chevron-navbar" width="13" height="8" viewBox="0 0 13 8" fill="none" xmlns="http://www.w3.org/2000/svg">
<path d="M1.98755 1.5L6.98755 6.5L11.9875 1.5" stroke="#303E49" stroke-width="2" stroke-linecap="round" stroke-linejoin="round"/>
</svg>
<span>Back</span>
</button>
<p class="navbar__panel-title" data-navbar-user-title>User</p>
<div class="navbar__subsection">
<ul class="navbar__subsection-items">
<li class="navbar__item">
<a class="navbar__item-link" href="https://billing.octopus.com" itemprop="url">
<span class="navbar__item-icon" aria-hidden="true">
<span class="image-wrapper">
<svg xmlns="http://www.w3.org/2000/svg" width="45" height="45"><rect width="45" height="45" rx="8.9" fill="#f4f6f8"/><path d="M29.4 20.7l-.3.5c-.1.2-.3.3-.5.2-.4-.2-.8-.4-1.2-.7-.2-.1-.2-.4-.1-.6l.3-.5-.6-1h-.6c-.2 0-.4-.2-.4-.4v-1.3c0-.2.2-.4.4-.4h.6c.1-.4.3-.7.6-1l-.3-.5c-.1-.2 0-.4.1-.6.3-.3.7-.5 1.2-.7.2 0 .4 0 .5.2l.3.5h1.1l.3-.5c.1-.2.3-.3.5-.2.4.2.8.4 1.2.7.2.1.2.4.1.6l-.3.5.6 1h.6c.2 0 .4.2.4.4v1.3c0 .2-.2.4-.4.4h-.6c-.1.4-.3.7-.6 1l.3.5c.1.2 0 .4-.1.6-.3.3-.7.5-1.2.7-.2 0-.4 0-.5-.2l-.3-.5h-1.1zm-.4-2.1c1.4 1 3-.5 1.9-1.9-1.4-1-3 .5-1.9 1.9zm-4.1 5.5l1.2.6c.4.2.5.6.4 1-.3.9-.9 1.6-1.5 2.3-.3.3-.7.4-1.1.2l-1-.6c-.6.5-1.2.9-2 1.1v1.2c0 .4-.3.8-.7.8-.9.1-1.8.2-2.7 0-.4 0-.7-.4-.7-.8v-1.2c-.7-.3-1.4-.6-2-1.1l-1 .6c-.4.2-.8.1-1.1-.2-.6-.7-1.2-1.5-1.5-2.3-.1-.4 0-.8.4-1l1.2-.6c-.1-.7-.1-1.5 0-2.2l-1.2-.6c-.4-.2-.5-.6-.4-1 .3-.9.9-1.6 1.5-2.3.3-.3.7-.4 1.1-.2l1 .6c.6-.5 1.2-.9 2-1.1v-1.2c0-.4.3-.8.7-.8.9-.1 1.8-.2 2.7 0 .4 0 .7.4.7.8v1.2c.7.3 1.4.6 2 1.1l1-.6c.4-.2.8-.1 1.1.2.6.7 1.2 1.5 1.5 2.3.1.4 0 .8-.4 1l-1.2.6c.1.7.1 1.5 0 2.2zm-4.2.7c2.1-2.7-1-5.8-3.8-3.7-2.1 2.7 1 5.8 3.8 3.7zm8.7 6.4l-.3.5c-.1.2-.3.3-.5.2-.4-.2-.8-.4-1.2-.7-.2-.1-.2-.4-.1-.6l.3-.5-.6-1h-.6c-.2 0-.4-.2-.4-.4v-1.3c0-.2.2-.4.4-.4h.6c.1-.4.3-.7.6-1l-.3-.5c-.1-.2 0-.4.1-.6.3-.3.7-.5 1.2-.7.2 0 .4 0 .5.2l.3.5h1.1l.3-.5c.1-.2.3-.3.5-.2.4.2.8.4 1.2.7.2.1.2.4.1.6l-.3.5.6 1h.6c.2 0 .4.2.4.4v1.3c0 .2-.2.4-.4.4h-.6c-.1.4-.3.7-.6 1l.3.5c.1.2 0 .4-.1.6-.3.3-.7.5-1.2.7-.2 0-.4 0-.5-.2l-.3-.5h-1.1zm-.4-2c1.4 1 3-.5 1.9-1.9-1.4-1-3 .5-1.9 1.9z" fill="#282f38"/></svg>
</span>
</span>
<span class="navbar__item-label" itemprop="name">Control Center</span>
</a>
</li>
<li class="navbar__item">
<a class="navbar__item-link" href="https://octopus.com/profile" itemprop="url">
<span class="navbar__item-icon" aria-hidden="true">
<span class="image-wrapper">
<svg xmlns="http://www.w3.org/2000/svg" width="45" height="45"><rect width="45" height="45" rx="8.9" fill="#f4f6f8"/><path d="M22.5 9C15 9 9 15 9 22.5S15 36 22.5 36 36 30 36 22.5 30 9 22.5 9zm0 5.2c2.6 0 4.8 2.1 4.8 4.8s-2.1 4.8-4.8 4.8-4.8-2.1-4.8-4.8 2.1-4.8 4.8-4.8zm0 18.8c-3.2 0-6.1-1.4-8-3.7 1-1.9 3-3.3 5.4-3.3h.4c.7.2 1.4.4 2.2.4s1.5-.1 2.2-.4h.4c2.3 0 4.3 1.3 5.4 3.3-1.9 2.3-4.8 3.7-8 3.7z" fill="#282f38"/></svg>
</span>
</span>
<span class="navbar__item-label" itemprop="name">Profile</span>
</a>
</li>
<li class="navbar__item">
<a class="navbar__item-link" href="https://octopus.com/signout" data-navbar-signout itemprop="url">
<span class="navbar__item-icon" aria-hidden="true">
<span class="image-wrapper">
<svg xmlns="http://www.w3.org/2000/svg" width="45" height="45"><rect width="45" height="45" rx="8.9" fill="#f4f6f8"/><path d="M33.5,23.1l-7.7,7.4c-.7.7-1.9.2-1.9-.8v-4.2h-6.2c-.6,0-1.1-.5-1.1-1.1v-4.2c0-.6.5-1.1,1.1-1.1h6.2v-4.2c0-.9,1.2-1.4,1.9-.8l7.7,7.4c.4.4.4,1.1,0,1.5ZM19.6,30.3v-1.8c0-.3-.2-.5-.5-.5h-3.8c-.8,0-1.5-.6-1.5-1.4v-8.5c0-.8.7-1.4,1.5-1.4h3.8c.3,0,.5-.2.5-.5v-1.8c0-.3-.2-.5-.5-.5h-3.8c-2.4,0-4.4,1.9-4.4,4.2v8.5c0,2.3,2,4.2,4.4,4.2h3.8c.3,0,.5-.2.5-.5Z" fill="#282f38"/></svg>
</span>
</span>
<span class="navbar__item-label" itemprop="name">Sign out</span>
</a>
</li>
</ul>
</div>
<svg class="icon icon--marker-navbar" xmlns="http://www.w3.org/2000/svg" width="32" height="15" viewBox="0 0 32 15" fill="none">
<path d="M13.8787 1.12132L0 15H32L18.1213 1.12132C16.9497 -0.0502526 15.0503 -0.050255 13.8787 1.12132Z" fill="white"/>
</svg>
</nav>
</div>
</nav>
</div> <div class="content-group anim-show-parent"> <main id="site-main"> <nav class="site-breadcrumbs" aria-label="Breadcrumb"> <ol> <li> <a href="/blog" aria-current="false"> <span>Blog</span> </a> </li> <li> <a href="/blog/change-advisory-boards-dont-work" aria-current="page"> <span>Change Advisory Boards Don&#39;t Work</span> </a> </li> </ol> </nav> <article itemscope itemtype="https://schema.org/Article"> <header class="header__wrapper"> <figure class="image" data-image> <img src="/blog/i/x/cover/change-advisory-boards.png" srcset="/blog/i/600/cover/change-advisory-boards.webp 600w, /blog/i/1000/cover/change-advisory-boards.webp 750w" sizes="(min-width: 1680px) 1000px, (min-width: 940px) calc(71.81vw - 192px), calc(100vw - 32px)" alt="Change Advisory Boards Don't Work" class="image__img" width="750" height="400" loading="eager" fetchpriority="high" decoding="sync"> </figure> <div class="header"> <h1 class="header__title">Change Advisory Boards Don&#39;t Work</h1> </div> </header> <div class="page-content anim-show-parent" itemprop="articleBody"> <div class="author"> <a href="/blog/authors/alex-yates/1/" class="author__image-link"> <img class="author__image" srcset="/blog/i/600/authors/alex-yates.webp 600w, /blog/i/1000/authors/alex-yates.webp 646w" sizes="170px" src="/blog/i/x/authors/alex-yates.png" alt="Alex Yates" width="646" height="647"> </a> <div class="author__info"> <span class="author__name"> <a href="/blog/authors/alex-yates/1/"> <span> Alex Yates </span> </a> </span> <time class="author__time" datetime="Thu Jul 16 2020 00:00:00 GMT+0000 (Coordinated Universal Time)"> July 16, 2020 </time> </div> </div> <p>In the name of quality, many organizations have a Change Advisory Board or Change Approval Board (CAB) who review changes before they are executed against production. They are sometimes set up to comply with some regulation, such as the 2002 Sarbanes-Oxley Act (SOX), and/or to enforce “separation of duties”. Other times CABs are introduced following a series of deployment failures in an effort to improve reliability.</p>
<p>The idea is to provide additional scrutiny, often in an effort to catch mistakes, poor code or fraudulent changes. It’s a noble goal but, unfortunately, CABs mostly do more harm than good.</p>
<p>This was articulately demonstrated in 2018 by Nicole Forsgren, Gene Kim, and Jez Humble in <a href="https://www.amazon.co.uk/Accelerate-Software-Performing-Technology-Organizations/dp/1942788339">Accelerate</a>. They analyzed the data from the 2014 – 2017 State of DevOps Reports and they:</p>
<blockquote>
<p>“found that external approvals were negatively correlated with lead time, deployment frequency, and restore time, and had no correlation with change fail rate. In short, approval by an external body (such as a manager or CAB) simply doesn’t work to increase the stability of production systems, measured by the time to restore service and change fail rate. However, it certainly slows things down. It is, in fact, worse than having no change approval process at all.”</p>
</blockquote>
<p>The quotation above contains some loaded terms. Let’s discuss what they mean and why they are significant.</p>
<h2 id="lead-time">Lead time</h2>
<p>For many, the DevOps movement started with a vague awareness about the importance of getting changes into production quickly as well as reducing the amount of work in progress (WIP) at any one time. The name “DevOps” is a rejection of the typical anti-pattern of tossing changes over the “wall of confusion” between Dev and Ops, where changes would inevitably become tangled up in a political psychodrama that resulted in delays and mistakes.</p>
<p>Building on Lean manufacturing and Agile software development, folks recognized the enormous challenges and waste associated with long development cycles and large WIP levels. In the early days of the DevOps movement, it was common to hear folks affectionately refer to lead time as the time it took to get from “Aha! to Kerching!” They recognized that any businesses that could deliver on their ideas quickly, in small increments, would have a significant advantage in the marketplace.</p>
<p>We no longer lived in a world where big beat small. Fast was beating slow. If you could deliver value early and often you had the power to disrupt the market. It was possible to start selling products much earlier in the development cycle, and gradually refine ideas based on real-world feedback. This significantly reduced the requirement for upfront capital investment and resulted in better products and services. The old mantra that a business could only pick two out of speed, quality, and cost was dead.</p>
<p>Short lead times go hand in hand with reducing WIP. If an organization tries to make either too many changes or too big a change in one go the change management overhead quickly becomes overbearing and the risk of failure skyrockets. It is much more efficient to have short development cycles with fewer and smaller changes than vice versa.</p>
<p>However, CABs often significantly increase both lead times and WIP since updates are delayed and batched up as they go through the formal approval process. For example, if the CAB meets once a week, a change that took only an hour to write may be delayed by 40 business hours, or 168 real hours, before it can be delivered to end users. The unintended consequence for the business is significantly poorer lead times and increased WIP which leads to poorer quality, slower feedback, higher development costs, and poorer cashflow.</p>
<h2 id="deployment-frequency">Deployment frequency</h2>
<p>The frequency with which an organization deploys is not a hard concept to understand, but it is an important metric with some counter-intuitive consequences.</p>
<p>Every deployment carries some risk, and failed deployments are a horrible business. According to <a href="https://www.amazon.co.uk/Visible-Ops-Handbook-Implementing-Practical/dp/0975568612/">The Visible Ops Handbook</a>, <a href="https://www.amazon.co.uk/Devops-Handbook-World-Class-Reliability-Organizations/dp/1942788002/">The DevOps Handbook</a>, and various Gartner Reports, around 80% of production outages are the result of someone making a change. If an organization has suffered a series of expensive deployment failures it is natural to want to do them less often and to put in place additional measures to test and validate them.</p>
<p>CABs are often formed within this context. However, as Chuck Rossi observed while he was working at Facebook, as deployments grow beyond a certain size it’s almost impossible to execute them successfully. If lots of small changes are bundled together into a big deployment, that deployment becomes inherently more complicated, more risky, and harder to fix. He concludes that “if we want more changes, we need more deployments”.</p>
<p>Unfortunately, CABs often create a bottleneck where many changes are reviewed in a single batch and then deployed within a single deployment window, often by someone with little understanding about the context of each change. Hence, despite the very best of intentions, the reality is that CABs often increase the risk of painful deployment failures as a direct result of reducing the deployment frequency, leading to bigger, more complicated and riskier deployments.</p>
<h2 id="restore-time-and-change-fail-rate">Restore time and Change Fail Rate</h2>
<p>Restore time, or Mean Time to Restore (MTTR), is a measure for how quickly a team can recover from an outage. Since we expect that 80% of outages are the result of a change, it is wise to pay special attention to how quickly teams can recover from a failed deployment and to invest in work that improves MTTR.</p>
<p>However, historically organizations have paid more attention to Mean Time Between Failure (MTBF). While attitudes are changing, people are still more likely to talk about how often a deployment fails, rather than how quickly failures can be fixed.</p>
<p>In <a href="https://www.amazon.co.uk/Databases-at-Scale-Operations-Engineering/dp/1491925949">Database Reliability Engineering</a> Laine Campbell and Charity Majors refer to this as “Resilience vs Robustness”. They explain that when folks design robust systems to never/rarely break, the system becomes brittle. Since failures occur so rarely the team is ill-prepared when failures do happen and often the failures are complicated and difficult to understand and fix. In contrast, when teams accept that failures will occur and design a system to cope with failures, they are far more likely to recover quickly. They promote practices such as canary deployment patterns, automated fail-overs, chaos engineering, and enabling systems to automatically switch to a scaled down mode. For example, by gracefully turning off resource intensive features while a service is under heavy load. By embracing these sorts of resilient practices, deployment failures are likely to have significantly less impact.</p>
<p>Hence, while it is of course desirable for change failure rates to be low, attempting to remove all risk is a fool’s errand. You could invest your entire IT budget in avoiding failure, but failures would still happen. In the meantime, the overhead of seeking a perfect deployment record will likely cripple delivery times and innovation. As the old saying goes, as long as perfection is impossible or impractical, “perfection is the enemy of good”.</p>
<p>In contrast, the organizations that focus on MTTR first, and change failure rate second, will have a far healthier relationship with risk. If failed deployments become less of a problem and your team is able to fix them much more quickly, it becomes less important whether the change failure rate is 1% or 2%. It might as well be 25%, for the organization would probably still outperform an organization with poor MTTR in the eyes of its customers.</p>
<p>Unfortunately, most CABs place more importance on stopping the broken deployments than they do on creating a system where it is safer to fail. This is not effective.</p>
<h2 id="the-four-key-metrics">The four key metrics</h2>
<p>Taken together these four concepts (lead time, deployment frequency, MTTR, and change failure rate) form Accelerate’s “four key metrics”. These metrics were selected because they are demonstrated to result in positive business outcomes.</p>
<p>Counter-intuitive as it sounds, those organizations that score highly with respect to the speed metrics (lead time and deployment frequency) are the same organizations that score highly with respect to the quality metrics (MTTR and change failure rate). And the organizations that perform better with respect to lead time, deployment frequency, and MTTR have better business outcomes as measured by profitability, productivity, and market share. (Interestingly, change failure rate seems less important than the other three metrics.)</p>
<p>Forsgren, Humble, and Kim have demonstrated that speed begets quality, quality begets speed and they both result in better business outcomes. If you have a CAB, the fact that CABs are negatively correlated against both the four key metrics and business outcomes should be a cause for concern to you, your IT managers, and your shareholders.</p>
<h2 id="an-ideal-code-review-process">An ideal code review process</h2>
<p>Having code reviewed by a knowledgeable expert is undoubtedly an excellent way to simultaneously improve quality and avoid knowledge hoarding. It can also be a great way to promote mentoring, personal development, and collaboration with people who have different skills or experience (e.g. DBAs, InfoSec, etc). Code reviews are a wonderful thing and this blog post should not be interpreted as a criticism of this valuable practice.</p>
<p>The goals of most CABs are undoubtedly positive. It’s their implementation where the problems arise.</p>
<p>Code reviews work best when they are done by someone who understands the code and the context. For example, they could be done by another member of the development team. Perhaps the person who sits at the next desk or a more experienced colleague? If you are a web developer but you needed to update a stored procedure in the database, you might prefer to get a review from a DBA. It is far more effective for code to be reviewed by a knowledgeable expert who understands the context than by a committee of folks who do not.</p>
<p>Code reviews should also be conducted on small sets of changes. The more code someone is asked to review, the less carefully they’ll review it and the fewer suggestions they’ll make. Hence, reviewing large batches of changes, by committee, within a relatively short meeting, is unlikely to deliver high quality scrutiny or feedback. In contrast, frequent small code reviews are much more effective.</p>
<p>Whoever is going to review your work should understand the importance of short lead times and minimizing WIP. Simply put, reviews should be conducted quickly and finishing work is more important than starting work. Hence, if you are working on a new dev task, and someone asks you to review their “dev-complete” change, you should generally prioritize their code review over your own work. While this may introduce a context switching overhead, this is a lesser evil than the batching up of changes to be reviewed at the end of the week. Hence, the ideal reviewer should be subservient to the developer, rather than the other way around. Any reviewer should review changes in near real time, as soon as the changes are ready for review, rather than allowing the changes to build up for a bulk review on a cadence that suits the reviewer. If the reviewer is an individual that should be manageable, but if the reviewer is a large committee it becomes impractical.</p>
<h2 id="the-cab-process">The CAB process</h2>
<p>Unfortunately, CABs rarely reflect the ideal code review process described above. Typically, a broad range of deeply risk-averse characters from around the organization will gather in a conference room or over video conference and work through a long list of changes that have been batched up over the last week or so. The CAB may well include people who are not subject matter experts and who may not understand the context.</p>
<p>These meetings are likely to happen on a fixed schedule, so the work is made to fit around the people’s calendars, rather than the people prioritizing their time based on the tasks at hand.</p>
<p>In most CAB meetings individual changes will not get much scrutiny due to the number and size of the changes to be reviewed.</p>
<p>Each change might only be relevant to one or two members of the CAB so the rest of the attendees are likely to be wasting their time.</p>
<p>CAB meetings tend to become a rubber-stamping exercise with the same one or two questions being asked about each item. “Will this cause downtime?” “Do you have a roll-back plan?” Good, next.</p>
<p>Perhaps worst of all these meetings can become an exceedingly tedious and calendar hogging affair to all attendees.</p>
<p>Regardless of the initial intentions, CABs generally turn into a theater of security, rather than a genuine attempt to create more reliable systems. They tend to create significant disruption while offering limited value.</p>
<h2 id="separation-of-duties-regulatory-compliance-and-fraud">Separation of duties, regulatory compliance, and fraud</h2>
<p>Before we go on, please be clear about the fact that I am not a lawyer and that while I mentioned SOX earlier in this post, my advice about technical practices should not be interpreted as legal advice about any specific law. If you have any concerns about any legal matters you should seek professional legal advice. My advice is purely concerning the effectiveness of specific technical practices.</p>
<p>As mentioned at the top of this post, CABs often exist because of regulatory requirements, often due to a specific clause concerning “separation of duties”. These regulations generally exist to prevent fraud and they are important.</p>
<p>Unfortunately, CABs are normally an ineffective way to spot fraud and they put a terrible burden upon the organization for the reasons stated above. The ideal code review process described above is a far better defense against fraud as well as being a more effective way to deliver innovative software.</p>
<p>Without making any comments about any specific laws, in my experience, most laws concerning fraud prevention are less concerned about the format of the code review, and more concerned about its effectiveness and auditability. If you were to review the laws that govern you, you may well find that a traditional CAB is not strictly necessary and that a more lightweight but no less strictly audited review process, which more naturally fits within your development cycles and incorporates a more thorough review, may be more appropriate.</p>
<p>For example, the ideal code review process described above is ideally suited to using pull requests in source control. This way approvers and their comments are audited, and often various rules can be configured to define the sorts of people who are required to review each change. It becomes impossible to update the main branch in source control without having conducted an appropriate code review.</p>
<p>Alternatively, you could audit your reviews in your deployment pipeline, such as by using “<a href="https://octopus.com/docs/deployment-process/steps/manual-intervention-and-approvals">manual intervention</a>” steps in Octopus Deploy. These are fully audited and include details about who reviewed the change, when it was reviewed, and any comments are stored in the logs.</p>
<p>You might wish to use both source control pull requests and manual review steps in your deployment pipeline for different sorts of reviews, but be careful adding too many manual approval gates since this is likely to increase lead time, WIP, and will result in bigger and riskier deployments. Reviews are important, but it’s also important to keep them lightweight and to avoid unnecessary bureaucracy.</p>
<p>If you are under any doubt about your legal requirements, please seek professional legal advice.</p>
<h2 id="what-to-do-if-your-organization-is-thinking-about-forming-a-cab">What to do if your organization is thinking about forming a CAB</h2>
<p>First, remain calm. It’s likely that the people making these decisions have the best intentions. They simply don’t understand the anti-patterns that CABs are likely to create. You should try to educate them, without steamrolling them. Most people like to learn and to be persuaded, but folks rarely respond well to being beaten into submission.</p>
<p>You could start by teaching them about the counter intuitive nature of the four key metrics above. From here you could explain that you agree that appropriate oversight is important, and that you are keen to deliver the necessary oversight as effectively and efficiently as possible.</p>
<p>You might want to consider embracing the most risk-averse people and those who understand the major risks best. Get them on-side by asking them to help you to design automated ways to flag up potential issues within your automated test framework or deployment pipeline. The people who best understand the risks often make excellent allies.</p>
<p>Pay special attention to any form filling or ticketing systems associated with the CAB. These are often poorly designed and either don’t give the user the opportunity to provide all the necessary information or they introduce an intolerable overhead for even simple and low-risk changes. When this happens the process will inevitably break down and no-one wins.</p>
<p>Ensure that the CAB has a well-defined scope and that, if possible, low-risk, and possibly even medium-risk changes are granted a free pass to skip the CAB altogether. This will allow the CAB more time to focus on scrutinizing the most risky changes. For example, try to get a commitment that if a change fits the following criteria it can bypass the CAB:</p>
<ul>
<li>The dev team has kept within their “Error Budget” for the last 30 days (see <a href="https://www.amazon.co.uk/Site-Reliability-Engineering-Betsy-Beyer/dp/149192912X">Site Reliability Engineering</a>, <a href="https://landing.google.com/sre/sre-book/chapters/embracing-risk/">Chapter 3</a> for further details about error budgets).</li>
<li>All changes are deployed through an automated deployment pipeline.</li>
<li>All changes have been peer reviewed by another member of the team.</li>
<li>All changes have passed the relevant tests and the codebase maintains at least x% code coverage.</li>
</ul>
<p>As well as saving the CAB time, this will incentivize the dev teams to invest in appropriate quality control and test automation in order to avoid going through the CAB.</p>
<p>Finally, it probably wouldn’t hurt to buy a copy of <a href="https://www.amazon.co.uk/Accelerate-Software-Performing-Technology-Organizations/dp/1942788339">Accelerate</a> for each of the key decision makers. If they don’t want to read it, make a deal with them that you will read a book on their recommendation (and make sure you do!), if they promise to read a book that you recommend. Then agree a time to meet, perhaps over a fancy meal, and discuss both books. You might both learn something and it may prompt a friendly and valuable discussion.</p>
<h2 id="what-to-do-if-you-already-have-a-cab">What to do if you already have a CAB</h2>
<p>Having to dance to the beat of the CAB is hardly ideal. However, upon reading this blog post you should avoid jumping to any knee-jerk reactions. Without having invested in any lightweight approval processes, you may well have become reliant on the CAB for your high-risk changes.</p>
<p>Love it or hate it, any changes to your existing processes should be made iteratively and carefully. Developing your deployment process, just like building a piece of software, should be done in small batches to avoid accidentally making a disastrous sweeping change.</p>
<p>It’s also important to acknowledge the human factors. You’ve probably got a bunch of valuable and skilled colleagues who are already members of or otherwise invested in the CAB – you want to bring them with you. There may also be some powerful individuals who are uncomfortable about the idea of scaling back or disbanding the CAB. It probably wouldn’t be a good idea to make enemies out of them.</p>
<p>As a first step, talk to the supporters of the CAB about how you can make it more efficient. After all, it’s highly likely that they are as bored of the CAB as you are. They can be pretty tedious meetings and most of the people involved probably see them as a distraction from more important tasks.</p>
<p>Perhaps you could ask them a few of the following questions:</p>
<ul>
<li>Are the changes triaged into high risk, medium risk, and low risk changes? What is the difference between a low-risk and a medium-risk change? Is the threshold set at an appropriate level that enables the CAB to focus their attention on the most important issues?</li>
<li>What would it take for the CAB to be comfortable to auto-approve the low-risk changes or to allow them to bypass the CAB altogether?</li>
<li>What could you do to downgrade a medium risk change to a low risk change? What sort of validation or testing would be required? Could these tests be automated in order to pre-approve the medium risk changes?</li>
<li>How could any paperwork or forms be simplified and streamlined?</li>
<li>Are all CAB members required to be present to review all changes? For example, if the CAB generally meets on a Wednesday afternoon, could you additionally run a scaled down version of the CAB daily at 11 a.m. with just one or two CAB members to review low/medium risk changes as soon as they are available? This would give you more time to scrutinize the high-risk changes in the main meeting on Wednesday and improve the lead time for low and medium risk changes. This might significantly reduce WIP and drive improvements against all four key metrics.</li>
<li>What architectural changes could you invest in to decouple systems from each other? This could reduce the risk of one failure affecting multiple systems. Hence, fewer people might be required to review each change.</li>
<li>What investments could you make to improve MTTR or otherwise de-risk your deployments? If the consequences of failed deployments were reduced significantly, would that enable the CAB to allow changes to flow to production more freely?</li>
<li>How could you report on the success/failure of any changes that you make to the CAB process? Can you track the four key metrics, or any other key performance metrics, as you iterate on your CAB processes to ensure that your changes are having a positive effect?</li>
</ul>
<hr>
<p>Alex Yates has been helping organizations to apply DevOps principles to their data since 2010. He’s most proud of helping Skyscanner develop the ability to <a href="https://www.youtube.com/watch?v=sNsPnCv7hHo">deploy 95 times a day</a> and for supporting the United Nations Office for Project Services with their release processes. Alex has worked with clients on every continent except Antarctica – so he’s keen to meet anyone who researches penguins.</p>
<p>A keen community member, he co-organizes <a href="https://datarelay.co.uk/">Data Relay</a>, is the founder of <a href="http://www.speakingmentors.com/">www.SpeakingMentors.com</a> and has been recognized as a <a href="https://mvp.microsoft.com/en-us/PublicProfile/5002655?fullName=Alex%20Yates">Microsoft Data Platform MVP</a> since 2017.</p>
<p>Alex is the founder of <a href="https://dlmconsultants.com/">DLM Consultants</a>, an official Octopus Deploy partner. He enjoys mentoring, coaching, training and consulting with customers who want to achieve better business outcomes through improved IT and database delivery practices.</p>
<p>If you would like to work with Alex, email: <a href="mailto:enquiries@dlmconsultants.com">enquiries@dlmconsultants.com</a></p> <!-- <Feedback
frontmatter={frontmatter}
headings={headings}
lang={lang}
/> --> <div class="post-taxonomy"> <div class="post-tag"> <h2>Tags: </h2> <ul itemprop="keywords"> <li> <a href="/blog/tag/devops/1/">DevOps</a> </li> </ul> </div> </div> <div class="author"> <a href="/blog/authors/alex-yates/1/" class="author__image-link"> <img class="author__image" srcset="/blog/i/600/authors/alex-yates.webp 600w, /blog/i/1000/authors/alex-yates.webp 646w" sizes="170px" src="/blog/i/x/authors/alex-yates.png" alt="Alex Yates" width="646" height="647"> </a> <div class="author__info"> <span class="author__name" itemprop="author" itemscope itemtype="https://schema.org/Person"> <a href="/blog/authors/alex-yates/1/" itemprop="url"> <span itemprop="name"> Alex Yates </span> </a> </span> <time class="author__time" datetime="Thu Jul 16 2020 00:00:00 GMT+0000 (Coordinated Universal Time)" itemprop="datePublished"> Published: July 16, 2020 </time> </div> </div> </div> <h3>Related posts</h3> <div class="simple-grid-3"> <article class="card card--padded"> <a href="/blog/octo-easy-mode-23-runbookwebhooks" class="card__link" role="link" aria-label="Open Octopus Easy Mode - Runbook Webhooks"> <div class="card__image-wrapper"> <img srcset="/blog/i/600/cover/blog-ai-introducing-octopus-ai-assistant.webp 600w, /blog/i/1000/cover/blog-ai-introducing-octopus-ai-assistant.webp 750w" sizes="254px" src="/blog/i/x/cover/blog-ai-introducing-octopus-ai-assistant.png" width="750" height="400" alt="The image shows an isometric illustration of a central octopus-like icon connected to multiple brain icons in a hub-and-spoke network pattern against a purple-to-blue gradient background." class="card__image" onerror="this.src='https://i.octopus.com/library/step-templates/other.png';" loading="lazy"> </div> <div class="card__copy"> <p class="card__title">Octopus Easy Mode - Runbook Webhooks</p> <p class="card__description">Learn how to create runbook webhook triggers</p> <div class="card__meta"> <div class="card__authors"> <div class="author"> <img class="author__image" srcset="/blog/i/600/authors/matthew-casperson.webp 140w" sizes="170px" src="/blog/i/x/authors/matthew-casperson.png" alt="Matthew Casperson" width="140" height="140"> <div class="author__info"> <span class="author__name"> <span> Matthew Casperson </span> </span> <time class="author__time" datetime="2026-09-01"> September 1, 2026 </time> </div> </div> </div> </div> </div> </a> </article><article class="card card--padded"> <a href="/blog/the-hotfix-myth" class="card__link" role="link" aria-label="Open Debunking the hotfix pipeline myth"> <div class="card__image-wrapper"> <img srcset="/blog/i/600/cover/devops-golden-paths.webp 600w, /blog/i/1000/cover/devops-golden-paths.webp 750w" sizes="254px" src="/blog/i/x/cover/devops-golden-paths.png" width="750" height="400" alt="Stylized image of DevOps infinity symbol with a car driving on it and increasing speed over golden arrows." class="card__image" onerror="this.src='https://i.octopus.com/library/step-templates/other.png';" loading="lazy"> </div> <div class="card__copy"> <p class="card__title">Debunking the hotfix pipeline myth</p> <p class="card__description">Why it is more important to making the default pipelines as fast and as efficient as possible over hotfix pipelines.</p> <div class="card__meta"> <div class="card__authors"> <div class="author"> <img class="author__image" srcset="/blog/i/600/authors/bob-walker.webp 140w" sizes="170px" src="/blog/i/x/authors/bob-walker.png" alt="Bob Walker" width="140" height="140"> <div class="author__info"> <span class="author__name"> <span> Bob Walker </span> </span> <time class="author__time" datetime="2026-08-27"> August 27, 2026 </time> </div> </div> </div> </div> </div> </a> </article><article class="card card--padded"> <a href="/blog/inside-platform-engineering-nigel-douglas" class="card__link" role="link" aria-label="Open Inside Platform Engineering with Nigel Douglas"> <div class="card__image-wrapper"> <img srcset="/blog/i/600/cover/blog-img-inside-platform-engineering-nigel-douglas.webp 600w, /blog/i/1000/cover/blog-img-inside-platform-engineering-nigel-douglas.webp 750w" sizes="254px" src="/blog/i/x/cover/blog-img-inside-platform-engineering-nigel-douglas.png" width="750" height="400" alt="A photograph of Nigel Douglas surrounded by a circular blue and purple frame." class="card__image" onerror="this.src='https://i.octopus.com/library/step-templates/other.png';" loading="lazy"> </div> <div class="card__copy"> <p class="card__title">Inside Platform Engineering with Nigel Douglas</p> <p class="card__description">A conversation with Nigel Douglas on dependencies, supply chain attacks, and why most teams can&#39;t list everything holding their software together.</p> <div class="card__meta"> <div class="card__authors"> <div class="author"> <img class="author__image" srcset="/blog/i/600/authors/matthew-allford.webp 512w" sizes="170px" src="/blog/i/x/authors/matthew-allford.png" alt="Matthew Allford" width="512" height="512"> <div class="author__info"> <span class="author__name"> <span> Matthew Allford </span> </span> <time class="author__time" datetime="2026-08-21"> August 21, 2026 </time> </div> </div> </div> </div> </div> </a> </article> </div> <div class="newsletter"> <h2>Newsletter</h2> <p>
Join ~80,000 DevOps professionals and sign up for the latest Octopus news,
events, and opinions. No spam. Unsubscribe at any time.
</p> <form id="mktoForm_1062" class="newsletter__form"></form> <script>(function(){const formId = 1062;
const dreamdataTrackingId = undefined;
(() => {
const formEl = document.getElementById(`mktoForm_${formId}`);
if (!formEl) {
return;
}
// Load the 134 KB Marketo library once per page, shared across every form
const loadMarketo = () => {
if (!window.__marketoLoader) {
window.__marketoLoader = new Promise((resolve, reject) => {
const script = document.createElement('script');
script.src = 'https://get.octopus.com/js/forms2/js/forms2.min.js';
script.onload = resolve;
script.onerror = () => reject(new Error('Failed to load MktoForms2'));
document.head.appendChild(script);
});
}
return window.__marketoLoader;
};
const initForm = async () => {
try {
await loadMarketo();
} catch (error) {
console.error(error);
// Drop the cached rejected promise so a later form instance can retry
window.__marketoLoader = undefined;
// Collapse any space reserved for this form so a blocked or failed
// load does not leave an empty box (no-op when there is no wrapper)
formEl.closest('.newsletter')?.style.setProperty('display', 'none');
return;
}
// @ts-ignore - no global type for MktoForms2
if (typeof MktoForms2 === 'undefined' || !MktoForms2.loadForm) {
console.error('MktoForms2 is not available after loading.');
return;
}
// @ts-ignore
MktoForms2.loadForm(
'//get.octopus.com',
'271-BEX-827',
formId,
(form) => {
const formElem = form.getFormElem()[0];
if (!(formElem instanceof HTMLElement)) {
console.error(
'Expected a DOM element but got something else',
formElem
);
return;
}
formElem.querySelectorAll('style').forEach((style) => style.remove());
const baseStyle = document.getElementById('mktoForms2BaseStyle');
if (baseStyle) {
baseStyle.remove();
}
formElem.removeAttribute('style');
formElem
.querySelectorAll('.mktoTextField')
.forEach((el) => el.classList.add('form-control'));
formElem
.querySelectorAll('.mktoEmailField')
.forEach((el) => el.classList.add('form-control'));
formElem
.querySelectorAll('.mktoButton')
.forEach((el) => el.classList.add('button', 'button--primary'));
formElem
.querySelectorAll('.mktoAsterix')
.forEach((el) => el.remove());
formElem.querySelectorAll('.mktoOffset').forEach((el) => el.remove());
formElem
.querySelectorAll('.mktoFormCol, .mktoField, .mktoLabel')
.forEach((el) => el.removeAttribute('style'));
// Add Dreamdata tracking if configured
if (dreamdataTrackingId) {
form.onSuccess(function (values, followUpUrl) {
const email = values.Email || values.email;
if (typeof dreamdata !== 'undefined') {
try {
dreamdata.track(dreamdataTrackingId);
if (email) {
dreamdata.identify(null, { email: email });
}
} catch (error) {
console.warn('Dreamdata tracking failed:', error);
}
} else {
console.warn(
'Dreamdata not available for tracking:',
dreamdataTrackingId
);
}
if (followUpUrl) {
location.href = followUpUrl;
}
return followUpUrl ? false : true;
});
}
}
);
};
// The form is below the fold, so defer the library until the reader
// scrolls near it - keeps 134 KB off the critical path on every page.
// 600px of rootMargin starts the download early enough that the form is
// usually ready when it enters the viewport.
if ('IntersectionObserver' in window) {
const observer = new IntersectionObserver(
(entries) => {
if (entries.some((entry) => entry.isIntersecting)) {
observer.disconnect();
initForm();
}
},
{ rootMargin: '600px' }
);
observer.observe(formEl);
} else {
initForm();
}
})();
})();</script> </div> <meta itemprop="image" content="/blog/i/x/cover/change-advisory-boards.png"> </article> </main> <nav class="site-nav" id="site-nav" aria-label="Site"> <div class="theme-switcher" data-theme-toggle> <input id="theme-switcher" type="checkbox" aria-checked="false" role="switch" aria-label="Toggle theme between light and dark mode" tabindex="-1" data-theme-toggle-checkbox> <label for="theme-switcher" class="theme-switcher__label" tabindex="0"> <span class="theme-switcher__icon theme-switcher__icon--light" aria-hidden="true"> <svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24" fill="none"> <path d="M12 2.40002C11.475 2.40002 11.1 2.81252 11.1 3.30002V5.70002C11.1 6.22502 11.475 6.60002 12 6.60002C12.4875 6.60002 12.9 6.22502 12.9 5.70002V3.30002C12.9 2.81252 12.4875 2.40002 12 2.40002ZM12 17.4C11.475 17.4 11.1 17.8125 11.1 18.3V20.7C11.1 21.225 11.475 21.6 12 21.6C12.4875 21.6 12.9 21.225 12.9 20.7V18.3C12.9 17.8125 12.4875 17.4 12 17.4ZM20.7 12.9C21.1875 12.9 21.6 12.525 21.6 12C21.6 11.5125 21.1875 11.1 20.7 11.1H18.3C17.775 11.1 17.4 11.5125 17.4 12C17.4 12.525 17.775 12.9 18.3 12.9H20.7ZM6.60002 12C6.60002 11.5125 6.18752 11.1 5.70002 11.1H3.30002C2.77502 11.1 2.40002 11.5125 2.40002 12C2.40002 12.525 2.77502 12.9 3.30002 12.9H5.70002C6.18752 12.9 6.60002 12.525 6.60002 12ZM18.7875 6.48752C19.125 6.15002 19.125 5.58752 18.7875 5.21252C18.4125 4.87502 17.85 4.87502 17.5125 5.21252L15.7875 6.93752C15.45 7.27502 15.45 7.83752 15.7875 8.21252C16.1625 8.55002 16.725 8.55002 17.0625 8.21252L18.7875 6.48752ZM8.17502 15.825C7.80002 15.4875 7.23752 15.4875 6.90002 15.825L5.21252 17.55C4.83752 17.8875 4.83752 18.45 5.21252 18.7875C5.55002 19.1625 6.11252 19.1625 6.45002 18.7875L8.17502 17.1C8.51252 16.7625 8.51252 16.2 8.17502 15.825ZM17.5125 18.7875C17.85 19.1625 18.4125 19.1625 18.7875 18.7875C19.125 18.45 19.125 17.8875 18.7875 17.55L17.0625 15.825C16.725 15.4875 16.1625 15.4875 15.7875 15.825C15.45 16.2 15.45 16.7625 15.7875 17.1L17.5125 18.7875ZM8.17502 8.21252C8.51252 7.83752 8.51252 7.27502 8.17502 6.93752L6.45002 5.21252C6.11252 4.87502 5.55002 4.87502 5.21252 5.21252C4.83752 5.58752 4.83752 6.15002 5.21252 6.48752L6.90002 8.21252C7.23752 8.55002 7.80002 8.55002 8.17502 8.21252ZM12 16.2C14.2875 16.2 16.2 14.325 16.2 12C16.2 9.71252 14.2875 7.80002 12 7.80002C9.67502 7.80002 7.80002 9.71252 7.80002 12C7.80002 14.325 9.67502 16.2 12 16.2Z" fill="white"></path> </svg>
Light
</span> <span class="switch-slider"></span> <span class="theme-switcher__icon theme-switcher__icon--dark" aria-hidden="true"> <svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24" fill="none"> <path d="M13.1625 3.59998C8.55005 3.59998 4.80005 7.38748 4.80005 12C4.80005 16.65 8.55005 20.4 13.1625 20.4C15.45 20.4 17.5125 19.5 19.0125 18.0375C19.2 17.85 19.2375 17.5875 19.125 17.325C19.0125 17.1 18.75 16.9875 18.4875 17.025C18.1125 17.1 17.7375 17.1 17.3625 17.1C13.725 17.1 10.7625 14.175 10.7625 10.5C10.7625 8.06248 12.1125 5.88748 14.1375 4.76248C14.3625 4.64998 14.475 4.38748 14.4 4.12498C14.3625 3.86248 14.1375 3.67498 13.875 3.63748C13.65 3.63748 13.3875 3.63748 13.1625 3.63748V3.59998Z" fill="white"></path> </svg>
Dark
</span> </label> </div> <h2 class="site-nav-title">Navigation</h2> <ul class="site-nav__list"> <li class="site-nav__list-item"> <a href="/blog" aria-current="false"> Blog home </a> </li> <li class="site-nav__list-item"> <a href="/blog/tag/product/1" aria-current="false"> Product </a> </li> <li class="site-nav__list-item"> <a href="/blog/tag/engineering/1" aria-current="false"> Engineering </a> </li> <li class="site-nav__list-item"> <a href="/blog/tag/devops/1" aria-current="false"> DevOps </a> </li> <li class="site-nav__list-item"> <a href="/blog/tag/company/1" aria-current="false"> Company </a> </li> <li class="site-nav__list-item"> <a href="/blog/search" aria-current="false"> Search </a> </li> </ul> </nav> <script type="module">
import { ThemeSwitcher } from '/blog/js/modules/theme-switcher.js';
document.addEventListener('DOMContentLoaded', function () {
const themeSwitchers = document.querySelectorAll('[data-theme-toggle]');
themeSwitchers.forEach((switcher) => new ThemeSwitcher(switcher));
});
</script> <div class="side-nav"> <nav class="article-nav" data-article-nav aria-label="Table of contents"> <details class="article-nav__details" open> <summary class="article-nav__title"> On this page </summary> <hr class="separator"> <ol class="article-nav__list"> <li class="article-nav__item article-nav__item--level-2"> <a href="#lead-time" class="article-nav__link" data-article-link> Lead time </a> </li><li class="article-nav__item article-nav__item--level-2"> <a href="#deployment-frequency" class="article-nav__link" data-article-link> Deployment frequency </a> </li><li class="article-nav__item article-nav__item--level-2"> <a href="#restore-time-and-change-fail-rate" class="article-nav__link" data-article-link> Restore time and Change Fail Rate </a> </li><li class="article-nav__item article-nav__item--level-2"> <a href="#the-four-key-metrics" class="article-nav__link" data-article-link> The four key metrics </a> </li><li class="article-nav__item article-nav__item--level-2"> <a href="#an-ideal-code-review-process" class="article-nav__link" data-article-link> An ideal code review process </a> </li><li class="article-nav__item article-nav__item--level-2"> <a href="#the-cab-process" class="article-nav__link" data-article-link> The CAB process </a> </li><li class="article-nav__item article-nav__item--level-2"> <a href="#separation-of-duties-regulatory-compliance-and-fraud" class="article-nav__link" data-article-link> Separation of duties, regulatory compliance, and fraud </a> </li><li class="article-nav__item article-nav__item--level-2"> <a href="#what-to-do-if-your-organization-is-thinking-about-forming-a-cab" class="article-nav__link" data-article-link> What to do if your organization is thinking about forming a CAB </a> </li><li class="article-nav__item article-nav__item--level-2"> <a href="#what-to-do-if-you-already-have-a-cab" class="article-nav__link" data-article-link> What to do if you already have a CAB </a> </li> </ol> </details> </nav> <script type="module">document.addEventListener(`DOMContentLoaded`,function(){let e=document.querySelector(`.article-nav__details`),t=()=>{e&&(window.innerWidth>=1130?e.setAttribute(`open`,``):e.removeAttribute(`open`))};t(),window.addEventListener(`resize`,t)});</script> </div> </div> <div data-shared-source="live" data-shared-fragment="footer" data-shared-note="fetched https://octopus.com/fragments/footer at 2026-09-11T10:55:57.544Z">
<footer class="footer footer-pu" itemscope itemtype="https://schema.org/WPFooter">
<div class="footer__content container">
<section class="footer__row footer__row--first" aria-label="Product and resource links">
<div class="footer__column">
<h3 class="footer__column-title" id="footer-first-platform" itemprop="name">Platform</h3>
<ul class="footer__items" aria-labelledby="footer-first-platform">
<li class="footer__item">
<a class="footer__item-link"
href="https://octopus.com/"
aria-label="Continuous Delivery platform"
itemprop="url">
<span class="footer__item-label" itemprop="name">
Continuous Delivery platform
<svg class="icon icon--button-link-arrow" xmlns='http://www.w3.org/2000/svg' width='14' height='15' viewBox='0 0 14 15' fill='none'><path d='M6.01228 1.80213L6.66634 1.13321C6.94328 0.849968 7.39111 0.849968 7.6651 1.13321L13.3925 6.98777C13.6695 7.27101 13.6695 7.72901 13.3925 8.00923L7.6651 13.8668C7.38816 14.15 6.94033 14.15 6.66634 13.8668L6.01228 13.1979C5.73239 12.9116 5.73828 12.4446 6.02406 12.1644L9.57424 8.70527L1.10685 8.70527C0.715007 8.70527 0.399764 8.38286 0.399764 7.98211L0.399764 7.0179C0.399764 6.61715 0.715008 6.29474 1.10685 6.29474L9.57424 6.29474L6.02407 2.83564C5.73534 2.55542 5.72945 2.08838 6.01228 1.80213Z' fill='#0D80D8'/></svg>
</span>
</a>
</li>
<li class="footer__item">
<a class="footer__item-link"
href="https://octopus.com/use-case/platform-hub"
aria-label="Platform Hub"
itemprop="url">
<span class="footer__item-label" itemprop="name">
Platform Hub
<svg class="icon icon--button-link-arrow" xmlns='http://www.w3.org/2000/svg' width='14' height='15' viewBox='0 0 14 15' fill='none'><path d='M6.01228 1.80213L6.66634 1.13321C6.94328 0.849968 7.39111 0.849968 7.6651 1.13321L13.3925 6.98777C13.6695 7.27101 13.6695 7.72901 13.3925 8.00923L7.6651 13.8668C7.38816 14.15 6.94033 14.15 6.66634 13.8668L6.01228 13.1979C5.73239 12.9116 5.73828 12.4446 6.02406 12.1644L9.57424 8.70527L1.10685 8.70527C0.715007 8.70527 0.399764 8.38286 0.399764 7.98211L0.399764 7.0179C0.399764 6.61715 0.715008 6.29474 1.10685 6.29474L9.57424 6.29474L6.02407 2.83564C5.73534 2.55542 5.72945 2.08838 6.01228 1.80213Z' fill='#0D80D8'/></svg>
</span>
</a>
</li>
<li class="footer__item">
<a class="footer__item-link"
href="https://octopus.com/ai-tools"
aria-label="AI tools"
itemprop="url">
<span class="footer__item-label" itemprop="name">
AI tools
<svg class="icon icon--button-link-arrow" xmlns='http://www.w3.org/2000/svg' width='14' height='15' viewBox='0 0 14 15' fill='none'><path d='M6.01228 1.80213L6.66634 1.13321C6.94328 0.849968 7.39111 0.849968 7.6651 1.13321L13.3925 6.98777C13.6695 7.27101 13.6695 7.72901 13.3925 8.00923L7.6651 13.8668C7.38816 14.15 6.94033 14.15 6.66634 13.8668L6.01228 13.1979C5.73239 12.9116 5.73828 12.4446 6.02406 12.1644L9.57424 8.70527L1.10685 8.70527C0.715007 8.70527 0.399764 8.38286 0.399764 7.98211L0.399764 7.0179C0.399764 6.61715 0.715008 6.29474 1.10685 6.29474L9.57424 6.29474L6.02407 2.83564C5.73534 2.55542 5.72945 2.08838 6.01228 1.80213Z' fill='#0D80D8'/></svg>
</span>
</a>
</li>
<li class="footer__item">
<a class="footer__item-link"
href="https://octopus.com/use-case/tenanted-deployments"
target="_blank"
rel="noopener noreferrer"
aria-label="Tenanted deployments (opens in new tab)"
itemprop="url">
<span class="footer__item-label" itemprop="name">
Tenanted deployments
<svg class="icon icon--button-link-arrow" xmlns='http://www.w3.org/2000/svg' width='14' height='15' viewBox='0 0 14 15' fill='none'><path d='M6.01228 1.80213L6.66634 1.13321C6.94328 0.849968 7.39111 0.849968 7.6651 1.13321L13.3925 6.98777C13.6695 7.27101 13.6695 7.72901 13.3925 8.00923L7.6651 13.8668C7.38816 14.15 6.94033 14.15 6.66634 13.8668L6.01228 13.1979C5.73239 12.9116 5.73828 12.4446 6.02406 12.1644L9.57424 8.70527L1.10685 8.70527C0.715007 8.70527 0.399764 8.38286 0.399764 7.98211L0.399764 7.0179C0.399764 6.61715 0.715008 6.29474 1.10685 6.29474L9.57424 6.29474L6.02407 2.83564C5.73534 2.55542 5.72945 2.08838 6.01228 1.80213Z' fill='#0D80D8'/></svg>
</span>
</a>
</li>
</ul>
</div>
<div class="footer__column">
<h3 class="footer__column-title" id="footer-first-resources" itemprop="name">Resources</h3>
<ul class="footer__items" aria-labelledby="footer-first-resources">
<li class="footer__item">
<a class="footer__item-link"
href="https://octopus.com/docs"
aria-label="Documentation"
itemprop="url">
<span class="footer__item-label" itemprop="name">
Documentation
<svg class="icon icon--button-link-arrow" xmlns='http://www.w3.org/2000/svg' width='14' height='15' viewBox='0 0 14 15' fill='none'><path d='M6.01228 1.80213L6.66634 1.13321C6.94328 0.849968 7.39111 0.849968 7.6651 1.13321L13.3925 6.98777C13.6695 7.27101 13.6695 7.72901 13.3925 8.00923L7.6651 13.8668C7.38816 14.15 6.94033 14.15 6.66634 13.8668L6.01228 13.1979C5.73239 12.9116 5.73828 12.4446 6.02406 12.1644L9.57424 8.70527L1.10685 8.70527C0.715007 8.70527 0.399764 8.38286 0.399764 7.98211L0.399764 7.0179C0.399764 6.61715 0.715008 6.29474 1.10685 6.29474L9.57424 6.29474L6.02407 2.83564C5.73534 2.55542 5.72945 2.08838 6.01228 1.80213Z' fill='#0D80D8'/></svg>
</span>
</a>
</li>
<li class="footer__item">
<a class="footer__item-link"
href="https://octopus.com/downloads"
aria-label="Download Octopus"
itemprop="url">
<span class="footer__item-label" itemprop="name">
Download Octopus
<svg class="icon icon--button-link-arrow" xmlns='http://www.w3.org/2000/svg' width='14' height='15' viewBox='0 0 14 15' fill='none'><path d='M6.01228 1.80213L6.66634 1.13321C6.94328 0.849968 7.39111 0.849968 7.6651 1.13321L13.3925 6.98777C13.6695 7.27101 13.6695 7.72901 13.3925 8.00923L7.6651 13.8668C7.38816 14.15 6.94033 14.15 6.66634 13.8668L6.01228 13.1979C5.73239 12.9116 5.73828 12.4446 6.02406 12.1644L9.57424 8.70527L1.10685 8.70527C0.715007 8.70527 0.399764 8.38286 0.399764 7.98211L0.399764 7.0179C0.399764 6.61715 0.715008 6.29474 1.10685 6.29474L9.57424 6.29474L6.02407 2.83564C5.73534 2.55542 5.72945 2.08838 6.01228 1.80213Z' fill='#0D80D8'/></svg>
</span>
</a>
</li>
<li class="footer__item">
<a class="footer__item-link"
href="https://octopus.com/publications"
aria-label="Publications"
itemprop="url">
<span class="footer__item-label" itemprop="name">
Publications
<svg class="icon icon--button-link-arrow" xmlns='http://www.w3.org/2000/svg' width='14' height='15' viewBox='0 0 14 15' fill='none'><path d='M6.01228 1.80213L6.66634 1.13321C6.94328 0.849968 7.39111 0.849968 7.6651 1.13321L13.3925 6.98777C13.6695 7.27101 13.6695 7.72901 13.3925 8.00923L7.6651 13.8668C7.38816 14.15 6.94033 14.15 6.66634 13.8668L6.01228 13.1979C5.73239 12.9116 5.73828 12.4446 6.02406 12.1644L9.57424 8.70527L1.10685 8.70527C0.715007 8.70527 0.399764 8.38286 0.399764 7.98211L0.399764 7.0179C0.399764 6.61715 0.715008 6.29474 1.10685 6.29474L9.57424 6.29474L6.02407 2.83564C5.73534 2.55542 5.72945 2.08838 6.01228 1.80213Z' fill='#0D80D8'/></svg>
</span>
</a>
</li>
<li class="footer__item">
<a class="footer__item-link"
href="https://octopus.com/blog"
aria-label="Blog"
itemprop="url">
<span class="footer__item-label" itemprop="name">
Blog
<svg class="icon icon--button-link-arrow" xmlns='http://www.w3.org/2000/svg' width='14' height='15' viewBox='0 0 14 15' fill='none'><path d='M6.01228 1.80213L6.66634 1.13321C6.94328 0.849968 7.39111 0.849968 7.6651 1.13321L13.3925 6.98777C13.6695 7.27101 13.6695 7.72901 13.3925 8.00923L7.6651 13.8668C7.38816 14.15 6.94033 14.15 6.66634 13.8668L6.01228 13.1979C5.73239 12.9116 5.73828 12.4446 6.02406 12.1644L9.57424 8.70527L1.10685 8.70527C0.715007 8.70527 0.399764 8.38286 0.399764 7.98211L0.399764 7.0179C0.399764 6.61715 0.715008 6.29474 1.10685 6.29474L9.57424 6.29474L6.02407 2.83564C5.73534 2.55542 5.72945 2.08838 6.01228 1.80213Z' fill='#0D80D8'/></svg>
</span>
</a>
</li>
</ul>
</div>
<div class="footer__column">
<h3 class="footer__column-title" id="footer-first-our-company" itemprop="name">Our company</h3>
<ul class="footer__items" aria-labelledby="footer-first-our-company">
<li class="footer__item">
<a class="footer__item-link"
href="https://octopus.com/company"
aria-label="About us"
itemprop="url">
<span class="footer__item-label" itemprop="name">
About us
<svg class="icon icon--button-link-arrow" xmlns='http://www.w3.org/2000/svg' width='14' height='15' viewBox='0 0 14 15' fill='none'><path d='M6.01228 1.80213L6.66634 1.13321C6.94328 0.849968 7.39111 0.849968 7.6651 1.13321L13.3925 6.98777C13.6695 7.27101 13.6695 7.72901 13.3925 8.00923L7.6651 13.8668C7.38816 14.15 6.94033 14.15 6.66634 13.8668L6.01228 13.1979C5.73239 12.9116 5.73828 12.4446 6.02406 12.1644L9.57424 8.70527L1.10685 8.70527C0.715007 8.70527 0.399764 8.38286 0.399764 7.98211L0.399764 7.0179C0.399764 6.61715 0.715008 6.29474 1.10685 6.29474L9.57424 6.29474L6.02407 2.83564C5.73534 2.55542 5.72945 2.08838 6.01228 1.80213Z' fill='#0D80D8'/></svg>
</span>
</a>
</li>
<li class="footer__item">
<a class="footer__item-link"
href="https://octopus.com/company/careers"
aria-label="Careers"
itemprop="url">
<span class="footer__item-label" itemprop="name">
Careers
<svg class="icon icon--button-link-arrow" xmlns='http://www.w3.org/2000/svg' width='14' height='15' viewBox='0 0 14 15' fill='none'><path d='M6.01228 1.80213L6.66634 1.13321C6.94328 0.849968 7.39111 0.849968 7.6651 1.13321L13.3925 6.98777C13.6695 7.27101 13.6695 7.72901 13.3925 8.00923L7.6651 13.8668C7.38816 14.15 6.94033 14.15 6.66634 13.8668L6.01228 13.1979C5.73239 12.9116 5.73828 12.4446 6.02406 12.1644L9.57424 8.70527L1.10685 8.70527C0.715007 8.70527 0.399764 8.38286 0.399764 7.98211L0.399764 7.0179C0.399764 6.61715 0.715008 6.29474 1.10685 6.29474L9.57424 6.29474L6.02407 2.83564C5.73534 2.55542 5.72945 2.08838 6.01228 1.80213Z' fill='#0D80D8'/></svg>
</span>
</a>
</li>
<li class="footer__item">
<a class="footer__item-link"
href="https://roadmap.octopus.com/tabs/1-under-consideration"
rel="noopener noreferrer"
aria-label="Roadmap (opens in new tab)"
itemprop="url">
<span class="footer__item-label" itemprop="name">
Roadmap
<svg class="icon icon--button-link-arrow" xmlns='http://www.w3.org/2000/svg' width='14' height='15' viewBox='0 0 14 15' fill='none'><path d='M6.01228 1.80213L6.66634 1.13321C6.94328 0.849968 7.39111 0.849968 7.6651 1.13321L13.3925 6.98777C13.6695 7.27101 13.6695 7.72901 13.3925 8.00923L7.6651 13.8668C7.38816 14.15 6.94033 14.15 6.66634 13.8668L6.01228 13.1979C5.73239 12.9116 5.73828 12.4446 6.02406 12.1644L9.57424 8.70527L1.10685 8.70527C0.715007 8.70527 0.399764 8.38286 0.399764 7.98211L0.399764 7.0179C0.399764 6.61715 0.715008 6.29474 1.10685 6.29474L9.57424 6.29474L6.02407 2.83564C5.73534 2.55542 5.72945 2.08838 6.01228 1.80213Z' fill='#0D80D8'/></svg>
</span>
</a>
</li>
<li class="footer__item">
<a class="footer__item-link"
href="https://ir.octopus.com/"
rel="noopener noreferrer"
aria-label="Investor relations (opens in new tab)"
itemprop="url">
<span class="footer__item-label" itemprop="name">
Investor relations
<svg class="icon icon--button-link-arrow" xmlns='http://www.w3.org/2000/svg' width='14' height='15' viewBox='0 0 14 15' fill='none'><path d='M6.01228 1.80213L6.66634 1.13321C6.94328 0.849968 7.39111 0.849968 7.6651 1.13321L13.3925 6.98777C13.6695 7.27101 13.6695 7.72901 13.3925 8.00923L7.6651 13.8668C7.38816 14.15 6.94033 14.15 6.66634 13.8668L6.01228 13.1979C5.73239 12.9116 5.73828 12.4446 6.02406 12.1644L9.57424 8.70527L1.10685 8.70527C0.715007 8.70527 0.399764 8.38286 0.399764 7.98211L0.399764 7.0179C0.399764 6.61715 0.715008 6.29474 1.10685 6.29474L9.57424 6.29474L6.02407 2.83564C5.73534 2.55542 5.72945 2.08838 6.01228 1.80213Z' fill='#0D80D8'/></svg>
</span>
</a>
</li>
<li class="footer__item">
<a class="footer__item-link"
href="https://octopus.com/company/brand"
aria-label="Brand guidelines"
itemprop="url">
<span class="footer__item-label" itemprop="name">
Brand guidelines
<svg class="icon icon--button-link-arrow" xmlns='http://www.w3.org/2000/svg' width='14' height='15' viewBox='0 0 14 15' fill='none'><path d='M6.01228 1.80213L6.66634 1.13321C6.94328 0.849968 7.39111 0.849968 7.6651 1.13321L13.3925 6.98777C13.6695 7.27101 13.6695 7.72901 13.3925 8.00923L7.6651 13.8668C7.38816 14.15 6.94033 14.15 6.66634 13.8668L6.01228 13.1979C5.73239 12.9116 5.73828 12.4446 6.02406 12.1644L9.57424 8.70527L1.10685 8.70527C0.715007 8.70527 0.399764 8.38286 0.399764 7.98211L0.399764 7.0179C0.399764 6.61715 0.715008 6.29474 1.10685 6.29474L9.57424 6.29474L6.02407 2.83564C5.73534 2.55542 5.72945 2.08838 6.01228 1.80213Z' fill='#0D80D8'/></svg>
</span>
</a>
</li>
</ul>
</div>
<div class="footer__column">
<h3 class="footer__column-title" id="footer-first-help-and-support" itemprop="name">Help and support</h3>
<ul class="footer__items" aria-labelledby="footer-first-help-and-support">
<li class="footer__item">
<a class="footer__item-link"
href="https://octopus.com/company/contact"
aria-label="Contact Sales"
itemprop="url">
<span class="footer__item-label" itemprop="name">
Contact Sales
<svg class="icon icon--button-link-arrow" xmlns='http://www.w3.org/2000/svg' width='14' height='15' viewBox='0 0 14 15' fill='none'><path d='M6.01228 1.80213L6.66634 1.13321C6.94328 0.849968 7.39111 0.849968 7.6651 1.13321L13.3925 6.98777C13.6695 7.27101 13.6695 7.72901 13.3925 8.00923L7.6651 13.8668C7.38816 14.15 6.94033 14.15 6.66634 13.8668L6.01228 13.1979C5.73239 12.9116 5.73828 12.4446 6.02406 12.1644L9.57424 8.70527L1.10685 8.70527C0.715007 8.70527 0.399764 8.38286 0.399764 7.98211L0.399764 7.0179C0.399764 6.61715 0.715008 6.29474 1.10685 6.29474L9.57424 6.29474L6.02407 2.83564C5.73534 2.55542 5.72945 2.08838 6.01228 1.80213Z' fill='#0D80D8'/></svg>
</span>
</a>
</li>
<li class="footer__item">
<a class="footer__item-link"
href="https://octopus.com/support"
aria-label="Support"
itemprop="url">
<span class="footer__item-label" itemprop="name">
Support
<svg class="icon icon--button-link-arrow" xmlns='http://www.w3.org/2000/svg' width='14' height='15' viewBox='0 0 14 15' fill='none'><path d='M6.01228 1.80213L6.66634 1.13321C6.94328 0.849968 7.39111 0.849968 7.6651 1.13321L13.3925 6.98777C13.6695 7.27101 13.6695 7.72901 13.3925 8.00923L7.6651 13.8668C7.38816 14.15 6.94033 14.15 6.66634 13.8668L6.01228 13.1979C5.73239 12.9116 5.73828 12.4446 6.02406 12.1644L9.57424 8.70527L1.10685 8.70527C0.715007 8.70527 0.399764 8.38286 0.399764 7.98211L0.399764 7.0179C0.399764 6.61715 0.715008 6.29474 1.10685 6.29474L9.57424 6.29474L6.02407 2.83564C5.73534 2.55542 5.72945 2.08838 6.01228 1.80213Z' fill='#0D80D8'/></svg>
</span>
</a>
</li>
<li class="footer__item">
<a class="footer__item-link"
href="https://octopus.com/upgrade"
aria-label="Upgrade"
itemprop="url">
<span class="footer__item-label" itemprop="name">
Upgrade
<svg class="icon icon--button-link-arrow" xmlns='http://www.w3.org/2000/svg' width='14' height='15' viewBox='0 0 14 15' fill='none'><path d='M6.01228 1.80213L6.66634 1.13321C6.94328 0.849968 7.39111 0.849968 7.6651 1.13321L13.3925 6.98777C13.6695 7.27101 13.6695 7.72901 13.3925 8.00923L7.6651 13.8668C7.38816 14.15 6.94033 14.15 6.66634 13.8668L6.01228 13.1979C5.73239 12.9116 5.73828 12.4446 6.02406 12.1644L9.57424 8.70527L1.10685 8.70527C0.715007 8.70527 0.399764 8.38286 0.399764 7.98211L0.399764 7.0179C0.399764 6.61715 0.715008 6.29474 1.10685 6.29474L9.57424 6.29474L6.02407 2.83564C5.73534 2.55542 5.72945 2.08838 6.01228 1.80213Z' fill='#0D80D8'/></svg>
</span>
</a>
</li>
<li class="footer__item">
<a class="footer__item-link"
href="https://octopus.com/company/trust"
aria-label="Security and legal"
itemprop="url">
<span class="footer__item-label" itemprop="name">
Security and legal
<svg class="icon icon--button-link-arrow" xmlns='http://www.w3.org/2000/svg' width='14' height='15' viewBox='0 0 14 15' fill='none'><path d='M6.01228 1.80213L6.66634 1.13321C6.94328 0.849968 7.39111 0.849968 7.6651 1.13321L13.3925 6.98777C13.6695 7.27101 13.6695 7.72901 13.3925 8.00923L7.6651 13.8668C7.38816 14.15 6.94033 14.15 6.66634 13.8668L6.01228 13.1979C5.73239 12.9116 5.73828 12.4446 6.02406 12.1644L9.57424 8.70527L1.10685 8.70527C0.715007 8.70527 0.399764 8.38286 0.399764 7.98211L0.399764 7.0179C0.399764 6.61715 0.715008 6.29474 1.10685 6.29474L9.57424 6.29474L6.02407 2.83564C5.73534 2.55542 5.72945 2.08838 6.01228 1.80213Z' fill='#0D80D8'/></svg>
</span>
</a>
</li>
<li class="footer__item">
<a class="footer__item-link"
href="https://oc.to/CommunitySlack"
rel="noopener noreferrer"
aria-label="Community Slack (opens in new tab)"
itemprop="url">
<span class="footer__item-label" itemprop="name">
Community Slack
<svg class="icon icon--button-link-arrow" xmlns='http://www.w3.org/2000/svg' width='14' height='15' viewBox='0 0 14 15' fill='none'><path d='M6.01228 1.80213L6.66634 1.13321C6.94328 0.849968 7.39111 0.849968 7.6651 1.13321L13.3925 6.98777C13.6695 7.27101 13.6695 7.72901 13.3925 8.00923L7.6651 13.8668C7.38816 14.15 6.94033 14.15 6.66634 13.8668L6.01228 13.1979C5.73239 12.9116 5.73828 12.4446 6.02406 12.1644L9.57424 8.70527L1.10685 8.70527C0.715007 8.70527 0.399764 8.38286 0.399764 7.98211L0.399764 7.0179C0.399764 6.61715 0.715008 6.29474 1.10685 6.29474L9.57424 6.29474L6.02407 2.83564C5.73534 2.55542 5.72945 2.08838 6.01228 1.80213Z' fill='#0D80D8'/></svg>
</span>
</a>
</li>
</ul>
</div>
</section>
<section class="footer__row footer__row--second" aria-label="Community and partners">
<div class="footer__column">
<h3 class="footer__column-title" id="footer-second-our-awards" itemprop="name">Our awards</h3>
<ul class="footer__items" aria-labelledby="footer-second-our-awards">
<li class="footer__item">
<a class="footer__item-link"
href="https://www.g2.com/products/octopus-deploy/reviews"
target="_blank"
rel="noopener noreferrer"
aria-label="Image link"
itemprop="url">
<span class="footer__item-image" aria-hidden="true">
<span class="image-wrapper">
<img src="https://a.storyblok.com/f/185929/868x1000/ff9d5240db/continuousintegration_bestmeetsrequirements_meetsrequirements.png/m/fit-in/1200x0/filters:quality(85):format(webp)" alt="Award badge for &quot;Best Meets Requirements&quot; from G2, Summer 2026." loading="lazy" width="868" height="1000" srcset="https://a.storyblok.com/f/185929/868x1000/ff9d5240db/continuousintegration_bestmeetsrequirements_meetsrequirements.png/m/fit-in/400x0/filters:quality(85):format(webp) 400w, https://a.storyblok.com/f/185929/868x1000/ff9d5240db/continuousintegration_bestmeetsrequirements_meetsrequirements.png/m/fit-in/600x0/filters:quality(85):format(webp) 600w, https://a.storyblok.com/f/185929/868x1000/ff9d5240db/continuousintegration_bestmeetsrequirements_meetsrequirements.png/m/fit-in/800x0/filters:quality(85):format(webp) 800w, https://a.storyblok.com/f/185929/868x1000/ff9d5240db/continuousintegration_bestmeetsrequirements_meetsrequirements.png/m/fit-in/1200x0/filters:quality(85):format(webp) 1200w, https://a.storyblok.com/f/185929/868x1000/ff9d5240db/continuousintegration_bestmeetsrequirements_meetsrequirements.png/m/fit-in/1600x0/filters:quality(85):format(webp) 1600w, https://a.storyblok.com/f/185929/868x1000/ff9d5240db/continuousintegration_bestmeetsrequirements_meetsrequirements.png/m/fit-in/2000x0/filters:quality(85):format(webp) 2000w" sizes="(max-width: 480px) 100vw, (max-width: 768px) 90vw, (max-width: 1024px) 80vw, 70vw" />
</span>
</span>
</a>
</li>
<li class="footer__item">
<a class="footer__item-link"
href="https://www.gartner.com/reviews/market/devops-platforms/vendor/octopus-deploy-125263461/product/octopus-deploy"
rel="noopener noreferrer"
aria-label="Image link"
itemprop="url">
<span class="footer__item-image" aria-hidden="true">
<span class="image-wrapper">
<img src="https://a.storyblok.com/f/185929/86x101/dd0724c752/gartner-users-love-us-badge.png/m/fit-in/1200x0/filters:quality(85):format(webp)" alt="Gartner badge - Users love us" loading="lazy" width="86" height="101" srcset="https://a.storyblok.com/f/185929/86x101/dd0724c752/gartner-users-love-us-badge.png/m/fit-in/400x0/filters:quality(85):format(webp) 400w, https://a.storyblok.com/f/185929/86x101/dd0724c752/gartner-users-love-us-badge.png/m/fit-in/600x0/filters:quality(85):format(webp) 600w, https://a.storyblok.com/f/185929/86x101/dd0724c752/gartner-users-love-us-badge.png/m/fit-in/800x0/filters:quality(85):format(webp) 800w, https://a.storyblok.com/f/185929/86x101/dd0724c752/gartner-users-love-us-badge.png/m/fit-in/1200x0/filters:quality(85):format(webp) 1200w, https://a.storyblok.com/f/185929/86x101/dd0724c752/gartner-users-love-us-badge.png/m/fit-in/1600x0/filters:quality(85):format(webp) 1600w, https://a.storyblok.com/f/185929/86x101/dd0724c752/gartner-users-love-us-badge.png/m/fit-in/2000x0/filters:quality(85):format(webp) 2000w" sizes="(max-width: 480px) 100vw, (max-width: 768px) 90vw, (max-width: 1024px) 80vw, 70vw" />
</span>
</span>
</a>
</li>
<li class="footer__item">
<a class="footer__item-link"
href="https://www.g2.com/products/octopus-deploy/reviews"
target="_blank"
rel="noopener noreferrer"
aria-label="Image link"
itemprop="url">
<span class="footer__item-image" aria-hidden="true">
<span class="image-wrapper">
<img src="https://a.storyblok.com/f/185929/868x1000/f647e2f3bc/configurationmanagement_highperformer_enterprise_highperformer.png/m/fit-in/1200x0/filters:quality(85):format(webp)" alt="Badge displaying &quot;High Performer Enterprise&quot; for Summer 2026 with G2 logo." loading="lazy" width="868" height="1000" srcset="https://a.storyblok.com/f/185929/868x1000/f647e2f3bc/configurationmanagement_highperformer_enterprise_highperformer.png/m/fit-in/400x0/filters:quality(85):format(webp) 400w, https://a.storyblok.com/f/185929/868x1000/f647e2f3bc/configurationmanagement_highperformer_enterprise_highperformer.png/m/fit-in/600x0/filters:quality(85):format(webp) 600w, https://a.storyblok.com/f/185929/868x1000/f647e2f3bc/configurationmanagement_highperformer_enterprise_highperformer.png/m/fit-in/800x0/filters:quality(85):format(webp) 800w, https://a.storyblok.com/f/185929/868x1000/f647e2f3bc/configurationmanagement_highperformer_enterprise_highperformer.png/m/fit-in/1200x0/filters:quality(85):format(webp) 1200w, https://a.storyblok.com/f/185929/868x1000/f647e2f3bc/configurationmanagement_highperformer_enterprise_highperformer.png/m/fit-in/1600x0/filters:quality(85):format(webp) 1600w, https://a.storyblok.com/f/185929/868x1000/f647e2f3bc/configurationmanagement_highperformer_enterprise_highperformer.png/m/fit-in/2000x0/filters:quality(85):format(webp) 2000w" sizes="(max-width: 480px) 100vw, (max-width: 768px) 90vw, (max-width: 1024px) 80vw, 70vw" />
</span>
</span>
</a>
</li>
</ul>
</div>
<div class="footer__column">
<h3 class="footer__column-title" id="footer-second-sign-up-to-our-newsletter" itemprop="name">Sign up to our newsletter</h3>
<ul class="footer__items" aria-labelledby="footer-second-sign-up-to-our-newsletter">
<li class="footer__item footer__item--component">
<div class="mktoFormWrapper"> <form id="mktoForm_2139" class="newsletter__form"></form> <script>(function(){const formId = 2139;
const dreamdataTrackingId = "Newsletter Signup (Footer)";
(() => {
const formEl = document.getElementById(`mktoForm_${formId}`);
if (!formEl) {
return;
}
// Load the 134 KB Marketo library once per page, shared across every form
const loadMarketo = () => {
if (!window.__marketoLoader) {
window.__marketoLoader = new Promise((resolve, reject) => {
const script = document.createElement('script');
script.src = 'https://get.octopus.com/js/forms2/js/forms2.min.js';
script.onload = resolve;
script.onerror = () => reject(new Error('Failed to load MktoForms2'));
document.head.appendChild(script);
});
}
return window.__marketoLoader;
};
const initForm = async () => {
try {
await loadMarketo();
} catch (error) {
console.error(error);
// Drop the cached rejected promise so a later form instance can retry
window.__marketoLoader = undefined;
// Collapse any space reserved for this form so a blocked or failed
// load does not leave an empty box (no-op when there is no wrapper)
formEl.closest('.newsletter')?.style.setProperty('display', 'none');
return;
}
// @ts-ignore - no global type for MktoForms2
if (typeof MktoForms2 === 'undefined' || !MktoForms2.loadForm) {
console.error('MktoForms2 is not available after loading.');
return;
}
// @ts-ignore
MktoForms2.loadForm(
'//get.octopus.com',
'271-BEX-827',
formId,
(form) => {
const formElem = form.getFormElem()[0];
if (!(formElem instanceof HTMLElement)) {
console.error(
'Expected a DOM element but got something else',
formElem
);
return;
}
formElem.querySelectorAll('style').forEach((style) => style.remove());
const baseStyle = document.getElementById('mktoForms2BaseStyle');
if (baseStyle) {
baseStyle.remove();
}
formElem.removeAttribute('style');
formElem
.querySelectorAll('.mktoTextField')
.forEach((el) => el.classList.add('form-control'));
formElem
.querySelectorAll('.mktoEmailField')
.forEach((el) => el.classList.add('form-control'));
formElem
.querySelectorAll('.mktoButton')
.forEach((el) => el.classList.add('button', 'button--primary'));
formElem
.querySelectorAll('.mktoAsterix')
.forEach((el) => el.remove());
formElem.querySelectorAll('.mktoOffset').forEach((el) => el.remove());
formElem
.querySelectorAll('.mktoFormCol, .mktoField, .mktoLabel')
.forEach((el) => el.removeAttribute('style'));
// Add Dreamdata tracking if configured
if (dreamdataTrackingId) {
form.onSuccess(function (values, followUpUrl) {
const email = values.Email || values.email;
if (typeof dreamdata !== 'undefined') {
try {
dreamdata.track(dreamdataTrackingId);
if (email) {
dreamdata.identify(null, { email: email });
}
} catch (error) {
console.warn('Dreamdata tracking failed:', error);
}
} else {
console.warn(
'Dreamdata not available for tracking:',
dreamdataTrackingId
);
}
if (followUpUrl) {
location.href = followUpUrl;
}
return followUpUrl ? false : true;
});
}
}
);
};
// The form is below the fold, so defer the library until the reader
// scrolls near it - keeps 134 KB off the critical path on every page.
// 600px of rootMargin starts the download early enough that the form is
// usually ready when it enters the viewport.
if ('IntersectionObserver' in window) {
const observer = new IntersectionObserver(
(entries) => {
if (entries.some((entry) => entry.isIntersecting)) {
observer.disconnect();
initForm();
}
},
{ rootMargin: '600px' }
);
observer.observe(formEl);
} else {
initForm();
}
})();
})();</script> </div>
</li>
</ul>
</div>
<div class="footer__column">
<h3 class="footer__column-title" id="footer-second-marketplaces" itemprop="name">Marketplaces</h3>
<ul class="footer__items" aria-labelledby="footer-second-marketplaces">
<li class="footer__item">
<a class="footer__item-link"
href="https://marketplace.microsoft.com/en-us/product/saas/octopusdeployptyltd1664464418055.octopus_cloud_saas_offer?tab=overview"
target="_blank"
rel="noopener noreferrer"
aria-label="Azure marketplace (opens in new tab)"
itemprop="url">
<span class="footer__item-image" aria-hidden="true">
<span class="image-wrapper">
<img src="https://a.storyblok.com/f/185929/43x43/01bd95458d/azure-marketplace-logo.png/m/fit-in/1200x0/filters:quality(85):format(webp)" alt="Azure marketplace logo" loading="lazy" width="43" height="43" srcset="https://a.storyblok.com/f/185929/43x43/01bd95458d/azure-marketplace-logo.png/m/fit-in/400x0/filters:quality(85):format(webp) 400w, https://a.storyblok.com/f/185929/43x43/01bd95458d/azure-marketplace-logo.png/m/fit-in/600x0/filters:quality(85):format(webp) 600w, https://a.storyblok.com/f/185929/43x43/01bd95458d/azure-marketplace-logo.png/m/fit-in/800x0/filters:quality(85):format(webp) 800w, https://a.storyblok.com/f/185929/43x43/01bd95458d/azure-marketplace-logo.png/m/fit-in/1200x0/filters:quality(85):format(webp) 1200w, https://a.storyblok.com/f/185929/43x43/01bd95458d/azure-marketplace-logo.png/m/fit-in/1600x0/filters:quality(85):format(webp) 1600w, https://a.storyblok.com/f/185929/43x43/01bd95458d/azure-marketplace-logo.png/m/fit-in/2000x0/filters:quality(85):format(webp) 2000w" sizes="(max-width: 480px) 100vw, (max-width: 768px) 90vw, (max-width: 1024px) 80vw, 70vw" />
</span>
</span>
<span class="footer__item-label" itemprop="name">
Azure marketplace
</span>
</a>
</li>
<li class="footer__item">
<a class="footer__item-link"
href="https://aws.amazon.com/marketplace/pp/prodview-rsv6rann3nbsu?sr=0-2&amp;ref_=beagle&amp;applicationId=AWSMPContessa"
target="_blank"
rel="noopener noreferrer"
aria-label="AWS marketplace (opens in new tab)"
itemprop="url">
<span class="footer__item-image" aria-hidden="true">
<span class="image-wrapper">
<img src="https://a.storyblok.com/f/185929/1500x1200/8959e687b4/aws-white.webp/m/fit-in/1200x0/filters:quality(85):format(webp)" alt="AWS logo with bold white letters &quot;aws&quot; and an orange curved arrow below on a black background." loading="lazy" width="1500" height="1200" srcset="https://a.storyblok.com/f/185929/1500x1200/8959e687b4/aws-white.webp/m/fit-in/400x0/filters:quality(85):format(webp) 400w, https://a.storyblok.com/f/185929/1500x1200/8959e687b4/aws-white.webp/m/fit-in/600x0/filters:quality(85):format(webp) 600w, https://a.storyblok.com/f/185929/1500x1200/8959e687b4/aws-white.webp/m/fit-in/800x0/filters:quality(85):format(webp) 800w, https://a.storyblok.com/f/185929/1500x1200/8959e687b4/aws-white.webp/m/fit-in/1200x0/filters:quality(85):format(webp) 1200w, https://a.storyblok.com/f/185929/1500x1200/8959e687b4/aws-white.webp/m/fit-in/1600x0/filters:quality(85):format(webp) 1600w, https://a.storyblok.com/f/185929/1500x1200/8959e687b4/aws-white.webp/m/fit-in/2000x0/filters:quality(85):format(webp) 2000w" sizes="(max-width: 480px) 100vw, (max-width: 768px) 90vw, (max-width: 1024px) 80vw, 70vw" />
</span>
</span>
<span class="footer__item-label" itemprop="name">
AWS marketplace
</span>
</a>
</li>
</ul>
</div>
</section>
<section class="footer__row footer__row--third" aria-label="Legal and social media">
<div class="footer__column">
<ul class="footer__items"
aria-labelledby="footer-third-">
<li class="footer__item">
<span class="footer__item-image" aria-hidden="true">
<span class="image-wrapper">
<img src="https://a.storyblok.com/f/185929/150x150/61efa58c5f/octopus-blue-logo.svg" alt="Octopus blue logo" loading="lazy" width="150" height="150" />
</span>
</span>
<span class="footer__item-label">&#xA9; 2026 Octopus Deploy</span>
</li>
</ul>
</div>
<div class="footer__column">
<ul class="footer__items"
aria-labelledby="footer-third-">
<li class="footer__item">
<a class="footer__item-link"
href="https://octopus.com/legal/privacy"
aria-label="Privacy Policy"
itemprop="url">
<span class="footer__item-label" itemprop="name">
Privacy Policy
<svg class="icon icon--button-link-arrow" xmlns='http://www.w3.org/2000/svg' width='14' height='15' viewBox='0 0 14 15' fill='none'><path d='M6.01228 1.80213L6.66634 1.13321C6.94328 0.849968 7.39111 0.849968 7.6651 1.13321L13.3925 6.98777C13.6695 7.27101 13.6695 7.72901 13.3925 8.00923L7.6651 13.8668C7.38816 14.15 6.94033 14.15 6.66634 13.8668L6.01228 13.1979C5.73239 12.9116 5.73828 12.4446 6.02406 12.1644L9.57424 8.70527L1.10685 8.70527C0.715007 8.70527 0.399764 8.38286 0.399764 7.98211L0.399764 7.0179C0.399764 6.61715 0.715008 6.29474 1.10685 6.29474L9.57424 6.29474L6.02407 2.83564C5.73534 2.55542 5.72945 2.08838 6.01228 1.80213Z' fill='#0D80D8'/></svg>
</span>
</a>
</li>
<li class="footer__item">
<a class="footer__item-link"
href="https://octopus.com/legal/gdpr"
aria-label="GDPR"
itemprop="url">
<span class="footer__item-label" itemprop="name">
GDPR
<svg class="icon icon--button-link-arrow" xmlns='http://www.w3.org/2000/svg' width='14' height='15' viewBox='0 0 14 15' fill='none'><path d='M6.01228 1.80213L6.66634 1.13321C6.94328 0.849968 7.39111 0.849968 7.6651 1.13321L13.3925 6.98777C13.6695 7.27101 13.6695 7.72901 13.3925 8.00923L7.6651 13.8668C7.38816 14.15 6.94033 14.15 6.66634 13.8668L6.01228 13.1979C5.73239 12.9116 5.73828 12.4446 6.02406 12.1644L9.57424 8.70527L1.10685 8.70527C0.715007 8.70527 0.399764 8.38286 0.399764 7.98211L0.399764 7.0179C0.399764 6.61715 0.715008 6.29474 1.10685 6.29474L9.57424 6.29474L6.02407 2.83564C5.73534 2.55542 5.72945 2.08838 6.01228 1.80213Z' fill='#0D80D8'/></svg>
</span>
</a>
</li>
<li class="footer__item">
<a class="footer__item-link"
href="https://octopus.com/legal/customer-agreement"
aria-label="Terms"
itemprop="url">
<span class="footer__item-label" itemprop="name">
Terms
<svg class="icon icon--button-link-arrow" xmlns='http://www.w3.org/2000/svg' width='14' height='15' viewBox='0 0 14 15' fill='none'><path d='M6.01228 1.80213L6.66634 1.13321C6.94328 0.849968 7.39111 0.849968 7.6651 1.13321L13.3925 6.98777C13.6695 7.27101 13.6695 7.72901 13.3925 8.00923L7.6651 13.8668C7.38816 14.15 6.94033 14.15 6.66634 13.8668L6.01228 13.1979C5.73239 12.9116 5.73828 12.4446 6.02406 12.1644L9.57424 8.70527L1.10685 8.70527C0.715007 8.70527 0.399764 8.38286 0.399764 7.98211L0.399764 7.0179C0.399764 6.61715 0.715008 6.29474 1.10685 6.29474L9.57424 6.29474L6.02407 2.83564C5.73534 2.55542 5.72945 2.08838 6.01228 1.80213Z' fill='#0D80D8'/></svg>
</span>
</a>
</li>
<li class="footer__item">
<a class="footer__item-link"
href="https://status.octopus.com/"
rel="noopener noreferrer"
aria-label="Status (opens in new tab)"
itemprop="url">
<span class="footer__item-label" itemprop="name">
Status
<svg class="icon icon--button-link-arrow" xmlns='http://www.w3.org/2000/svg' width='14' height='15' viewBox='0 0 14 15' fill='none'><path d='M6.01228 1.80213L6.66634 1.13321C6.94328 0.849968 7.39111 0.849968 7.6651 1.13321L13.3925 6.98777C13.6695 7.27101 13.6695 7.72901 13.3925 8.00923L7.6651 13.8668C7.38816 14.15 6.94033 14.15 6.66634 13.8668L6.01228 13.1979C5.73239 12.9116 5.73828 12.4446 6.02406 12.1644L9.57424 8.70527L1.10685 8.70527C0.715007 8.70527 0.399764 8.38286 0.399764 7.98211L0.399764 7.0179C0.399764 6.61715 0.715008 6.29474 1.10685 6.29474L9.57424 6.29474L6.02407 2.83564C5.73534 2.55542 5.72945 2.08838 6.01228 1.80213Z' fill='#0D80D8'/></svg>
</span>
</a>
</li>
</ul>
</div>
<div class="footer__column">
<ul class="footer__items"
aria-labelledby="footer-third-">
<li class="footer__item">
<a class="footer__item-link"
href="https://octopus.com/company/trust"
aria-label="Image link"
itemprop="url">
<span class="footer__item-image" aria-hidden="true">
<span class="image-wrapper">
<img src="https://a.storyblok.com/f/185929/121x28/f5e12a77a5/soc2-1.png/m/fit-in/1200x0/filters:quality(85):format(webp)" alt="SOC 2 Type II compliance" loading="lazy" width="121" height="28" srcset="https://a.storyblok.com/f/185929/121x28/f5e12a77a5/soc2-1.png/m/fit-in/400x0/filters:quality(85):format(webp) 400w, https://a.storyblok.com/f/185929/121x28/f5e12a77a5/soc2-1.png/m/fit-in/600x0/filters:quality(85):format(webp) 600w, https://a.storyblok.com/f/185929/121x28/f5e12a77a5/soc2-1.png/m/fit-in/800x0/filters:quality(85):format(webp) 800w, https://a.storyblok.com/f/185929/121x28/f5e12a77a5/soc2-1.png/m/fit-in/1200x0/filters:quality(85):format(webp) 1200w, https://a.storyblok.com/f/185929/121x28/f5e12a77a5/soc2-1.png/m/fit-in/1600x0/filters:quality(85):format(webp) 1600w, https://a.storyblok.com/f/185929/121x28/f5e12a77a5/soc2-1.png/m/fit-in/2000x0/filters:quality(85):format(webp) 2000w" sizes="(max-width: 480px) 100vw, (max-width: 768px) 90vw, (max-width: 1024px) 80vw, 70vw" />
</span>
</span>
</a>
</li>
<li class="footer__item">
<a class="footer__item-link"
href="https://octopus.com/support/enterprise-argo-support"
aria-label="Image link"
itemprop="url">
<span class="footer__item-image" aria-hidden="true">
<span class="image-wrapper">
<img src="https://a.storyblok.com/f/185929/81x46/95d9bb1ded/property-1-argo-logo-color.png/m/fit-in/1200x0/filters:quality(85):format(webp)" alt="Argo logo" loading="lazy" width="81" height="46" srcset="https://a.storyblok.com/f/185929/81x46/95d9bb1ded/property-1-argo-logo-color.png/m/fit-in/400x0/filters:quality(85):format(webp) 400w, https://a.storyblok.com/f/185929/81x46/95d9bb1ded/property-1-argo-logo-color.png/m/fit-in/600x0/filters:quality(85):format(webp) 600w, https://a.storyblok.com/f/185929/81x46/95d9bb1ded/property-1-argo-logo-color.png/m/fit-in/800x0/filters:quality(85):format(webp) 800w, https://a.storyblok.com/f/185929/81x46/95d9bb1ded/property-1-argo-logo-color.png/m/fit-in/1200x0/filters:quality(85):format(webp) 1200w, https://a.storyblok.com/f/185929/81x46/95d9bb1ded/property-1-argo-logo-color.png/m/fit-in/1600x0/filters:quality(85):format(webp) 1600w, https://a.storyblok.com/f/185929/81x46/95d9bb1ded/property-1-argo-logo-color.png/m/fit-in/2000x0/filters:quality(85):format(webp) 2000w" sizes="(max-width: 480px) 100vw, (max-width: 768px) 90vw, (max-width: 1024px) 80vw, 70vw" />
</span>
</span>
</a>
</li>
</ul>
</div>
<div class="footer__column">
<ul class="footer__items"
aria-labelledby="footer-third-">
<li class="footer__item">
<a class="footer__item-link"
href="https://x.com/OctopusDeploy"
target="_blank"
rel="noopener noreferrer"
aria-label="Image link"
itemprop="url">
<span class="footer__item-image" aria-hidden="true">
<span class="image-wrapper">
<img src="https://a.storyblok.com/f/185929/35x35/6f5c80f250/x-logo.png/m/fit-in/1200x0/filters:quality(85):format(webp)" alt="X logo" loading="lazy" width="35" height="35" srcset="https://a.storyblok.com/f/185929/35x35/6f5c80f250/x-logo.png/m/fit-in/400x0/filters:quality(85):format(webp) 400w, https://a.storyblok.com/f/185929/35x35/6f5c80f250/x-logo.png/m/fit-in/600x0/filters:quality(85):format(webp) 600w, https://a.storyblok.com/f/185929/35x35/6f5c80f250/x-logo.png/m/fit-in/800x0/filters:quality(85):format(webp) 800w, https://a.storyblok.com/f/185929/35x35/6f5c80f250/x-logo.png/m/fit-in/1200x0/filters:quality(85):format(webp) 1200w, https://a.storyblok.com/f/185929/35x35/6f5c80f250/x-logo.png/m/fit-in/1600x0/filters:quality(85):format(webp) 1600w, https://a.storyblok.com/f/185929/35x35/6f5c80f250/x-logo.png/m/fit-in/2000x0/filters:quality(85):format(webp) 2000w" sizes="(max-width: 480px) 100vw, (max-width: 768px) 90vw, (max-width: 1024px) 80vw, 70vw" />
</span>
</span>
</a>
</li>
<li class="footer__item">
<a class="footer__item-link"
href="https://www.linkedin.com/company/octopus-deploy"
target="_blank"
rel="noopener noreferrer"
aria-label="Image link"
itemprop="url">
<span class="footer__item-image" aria-hidden="true">
<span class="image-wrapper">
<img src="https://a.storyblok.com/f/185929/35x35/d628eb60c7/linkedin-logo.png/m/fit-in/1200x0/filters:quality(85):format(webp)" alt="LinkedIn logo" loading="lazy" width="35" height="35" srcset="https://a.storyblok.com/f/185929/35x35/d628eb60c7/linkedin-logo.png/m/fit-in/400x0/filters:quality(85):format(webp) 400w, https://a.storyblok.com/f/185929/35x35/d628eb60c7/linkedin-logo.png/m/fit-in/600x0/filters:quality(85):format(webp) 600w, https://a.storyblok.com/f/185929/35x35/d628eb60c7/linkedin-logo.png/m/fit-in/800x0/filters:quality(85):format(webp) 800w, https://a.storyblok.com/f/185929/35x35/d628eb60c7/linkedin-logo.png/m/fit-in/1200x0/filters:quality(85):format(webp) 1200w, https://a.storyblok.com/f/185929/35x35/d628eb60c7/linkedin-logo.png/m/fit-in/1600x0/filters:quality(85):format(webp) 1600w, https://a.storyblok.com/f/185929/35x35/d628eb60c7/linkedin-logo.png/m/fit-in/2000x0/filters:quality(85):format(webp) 2000w" sizes="(max-width: 480px) 100vw, (max-width: 768px) 90vw, (max-width: 1024px) 80vw, 70vw" />
</span>
</span>
</a>
</li>
<li class="footer__item">
<a class="footer__item-link"
href="https://github.com/OctopusDeploy"
target="_blank"
rel="noopener noreferrer"
aria-label="Image link"
itemprop="url">
<span class="footer__item-image" aria-hidden="true">
<span class="image-wrapper">
<img src="https://a.storyblok.com/f/185929/35x35/6d993f391c/github-logo.png/m/fit-in/1200x0/filters:quality(85):format(webp)" alt="GitHub logo" loading="lazy" width="35" height="35" srcset="https://a.storyblok.com/f/185929/35x35/6d993f391c/github-logo.png/m/fit-in/400x0/filters:quality(85):format(webp) 400w, https://a.storyblok.com/f/185929/35x35/6d993f391c/github-logo.png/m/fit-in/600x0/filters:quality(85):format(webp) 600w, https://a.storyblok.com/f/185929/35x35/6d993f391c/github-logo.png/m/fit-in/800x0/filters:quality(85):format(webp) 800w, https://a.storyblok.com/f/185929/35x35/6d993f391c/github-logo.png/m/fit-in/1200x0/filters:quality(85):format(webp) 1200w, https://a.storyblok.com/f/185929/35x35/6d993f391c/github-logo.png/m/fit-in/1600x0/filters:quality(85):format(webp) 1600w, https://a.storyblok.com/f/185929/35x35/6d993f391c/github-logo.png/m/fit-in/2000x0/filters:quality(85):format(webp) 2000w" sizes="(max-width: 480px) 100vw, (max-width: 768px) 90vw, (max-width: 1024px) 80vw, 70vw" />
</span>
</span>
</a>
</li>
<li class="footer__item">
<a class="footer__item-link"
href="https://www.youtube.com/c/Octopusdeploy"
rel="noopener noreferrer"
aria-label="Image link"
itemprop="url">
<span class="footer__item-image" aria-hidden="true">
<span class="image-wrapper">
<img src="https://a.storyblok.com/f/185929/35x35/944072d610/youtube-logo.png/m/fit-in/1200x0/filters:quality(85):format(webp)" alt="YouTube logo" loading="lazy" width="35" height="35" srcset="https://a.storyblok.com/f/185929/35x35/944072d610/youtube-logo.png/m/fit-in/400x0/filters:quality(85):format(webp) 400w, https://a.storyblok.com/f/185929/35x35/944072d610/youtube-logo.png/m/fit-in/600x0/filters:quality(85):format(webp) 600w, https://a.storyblok.com/f/185929/35x35/944072d610/youtube-logo.png/m/fit-in/800x0/filters:quality(85):format(webp) 800w, https://a.storyblok.com/f/185929/35x35/944072d610/youtube-logo.png/m/fit-in/1200x0/filters:quality(85):format(webp) 1200w, https://a.storyblok.com/f/185929/35x35/944072d610/youtube-logo.png/m/fit-in/1600x0/filters:quality(85):format(webp) 1600w, https://a.storyblok.com/f/185929/35x35/944072d610/youtube-logo.png/m/fit-in/2000x0/filters:quality(85):format(webp) 2000w" sizes="(max-width: 480px) 100vw, (max-width: 768px) 90vw, (max-width: 1024px) 80vw, 70vw" />
</span>
</span>
</a>
</li>
</ul>
</div>
</section>
</div>
</footer>
</div> <script>(function(){const site_url = "https://octopus.com";
const site_features = {"stickyNav":{"top":75.2},"codeBlocks":["copy"],"figures":["enlarge"],"youTubeLinks":["embed"],"headers":["link"],"details":["tabs"],"search":["dialog"]};
window.site_url = site_url;
window.site_features = site_features;
})();</script><script src="/blog/js/main.js" type="module" async></script><script>
document.addEventListener('searched', (e) => {
if (typeof plausible != 'undefined') {
plausible('Search', { props: e.detail });
}
});
</script> <script defer src="https://octopus.com/octopus-public/assets/navbarPU.js"></script> <script defer src="https://octopus.com/octopus-public/assets/buttonHoverEffect.js"></script> </body> </html>