Files
nexus/sreweekly/articles/443/02-octopus-cloud-architecture.html
2026-09-12 17:23:01 +08:00

1764 lines
113 KiB
HTML
Raw Blame History

This file contains invisible Unicode characters
This file contains invisible Unicode characters that are indistinguishable to humans but may be processed differently by a computer. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.
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>Octopus Cloud Architecture | Octopus blog</title><meta name="robots" content="max-image-preview:large, index, follow"><meta name="keywords"><meta name="description" content="Learn how cell-based architecture helped us make Octopus Cloud reliable and scalable."><link rel="preconnect" href="https://octopus.com" crossorigin><link rel="preload" as="image" href="/blog/i/x/cover/octopus-cloud-architecture.jpg" imagesrcset="/blog/i/600/cover/octopus-cloud-architecture.webp 600w, /blog/i/1000/cover/octopus-cloud-architecture.webp 1000w, /blog/i/2000/cover/octopus-cloud-architecture.webp 1500w" 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/octopus-cloud-architecture"><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/octopus-cloud-architecture"><meta property="og:title" content="Octopus Cloud architecture"><meta property="og:description" content="Learn how cell-based architecture helped us make Octopus Cloud reliable and scalable."><meta property="og:image" content="https://octopus.com/blog/img/cover/octopus-cloud-architecture.jpg"><meta property="og:image:alt" content="Person holding giant magnifying glass over cells to reveal Octopus dashboard."><meta name="twitter:card" content="summary_large_image"><meta name="twitter:title" content="Octopus Cloud architecture"><meta name="twitter:description" content="Learn how cell-based architecture helped us make Octopus Cloud reliable and scalable."><meta name="twitter:image" content="https://octopus.com/blog/img/cover/octopus-cloud-architecture.jpg"><meta name="twitter:image:alt" content="Person holding giant magnifying glass over cells to reveal Octopus dashboard."><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": "Octopus Cloud architecture",
"description": "Learn how cell-based architecture helped us make Octopus Cloud reliable and scalable.",
"author": {
"@type": "Person",
"name": "Pawel Pabich"
},
"datePublished": "2024-09-09T00:00:00.000Z",
"dateModified": "2024-09-09T00: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/octopus-cloud-architecture"
},
"image": {
"@type": "ImageObject",
"url": "https://octopus.com/blog/img/cover/octopus-cloud-architecture.jpg",
"width": 1200,
"height": 800
},
"articleSection": "Engineering, Octopus Cloud, Azure"
}</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":"Octopus Cloud architecture","item":"https://octopus.com/blog/octopus-cloud-architecture"}]}</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/octopus-cloud-architecture" aria-current="page"> <span>Octopus Cloud architecture</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/octopus-cloud-architecture.jpg" srcset="/blog/i/600/cover/octopus-cloud-architecture.webp 600w, /blog/i/1000/cover/octopus-cloud-architecture.webp 1000w, /blog/i/2000/cover/octopus-cloud-architecture.webp 1500w" sizes="(min-width: 1680px) 1000px, (min-width: 940px) calc(71.81vw - 192px), calc(100vw - 32px)" alt="Person holding giant magnifying glass over cells to reveal Octopus dashboard." class="image__img" width="1500" height="800" loading="eager" fetchpriority="high" decoding="sync"> </figure> <div class="header"> <h1 class="header__title">Octopus Cloud architecture</h1> </div> </header> <div class="page-content anim-show-parent" itemprop="articleBody"> <div class="author"> <a href="/blog/authors/pawel-pabich/1/" class="author__image-link"> <img class="author__image" srcset="/blog/i/600/authors/pawel-pabich.webp 140w" sizes="170px" src="/blog/i/x/authors/pawel-pabich.png" alt="Pawel Pabich" width="140" height="140"> </a> <div class="author__info"> <span class="author__name"> <a href="/blog/authors/pawel-pabich/1/"> <span> Pawel Pabich </span> </a> </span> <time class="author__time" datetime="Mon Sep 09 2024 00:00:00 GMT+0000 (Coordinated Universal Time)"> September 9, 2024 </time> </div> </div> <p>Octopus Cloud reliably hosts thousands of Octopus Deploy customers. In this post, I explain the architecture that underpins this complex distributed system.</p>
<h2 id="what-is-octopus-cloud">What is Octopus Cloud?</h2>
<p>Octopus Cloud is the easiest way to run Octopus Deploy. It has the same software and functionality as Octopus Server, except we host it for you and we call it a Cloud instance. You don’t need to download, install, or manage it yourself. You get started with <a href="https://octopus.com/free-signup">free account</a> to give it a try.</p>
<h2 id="foundations-of-octopus-cloud">Foundations of Octopus Cloud</h2>
<p>We designed Octopus Cloud as a distributed system that can withstand partial infrastructure outages. To achieve this high-level goal, we created a set of guiding principles. The engineering team at Octopus has been following these principles since the product’s inception.</p>
<h3 id="avoiding-a-single-point-of-failure">Avoiding a single point of failure</h3>
<p>Octopus Cloud has what’s sometimes called a cell-based architecture. A cell represents an independent and isolated part of a larger system. You can replicate the cells to increase the system’s scalability and reliability. Individual cells get created, destroyed, upgraded, scaled, or simply stay broken without affecting the rest of the system.</p>
<figure>
<p><img src="/blog/i/x/octopus-cloud-architecture/cells.png" alt="Different types of cells in Octopus Cloud" loading="lazy" srcset="/blog/i/600/octopus-cloud-architecture/cells.webp 600w, /blog/i/1000/octopus-cloud-architecture/cells.webp 1000w, /blog/i/2000/octopus-cloud-architecture/cells.webp 1228w" sizes="(min-width: 1680px) 1000px, (min-width: 940px) calc(71.81vw - 192px), calc(100vw - 32px)" class="resp-img" width="1228" height="700"></p>
</figure>
<h4 id="azure-region-as-a-cell">Azure region as a cell</h4>
<p>Octopus Cloud is currently deployed in <a href="https://octopus.com/docs/octopus-cloud#octopus-cloud-hosting-locations">3 different Azure regions</a> and we can deploy to more regions if we see enough demand there. Resources used by Octopus Cloud in each Azure region are fully isolated from each other. This means that an outage in <strong>West US 2</strong> region only affects customers hosted in that region. It won’t affect customers hosted in <strong>West Europe</strong> and <strong>Australia East</strong> regions.</p>
<h4 id="reef-as-a-cell">Reef as a cell</h4>
<p>Resources deployed into each Azure region also follow the cell-based architecture and are split into multiple reefs. A reef is a collection of Azure resources shared by several Cloud instances. Reefs don’t share any resources, so an outage of one reef in a region doesn’t affect other reefs in that region.</p>
<div class="hint"><p>Fun fact: We picked <strong>reef</strong> as the name because this is where octopuses usually live in tropical waters. The other popular contender was Octopus Cloud region, but we decided it might get easily confused with Azure region.</p></div>
<h4 id="cloud-instance-as-a-cell">Cloud instance as a cell</h4>
<p>Octopus Server is a monolithic .NET application that needs 3 basic resources to run:</p>
<ul>
<li>SQL Server database for structured data (for example, project data)</li>
<li>Shared file system for unstructured data (for example, task logs and packages)</li>
<li>VM or container for computing</li>
</ul>
<p>Octopus Cloud provides Cloud instances with an Azure version of each of the required resources:</p>
<figure>
<p><img src="/blog/i/x/octopus-cloud-architecture/resources.png" alt="Mapping of Octopus Server resource requirements to Azure resources provided by Octopus Cloud" loading="lazy" srcset="/blog/i/600/octopus-cloud-architecture/resources.webp 600w, /blog/i/1000/octopus-cloud-architecture/resources.webp 1000w, /blog/i/2000/octopus-cloud-architecture/resources.webp 2000w" sizes="(min-width: 1680px) 1000px, (min-width: 940px) calc(71.81vw - 192px), calc(100vw - 32px)" class="resp-img" width="3430" height="1320"></p>
</figure>
<p>Driven by the cell-based approach used at the region and reef levels, this is where the strict isolation changes from a binary proposition to a spectrum of options.</p>
<p>At one end of the spectrum, we can host a single instance on a dedicated reef. This is a powerful option, but we avoid using it because it’s not cost-effective.</p>
<p>At the other end of the spectrum, hundreds of instances can run on a single reef and share a single Azure SQL elastic pool, AKS cluster, and Azure storage account. This option works well for Cloud instances that are active at different times of the day and don’t generate much load.</p>
<p>Finally, we have a few options between these 2 extremes. For example, a busy Cloud instance might have dedicated resources assigned to its database, but likely shares its Kubernetes cluster and storage account with other Cloud instances.</p>
<div class="hint"><p>Because each Cloud instance has its own database and a file share, we can use built-in Azure tools to manage <a href="https://octopus.com/docs/octopus-cloud/disaster-recovery">backup and restore processes</a>.</p></div>
<h3 id="designing-for-gradual-rollouts">Designing for gradual rollouts</h3>
<p>The cell-based architecture lends itself to gradual rollouts because we can upgrade the infrastructure in each reef and region independently. This reduces the risk of a change causing an outage that affects the whole of Octopus Cloud. Nobody likes outages, but an outage affecting hundreds of instances is better than one affecting thousands.</p>
<p>Provisioning a dedicated file share and a database for each Cloud instance also helps with the gradual rollout of the Octopus Server changes. This is because each instance can get upgraded and downgraded independently. That wouldn’t be an easy goal to achieve if, for example, more than one Cloud instance shared the same database via database schemas or a similar mechanism that implements multi-tenancy.</p>
<h3 id="scalable-by-default">Scalable by default</h3>
<p>Scalability is again where cell-based architecture shines. We can scale the infrastructure of Octopus Cloud easily by adding new reefs. We can also assign individual resource limits to each Cloud instance.</p>
<p>Fun fact: We had an event a few years ago when Octopus Cloud doubled the number of active Cloud instances in 48–72 hours, and nothing broke. No existing customers were affected and Octopus simply paid a higher hosting bill that month.</p>
<h3 id="avoiding-temporal-coupling">Avoiding temporal coupling</h3>
<p>Octopus Cloud must be able to perform its primary function, which is keeping Cloud instances up and running, even when some non-essential services aren’t available. For example, Cloud instances should continue to operate when any of the following are not available:</p>
<ul>
<li>Octopus Cloud monitoring platform</li>
<li>Octopus Cloud management platform</li>
<li>Octopus Cloud observability platform</li>
</ul>
<p>In the context of <a href="https://en.wikipedia.org/wiki/CAP_theorem">CAP theorem</a>, Octopus Cloud opts for availability over consistency at the infrastructure level, and consistency over availability at the individual Cloud instance level.</p>
<h3 id="using-officially-supported-apis-only">Using officially supported APIs only</h3>
<p>Octopus Cloud glues together several third-party services using their APIs. This might sound like an obvious choice. That said, we also extended this approach to interactions with internal services and Octopus Server itself. For example, if Octopus Cloud needs to provide a configuration value to a Cloud instance for a configuration setting that isn’t exposed via a public API, then we add a new API. We don’t modify this setting directly in the database even though we could.</p>
<div class="hint"><p>Fun fact: After years of using APIs from major service and Cloud providers, we’ve learned that very few of them follow <a href="https://semver.org/">SemVer</a>. Also, changes to runtime characteristics (for example, a synchronous operation becomes asynchronous and vice versa) happen all the time and without any notice.</p></div>
<h2 id="developer-productivity">Developer productivity</h2>
<p>Cell-based architecture can also increase engineering productivity, which is often overlooked. You can test each change on its own isolated reef, either locally or using an automated build. There’s no need for shared test or dev environments, which are commonly used for testing infrastructure-related changes in our industry.</p>
<h2 id="trade-offs">Trade-offs</h2>
<h3 id="effort">Effort</h3>
<p>Cell-based architecture requires a considerable effort to implement properly. It’s not something that an existing system can easily evolve in to. In software engineering, we often distinguish between exactly 1 and 1+ problems. This is because the effort to implement a solution that handles multiples of X can be an order of magnitude bigger than a solution that handles just one of X. Cell-based architecture falls squarely into the 1+ bucket.</p>
<h3 id="hidden-shared-parts">Hidden shared parts</h3>
<p>If you think there must be something connecting all these independent parts, then you’re right. In the real world, nothing can be 100% isolated. In Octopus Cloud’s case, it’s the DNS that plays the role of the connective tissue.</p>
<h2 id="conclusion">Conclusion</h2>
<p>Cell-based architecture is the cornerstone of Octopus Cloud’s reliability and scalability. I hope this post has given you a high-level but insightful overview. If you have any questions about the Octopus Cloud architecture, please ask in the comments section below.</p>
<p>Happy deployments!</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/engineering/1/">Engineering</a> </li><li> <a href="/blog/tag/octopus-cloud/1/">Octopus Cloud</a> </li><li> <a href="/blog/tag/azure/1/">Azure</a> </li> </ul> </div> </div> <div class="author"> <a href="/blog/authors/pawel-pabich/1/" class="author__image-link"> <img class="author__image" srcset="/blog/i/600/authors/pawel-pabich.webp 140w" sizes="170px" src="/blog/i/x/authors/pawel-pabich.png" alt="Pawel Pabich" width="140" height="140"> </a> <div class="author__info"> <span class="author__name" itemprop="author" itemscope itemtype="https://schema.org/Person"> <a href="/blog/authors/pawel-pabich/1/" itemprop="url"> <span itemprop="name"> Pawel Pabich </span> </a> </span> <time class="author__time" datetime="Mon Sep 09 2024 00:00:00 GMT+0000 (Coordinated Universal Time)" itemprop="datePublished"> Published: September 9, 2024 </time> </div> </div> </div> <h3>Related posts</h3> <div class="simple-grid-3"> <article class="card card--padded"> <a href="/blog/slack-integration" class="card__link" role="link" aria-label="Open Act faster with our new Slack integration"> <div class="card__image-wrapper"> <img srcset="/blog/i/600/cover/slack-integration.webp 600w, /blog/i/1000/cover/slack-integration.webp 1000w, /blog/i/2000/cover/slack-integration.webp 2000w" sizes="254px" src="/blog/i/x/cover/slack-integration.png" width="3000" height="1600" alt="Slack and Octopus logos with a connection between them" 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">Act faster with our new Slack integration</p> <p class="card__description">Octopus now posts to Slack. Send scoped event notifications to the channels your teams already watch, or fire a message from any point in a deployment process.</p> <div class="card__meta"> <div class="card__authors"> <div class="author"> <img class="author__image" srcset="/blog/i/600/authors/michelle-obrien.webp 140w" sizes="170px" src="/blog/i/x/authors/michelle-obrien.png" alt="Michelle O'Brien" width="140" height="140"> <div class="author__info"> <span class="author__name"> <span> Michelle O&#39;Brien </span> </span> <time class="author__time" datetime="2026-08-13"> August 13, 2026 </time> </div> </div> </div> </div> </div> </a> </article><article class="card card--padded"> <a href="/blog/octopus-cloud-connection-agent" class="card__link" role="link" aria-label="Open Connecting Octopus Cloud to your internal systems — without opening a single port"> <div class="card__image-wrapper"> <img srcset="/blog/i/600/cover/img-blog-connector-agent-2026-1500x800.webp 600w, /blog/i/1000/cover/img-blog-connector-agent-2026-1500x800.webp 1000w, /blog/i/2000/cover/img-blog-connector-agent-2026-1500x800.webp 1500w" sizes="254px" src="/blog/i/x/cover/img-blog-connector-agent-2026-1500x800.png" width="1500" height="800" alt="Connecting Octopus Cloud to your internal systems" 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">Connecting Octopus Cloud to your internal systems — without opening a single port</p> <p class="card__description">The Octopus Connection Agent lets enterprises reach their on-premises tooling from Octopus Cloud securely, with no inbound firewall rules and no VPN.</p> <div class="card__meta"> <div class="card__authors"> <div class="author"> <img class="author__image" srcset="/blog/i/600/authors/mark-lamprecht.webp 200w" sizes="170px" src="/blog/i/x/authors/mark-lamprecht.png" alt="Mark Lamprecht" width="200" height="210"> <div class="author__info"> <span class="author__name"> <span> Mark Lamprecht </span> </span> <time class="author__time" datetime="2026-08-03"> August 3, 2026 </time> </div> </div> </div> </div> </div> </a> </article><article class="card card--padded"> <a href="/blog/tag-sets-new-functionality" class="card__link" role="link" aria-label="Open Target tags are now managed with tag sets"> <div class="card__image-wrapper"> <img srcset="/blog/i/600/tag-sets-new-functionality/blog-deploy-to-targets-by-tag.webp 600w, /blog/i/1000/tag-sets-new-functionality/blog-deploy-to-targets-by-tag.webp 1000w, /blog/i/2000/tag-sets-new-functionality/blog-deploy-to-targets-by-tag.webp 1500w" sizes="254px" src="/blog/i/x/tag-sets-new-functionality/blog-deploy-to-targets-by-tag.png" width="1500" height="800" alt="Cartoon instance of Octopus Deploy showing how to deploy to target tags." 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">Target tags are now managed with tag sets</p> <p class="card__description">More control over your target tags and how you can use them at deployment time.</p> <div class="card__meta"> <div class="card__authors"> <div class="author"> <img class="author__image" srcset="/blog/i/600/authors/michelle-obrien.webp 140w" sizes="170px" src="/blog/i/x/authors/michelle-obrien.png" alt="Michelle O'Brien" width="140" height="140"> <div class="author__info"> <span class="author__name"> <span> Michelle O&#39;Brien </span> </span> <time class="author__time" datetime="2026-07-07"> July 7, 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/octopus-cloud-architecture.jpg"> </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="#what-is-octopus-cloud" class="article-nav__link" data-article-link> What is Octopus Cloud? </a> </li><li class="article-nav__item article-nav__item--level-2"> <a href="#foundations-of-octopus-cloud" class="article-nav__link" data-article-link> Foundations of Octopus Cloud </a> </li><li class="article-nav__item article-nav__item--level-3"> <a href="#avoiding-a-single-point-of-failure" class="article-nav__link" data-article-link> Avoiding a single point of failure </a> </li><li class="article-nav__item article-nav__item--level-3"> <a href="#designing-for-gradual-rollouts" class="article-nav__link" data-article-link> Designing for gradual rollouts </a> </li><li class="article-nav__item article-nav__item--level-3"> <a href="#scalable-by-default" class="article-nav__link" data-article-link> Scalable by default </a> </li><li class="article-nav__item article-nav__item--level-3"> <a href="#avoiding-temporal-coupling" class="article-nav__link" data-article-link> Avoiding temporal coupling </a> </li><li class="article-nav__item article-nav__item--level-3"> <a href="#using-officially-supported-apis-only" class="article-nav__link" data-article-link> Using officially supported APIs only </a> </li><li class="article-nav__item article-nav__item--level-2"> <a href="#developer-productivity" class="article-nav__link" data-article-link> Developer productivity </a> </li><li class="article-nav__item article-nav__item--level-2"> <a href="#trade-offs" class="article-nav__link" data-article-link> Trade-offs </a> </li><li class="article-nav__item article-nav__item--level-3"> <a href="#effort" class="article-nav__link" data-article-link> Effort </a> </li><li class="article-nav__item article-nav__item--level-3"> <a href="#hidden-shared-parts" class="article-nav__link" data-article-link> Hidden shared parts </a> </li><li class="article-nav__item article-nav__item--level-2"> <a href="#conclusion" class="article-nav__link" data-article-link> Conclusion </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>