Files
nexus/sreweekly/articles/458/06-your-perfect-infrastructure-may-not-be-so-perfect.html
2026-09-12 17:23:01 +08:00

185 lines
126 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 lang="en-US" prefix="og: http://ogp.me/ns#"><head><meta charset="UTF-8"><meta http-equiv="X-UA-Compatible" content="IE=edge,chrome=1"><meta name="viewport" content="width=device-width,initial-scale=1,maximum-scale=5"><script>var segmentWriteKey="UK90Ofwacetj5VCPJ7cUgkbNcKLSHO3u",snippetName="C8Y429BDEy/06ujkUhzfL.min.js";window.growthbook_sdk_key="sdk-psPofGr6jFV2ja9O",window.growthbook_decrypt_key="9NsAVMNWaDS+Oky3rhLQ+A==",window.growthbook_dev_mode=!1</script><link rel="preconnect" href="https://cdn.segment.com" crossorigin><link rel="preconnect" href="https://cdn.growthbook.io" crossorigin><link rel="preconnect" href="https://cdn.cr-relay.com" crossorigin><link rel="preconnect" href="https://bzrcdn.openai.com" crossorigin><link rel="preload" href="/fonts/monaspace-neon-regular.woff2" as="font" type="font/woff2" crossorigin><link rel="preload" href="/fonts/inter-regular.woff2" as="font" type="font/woff2" crossorigin><link rel="preload" href="/fonts/inter-semibold.woff2" as="font" type="font/woff2" crossorigin><link rel="llms-txt" href="/llms.txt"><script src="/js/bundle.6c1f5611.js" defer></script><script src="/js/algolia.0829731d.js" defer></script><link rel="stylesheet" href="/css/bundle.push-cbf96af2.css"><meta name="google-site-verification" content="N-ezSTIu4P3bSc4TqidV4wWCkMzFiMN269ZgDYArGkk"><script type="application/ld+json">{"@context":"https://schema.org","@graph":[{"@id":"#breadcrumb","@type":"BreadcrumbList","itemListElement":[{"@type":"ListItem","item":"https://www.pulumi.com","name":"Home","position":1},{"@type":"ListItem","item":"https://www.pulumi.com/blog/","name":"Blog","position":2},{"@type":"ListItem","name":"Your Perfect Infrastructure May Not Be So Perfect","position":3}]},{"@id":"#main-content","@type":"BlogPosting","articleSection":"Perspectives","author":[{"@id":"https://www.pulumi.com/authors/simen-a-w-olsen/#person","@type":"Person","affiliation":{"@id":"https://www.pulumi.com/#organization","@type":"Organization","name":"Pulumi"},"image":"https://www.pulumi.com/images/team/simen-a-w-olsen.jpg","jobTitle":"Software Architect and Manager","knowsAbout":["Infrastructure as Code","Cloud Computing","DevOps","Engineering Management"],"name":"Simen A. W. Olsen","sameAs":["https://github.com/cobraz","https://linkedin.com/in/simenandre"],"url":"https://www.pulumi.com/blog/author/simen-a-w-olsen/","worksFor":{"@id":"https://www.pulumi.com/#organization","@type":"Organization","name":"Pulumi"}}],"dateModified":"2026-07-02T18:17:57-05:00","datePublished":"2024-12-16T10:43:07Z","description":"Building systems designed for easy change is more valuable than\nattempting to create the perfect future-proof architecture.\n","headline":"Your Perfect Infrastructure May Not Be So Perfect","image":"https://www.pulumi.com/images/generated/blog/your-perfect-infrastructure/index.png","inLanguage":"en-US","isPartOf":{"@id":"https://www.pulumi.com/#website"},"keywords":"architecture, developer-first-infrastructure, best-practices, cloud-engineering, cloud-deployment, developer-experience, people-ops, application-scalability","mainEntityOfPage":{"@id":"https://www.pulumi.com/blog/your-perfect-infrastructure/#webpage"},"publisher":{"@id":"https://www.pulumi.com/#organization"},"speakable":{"@type":"SpeakableSpecification","cssSelector":["article h1","article \u003e section:first-of-type \u003e p:first-of-type"]},"timeRequired":"PT4M","url":"https://www.pulumi.com/blog/your-perfect-infrastructure/","wordCount":835},{"@id":"https://www.pulumi.com/blog/your-perfect-infrastructure/#webpage","@type":"WebPage","breadcrumb":{"@id":"#breadcrumb"},"dateModified":"2026-07-02T18:17:57-05:00","datePublished":"2024-12-16T10:43:07Z","description":"Building systems designed for easy change is more valuable than\nattempting to create the perfect future-proof architecture.\n","headline":"Your Perfect Infrastructure May Not Be So Perfect","inLanguage":"en-US","isPartOf":{"@id":"https://www.pulumi.com/#website"},"mainEntity":{"@id":"#main-content"},"mentions":[{"@id":"https://en.wikipedia.org/wiki/Kubernetes","@type":"SoftwareApplication","alternateName":"K8s","name":"Kubernetes","sameAs":"https://www.wikidata.org/wiki/Q22661306"}],"name":"Your Perfect Infrastructure May Not Be So Perfect","url":"https://www.pulumi.com/blog/your-perfect-infrastructure/"},{"@id":"https://www.pulumi.com/#organization","@type":["Organization","Corporation"],"alternateName":"Pulumi","description":"Pulumi enables cloud infrastructure teams to define, deploy, and manage cloud resources using familiar programming languages.","foundingDate":"2017","logo":{"@type":"ImageObject","height":299,"url":"https://brand.pulumi.com/media/images/logos/horizontal-1200w.png","width":1200},"name":"Pulumi Corporation","sameAs":["https://github.com/pulumi","https://twitter.com/PulumiCorp","https://x.com/PulumiCorp","https://www.linkedin.com/company/pulumi","https://www.youtube.com/channel/UC2Dhyn4Ev52YSbcpfnfP0Mw","https://www.wikidata.org/wiki/Q122864080","https://en.wikipedia.org/wiki/Pulumi","https://www.crunchbase.com/organization/pulumi-corporation"],"url":"https://www.pulumi.com"},{"@id":"https://www.pulumi.com/#website","@type":"WebSite","alternateName":"Pulumi IaC Platform","description":"Infrastructure as Code platform with AI. Deploy to any cloud using TypeScript, Python, Go, C#, Java, or YAML.","inLanguage":"en-US","name":"Pulumi","publisher":{"@id":"https://www.pulumi.com/#organization"},"url":"https://www.pulumi.com"}]}</script><meta property="og:image" content="https://www.pulumi.com/images/generated/blog/your-perfect-infrastructure/index.png"><meta property="og:type" content="article"><meta property="og:url" content="https://www.pulumi.com/blog/your-perfect-infrastructure/"><meta property="og:site_name" content="pulumi"><meta name="twitter:image" content="https://www.pulumi.com/images/generated/blog/your-perfect-infrastructure/index.png"><meta name="twitter:card" content="summary_large_image"><meta name="twitter:site" content="@PulumiCorp"><meta property="article:author" content="Simen A. W. Olsen"><meta name="author" content="Simen A. W. Olsen"><meta property="article:published_time" content="2024-12-16T10:43:07Z"><meta property="article:modified_time" content="2026-07-02T18:17:57-05:00"><meta property="og:title" content="Your Perfect Infrastructure May Not Be So Perfect"><meta name="description" content="Building systems designed for easy change is more valuable than
attempting to create the perfect future-proof architecture.
"><meta property="og:description" content="Building systems designed for easy change is more valuable than
attempting to create the perfect future-proof architecture.
"><title>Your Perfect Infrastructure May Not Be So Perfect | Pulumi Blog</title><link rel="icon" type="image/x-icon" href="/images/favicon.ico"><link rel="canonical" href="https://www.pulumi.com/blog/your-perfect-infrastructure/"><link rel="alternate" type="application/rss+xml" href="https://www.pulumi.com/blog/rss.xml" title="Pulumi Blog"><script>userAgentBlocklist=["Mozilla/5.0 (compatible; SiteAuditBot/0.97; +http://www.semrush.com/bot.html)","Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/115.0.0.0 Safari/537.36"],!function(){var n,s,t="analytics",e=window[t]=window[t]||[];if(!e.initialize)if(e.invoked)window.console&&console.error&&console.error("Segment snippet included twice.");else if(userAgentBlocklist.includes(navigator.userAgent))console.log("Segment snippet not loaded for user agent: "+navigator.userAgent);else{e.invoked=!0,e.methods=["trackSubmit","trackClick","trackLink","trackForm","pageview","identify","reset","group","track","ready","alias","debug","page","screen","once","off","on","addSourceMiddleware","addIntegrationMiddleware","setAnonymousId","addDestinationMiddleware","register"],e.factory=function(n){return function(){if(window[t].initialized)return window[t][n].apply(window[t],arguments);var o,s=Array.prototype.slice.call(arguments);return["track","screen","alias","group","page","identify"].indexOf(n)>-1&&(o=document.querySelector("link[rel='canonical']"),s.push({__t:"bpc",c:o&&o.getAttribute("href")||0[0],p:location.pathname,u:location.href,s:location.search,t:document.title,r:document.referrer})),s.unshift(n),e.push(s),e}};for(n=0;n<e.methods.length;n++)s=e.methods[n],e[s]=e.factory(s);e.load=function(n,s){var i,o=document.createElement("script");o.type="text/javascript",o.async=!0,o.setAttribute("data-global-segment-analytics-key",t),o.src="https://evs.analytics.pulumi.com/"+snippetName,i=document.getElementsByTagName("script")[0],i.parentNode.insertBefore(o,i),e._loadOptions=s},e._writeKey=segmentWriteKey,e._cdn="https://evs.analytics.pulumi.com",e.SNIPPET_VERSION="5.2.0",e.page()}}()</script><script>window.consentManagerConfig={writeKey:segmentWriteKey,cdnHost:"evs.analytics.pulumi.com",container:"#segment-consent-manager",privacyPolicyUrl:"/privacy/",bannerText:"We use cookies (and other similar technologies) to collect data to improve your experience on our site. By using our website, youʼre agreeing to the collection of data as described in our",preferencesDialogTitle:"Website Data Collection Preferences",preferencesDialogContent:"We use data collected by cookies and JavaScript libraries to improve your browsing experience, analyze site traffic, deliver personalized advertisements, and increase the overall performance of our site.",cancelDialogTitle:"Are you sure you want to cancel?",cancelDialogContent:"Your preferences have not been saved. By continuing to use our website, you are agreeing to our Website Data Collection Policy."}</script><script>window.addEventListener("load",function(){var e=document.createElement("script");e.src="/js/consent-manager.9f70d491.js",document.body.appendChild(e)})</script><meta name="facebook-domain-verification" content="phlf6qes2bxa9ufzk8zt2es0qivg8j"><script>window.addEventListener("load",function(){if(typeof window.signals!="undefined")return;var e=document.createElement("script");e.src="https://cdn.cr-relay.com/v1/site/a725b5ba-75f1-44dc-b250-11023fc10b9d/signals.js",e.async=!0,window.signals=Object.assign([],["page","identify","form"].reduce(function(e,t){return e[t]=function(){return signals.push([t,arguments]),signals},e},{})),document.head.appendChild(e)})</script><script>window.addEventListener("load",function(){function e(){!function(e,t,n,s){if(e.oaiq)return;var o,a,i=function(){i.q.push(arguments)};i.q=[],e.oaiq=i,o=t.createElement(n),o.async=1,o.src=s,a=t.getElementsByTagName(n)[0],a.parentNode.insertBefore(o,a)}(window,document,"script","https://bzrcdn.openai.com/sdk/oaiq.min.js"),oaiq("init",{pixelId:"7KRuATZtZE3j5BSAZErZAb",debug:!1})}window.analytics&&typeof window.analytics.ready=="function"&&window.analytics.ready(e)})</script><script async defer src="/js/anchor-js.min.js"></script><script>window.addEventListener("load",function(){anchors&&anchors.add(".blog-post-content :is(h1, h2, h3, h4, h5, h6):not(.no-anchor)")})</script><script>try{var c=document.cookie.split("; ").find(function(e){return e.indexOf("pulumi_web_user_info=")===0}),v=c?JSON.parse(decodeURIComponent(c.slice(c.indexOf("=")+1)).slice(2)):null;v&&v.userId&&document.documentElement.classList.add("is-signed-in")}catch{}</script></head><body class="section-blog antialiased min-h-screen flex flex-col"><a href="#main" class="btn btn-outline fixed left-2 top-2.5 z-[100] -translate-y-16 no-underline focus:translate-y-0">Skip to main content</a>
<pulumi-root></pulumi-root><script>(function(){try{var e,t,s,o,i=["blog-pulumi-neo-security-2026-08-Nx9vQ7"],n=[];try{s=JSON.parse(localStorage.getItem("announcement-banner")||"{}"),Array.isArray(s.dismissed)&&(n=s.dismissed)}catch{}if(e=i.filter(function(e){return n.indexOf(e)<0}),e.length===0)return;o=e[Math.floor(Math.random()*e.length)],t=document.createElement("style"),t.id="announcement-banner-reveal",t.textContent='#announcement-banner{display:block!important}#announcement-banner .announcement[data-announcement-id="'+o+'"]{display:flex!important}',document.head.appendChild(t),document.documentElement.setAttribute("data-announcement-chosen",o)}catch{}})()</script><div id="announcement-banner" class="hidden w-full bg-violet-950 text-white group text-sm" data-announcement-banner role="region" aria-label="Site announcement"><div class="announcement hidden h-10 items-center gap-3 px-4 md:px-6" data-announcement-id="blog-pulumi-neo-security-2026-08-Nx9vQ7"><div class="flex flex-1 min-w-0 items-center gap-3"><a href="/blog/pulumi-neo-security/" tabindex="-1" class="contents text-white group-hover:text-white/90 hover:no-underline"><svg class="ph-icon ph-icon--fill size-5 shrink-0 text-violet-300" fill="currentColor" aria-hidden="true" focusable="false"><use href="/icons/sprite.2cfc50dc64f04f7b5954b97ba2422ad621d10a8effc0d817cc0c25ec709e052a.svg#p-shield-check-fill"/></svg><div class="min-w-0 overflow-hidden whitespace-nowrap" data-announcement-marquee><span class="inline-block" data-announcement-content><span class="announcement-text inline-block"><strong>Identify weaknesses before attackers do.</strong> Neo Security finds and fixes exploitable flaws in your infrastructure. Now in research preview.</span></span></div></a><a href="/blog/pulumi-neo-security/" class="shrink-0 inline-flex items-center rounded-md border border-white/20 px-2 py-0.5 text-xs font-medium text-white hover:bg-white/10 hover:no-underline">Read the blog</a></div><button type="button" aria-label="Dismiss announcement" class="shrink-0 inline-flex h-6 w-6 items-center justify-center rounded text-white hover:bg-white/10" data-announcement-dismiss>
<svg class="ph-icon ph-icon--regular size-3" fill="currentColor" aria-hidden="true" focusable="false"><use href="/icons/sprite.2cfc50dc64f04f7b5954b97ba2422ad621d10a8effc0d817cc0c25ec709e052a.svg#p-x-regular"/></svg></button></div></div><header class="sticky top-0 z-40 w-full border-b border-gray-200 bg-white"><div class="flex h-16 items-center justify-between gap-2 px-4 md:px-6"><a href="/" data-track="header-pulumi-logo" data-logo-brand-menu class="flex shrink-0 items-center rounded-md transition-opacity hover:opacity-80 focus-visible:ring-3 focus-visible:ring-violet-400/50 focus-visible:ring-offset-4 focus-visible:outline-1 focus-visible:outline-transparent" aria-label="Pulumi home"><img class="docs-logo-light h-7 w-auto" src="/fingerprinted/logos/brand/logo-on-white.325f59b356d06fbea052c320e4d50d5b40a392616680cd6c72a0e807869f4bba.svg" alt="Pulumi logo" width="112" height="28" loading="eager" decoding="async">
<img class="docs-logo-dark h-7 w-auto" src="/fingerprinted/logos/brand/logo-on-black.cc9e57571fcea31f6ed8dfbdb619a59755570083e72a35ed490569a3dcb83ac6.svg" alt="Pulumi logo" width="112" height="28" loading="eager" decoding="async"></a><nav data-nav-root class="hidden nav-desktop:flex relative self-stretch items-center" aria-label="Primary"><ul class="flex items-center gap-0"><li><button type="button" data-nav-trigger-button data-nav-index="0" aria-expanded="false" aria-haspopup="menu" aria-controls="nav-desktop-popup" class="btn btn-ghost-nav group/trigger inline-flex items-center justify-center px-4">
Product
<svg class="ph-icon ph-icon--bold text-gray-500 group-hover/trigger:text-violet-500 [[data-open=true]_&]:text-violet-300 relative top-px size-3 transition duration-300 [[data-open=true]_&]:rotate-180" fill="currentColor" aria-hidden="true" focusable="false"><use href="/icons/sprite.2cfc50dc64f04f7b5954b97ba2422ad621d10a8effc0d817cc0c25ec709e052a.svg#p-caret-down-bold"/></svg></button></li><li><button type="button" data-nav-trigger-button data-nav-index="1" aria-expanded="false" aria-haspopup="menu" aria-controls="nav-desktop-popup" class="btn btn-ghost-nav group/trigger inline-flex items-center justify-center px-4">
For engineers
<svg class="ph-icon ph-icon--bold text-gray-500 group-hover/trigger:text-violet-500 [[data-open=true]_&]:text-violet-300 relative top-px size-3 transition duration-300 [[data-open=true]_&]:rotate-180" fill="currentColor" aria-hidden="true" focusable="false"><use href="/icons/sprite.2cfc50dc64f04f7b5954b97ba2422ad621d10a8effc0d817cc0c25ec709e052a.svg#p-caret-down-bold"/></svg></button></li><li><button type="button" data-nav-trigger-button data-nav-index="2" aria-expanded="false" aria-haspopup="menu" aria-controls="nav-desktop-popup" class="btn btn-ghost-nav group/trigger inline-flex items-center justify-center px-4">
For enterprises
<svg class="ph-icon ph-icon--bold text-gray-500 group-hover/trigger:text-violet-500 [[data-open=true]_&]:text-violet-300 relative top-px size-3 transition duration-300 [[data-open=true]_&]:rotate-180" fill="currentColor" aria-hidden="true" focusable="false"><use href="/icons/sprite.2cfc50dc64f04f7b5954b97ba2422ad621d10a8effc0d817cc0c25ec709e052a.svg#p-caret-down-bold"/></svg></button></li><li><a href="/docs/" data-track="header-docs" class="btn btn-ghost-nav inline-flex items-center justify-center">Docs</a></li><li><a href="/registry/" data-track="header-registry" class="btn btn-ghost-nav inline-flex items-center justify-center">Registry</a></li><li><a href="/blog/" data-track="header-blog" class="btn btn-ghost-nav inline-flex items-center justify-center">Blog</a></li><li><a href="/pricing/" data-track="header-pricing" class="btn btn-ghost-nav inline-flex items-center justify-center">Pricing</a></li><li><button type="button" data-nav-trigger-button data-nav-index="3" aria-expanded="false" aria-haspopup="menu" aria-controls="nav-desktop-popup" class="btn btn-ghost-nav group/trigger inline-flex items-center justify-center px-4">
Company
<svg class="ph-icon ph-icon--bold text-gray-500 group-hover/trigger:text-violet-500 [[data-open=true]_&]:text-violet-300 relative top-px size-3 transition duration-300 [[data-open=true]_&]:rotate-180" fill="currentColor" aria-hidden="true" focusable="false"><use href="/icons/sprite.2cfc50dc64f04f7b5954b97ba2422ad621d10a8effc0d817cc0c25ec709e052a.svg#p-caret-down-bold"/></svg></button></li></ul><div data-nav-popup id="nav-desktop-popup" class="card absolute z-50 bg-white text-gray-950 shadow" style="display:none;top:calc(100% - .5rem);left:0;opacity:0;transform:scale(.95);transform-origin:top left;transition:none"><div data-nav-viewport style="position:relative;overflow:hidden;width:100%;height:100%"><div data-nav-content="0" style="position:absolute;top:0;left:0;opacity:0;transform:translateX(0);will-change:opacity,transform"><div class="grid gap-x-6 gap-y-4 p-2 w-[640px] grid-cols-2"><div class="flex flex-col gap-1 col-span-full"><span class="px-3 pt-2 font-mono text-xs uppercase tracking-wide text-gray-600">Core product</span><ul class="grid gap-x-6 gap-y-0.5 grid-cols-2"><li><a href="/product/" data-track="header-product-platform" class="group flex flex-row items-start gap-3 rounded-md p-3 outline-none transition-all hover:bg-violet-50 focus-visible:bg-violet-50 focus-visible:ring-3 focus-visible:ring-violet-400/50"><span aria-hidden="true" class="mt-0.5 flex size-8 shrink-0 items-center justify-center rounded-md border group-hover:border-violet-200 border-gray-200 group-hover text-violet-700"><svg class="ph-icon ph-icon--regular size-6" fill="currentColor" aria-hidden="true" focusable="false"><use href="/icons/sprite.2cfc50dc64f04f7b5954b97ba2422ad621d10a8effc0d817cc0c25ec709e052a.svg#p-cloud-arrow-up-regular"/></svg>
</span><span class="flex min-w-0 flex-col gap-0.5"><span class="text-sm font-semibold text-gray-950 group-hover:text-violet-primary">Platform overview</span>
<span class="text-xs text-gray-600 group-hover:text-gray-800">Everything platform engineering teams need to build, secure, and scale cloud infrastructure</span></span></a></li><li><a href="/product/infrastructure-as-code/" data-track="header-product-iac" class="group flex flex-row items-start gap-3 rounded-md p-3 outline-none transition-all hover:bg-violet-50 focus-visible:bg-violet-50 focus-visible:ring-3 focus-visible:ring-violet-400/50"><span aria-hidden="true" class="mt-0.5 flex size-8 shrink-0 items-center justify-center rounded-md border group-hover:border-violet-200 border-gray-200 group-hover text-violet-700"><svg class="ph-icon ph-icon--regular size-6" fill="currentColor" aria-hidden="true" focusable="false"><use href="/icons/sprite.2cfc50dc64f04f7b5954b97ba2422ad621d10a8effc0d817cc0c25ec709e052a.svg#c-pulumi-iac-regular"/></svg>
</span><span class="flex min-w-0 flex-col gap-0.5"><span class="text-sm font-semibold text-gray-950 group-hover:text-violet-primary">Infrastructure as code</span>
<span class="text-xs text-gray-600 group-hover:text-gray-800">IaC for any cloud, in any language — Node.js, Python, Go, .NET, Java, and YAML</span></span></a></li></ul></div><div class="flex flex-col gap-1 col-span-full"><span class="px-3 pt-2 font-mono text-xs uppercase tracking-wide text-gray-600">Key capabilities</span><ul class="grid gap-x-6 gap-y-0.5 grid-cols-2"><li><a href="/product/neo/" data-track="header-product-neo" class="group flex flex-row items-start gap-3 rounded-md p-3 outline-none transition-all hover:bg-violet-50 focus-visible:bg-violet-50 focus-visible:ring-3 focus-visible:ring-violet-400/50"><span aria-hidden="true" class="mt-0.5 flex size-8 shrink-0 items-center justify-center rounded-md border group-hover:border-violet-200 border-gray-200 group-hover text-violet-700"><svg class="ph-icon ph-icon--fill size-6" fill="currentColor" aria-hidden="true" focusable="false"><use href="/icons/sprite.2cfc50dc64f04f7b5954b97ba2422ad621d10a8effc0d817cc0c25ec709e052a.svg#c-pulumi-neo-fill"/></svg>
</span><span class="flex min-w-0 flex-col gap-0.5"><span class="text-sm font-semibold text-gray-950 group-hover:text-violet-primary">AI infrastructure agent</span>
<span class="text-xs text-gray-600 group-hover:text-gray-800">Meet Neo, our AI-powered infrastructure engineering agent</span></span></a></li><li><a href="/product/secrets-management/" data-track="header-product-secrets" class="group flex flex-row items-start gap-3 rounded-md p-3 outline-none transition-all hover:bg-violet-50 focus-visible:bg-violet-50 focus-visible:ring-3 focus-visible:ring-violet-400/50"><span aria-hidden="true" class="mt-0.5 flex size-8 shrink-0 items-center justify-center rounded-md border group-hover:border-violet-200 border-gray-200 group-hover text-violet-700"><svg class="ph-icon ph-icon--regular size-6" fill="currentColor" aria-hidden="true" focusable="false"><use href="/icons/sprite.2cfc50dc64f04f7b5954b97ba2422ad621d10a8effc0d817cc0c25ec709e052a.svg#c-pulumi-secrets-regular"/></svg>
</span><span class="flex min-w-0 flex-col gap-0.5"><span class="text-sm font-semibold text-gray-950 group-hover:text-violet-primary">Secrets & configuration</span>
<span class="text-xs text-gray-600 group-hover:text-gray-800">Environments, secrets, and configuration management</span></span></a></li><li><a href="/product/discovery-governance/" data-track="header-product-insights" class="group flex flex-row items-start gap-3 rounded-md p-3 outline-none transition-all hover:bg-violet-50 focus-visible:bg-violet-50 focus-visible:ring-3 focus-visible:ring-violet-400/50"><span aria-hidden="true" class="mt-0.5 flex size-8 shrink-0 items-center justify-center rounded-md border group-hover:border-violet-200 border-gray-200 group-hover text-violet-700"><svg class="ph-icon ph-icon--regular size-6" fill="currentColor" aria-hidden="true" focusable="false"><use href="/icons/sprite.2cfc50dc64f04f7b5954b97ba2422ad621d10a8effc0d817cc0c25ec709e052a.svg#c-pulumi-insights-regular"/></svg>
</span><span class="flex min-w-0 flex-col gap-0.5"><span class="text-sm font-semibold text-gray-950 group-hover:text-violet-primary">Discovery & governance</span>
<span class="text-xs text-gray-600 group-hover:text-gray-800">Asset management, compliance remediation, and AI insights over the cloud</span></span></a></li><li><a href="/product/internal-developer-platforms/" data-track="header-product-idp" class="group flex flex-row items-start gap-3 rounded-md p-3 outline-none transition-all hover:bg-violet-50 focus-visible:bg-violet-50 focus-visible:ring-3 focus-visible:ring-violet-400/50"><span aria-hidden="true" class="mt-0.5 flex size-8 shrink-0 items-center justify-center rounded-md border group-hover:border-violet-200 border-gray-200 group-hover text-violet-700"><svg class="ph-icon ph-icon--regular size-6" fill="currentColor" aria-hidden="true" focusable="false"><use href="/icons/sprite.2cfc50dc64f04f7b5954b97ba2422ad621d10a8effc0d817cc0c25ec709e052a.svg#c-pulumi-idp-regular"/></svg>
</span><span class="flex min-w-0 flex-col gap-0.5"><span class="text-sm font-semibold text-gray-950 group-hover:text-violet-primary">Internal developer platform</span>
<span class="text-xs text-gray-600 group-hover:text-gray-800">The fastest, most secure way to deliver cloud infrastructure</span></span></a></li></ul></div></div></div><div data-nav-content="1" style="position:absolute;top:0;left:0;opacity:0;transform:translateX(0);will-change:opacity,transform"><div class="grid gap-x-6 gap-y-4 p-2 w-[640px] grid-cols-2"><div class="flex flex-col gap-1 col-span-full"><ul class="grid gap-x-6 gap-y-0.5 grid-cols-2"><li><a href="/docs/get-started/" data-track="header-engineers-get-started" class="group flex flex-row items-start gap-3 rounded-md p-3 outline-none transition-all hover:bg-violet-50 focus-visible:bg-violet-50 focus-visible:ring-3 focus-visible:ring-violet-400/50"><span aria-hidden="true" class="mt-0.5 flex size-8 shrink-0 items-center justify-center rounded-md border group-hover:border-violet-200 border-gray-200 group-hover text-violet-700"><svg class="ph-icon ph-icon--regular size-6" fill="currentColor" aria-hidden="true" focusable="false"><use href="/icons/sprite.2cfc50dc64f04f7b5954b97ba2422ad621d10a8effc0d817cc0c25ec709e052a.svg#p-rocket-launch-regular"/></svg>
</span><span class="flex min-w-0 flex-col gap-0.5"><span class="text-sm font-semibold text-gray-950 group-hover:text-violet-primary">Get started</span>
<span class="text-xs text-gray-600 group-hover:text-gray-800">Install Pulumi and deploy your first project in minutes</span></span></a></li><li><a href="/docs/" data-track="header-engineers-docs" class="group flex flex-row items-start gap-3 rounded-md p-3 outline-none transition-all hover:bg-violet-50 focus-visible:bg-violet-50 focus-visible:ring-3 focus-visible:ring-violet-400/50"><span aria-hidden="true" class="mt-0.5 flex size-8 shrink-0 items-center justify-center rounded-md border group-hover:border-violet-200 border-gray-200 group-hover text-violet-700"><svg class="ph-icon ph-icon--regular size-6" fill="currentColor" aria-hidden="true" focusable="false"><use href="/icons/sprite.2cfc50dc64f04f7b5954b97ba2422ad621d10a8effc0d817cc0c25ec709e052a.svg#p-book-open-regular"/></svg>
</span><span class="flex min-w-0 flex-col gap-0.5"><span class="text-sm font-semibold text-gray-950 group-hover:text-violet-primary">Documentation</span>
<span class="text-xs text-gray-600 group-hover:text-gray-800">Complete guides and API references</span></span></a></li><li><a href="/registry/" data-track="header-engineers-registry" class="group flex flex-row items-start gap-3 rounded-md p-3 outline-none transition-all hover:bg-violet-50 focus-visible:bg-violet-50 focus-visible:ring-3 focus-visible:ring-violet-400/50"><span aria-hidden="true" class="mt-0.5 flex size-8 shrink-0 items-center justify-center rounded-md border group-hover:border-violet-200 border-gray-200 group-hover text-violet-700"><svg class="ph-icon ph-icon--regular size-6" fill="currentColor" aria-hidden="true" focusable="false"><use href="/icons/sprite.2cfc50dc64f04f7b5954b97ba2422ad621d10a8effc0d817cc0c25ec709e052a.svg#p-package-regular"/></svg>
</span><span class="flex min-w-0 flex-col gap-0.5"><span class="text-sm font-semibold text-gray-950 group-hover:text-violet-primary">Registry</span>
<span class="text-xs text-gray-600 group-hover:text-gray-800">Browse hundreds of cloud providers and packages</span></span></a></li><li><a href="/dev/" data-track="header-engineers-learn" class="group flex flex-row items-start gap-3 rounded-md p-3 outline-none transition-all hover:bg-violet-50 focus-visible:bg-violet-50 focus-visible:ring-3 focus-visible:ring-violet-400/50"><span aria-hidden="true" class="mt-0.5 flex size-8 shrink-0 items-center justify-center rounded-md border group-hover:border-violet-200 border-gray-200 group-hover text-violet-700"><svg class="ph-icon ph-icon--regular size-6" fill="currentColor" aria-hidden="true" focusable="false"><use href="/icons/sprite.2cfc50dc64f04f7b5954b97ba2422ad621d10a8effc0d817cc0c25ec709e052a.svg#p-compass-regular"/></svg>
</span><span class="flex min-w-0 flex-col gap-0.5"><span class="text-sm font-semibold text-gray-950 group-hover:text-violet-primary">Dev Center</span>
<span class="text-xs text-gray-600 group-hover:text-gray-800">Tutorials, templates, examples, and more</span></span></a></li><li><a href="/events#upcoming" data-track="header-engineers-events" class="group flex flex-row items-start gap-3 rounded-md p-3 outline-none transition-all hover:bg-violet-50 focus-visible:bg-violet-50 focus-visible:ring-3 focus-visible:ring-violet-400/50"><span aria-hidden="true" class="mt-0.5 flex size-8 shrink-0 items-center justify-center rounded-md border group-hover:border-violet-200 border-gray-200 group-hover text-violet-700"><svg class="ph-icon ph-icon--regular size-6" fill="currentColor" aria-hidden="true" focusable="false"><use href="/icons/sprite.2cfc50dc64f04f7b5954b97ba2422ad621d10a8effc0d817cc0c25ec709e052a.svg#p-calendar-blank-regular"/></svg>
</span><span class="flex min-w-0 flex-col gap-0.5"><span class="text-sm font-semibold text-gray-950 group-hover:text-violet-primary">Events and workshops</span>
<span class="text-xs text-gray-600 group-hover:text-gray-800">Live sessions and workshops</span></span></a></li><li><a href="/community/" data-track="header-engineers-community" class="group flex flex-row items-start gap-3 rounded-md p-3 outline-none transition-all hover:bg-violet-50 focus-visible:bg-violet-50 focus-visible:ring-3 focus-visible:ring-violet-400/50"><span aria-hidden="true" class="mt-0.5 flex size-8 shrink-0 items-center justify-center rounded-md border group-hover:border-violet-200 border-gray-200 group-hover text-violet-700"><svg class="ph-icon ph-icon--regular size-6" fill="currentColor" aria-hidden="true" focusable="false"><use href="/icons/sprite.2cfc50dc64f04f7b5954b97ba2422ad621d10a8effc0d817cc0c25ec709e052a.svg#p-users-three-regular"/></svg>
</span><span class="flex min-w-0 flex-col gap-0.5"><span class="text-sm font-semibold text-gray-950 group-hover:text-violet-primary">Community</span>
<span class="text-xs text-gray-600 group-hover:text-gray-800">Join 10k+ developers on Slack</span></span></a></li><li><a href="/testimonials/" data-track="header-engineers-testimonials" class="group flex flex-row items-start gap-3 rounded-md p-3 outline-none transition-all hover:bg-violet-50 focus-visible:bg-violet-50 focus-visible:ring-3 focus-visible:ring-violet-400/50"><span aria-hidden="true" class="mt-0.5 flex size-8 shrink-0 items-center justify-center rounded-md border group-hover:border-violet-200 border-gray-200 group-hover text-violet-700"><svg class="ph-icon ph-icon--regular size-6" fill="currentColor" aria-hidden="true" focusable="false"><use href="/icons/sprite.2cfc50dc64f04f7b5954b97ba2422ad621d10a8effc0d817cc0c25ec709e052a.svg#p-heart-regular"/></svg>
</span><span class="flex min-w-0 flex-col gap-0.5"><span class="text-sm font-semibold text-gray-950 group-hover:text-violet-primary">Engineers love Pulumi</span>
<span class="text-xs text-gray-600 group-hover:text-gray-800">Hear from engineers why they love us</span></span></a></li><li><a href="/releases/" data-track="header-engineers-releases" class="group flex flex-row items-start gap-3 rounded-md p-3 outline-none transition-all hover:bg-violet-50 focus-visible:bg-violet-50 focus-visible:ring-3 focus-visible:ring-violet-400/50"><span aria-hidden="true" class="mt-0.5 flex size-8 shrink-0 items-center justify-center rounded-md border group-hover:border-violet-200 border-gray-200 group-hover text-violet-700"><svg class="ph-icon ph-icon--regular size-6" fill="currentColor" aria-hidden="true" focusable="false"><use href="/icons/sprite.2cfc50dc64f04f7b5954b97ba2422ad621d10a8effc0d817cc0c25ec709e052a.svg#p-megaphone-simple-regular"/></svg>
</span><span class="flex min-w-0 flex-col gap-0.5"><span class="text-sm font-semibold text-gray-950 group-hover:text-violet-primary">Releases</span>
<span class="text-xs text-gray-600 group-hover:text-gray-800">Major platform updates from the team</span></span></a></li></ul></div></div></div><div data-nav-content="2" style="position:absolute;top:0;left:0;opacity:0;transform:translateX(0);will-change:opacity,transform"><div class="grid gap-x-6 gap-y-4 p-2 w-[320px] grid-cols-1"><div class="flex flex-col gap-1"><ul class="grid gap-x-6 gap-y-0.5 grid-cols-1"><li><a href="/enterprise/" data-track="header-enterprise-solutions" class="group flex flex-row items-start gap-3 rounded-md p-3 outline-none transition-all hover:bg-violet-50 focus-visible:bg-violet-50 focus-visible:ring-3 focus-visible:ring-violet-400/50"><span aria-hidden="true" class="mt-0.5 flex size-8 shrink-0 items-center justify-center rounded-md border group-hover:border-violet-200 border-gray-200 group-hover text-violet-700"><svg class="ph-icon ph-icon--regular size-6" fill="currentColor" aria-hidden="true" focusable="false"><use href="/icons/sprite.2cfc50dc64f04f7b5954b97ba2422ad621d10a8effc0d817cc0c25ec709e052a.svg#p-buildings-regular"/></svg>
</span><span class="flex min-w-0 flex-col gap-0.5"><span class="text-sm font-semibold text-gray-950 group-hover:text-violet-primary">Enterprise solutions</span>
<span class="text-xs text-gray-600 group-hover:text-gray-800">Security, compliance, and support for teams</span></span></a></li><li><a href="/case-studies/" data-track="header-enterprise-case-studies" class="group flex flex-row items-start gap-3 rounded-md p-3 outline-none transition-all hover:bg-violet-50 focus-visible:bg-violet-50 focus-visible:ring-3 focus-visible:ring-violet-400/50"><span aria-hidden="true" class="mt-0.5 flex size-8 shrink-0 items-center justify-center rounded-md border group-hover:border-violet-200 border-gray-200 group-hover text-violet-700"><svg class="ph-icon ph-icon--regular size-6" fill="currentColor" aria-hidden="true" focusable="false"><use href="/icons/sprite.2cfc50dc64f04f7b5954b97ba2422ad621d10a8effc0d817cc0c25ec709e052a.svg#p-article-regular"/></svg>
</span><span class="flex min-w-0 flex-col gap-0.5"><span class="text-sm font-semibold text-gray-950 group-hover:text-violet-primary">Case studies</span>
<span class="text-xs text-gray-600 group-hover:text-gray-800">How Snowflake, Mercedes-Benz, and others use Pulumi</span></span></a></li><li><a href="/request-a-demo/" data-track="header-enterprise-demo" class="group flex flex-row items-start gap-3 rounded-md p-3 outline-none transition-all hover:bg-violet-50 focus-visible:bg-violet-50 focus-visible:ring-3 focus-visible:ring-violet-400/50"><span aria-hidden="true" class="mt-0.5 flex size-8 shrink-0 items-center justify-center rounded-md border group-hover:border-violet-200 border-gray-200 group-hover text-violet-700"><svg class="ph-icon ph-icon--regular size-6" fill="currentColor" aria-hidden="true" focusable="false"><use href="/icons/sprite.2cfc50dc64f04f7b5954b97ba2422ad621d10a8effc0d817cc0c25ec709e052a.svg#p-chalkboard-teacher-regular"/></svg>
</span><span class="flex min-w-0 flex-col gap-0.5"><span class="text-sm font-semibold text-gray-950 group-hover:text-violet-primary">Request a demo</span>
<span class="text-xs text-gray-600 group-hover:text-gray-800">See how Pulumi can help your team</span></span></a></li><li><a href="/proserv/" data-track="header-enterprise-proserv" class="group flex flex-row items-start gap-3 rounded-md p-3 outline-none transition-all hover:bg-violet-50 focus-visible:bg-violet-50 focus-visible:ring-3 focus-visible:ring-violet-400/50"><span aria-hidden="true" class="mt-0.5 flex size-8 shrink-0 items-center justify-center rounded-md border group-hover:border-violet-200 border-gray-200 group-hover text-violet-700"><svg class="ph-icon ph-icon--regular size-6" fill="currentColor" aria-hidden="true" focusable="false"><use href="/icons/sprite.2cfc50dc64f04f7b5954b97ba2422ad621d10a8effc0d817cc0c25ec709e052a.svg#p-briefcase-regular"/></svg>
</span><span class="flex min-w-0 flex-col gap-0.5"><span class="text-sm font-semibold text-gray-950 group-hover:text-violet-primary">Professional services</span>
<span class="text-xs text-gray-600 group-hover:text-gray-800">Get expert help with your implementation</span></span></a></li><li><a href="/contact/" data-track="header-enterprise-contact" class="group flex flex-row items-start gap-3 rounded-md p-3 outline-none transition-all hover:bg-violet-50 focus-visible:bg-violet-50 focus-visible:ring-3 focus-visible:ring-violet-400/50"><span aria-hidden="true" class="mt-0.5 flex size-8 shrink-0 items-center justify-center rounded-md border group-hover:border-violet-200 border-gray-200 group-hover text-violet-700"><svg class="ph-icon ph-icon--regular size-6" fill="currentColor" aria-hidden="true" focusable="false"><use href="/icons/sprite.2cfc50dc64f04f7b5954b97ba2422ad621d10a8effc0d817cc0c25ec709e052a.svg#p-chat-circle-regular"/></svg>
</span><span class="flex min-w-0 flex-col gap-0.5"><span class="text-sm font-semibold text-gray-950 group-hover:text-violet-primary">Contact sales</span>
<span class="text-xs text-gray-600 group-hover:text-gray-800">Talk to our team about your needs</span></span></a></li></ul></div></div></div><div data-nav-content="3" style="position:absolute;top:0;left:0;opacity:0;transform:translateX(0);will-change:opacity,transform"><div class="grid gap-x-6 gap-y-4 p-2 w-[320px] grid-cols-1"><div class="flex flex-col gap-1"><ul class="grid gap-x-6 gap-y-0.5 grid-cols-1"><li><a href="/about/" data-track="header-company-about" class="group flex flex-row items-start gap-3 rounded-md p-3 outline-none transition-all hover:bg-violet-50 focus-visible:bg-violet-50 focus-visible:ring-3 focus-visible:ring-violet-400/50"><span aria-hidden="true" class="mt-0.5 flex size-8 shrink-0 items-center justify-center rounded-md border group-hover:border-violet-200 border-gray-200 group-hover text-violet-700"><svg class="ph-icon ph-icon--regular size-6" fill="currentColor" aria-hidden="true" focusable="false"><use href="/icons/sprite.2cfc50dc64f04f7b5954b97ba2422ad621d10a8effc0d817cc0c25ec709e052a.svg#p-quotes-regular"/></svg>
</span><span class="flex min-w-0 flex-col gap-0.5"><span class="text-sm font-semibold text-gray-950 group-hover:text-violet-primary">About us</span>
<span class="text-xs text-gray-600 group-hover:text-gray-800">Our purpose and values</span></span></a></li><li><a href="/careers/" data-track="header-company-careers" class="group flex flex-row items-start gap-3 rounded-md p-3 outline-none transition-all hover:bg-violet-50 focus-visible:bg-violet-50 focus-visible:ring-3 focus-visible:ring-violet-400/50"><span aria-hidden="true" class="mt-0.5 flex size-8 shrink-0 items-center justify-center rounded-md border group-hover:border-violet-200 border-gray-200 group-hover text-violet-700"><svg class="ph-icon ph-icon--regular size-6" fill="currentColor" aria-hidden="true" focusable="false"><use href="/icons/sprite.2cfc50dc64f04f7b5954b97ba2422ad621d10a8effc0d817cc0c25ec709e052a.svg#p-briefcase-regular"/></svg>
</span><span class="flex min-w-0 flex-col gap-0.5"><span class="text-sm font-semibold text-gray-950 group-hover:text-violet-primary">Careers</span>
<span class="text-xs text-gray-600 group-hover:text-gray-800">Come work for Pulumi</span></span></a></li><li><a href="/about/newsroom/" data-track="header-company-newsroom" class="group flex flex-row items-start gap-3 rounded-md p-3 outline-none transition-all hover:bg-violet-50 focus-visible:bg-violet-50 focus-visible:ring-3 focus-visible:ring-violet-400/50"><span aria-hidden="true" class="mt-0.5 flex size-8 shrink-0 items-center justify-center rounded-md border group-hover:border-violet-200 border-gray-200 group-hover text-violet-700"><svg class="ph-icon ph-icon--regular size-6" fill="currentColor" aria-hidden="true" focusable="false"><use href="/icons/sprite.2cfc50dc64f04f7b5954b97ba2422ad621d10a8effc0d817cc0c25ec709e052a.svg#p-newspaper-regular"/></svg>
</span><span class="flex min-w-0 flex-col gap-0.5"><span class="text-sm font-semibold text-gray-950 group-hover:text-violet-primary">Newsroom</span>
<span class="text-xs text-gray-600 group-hover:text-gray-800">Pulumi in the news</span></span></a></li><li><a href="/awards/" data-track="header-company-awards" class="group flex flex-row items-start gap-3 rounded-md p-3 outline-none transition-all hover:bg-violet-50 focus-visible:bg-violet-50 focus-visible:ring-3 focus-visible:ring-violet-400/50"><span aria-hidden="true" class="mt-0.5 flex size-8 shrink-0 items-center justify-center rounded-md border group-hover:border-violet-200 border-gray-200 group-hover text-violet-700"><svg class="ph-icon ph-icon--regular size-6" fill="currentColor" aria-hidden="true" focusable="false"><use href="/icons/sprite.2cfc50dc64f04f7b5954b97ba2422ad621d10a8effc0d817cc0c25ec709e052a.svg#p-trophy-regular"/></svg>
</span><span class="flex min-w-0 flex-col gap-0.5"><span class="text-sm font-semibold text-gray-950 group-hover:text-violet-primary">Awards</span>
<span class="text-xs text-gray-600 group-hover:text-gray-800">Recognition from press and analysts</span></span></a></li></ul></div></div></div></div></div></nav><div class="flex items-center gap-2"><a href="https://github.com/pulumi/pulumi" target="_blank" rel="noopener" data-track="header-github-stars" class="btn btn-ghost-nav px-2.5 gap-1.5 hidden nav-desktop:inline-flex" aria-label="Star pulumi/pulumi on GitHub — 25669 stars"><svg class="ph-icon size-4" fill="currentColor" aria-hidden="true" focusable="false"><use href="/icons/sprite.2cfc50dc64f04f7b5954b97ba2422ad621d10a8effc0d817cc0c25ec709e052a.svg#b-github"/></svg>
<span>25.7K</span></a>
<a href="/contact/" data-track="header-contact" class="hidden nav-desktop:inline-flex btn btn-outline">Contact us
</a><a href="https://app.pulumi.com/signin" data-track="header-console" data-nav-loggedout class="hidden nav-desktop:inline-flex btn btn-outline">Sign in
</a><a href="https://app.pulumi.com" data-track="header-dashboard" data-nav-dashboard class="hidden nav-desktop:inline-flex btn btn-primary">Dashboard
</a><a href="https://app.pulumi.com/signup" data-track="header-signup" data-role="cta-get-started" data-nav-loggedout class="hidden nav-desktop:inline-flex btn btn-primary">Get started</a><div class="flex gap-2 nav-desktop:hidden"><div class="max-sm:hidden flex gap-2"><a href="https://github.com/pulumi/pulumi" target="_blank" rel="noopener" data-track="header-github-stars-mobile" class="btn btn-ghost-nav px-2.5 gap-1.5 inline-flex" aria-label="Star pulumi/pulumi on GitHub — 25669 stars"><svg class="ph-icon size-4" fill="currentColor" aria-hidden="true" focusable="false"><use href="/icons/sprite.2cfc50dc64f04f7b5954b97ba2422ad621d10a8effc0d817cc0c25ec709e052a.svg#b-github"/></svg>
<span>25.7K</span></a>
<a href="/contact/" data-track="header-contact" class="btn btn-outline">Contact us
</a><a href="https://app.pulumi.com/signin" data-track="header-console" data-nav-loggedout class="btn btn-outline">Sign in
</a><a href="https://app.pulumi.com" data-track="header-dashboard" data-nav-dashboard class="btn btn-primary">Dashboard
</a><a href="https://app.pulumi.com/signup" data-track="header-signup-mobile" data-role="cta-get-started" data-nav-loggedout class="btn btn-primary">Get started</a></div><button type="button" data-nav-sheet-trigger aria-label="Open navigation" aria-expanded="false" aria-controls="nav-mobile-sheet" class="btn btn-outline btn-icon">
<svg class="ph-icon ph-icon--bold size-4" fill="currentColor" aria-hidden="true" focusable="false"><use href="/icons/sprite.2cfc50dc64f04f7b5954b97ba2422ad621d10a8effc0d817cc0c25ec709e052a.svg#p-list-bold"/></svg></button></div></div></div></header><div data-nav-sheet-overlay data-state="closed" class="fixed inset-0 z-50 bg-black/10 opacity-0 pointer-events-none transition-opacity duration-150
data-[state=open]:opacity-100 data-[state=open]:pointer-events-auto
supports-[backdrop-filter]:backdrop-blur-xs"></div><aside data-nav-sheet data-state="closed" data-side="right" id="nav-mobile-sheet" role="dialog" aria-modal="true" aria-labelledby="nav-mobile-sheet-title" class="fixed inset-y-0 right-0 z-50 flex w-3/4 flex-col gap-0 border-l border-gray-100 bg-white text-gray-950 shadow-lg opacity-0 pointer-events-none translate-x-[2.5rem] transition duration-200 ease-in-out p-0 sm:max-w-md
data-[state=open]:translate-x-0 data-[state=open]:opacity-100 data-[state=open]:pointer-events-auto"><div class="flex flex-col gap-1.5 p-4"><h2 id="nav-mobile-sheet-title" class="sr-only">Navigation</h2><button type="button" data-nav-sheet-close aria-label="Close navigation" class="btn btn-ghost btn-icon-sm absolute top-4 right-4">
<svg class="ph-icon ph-icon--bold size-4" fill="currentColor" aria-hidden="true" focusable="false"><use href="/icons/sprite.2cfc50dc64f04f7b5954b97ba2422ad621d10a8effc0d817cc0c25ec709e052a.svg#p-x-bold"/></svg></button></div><nav class="flex flex-1 flex-col overflow-y-auto px-3 py-2"><div data-nav-collapsible class="border-b border-gray-100"><button type="button" data-nav-collapsible-trigger aria-expanded="false" aria-controls="nav-mobile-panel-product" class="group flex w-full items-center justify-between rounded-md px-3 py-4 text-base font-semibold text-gray-950 outline-none transition-colors hover:text-violet-700 focus-visible:text-violet-700 focus-visible:ring-3 focus-visible:ring-violet-400/50 focus-visible:outline-1">
Product
<svg class="ph-icon ph-icon--bold size-4 transition-transform duration-200 [[data-open=true]_&]:rotate-180" fill="currentColor" aria-hidden="true" focusable="false"><use href="/icons/sprite.2cfc50dc64f04f7b5954b97ba2422ad621d10a8effc0d817cc0c25ec709e052a.svg#p-caret-down-bold"/></svg></button><div data-nav-collapsible-panel data-state="closed" inert id="nav-mobile-panel-product" class="overflow-hidden max-h-0 opacity-0 transition-all duration-200
data-[state=open]:max-h-[2000px] data-[state=open]:opacity-100"><div class="flex flex-col gap-3 pb-3"><div class="flex flex-col gap-1"><span class="px-3 pt-2 font-mono text-xs uppercase tracking-wide text-gray-600">Core product</span><ul class="flex flex-col gap-0.5"><li><a href="/product/" data-nav-sheet-close data-track="header-product-platform" class="group flex flex-row items-start gap-3 rounded-md p-3 outline-none transition-all hover:bg-violet-50 focus-visible:bg-violet-50 focus-visible:ring-3 focus-visible:ring-violet-400/50"><span aria-hidden="true" class="mt-0.5 flex size-8 shrink-0 items-center justify-center rounded-md border group-hover:border-violet-200 border-gray-200 group-hover text-violet-700"><svg class="ph-icon ph-icon--regular size-6" fill="currentColor" aria-hidden="true" focusable="false"><use href="/icons/sprite.2cfc50dc64f04f7b5954b97ba2422ad621d10a8effc0d817cc0c25ec709e052a.svg#p-cloud-arrow-up-regular"/></svg>
</span><span class="flex min-w-0 flex-col gap-0.5"><span class="text-sm font-semibold text-gray-950 group-hover:text-violet-primary">Platform overview</span>
<span class="text-xs text-gray-600 group-hover:text-gray-800">Everything platform engineering teams need to build, secure, and scale cloud infrastructure</span></span></a></li><li><a href="/product/infrastructure-as-code/" data-nav-sheet-close data-track="header-product-iac" class="group flex flex-row items-start gap-3 rounded-md p-3 outline-none transition-all hover:bg-violet-50 focus-visible:bg-violet-50 focus-visible:ring-3 focus-visible:ring-violet-400/50"><span aria-hidden="true" class="mt-0.5 flex size-8 shrink-0 items-center justify-center rounded-md border group-hover:border-violet-200 border-gray-200 group-hover text-violet-700"><svg class="ph-icon ph-icon--regular size-6" fill="currentColor" aria-hidden="true" focusable="false"><use href="/icons/sprite.2cfc50dc64f04f7b5954b97ba2422ad621d10a8effc0d817cc0c25ec709e052a.svg#c-pulumi-iac-regular"/></svg>
</span><span class="flex min-w-0 flex-col gap-0.5"><span class="text-sm font-semibold text-gray-950 group-hover:text-violet-primary">Infrastructure as code</span>
<span class="text-xs text-gray-600 group-hover:text-gray-800">IaC for any cloud, in any language — Node.js, Python, Go, .NET, Java, and YAML</span></span></a></li></ul></div><div class="flex flex-col gap-1"><span class="px-3 pt-2 font-mono text-xs uppercase tracking-wide text-gray-600">Key capabilities</span><ul class="flex flex-col gap-0.5"><li><a href="/product/neo/" data-nav-sheet-close data-track="header-product-neo" class="group flex flex-row items-start gap-3 rounded-md p-3 outline-none transition-all hover:bg-violet-50 focus-visible:bg-violet-50 focus-visible:ring-3 focus-visible:ring-violet-400/50"><span aria-hidden="true" class="mt-0.5 flex size-8 shrink-0 items-center justify-center rounded-md border group-hover:border-violet-200 border-gray-200 group-hover text-violet-700"><svg class="ph-icon ph-icon--fill size-6" fill="currentColor" aria-hidden="true" focusable="false"><use href="/icons/sprite.2cfc50dc64f04f7b5954b97ba2422ad621d10a8effc0d817cc0c25ec709e052a.svg#c-pulumi-neo-fill"/></svg>
</span><span class="flex min-w-0 flex-col gap-0.5"><span class="text-sm font-semibold text-gray-950 group-hover:text-violet-primary">AI infrastructure agent</span>
<span class="text-xs text-gray-600 group-hover:text-gray-800">Meet Neo, our AI-powered infrastructure engineering agent</span></span></a></li><li><a href="/product/secrets-management/" data-nav-sheet-close data-track="header-product-secrets" class="group flex flex-row items-start gap-3 rounded-md p-3 outline-none transition-all hover:bg-violet-50 focus-visible:bg-violet-50 focus-visible:ring-3 focus-visible:ring-violet-400/50"><span aria-hidden="true" class="mt-0.5 flex size-8 shrink-0 items-center justify-center rounded-md border group-hover:border-violet-200 border-gray-200 group-hover text-violet-700"><svg class="ph-icon ph-icon--regular size-6" fill="currentColor" aria-hidden="true" focusable="false"><use href="/icons/sprite.2cfc50dc64f04f7b5954b97ba2422ad621d10a8effc0d817cc0c25ec709e052a.svg#c-pulumi-secrets-regular"/></svg>
</span><span class="flex min-w-0 flex-col gap-0.5"><span class="text-sm font-semibold text-gray-950 group-hover:text-violet-primary">Secrets & configuration</span>
<span class="text-xs text-gray-600 group-hover:text-gray-800">Environments, secrets, and configuration management</span></span></a></li><li><a href="/product/discovery-governance/" data-nav-sheet-close data-track="header-product-insights" class="group flex flex-row items-start gap-3 rounded-md p-3 outline-none transition-all hover:bg-violet-50 focus-visible:bg-violet-50 focus-visible:ring-3 focus-visible:ring-violet-400/50"><span aria-hidden="true" class="mt-0.5 flex size-8 shrink-0 items-center justify-center rounded-md border group-hover:border-violet-200 border-gray-200 group-hover text-violet-700"><svg class="ph-icon ph-icon--regular size-6" fill="currentColor" aria-hidden="true" focusable="false"><use href="/icons/sprite.2cfc50dc64f04f7b5954b97ba2422ad621d10a8effc0d817cc0c25ec709e052a.svg#c-pulumi-insights-regular"/></svg>
</span><span class="flex min-w-0 flex-col gap-0.5"><span class="text-sm font-semibold text-gray-950 group-hover:text-violet-primary">Discovery & governance</span>
<span class="text-xs text-gray-600 group-hover:text-gray-800">Asset management, compliance remediation, and AI insights over the cloud</span></span></a></li><li><a href="/product/internal-developer-platforms/" data-nav-sheet-close data-track="header-product-idp" class="group flex flex-row items-start gap-3 rounded-md p-3 outline-none transition-all hover:bg-violet-50 focus-visible:bg-violet-50 focus-visible:ring-3 focus-visible:ring-violet-400/50"><span aria-hidden="true" class="mt-0.5 flex size-8 shrink-0 items-center justify-center rounded-md border group-hover:border-violet-200 border-gray-200 group-hover text-violet-700"><svg class="ph-icon ph-icon--regular size-6" fill="currentColor" aria-hidden="true" focusable="false"><use href="/icons/sprite.2cfc50dc64f04f7b5954b97ba2422ad621d10a8effc0d817cc0c25ec709e052a.svg#c-pulumi-idp-regular"/></svg>
</span><span class="flex min-w-0 flex-col gap-0.5"><span class="text-sm font-semibold text-gray-950 group-hover:text-violet-primary">Internal developer platform</span>
<span class="text-xs text-gray-600 group-hover:text-gray-800">The fastest, most secure way to deliver cloud infrastructure</span></span></a></li></ul></div></div></div></div><div data-nav-collapsible class="border-b border-gray-100"><button type="button" data-nav-collapsible-trigger aria-expanded="false" aria-controls="nav-mobile-panel-for-engineers" class="group flex w-full items-center justify-between rounded-md px-3 py-4 text-base font-semibold text-gray-950 outline-none transition-colors hover:text-violet-700 focus-visible:text-violet-700 focus-visible:ring-3 focus-visible:ring-violet-400/50 focus-visible:outline-1">
For engineers
<svg class="ph-icon ph-icon--bold size-4 transition-transform duration-200 [[data-open=true]_&]:rotate-180" fill="currentColor" aria-hidden="true" focusable="false"><use href="/icons/sprite.2cfc50dc64f04f7b5954b97ba2422ad621d10a8effc0d817cc0c25ec709e052a.svg#p-caret-down-bold"/></svg></button><div data-nav-collapsible-panel data-state="closed" inert id="nav-mobile-panel-for-engineers" class="overflow-hidden max-h-0 opacity-0 transition-all duration-200
data-[state=open]:max-h-[2000px] data-[state=open]:opacity-100"><div class="flex flex-col gap-3 pb-3"><div class="flex flex-col gap-1"><ul class="flex flex-col gap-0.5"><li><a href="/docs/get-started/" data-nav-sheet-close data-track="header-engineers-get-started" class="group flex flex-row items-start gap-3 rounded-md p-3 outline-none transition-all hover:bg-violet-50 focus-visible:bg-violet-50 focus-visible:ring-3 focus-visible:ring-violet-400/50"><span aria-hidden="true" class="mt-0.5 flex size-8 shrink-0 items-center justify-center rounded-md border group-hover:border-violet-200 border-gray-200 group-hover text-violet-700"><svg class="ph-icon ph-icon--regular size-6" fill="currentColor" aria-hidden="true" focusable="false"><use href="/icons/sprite.2cfc50dc64f04f7b5954b97ba2422ad621d10a8effc0d817cc0c25ec709e052a.svg#p-rocket-launch-regular"/></svg>
</span><span class="flex min-w-0 flex-col gap-0.5"><span class="text-sm font-semibold text-gray-950 group-hover:text-violet-primary">Get started</span>
<span class="text-xs text-gray-600 group-hover:text-gray-800">Install Pulumi and deploy your first project in minutes</span></span></a></li><li><a href="/docs/" data-nav-sheet-close data-track="header-engineers-docs" class="group flex flex-row items-start gap-3 rounded-md p-3 outline-none transition-all hover:bg-violet-50 focus-visible:bg-violet-50 focus-visible:ring-3 focus-visible:ring-violet-400/50"><span aria-hidden="true" class="mt-0.5 flex size-8 shrink-0 items-center justify-center rounded-md border group-hover:border-violet-200 border-gray-200 group-hover text-violet-700"><svg class="ph-icon ph-icon--regular size-6" fill="currentColor" aria-hidden="true" focusable="false"><use href="/icons/sprite.2cfc50dc64f04f7b5954b97ba2422ad621d10a8effc0d817cc0c25ec709e052a.svg#p-book-open-regular"/></svg>
</span><span class="flex min-w-0 flex-col gap-0.5"><span class="text-sm font-semibold text-gray-950 group-hover:text-violet-primary">Documentation</span>
<span class="text-xs text-gray-600 group-hover:text-gray-800">Complete guides and API references</span></span></a></li><li><a href="/registry/" data-nav-sheet-close data-track="header-engineers-registry" class="group flex flex-row items-start gap-3 rounded-md p-3 outline-none transition-all hover:bg-violet-50 focus-visible:bg-violet-50 focus-visible:ring-3 focus-visible:ring-violet-400/50"><span aria-hidden="true" class="mt-0.5 flex size-8 shrink-0 items-center justify-center rounded-md border group-hover:border-violet-200 border-gray-200 group-hover text-violet-700"><svg class="ph-icon ph-icon--regular size-6" fill="currentColor" aria-hidden="true" focusable="false"><use href="/icons/sprite.2cfc50dc64f04f7b5954b97ba2422ad621d10a8effc0d817cc0c25ec709e052a.svg#p-package-regular"/></svg>
</span><span class="flex min-w-0 flex-col gap-0.5"><span class="text-sm font-semibold text-gray-950 group-hover:text-violet-primary">Registry</span>
<span class="text-xs text-gray-600 group-hover:text-gray-800">Browse hundreds of cloud providers and packages</span></span></a></li><li><a href="/dev/" data-nav-sheet-close data-track="header-engineers-learn" class="group flex flex-row items-start gap-3 rounded-md p-3 outline-none transition-all hover:bg-violet-50 focus-visible:bg-violet-50 focus-visible:ring-3 focus-visible:ring-violet-400/50"><span aria-hidden="true" class="mt-0.5 flex size-8 shrink-0 items-center justify-center rounded-md border group-hover:border-violet-200 border-gray-200 group-hover text-violet-700"><svg class="ph-icon ph-icon--regular size-6" fill="currentColor" aria-hidden="true" focusable="false"><use href="/icons/sprite.2cfc50dc64f04f7b5954b97ba2422ad621d10a8effc0d817cc0c25ec709e052a.svg#p-compass-regular"/></svg>
</span><span class="flex min-w-0 flex-col gap-0.5"><span class="text-sm font-semibold text-gray-950 group-hover:text-violet-primary">Dev Center</span>
<span class="text-xs text-gray-600 group-hover:text-gray-800">Tutorials, templates, examples, and more</span></span></a></li><li><a href="/events#upcoming" data-nav-sheet-close data-track="header-engineers-events" class="group flex flex-row items-start gap-3 rounded-md p-3 outline-none transition-all hover:bg-violet-50 focus-visible:bg-violet-50 focus-visible:ring-3 focus-visible:ring-violet-400/50"><span aria-hidden="true" class="mt-0.5 flex size-8 shrink-0 items-center justify-center rounded-md border group-hover:border-violet-200 border-gray-200 group-hover text-violet-700"><svg class="ph-icon ph-icon--regular size-6" fill="currentColor" aria-hidden="true" focusable="false"><use href="/icons/sprite.2cfc50dc64f04f7b5954b97ba2422ad621d10a8effc0d817cc0c25ec709e052a.svg#p-calendar-blank-regular"/></svg>
</span><span class="flex min-w-0 flex-col gap-0.5"><span class="text-sm font-semibold text-gray-950 group-hover:text-violet-primary">Events and workshops</span>
<span class="text-xs text-gray-600 group-hover:text-gray-800">Live sessions and workshops</span></span></a></li><li><a href="/community/" data-nav-sheet-close data-track="header-engineers-community" class="group flex flex-row items-start gap-3 rounded-md p-3 outline-none transition-all hover:bg-violet-50 focus-visible:bg-violet-50 focus-visible:ring-3 focus-visible:ring-violet-400/50"><span aria-hidden="true" class="mt-0.5 flex size-8 shrink-0 items-center justify-center rounded-md border group-hover:border-violet-200 border-gray-200 group-hover text-violet-700"><svg class="ph-icon ph-icon--regular size-6" fill="currentColor" aria-hidden="true" focusable="false"><use href="/icons/sprite.2cfc50dc64f04f7b5954b97ba2422ad621d10a8effc0d817cc0c25ec709e052a.svg#p-users-three-regular"/></svg>
</span><span class="flex min-w-0 flex-col gap-0.5"><span class="text-sm font-semibold text-gray-950 group-hover:text-violet-primary">Community</span>
<span class="text-xs text-gray-600 group-hover:text-gray-800">Join 10k+ developers on Slack</span></span></a></li><li><a href="/testimonials/" data-nav-sheet-close data-track="header-engineers-testimonials" class="group flex flex-row items-start gap-3 rounded-md p-3 outline-none transition-all hover:bg-violet-50 focus-visible:bg-violet-50 focus-visible:ring-3 focus-visible:ring-violet-400/50"><span aria-hidden="true" class="mt-0.5 flex size-8 shrink-0 items-center justify-center rounded-md border group-hover:border-violet-200 border-gray-200 group-hover text-violet-700"><svg class="ph-icon ph-icon--regular size-6" fill="currentColor" aria-hidden="true" focusable="false"><use href="/icons/sprite.2cfc50dc64f04f7b5954b97ba2422ad621d10a8effc0d817cc0c25ec709e052a.svg#p-heart-regular"/></svg>
</span><span class="flex min-w-0 flex-col gap-0.5"><span class="text-sm font-semibold text-gray-950 group-hover:text-violet-primary">Engineers love Pulumi</span>
<span class="text-xs text-gray-600 group-hover:text-gray-800">Hear from engineers why they love us</span></span></a></li><li><a href="/releases/" data-nav-sheet-close data-track="header-engineers-releases" class="group flex flex-row items-start gap-3 rounded-md p-3 outline-none transition-all hover:bg-violet-50 focus-visible:bg-violet-50 focus-visible:ring-3 focus-visible:ring-violet-400/50"><span aria-hidden="true" class="mt-0.5 flex size-8 shrink-0 items-center justify-center rounded-md border group-hover:border-violet-200 border-gray-200 group-hover text-violet-700"><svg class="ph-icon ph-icon--regular size-6" fill="currentColor" aria-hidden="true" focusable="false"><use href="/icons/sprite.2cfc50dc64f04f7b5954b97ba2422ad621d10a8effc0d817cc0c25ec709e052a.svg#p-megaphone-simple-regular"/></svg>
</span><span class="flex min-w-0 flex-col gap-0.5"><span class="text-sm font-semibold text-gray-950 group-hover:text-violet-primary">Releases</span>
<span class="text-xs text-gray-600 group-hover:text-gray-800">Major platform updates from the team</span></span></a></li></ul></div></div></div></div><div data-nav-collapsible class="border-b border-gray-100"><button type="button" data-nav-collapsible-trigger aria-expanded="false" aria-controls="nav-mobile-panel-for-enterprises" class="group flex w-full items-center justify-between rounded-md px-3 py-4 text-base font-semibold text-gray-950 outline-none transition-colors hover:text-violet-700 focus-visible:text-violet-700 focus-visible:ring-3 focus-visible:ring-violet-400/50 focus-visible:outline-1">
For enterprises
<svg class="ph-icon ph-icon--bold size-4 transition-transform duration-200 [[data-open=true]_&]:rotate-180" fill="currentColor" aria-hidden="true" focusable="false"><use href="/icons/sprite.2cfc50dc64f04f7b5954b97ba2422ad621d10a8effc0d817cc0c25ec709e052a.svg#p-caret-down-bold"/></svg></button><div data-nav-collapsible-panel data-state="closed" inert id="nav-mobile-panel-for-enterprises" class="overflow-hidden max-h-0 opacity-0 transition-all duration-200
data-[state=open]:max-h-[2000px] data-[state=open]:opacity-100"><div class="flex flex-col gap-3 pb-3"><div class="flex flex-col gap-1"><ul class="flex flex-col gap-0.5"><li><a href="/enterprise/" data-nav-sheet-close data-track="header-enterprise-solutions" class="group flex flex-row items-start gap-3 rounded-md p-3 outline-none transition-all hover:bg-violet-50 focus-visible:bg-violet-50 focus-visible:ring-3 focus-visible:ring-violet-400/50"><span aria-hidden="true" class="mt-0.5 flex size-8 shrink-0 items-center justify-center rounded-md border group-hover:border-violet-200 border-gray-200 group-hover text-violet-700"><svg class="ph-icon ph-icon--regular size-6" fill="currentColor" aria-hidden="true" focusable="false"><use href="/icons/sprite.2cfc50dc64f04f7b5954b97ba2422ad621d10a8effc0d817cc0c25ec709e052a.svg#p-buildings-regular"/></svg>
</span><span class="flex min-w-0 flex-col gap-0.5"><span class="text-sm font-semibold text-gray-950 group-hover:text-violet-primary">Enterprise solutions</span>
<span class="text-xs text-gray-600 group-hover:text-gray-800">Security, compliance, and support for teams</span></span></a></li><li><a href="/case-studies/" data-nav-sheet-close data-track="header-enterprise-case-studies" class="group flex flex-row items-start gap-3 rounded-md p-3 outline-none transition-all hover:bg-violet-50 focus-visible:bg-violet-50 focus-visible:ring-3 focus-visible:ring-violet-400/50"><span aria-hidden="true" class="mt-0.5 flex size-8 shrink-0 items-center justify-center rounded-md border group-hover:border-violet-200 border-gray-200 group-hover text-violet-700"><svg class="ph-icon ph-icon--regular size-6" fill="currentColor" aria-hidden="true" focusable="false"><use href="/icons/sprite.2cfc50dc64f04f7b5954b97ba2422ad621d10a8effc0d817cc0c25ec709e052a.svg#p-article-regular"/></svg>
</span><span class="flex min-w-0 flex-col gap-0.5"><span class="text-sm font-semibold text-gray-950 group-hover:text-violet-primary">Case studies</span>
<span class="text-xs text-gray-600 group-hover:text-gray-800">How Snowflake, Mercedes-Benz, and others use Pulumi</span></span></a></li><li><a href="/request-a-demo/" data-nav-sheet-close data-track="header-enterprise-demo" class="group flex flex-row items-start gap-3 rounded-md p-3 outline-none transition-all hover:bg-violet-50 focus-visible:bg-violet-50 focus-visible:ring-3 focus-visible:ring-violet-400/50"><span aria-hidden="true" class="mt-0.5 flex size-8 shrink-0 items-center justify-center rounded-md border group-hover:border-violet-200 border-gray-200 group-hover text-violet-700"><svg class="ph-icon ph-icon--regular size-6" fill="currentColor" aria-hidden="true" focusable="false"><use href="/icons/sprite.2cfc50dc64f04f7b5954b97ba2422ad621d10a8effc0d817cc0c25ec709e052a.svg#p-chalkboard-teacher-regular"/></svg>
</span><span class="flex min-w-0 flex-col gap-0.5"><span class="text-sm font-semibold text-gray-950 group-hover:text-violet-primary">Request a demo</span>
<span class="text-xs text-gray-600 group-hover:text-gray-800">See how Pulumi can help your team</span></span></a></li><li><a href="/proserv/" data-nav-sheet-close data-track="header-enterprise-proserv" class="group flex flex-row items-start gap-3 rounded-md p-3 outline-none transition-all hover:bg-violet-50 focus-visible:bg-violet-50 focus-visible:ring-3 focus-visible:ring-violet-400/50"><span aria-hidden="true" class="mt-0.5 flex size-8 shrink-0 items-center justify-center rounded-md border group-hover:border-violet-200 border-gray-200 group-hover text-violet-700"><svg class="ph-icon ph-icon--regular size-6" fill="currentColor" aria-hidden="true" focusable="false"><use href="/icons/sprite.2cfc50dc64f04f7b5954b97ba2422ad621d10a8effc0d817cc0c25ec709e052a.svg#p-briefcase-regular"/></svg>
</span><span class="flex min-w-0 flex-col gap-0.5"><span class="text-sm font-semibold text-gray-950 group-hover:text-violet-primary">Professional services</span>
<span class="text-xs text-gray-600 group-hover:text-gray-800">Get expert help with your implementation</span></span></a></li><li><a href="/contact/" data-nav-sheet-close data-track="header-enterprise-contact" class="group flex flex-row items-start gap-3 rounded-md p-3 outline-none transition-all hover:bg-violet-50 focus-visible:bg-violet-50 focus-visible:ring-3 focus-visible:ring-violet-400/50"><span aria-hidden="true" class="mt-0.5 flex size-8 shrink-0 items-center justify-center rounded-md border group-hover:border-violet-200 border-gray-200 group-hover text-violet-700"><svg class="ph-icon ph-icon--regular size-6" fill="currentColor" aria-hidden="true" focusable="false"><use href="/icons/sprite.2cfc50dc64f04f7b5954b97ba2422ad621d10a8effc0d817cc0c25ec709e052a.svg#p-chat-circle-regular"/></svg>
</span><span class="flex min-w-0 flex-col gap-0.5"><span class="text-sm font-semibold text-gray-950 group-hover:text-violet-primary">Contact sales</span>
<span class="text-xs text-gray-600 group-hover:text-gray-800">Talk to our team about your needs</span></span></a></li></ul></div></div></div></div><a href="/docs/" data-nav-sheet-close data-track="header-docs" class="block rounded-md border-b border-gray-100 px-3 py-4 text-base font-semibold text-gray-950 outline-none transition-colors hover:text-violet-700 focus-visible:text-violet-700 focus-visible:ring-3 focus-visible:ring-violet-400/50 focus-visible:outline-1">Docs
</a><a href="/registry/" data-nav-sheet-close data-track="header-registry" class="block rounded-md border-b border-gray-100 px-3 py-4 text-base font-semibold text-gray-950 outline-none transition-colors hover:text-violet-700 focus-visible:text-violet-700 focus-visible:ring-3 focus-visible:ring-violet-400/50 focus-visible:outline-1">Registry
</a><a href="/blog/" data-nav-sheet-close data-track="header-blog" class="block rounded-md border-b border-gray-100 px-3 py-4 text-base font-semibold text-gray-950 outline-none transition-colors hover:text-violet-700 focus-visible:text-violet-700 focus-visible:ring-3 focus-visible:ring-violet-400/50 focus-visible:outline-1">Blog
</a><a href="/pricing/" data-nav-sheet-close data-track="header-pricing" class="block rounded-md border-b border-gray-100 px-3 py-4 text-base font-semibold text-gray-950 outline-none transition-colors hover:text-violet-700 focus-visible:text-violet-700 focus-visible:ring-3 focus-visible:ring-violet-400/50 focus-visible:outline-1">Pricing</a><div data-nav-collapsible class="border-b border-gray-100"><button type="button" data-nav-collapsible-trigger aria-expanded="false" aria-controls="nav-mobile-panel-company" class="group flex w-full items-center justify-between rounded-md px-3 py-4 text-base font-semibold text-gray-950 outline-none transition-colors hover:text-violet-700 focus-visible:text-violet-700 focus-visible:ring-3 focus-visible:ring-violet-400/50 focus-visible:outline-1">
Company
<svg class="ph-icon ph-icon--bold size-4 transition-transform duration-200 [[data-open=true]_&]:rotate-180" fill="currentColor" aria-hidden="true" focusable="false"><use href="/icons/sprite.2cfc50dc64f04f7b5954b97ba2422ad621d10a8effc0d817cc0c25ec709e052a.svg#p-caret-down-bold"/></svg></button><div data-nav-collapsible-panel data-state="closed" inert id="nav-mobile-panel-company" class="overflow-hidden max-h-0 opacity-0 transition-all duration-200
data-[state=open]:max-h-[2000px] data-[state=open]:opacity-100"><div class="flex flex-col gap-3 pb-3"><div class="flex flex-col gap-1"><ul class="flex flex-col gap-0.5"><li><a href="/about/" data-nav-sheet-close data-track="header-company-about" class="group flex flex-row items-start gap-3 rounded-md p-3 outline-none transition-all hover:bg-violet-50 focus-visible:bg-violet-50 focus-visible:ring-3 focus-visible:ring-violet-400/50"><span aria-hidden="true" class="mt-0.5 flex size-8 shrink-0 items-center justify-center rounded-md border group-hover:border-violet-200 border-gray-200 group-hover text-violet-700"><svg class="ph-icon ph-icon--regular size-6" fill="currentColor" aria-hidden="true" focusable="false"><use href="/icons/sprite.2cfc50dc64f04f7b5954b97ba2422ad621d10a8effc0d817cc0c25ec709e052a.svg#p-quotes-regular"/></svg>
</span><span class="flex min-w-0 flex-col gap-0.5"><span class="text-sm font-semibold text-gray-950 group-hover:text-violet-primary">About us</span>
<span class="text-xs text-gray-600 group-hover:text-gray-800">Our purpose and values</span></span></a></li><li><a href="/careers/" data-nav-sheet-close data-track="header-company-careers" class="group flex flex-row items-start gap-3 rounded-md p-3 outline-none transition-all hover:bg-violet-50 focus-visible:bg-violet-50 focus-visible:ring-3 focus-visible:ring-violet-400/50"><span aria-hidden="true" class="mt-0.5 flex size-8 shrink-0 items-center justify-center rounded-md border group-hover:border-violet-200 border-gray-200 group-hover text-violet-700"><svg class="ph-icon ph-icon--regular size-6" fill="currentColor" aria-hidden="true" focusable="false"><use href="/icons/sprite.2cfc50dc64f04f7b5954b97ba2422ad621d10a8effc0d817cc0c25ec709e052a.svg#p-briefcase-regular"/></svg>
</span><span class="flex min-w-0 flex-col gap-0.5"><span class="text-sm font-semibold text-gray-950 group-hover:text-violet-primary">Careers</span>
<span class="text-xs text-gray-600 group-hover:text-gray-800">Come work for Pulumi</span></span></a></li><li><a href="/about/newsroom/" data-nav-sheet-close data-track="header-company-newsroom" class="group flex flex-row items-start gap-3 rounded-md p-3 outline-none transition-all hover:bg-violet-50 focus-visible:bg-violet-50 focus-visible:ring-3 focus-visible:ring-violet-400/50"><span aria-hidden="true" class="mt-0.5 flex size-8 shrink-0 items-center justify-center rounded-md border group-hover:border-violet-200 border-gray-200 group-hover text-violet-700"><svg class="ph-icon ph-icon--regular size-6" fill="currentColor" aria-hidden="true" focusable="false"><use href="/icons/sprite.2cfc50dc64f04f7b5954b97ba2422ad621d10a8effc0d817cc0c25ec709e052a.svg#p-newspaper-regular"/></svg>
</span><span class="flex min-w-0 flex-col gap-0.5"><span class="text-sm font-semibold text-gray-950 group-hover:text-violet-primary">Newsroom</span>
<span class="text-xs text-gray-600 group-hover:text-gray-800">Pulumi in the news</span></span></a></li><li><a href="/awards/" data-nav-sheet-close data-track="header-company-awards" class="group flex flex-row items-start gap-3 rounded-md p-3 outline-none transition-all hover:bg-violet-50 focus-visible:bg-violet-50 focus-visible:ring-3 focus-visible:ring-violet-400/50"><span aria-hidden="true" class="mt-0.5 flex size-8 shrink-0 items-center justify-center rounded-md border group-hover:border-violet-200 border-gray-200 group-hover text-violet-700"><svg class="ph-icon ph-icon--regular size-6" fill="currentColor" aria-hidden="true" focusable="false"><use href="/icons/sprite.2cfc50dc64f04f7b5954b97ba2422ad621d10a8effc0d817cc0c25ec709e052a.svg#p-trophy-regular"/></svg>
</span><span class="flex min-w-0 flex-col gap-0.5"><span class="text-sm font-semibold text-gray-950 group-hover:text-violet-primary">Awards</span>
<span class="text-xs text-gray-600 group-hover:text-gray-800">Recognition from press and analysts</span></span></a></li></ul></div></div></div></div></nav><div class="flex flex-col gap-2 border-t border-gray-100 p-4"><a href="https://github.com/pulumi/pulumi" target="_blank" rel="noopener" data-track="header-github-stars-sheet" class="btn btn-ghost-nav px-2.5 gap-1.5 inline-flex justify-center" aria-label="Star pulumi/pulumi on GitHub — 25669 stars"><svg class="ph-icon size-4" fill="currentColor" aria-hidden="true" focusable="false"><use href="/icons/sprite.2cfc50dc64f04f7b5954b97ba2422ad621d10a8effc0d817cc0c25ec709e052a.svg#b-github"/></svg>
<span>25.7K</span></a>
<a href="/contact/" data-track="header-contact" class="btn btn-outline">Contact us
</a><a href="https://app.pulumi.com/signin" data-track="header-console" data-nav-loggedout class="btn btn-outline">Sign in
</a><a href="https://app.pulumi.com" data-track="header-dashboard" data-nav-dashboard class="btn btn-primary">Dashboard
</a><a href="https://app.pulumi.com/signup" data-track="header-signup-mobile" data-role="cta-get-started" data-nav-loggedout class="btn btn-primary">Get started</a></div></aside><div data-brand-menu role="menu" aria-label="Pulumi logo options" hidden class="card fixed z-50 min-w-[220px] bg-white p-2 text-gray-950 shadow"><ul class="flex flex-col gap-0.5"><li role="none"><button type="button" role="menuitem" data-brand-menu-copy class="flex w-full items-center justify-between gap-3 rounded-md px-3 py-2 text-left text-sm font-normal text-gray-950 outline-none transition-colors hover:bg-violet-50 hover:text-violet-primary focus-visible:bg-violet-50 focus-visible:ring-3 focus-visible:ring-violet-400/50">
<span data-brand-menu-copy-label>Copy logo SVG</span></button></li><li role="none"><a role="menuitem" data-brand-menu-close href="/logos/brand/pulumi_mark_on_light.svg" download="pulumi-logo-mark-color.svg" class="flex w-full items-center justify-between gap-3 rounded-md px-3 py-2 text-left text-sm font-normal text-gray-950 outline-none transition-colors hover:bg-violet-50 hover:text-violet-primary focus-visible:bg-violet-50 focus-visible:ring-3 focus-visible:ring-violet-400/50">Download mark</a></li><li role="none"><a role="menuitem" data-brand-menu-close href="https://brand.pulumi.com/identity/logo/#get-the-logo" target="_blank" rel="noopener" class="flex w-full items-center justify-between gap-3 rounded-md px-3 py-2 text-left text-sm font-normal text-gray-950 outline-none transition-colors hover:bg-violet-50 hover:text-violet-primary focus-visible:bg-violet-50 focus-visible:ring-3 focus-visible:ring-violet-400/50"><span>Get other variants</span><svg class="ph-icon ph-icon--regular size-3.5 shrink-0 text-gray-400" fill="currentColor" aria-hidden="true" focusable="false"><use href="/icons/sprite.2cfc50dc64f04f7b5954b97ba2422ad621d10a8effc0d817cc0c25ec709e052a.svg#p-arrow-square-out-regular"/></svg></a></li><li role="none"><a role="menuitem" data-brand-menu-close href="https://brand.pulumi.com" target="_blank" rel="noopener" class="flex w-full items-center justify-between gap-3 rounded-md px-3 py-2 text-left text-sm font-normal text-gray-950 outline-none transition-colors hover:bg-violet-50 hover:text-violet-primary focus-visible:bg-violet-50 focus-visible:ring-3 focus-visible:ring-violet-400/50"><span>Read brand guide</span><svg class="ph-icon ph-icon--regular size-3.5 shrink-0 text-gray-400" fill="currentColor" aria-hidden="true" focusable="false"><use href="/icons/sprite.2cfc50dc64f04f7b5954b97ba2422ad621d10a8effc0d817cc0c25ec709e052a.svg#p-arrow-square-out-regular"/></svg></a></li></ul></div><script src="/js/header-nav.a99ba15a.js" defer></script><main id="main" tabindex="-1" class="focus:outline-none flex-1"><div class="blog-header border-b border-gray-200"><div class="container mx-auto flex flex-nowrap items-center justify-between gap-4 px-4 py-6 lg:h-26 lg:py-0"><div class="flex min-w-0 items-center gap-3 lg:gap-4"><div class="heading-2 m-0! flex min-w-0 items-center gap-2"><a href="/blog/" class="shrink-0 text-service-black transition-colors hover:text-violet-primary">Blog</a></div></div><div class="flex shrink-0 items-center"><div class="hidden items-center xl:flex mr-4"><pulumi-hubspot-form form-id="027b4c6d-9b73-4ad8-b149-3c8b07fff608" class="newsletter newsletter-inline newsletter-header newsletter-btn-outline"></pulumi-hubspot-form></div><div><div id="search" data-app-id="P6KICOKU8E" data-search-key="9ac9f1177f81bc8cb5f6cf30485e62db" data-facets="Blog" data-index="production"></div></div><a href="/blog/rss.xml" target="_blank" rel="noopener" aria-label="Pulumi Blog RSS feed" data-track="blog-rss" class="btn btn-icon btn-ghost shrink-0"><svg class="ph-icon ph-icon--regular size-6" fill="currentColor" aria-hidden="true" focusable="false"><use href="/icons/sprite.2cfc50dc64f04f7b5954b97ba2422ad621d10a8effc0d817cc0c25ec709e052a.svg#p-rss-regular"/></svg></a></div></div></div><div data-post-progress aria-hidden="true" style="transform:scaleX(0)" class="fixed inset-x-0 top-16 z-30 h-[3px] origin-left bg-violet-primary"></div><div class="mx-auto max-w-[1220px] px-4 py-8 lg:py-10"><header class="grid grid-cols-1 items-center gap-8"><div class="order-2 flex flex-col items-start gap-5 lg:order-1"><a href="/blog/category/perspectives/" data-track="blog-category-perspectives" class="relative z-10 badge badge-outline">Perspectives</a><h1 class="heading-xl m-0!">Your Perfect Infrastructure May Not Be So Perfect</h1><div class="body-sm flex flex-wrap items-center gap-1.5"><time datetime="2024-12-16">Dec 16, 2024</time>
<span aria-hidden="true" class="text-gray-500">•</span><span class="whitespace-nowrap">4 min read</span></div><div class="flex flex-wrap items-center gap-x-6 gap-y-3"><span class="flex items-center gap-2"><a href="/blog/author/simen-a-w-olsen/" data-track="blog-author-simen-a-w-olsen" class="flex items-center gap-2"><img src="/images/team/simen-a-w-olsen.jpg" alt="Simen A. W. Olsen" class="size-8 rounded-full bg-violet-200 object-cover border border-gray-100" loading="lazy" decoding="async">
<span class="body-sm text-service-black transition-colors hover:text-violet-primary">Simen A. W. Olsen</span></a></span></div></div></header><hr class="my-8 border-gray-200 lg:my-10"><div class="lg:flex lg:gap-12"><div class="min-w-0 lg:flex-1"><div class="mb-8 empty:hidden md:hidden"><details class="group border-b py-3 -mt-8"><summary class="flex cursor-pointer list-none items-center justify-between gap-4 marker:hidden [&::-webkit-details-marker]:hidden"><span class="font-overline-sm text-service-black">In this post</span>
<svg class="ph-icon ph-icon--regular size-4 shrink-0 text-gray-500 transition-transform group-open:rotate-180" fill="currentColor" aria-hidden="true" focusable="false"><use href="/icons/sprite.2cfc50dc64f04f7b5954b97ba2422ad621d10a8effc0d817cc0c25ec709e052a.svg#p-caret-down-regular"/></svg></summary><ul class="m-0 mt-4 flex list-none flex-col gap-3 p-0"><li class="m-0 leading-snug"><a href="#the-over-planning" data-track="blog-toc" class="block font-semibold text-service-black transition-colors hover:text-violet-primary">The Over-Planning</a></li><li class="m-0 leading-snug"><a href="#the-core-principles-of-change-ready-architecture" data-track="blog-toc" class="block font-semibold text-service-black transition-colors hover:text-violet-primary">The Core Principles of Change-Ready Architecture</a></li><li class="m-0 leading-snug"><a href="#conclusion" data-track="blog-toc" class="block font-semibold text-service-black transition-colors hover:text-violet-primary">Conclusion</a></li></ul></details></div><section class="blog-post-content max-w-3xl"><p><strong>Guest Article:</strong> <em>Simen A. W. Olsen from <a href="https://bjerk.io">Bjerk</a>, is here to share his lessons learned on why designing the perfect architecture for your future needs might be a mistake</em></p><p>I remember standing in front of our engineering team in 2018, proudly presenting what I believed was the future-proof architectural design for our new distributed system. The diagrams were immaculate, the technology choices were cutting-edge, and the scalability patterns were ready for any possible future scenario.</p><p>I was basically the Leonardo da Vinci of system design… if Leonardo had been really into Kubernetes and had a concerning addiction to coffee. But six months later, that “future-proof” architecture had become a constraint rather than an enabler, and my masterpiece was looking more like a finger painting done by a caffeinated raccoon.</p><p>This experience taught me something crucial: trying to build the perfect system that anticipates every future need is often worse than creating a system designed to change quickly. It’s like trying to predict what your kid will want to be when they grow up and pre-buying all the necessary equipment. Congrats, you now own a space suit, a stethoscope, and a dragon costume — and they decided to become a software engineer anyway.</p><h2 id="the-over-planning">The Over-Planning</h2><p>Many teams fall into a common trap: they try to design systems that anticipate every possible future requirement. This happens even in agile teams, where we convince ourselves we need to “get the architecture right” before we can start iterating. You know, because nothing says “agile” like spending three months in a room drawing boxes and arrows while muttering “microservices” under your breath like it’s a magic spell.</p><p>In 2008, Netflix faced a choice: build the perfect data center that could handle all their anticipated future needs, or move to the cloud with a simpler architecture that could evolve. They chose the latter, focusing on making their system easy to change rather than trying to make it perfect. Smart move — unlike those my past self made who probably would’ve insisted on building a data center capable of streaming to Mars, just in case Elon asked nicely.</p><div class="note note-tip"><div class="icon-and-line"><svg class="ph-icon ph-icon--fill" fill="currentColor" aria-hidden="true" focusable="false"><use href="/icons/sprite.2cfc50dc64f04f7b5954b97ba2422ad621d10a8effc0d817cc0c25ec709e052a.svg#p-lightbulb-fill"/></svg><div class="line"></div></div><div class="content"><p><strong>You might also like:</strong></p><ul><li><a href="https://www.pulumi.com/blog/p3-some-assembly-required/">Pulumi Patterns and Practices Platform (P3): Some Assembly Required</a></li><li><a href="https://www.pulumi.com/blog/pulumi-patterns-and-practices/">Pulumi Patterns and Practices Platform (P3): A reference architecture for large-scale organizations</a></li><li><a href="https://www.pulumi.com/blog/next-level-iac-briding-the-declarative-gap/">Next-level IaC: Bridging the Declarative Gap</a></li></ul></div></div><h2 id="the-core-principles-of-change-ready-architecture">The Core Principles of Change-Ready Architecture</h2><p>Through both failures and successes, I’ve identified three principles that define truly adaptable architecture:</p><ul><li><strong>Embrace simplicity.</strong> I think it makes sense to start with the simplest architecture that could possibly work for your current needs. Complexity should be earned, not presumed. If your architecture diagram looks like a plate of spaghetti that’s been hit by lightning, you might be doing it wrong.</li><li><strong>Make change cheap.</strong> Instead of trying to avoid change, make it inexpensive. This means investing in automated testing, continuous deployment, and monitoring. When change is cheap, you don’t need to fear it.</li><li><strong>Learn through action.</strong> Rather than trying to predict the future, build mechanisms that help you learn quickly about real needs. It includes feature toggles (Protip: Try <a href="https://www.getunleash.io/">Unleash</a>.), A/B testing, and robust monitoring of how your system is actually being used. You know, actual data, not just what that one loud guy in planning insists will definitely happen.</li></ul><p>The rise of AI and machine learning systems has made one thing clear: we can’t predict how our systems will need to evolve. The most successful teams aren’t those that try to build the perfect AI architecture upfront, but those that can rapidly experiment and adapt their systems based on real-world feedback.</p><p>The biggest pushback I hear is, “But what if we need to scale?” or “What about future requirements?” These fears often drive teams to over-architect their solutions. But here’s the reality: the cost of changing a simple system is usually lower than the cost of maintaining an over-engineered one. The key is understanding that good architecture isn’t about predicting the future — it’s about making future changes as painless as possible.</p><h2 id="conclusion">Conclusion</h2><p>That over-engineered system I was so proud of in 2018? Its most significant flaw wasn’t in what it got wrong about the future — it was that it tried too hard to be right about the future in the first place. It’s like bringing a fully packed suitcase to a first date. Today, I know that the best architecture isn’t one that anticipates every need, but one that makes it easy to respond to needs as they emerge.</p><p>The next time you’re tempted to design for every possible future scenario, remember: the goal isn’t to build a perfect system, but to build one that’s perfectly easy to change. And if someone tells you they’ve designed the perfect future-proof architecture, they’re either lying, or they’ve discovered time travel — and in that case, they should be sharing lottery numbers, not system designs.</p><div class="note note-tip"><div class="icon-and-line"><svg class="ph-icon ph-icon--fill" fill="currentColor" aria-hidden="true" focusable="false"><use href="/icons/sprite.2cfc50dc64f04f7b5954b97ba2422ad621d10a8effc0d817cc0c25ec709e052a.svg#p-lightbulb-fill"/></svg><div class="line"></div></div><div class="content"><p><strong>You might also like:</strong></p><ul><li><a href="https://www.pulumi.com/blog/p3-some-assembly-required/">Pulumi Patterns and Practices Platform (P3): Some Assembly Required</a></li><li><a href="https://www.pulumi.com/blog/pulumi-patterns-and-practices/">Pulumi Patterns and Practices Platform (P3): A reference architecture for large-scale organizations</a></li><li><a href="https://www.pulumi.com/blog/next-level-iac-briding-the-declarative-gap/">Next-level IaC: Bridging the Declarative Gap</a></li></ul></div></div></section><div class="mt-8 flex flex-wrap items-center gap-2 border-t border-gray-200 pt-8"><span class="body-sm font-semibold text-service-black">Tagged as:</span>
<a href="/blog/tag/architecture/" data-track="blog-tag-architecture" class="relative z-10 badge badge-secondary">architecture</a>
<a href="/blog/tag/developer-first-infrastructure/" data-track="blog-tag-developer-first-infrastructure" class="relative z-10 badge badge-secondary">developer-first-infrastructure</a>
<a href="/blog/tag/best-practices/" data-track="blog-tag-best-practices" class="relative z-10 badge badge-secondary">best-practices</a>
<a href="/blog/tag/cloud-engineering/" data-track="blog-tag-cloud-engineering" class="relative z-10 badge badge-secondary">cloud-engineering</a>
<a href="/blog/tag/cloud-deployment/" data-track="blog-tag-cloud-deployment" class="relative z-10 badge badge-secondary">cloud-deployment</a>
<a href="/blog/tag/developer-experience/" data-track="blog-tag-developer-experience" class="relative z-10 badge badge-secondary">developer-experience</a>
<a href="/blog/tag/people-ops/" data-track="blog-tag-people-ops" class="relative z-10 badge badge-secondary">people-ops</a>
<a href="/blog/tag/application-scalability/" data-track="blog-tag-application-scalability" class="relative z-10 badge badge-secondary">application-scalability</a></div><details class="group mt-8 border-t border-gray-200 pt-8"><summary class="flex cursor-pointer list-none items-center justify-between gap-4 text-sm font-semibold marker:hidden [&::-webkit-details-marker]:hidden hover:text-service-black"><span>Archived feature image</span>
<svg class="ph-icon ph-icon--regular size-4 shrink-0 transition-transform group-open:rotate-180" fill="currentColor" aria-hidden="true" focusable="false"><use href="/icons/sprite.2cfc50dc64f04f7b5954b97ba2422ad621d10a8effc0d817cc0c25ec709e052a.svg#p-caret-down-regular"/></svg></summary><img class="mt-4 rounded-lg border border-gray-200" src="/blog/your-perfect-infrastructure/meta-legacy_hu_8ad97fde4f59f68d.webp" srcset="/blog/your-perfect-infrastructure/meta-legacy_hu_8ad97fde4f59f68d.webp 1x, /blog/your-perfect-infrastructure/meta-legacy_hu_90ce630bd56df6c3.webp 2x" width="960" height="540" loading="lazy" decoding="async" alt="Original feature image for this post"></details><nav aria-label="Previous and next posts" class="mt-12 grid grid-cols-1 gap-4 sm:grid-cols-2"><a href="/blog/esc-imports-discoverability/" data-track="blog-prev-post" class="group flex min-w-0 flex-col items-start gap-2 rounded-lg border border-gray-300 bg-white p-5 transition-colors hover:border-gray-500 hover:bg-gray-100"><span class="font-overline-sm flex items-center gap-1 text-service-black"><svg class="ph-icon ph-icon--bold size-3" fill="currentColor" aria-hidden="true" focusable="false"><use href="/icons/sprite.2cfc50dc64f04f7b5954b97ba2422ad621d10a8effc0d817cc0c25ec709e052a.svg#p-caret-left-bold"/></svg>Previous</span>
<span class="heading-4 m-0 w-full truncate text-service-black transition-colors group-hover:text-violet-primary">Pulumi ESC: Discovering Environment Imports</span>
</a><a href="/blog/pulumi-esc-aws-parameter-store-support/" data-track="blog-next-post" class="group flex min-w-0 flex-col items-end gap-2 rounded-lg border border-gray-300 bg-white p-5 text-right transition-colors hover:border-gray-500 hover:bg-gray-100 sm:col-start-2"><span class="font-overline-sm flex items-center gap-1 text-service-black">Next<svg class="ph-icon ph-icon--bold size-3" fill="currentColor" aria-hidden="true" focusable="false"><use href="/icons/sprite.2cfc50dc64f04f7b5954b97ba2422ad621d10a8effc0d817cc0c25ec709e052a.svg#p-caret-right-bold"/></svg></span>
<span class="heading-4 m-0 w-full truncate text-service-black transition-colors group-hover:text-violet-primary">Announcing AWS Systems Manager - Parameter Store Support for Pulumi ESC</span></a></nav><section class="newsletter-input mt-12"><div class="rounded-lg bg-violet-50 px-6 py-8 text-center"><h4 class="mb-4">Subscribe to the Pulumi Monthly Newsletter</h4><div class="inline-block"><pulumi-hubspot-form form-id="6d45d68a-4244-4f23-bbec-941f8ccb2b44" class="newsletter newsletter-blog"></pulumi-hubspot-form></div></div></section></div><aside class="mt-10 lg:mt-0 lg:w-[19rem] lg:shrink-0"><div class="flex flex-col gap-8 lg:sticky lg:top-24"><div class="hidden md:block md:empty:hidden"><nav data-blog-toc aria-label="Table of contents"><p class="font-overline-sm mb-4 text-service-black">In this post</p><ul class="m-0 flex list-none flex-col gap-2 p-0"><li class="m-0 leading-snug"><a href="#the-over-planning" data-track="blog-toc" class="body-sm block font-semibold text-service-black transition-colors hover:text-violet-primary">The Over-Planning</a></li><li class="m-0 leading-snug"><a href="#the-core-principles-of-change-ready-architecture" data-track="blog-toc" class="body-sm block font-semibold text-service-black transition-colors hover:text-violet-primary">The Core Principles of Change-Ready Architecture</a></li><li class="m-0 leading-snug"><a href="#conclusion" data-track="blog-toc" class="body-sm block font-semibold text-service-black transition-colors hover:text-violet-primary">Conclusion</a></li></ul></nav></div><div><p class="font-overline-sm mb-4 text-service-black">Share</p><ul class="m-0 flex list-none items-center gap-3 p-0"><li class="m-0"><button type="button" data-copy-link data-url="https://www.pulumi.com/blog/your-perfect-infrastructure/" aria-label="Copy link" data-track="blog-share-copy-link" class="block cursor-pointer text-gray-500 transition-colors hover:text-violet-primary">
<span data-copy-link-idle><svg class="ph-icon ph-icon--regular text-lg" fill="currentColor" aria-hidden="true" focusable="false"><use href="/icons/sprite.2cfc50dc64f04f7b5954b97ba2422ad621d10a8effc0d817cc0c25ec709e052a.svg#p-link-regular"/></svg></span>
<span data-copy-link-done hidden class="text-green-500"><svg class="ph-icon ph-icon--regular text-lg" fill="currentColor" aria-hidden="true" focusable="false"><use href="/icons/sprite.2cfc50dc64f04f7b5954b97ba2422ad621d10a8effc0d817cc0c25ec709e052a.svg#p-check-regular"/></svg></span></button></li><li class="m-0"><a href="https://www.linkedin.com/feed/?shareActive=true&text=Your%20Perfect%20Infrastructure%20May%20Not%20Be%20So%20Perfect%20https%3a%2f%2fwww.pulumi.com%2fblog%2fyour-perfect-infrastructure%2f" target="_blank" rel="noopener" aria-label="Share on LinkedIn" data-track="blog-share-linkedin" class="text-gray-500 transition-colors hover:text-violet-primary"><svg class="ph-icon text-lg" fill="currentColor" aria-hidden="true" focusable="false"><use href="/icons/sprite.2cfc50dc64f04f7b5954b97ba2422ad621d10a8effc0d817cc0c25ec709e052a.svg#b-linkedin"/></svg></a></li><li class="m-0"><a href="https://www.reddit.com/submit?url=https%3a%2f%2fwww.pulumi.com%2fblog%2fyour-perfect-infrastructure%2f&title=Your%20Perfect%20Infrastructure%20May%20Not%20Be%20So%20Perfect" target="_blank" rel="noopener" aria-label="Share on Reddit" data-track="blog-share-reddit" class="text-gray-500 transition-colors hover:text-violet-primary"><svg class="ph-icon text-lg" fill="currentColor" aria-hidden="true" focusable="false"><use href="/icons/sprite.2cfc50dc64f04f7b5954b97ba2422ad621d10a8effc0d817cc0c25ec709e052a.svg#b-reddit"/></svg></a></li><li class="m-0"><a href="https://x.com/intent/post?text=Your%20Perfect%20Infrastructure%20May%20Not%20Be%20So%20Perfect&url=https%3a%2f%2fwww.pulumi.com%2fblog%2fyour-perfect-infrastructure%2f" target="_blank" rel="noopener" aria-label="Share on X" data-track="blog-share-x" class="text-gray-500 transition-colors hover:text-violet-primary"><svg class="ph-icon text-base" fill="currentColor" aria-hidden="true" focusable="false"><use href="/icons/sprite.2cfc50dc64f04f7b5954b97ba2422ad621d10a8effc0d817cc0c25ec709e052a.svg#b-x"/></svg></a></li><li class="m-0"><a href="https://news.ycombinator.com/submitlink?u=https%3a%2f%2fwww.pulumi.com%2fblog%2fyour-perfect-infrastructure%2f&t=Your%20Perfect%20Infrastructure%20May%20Not%20Be%20So%20Perfect" target="_blank" rel="noopener" aria-label="Share on Hacker News" data-track="blog-share-hackernews" class="text-gray-500 transition-colors hover:text-violet-primary"><svg class="ph-icon text-lg" fill="currentColor" aria-hidden="true" focusable="false"><use href="/icons/sprite.2cfc50dc64f04f7b5954b97ba2422ad621d10a8effc0d817cc0c25ec709e052a.svg#b-hackernews"/></svg></a></li></ul></div><div class="rounded-lg bg-violet-50 p-4 pb-2"><p class="font-overline-sm m-0 mb-4 flex items-center gap-1.5 text-violet-primary"><svg class="ph-icon size-4" fill="currentColor" aria-hidden="true" focusable="false"><use href="/icons/sprite.2cfc50dc64f04f7b5954b97ba2422ad621d10a8effc0d817cc0c25ec709e052a.svg#b-pulumi"/></svg>Program the Cloud</p><p class="body-sm m-0">Create, deploy, and manage cloud infrastructure using your favorite language.</p><a href="/docs/get-started/" data-track="sidebar" class="btn btn-ghost-primary mt-2 -ml-2.5 hover:bg-violet-100">Get started
<svg class="ph-icon ph-icon--regular size-4" fill="currentColor" aria-hidden="true" focusable="false"><use href="/icons/sprite.2cfc50dc64f04f7b5954b97ba2422ad621d10a8effc0d817cc0c25ec709e052a.svg#p-arrow-right-regular"/></svg></a></div></div></aside></div></div><section class="border-t border-gray-200"><div class="mx-auto max-w-[1220px] px-4 py-10 lg:py-12"><p class="font-overline m-0! mb-6 text-service-black">Related posts</p><div class="flex flex-col"><article data-post-row data-category="perspectives" class="group relative border-b border-gray-200 last:border-0"><div data-row-compact class="flex flex-col md:flex-row items-start md:items-center gap-2 md:gap-4 py-6"><h4 class="m-0! min-w-0 flex-1 md:truncate"><a href="/blog/redmonk-pulumi-developer-first-infrastructure/" data-track="blog-row-pulumi-and-redmonk-on-developer-first-infrastructure-and-why-it-matters" class="text-service-black transition-colors after:absolute after:inset-0 after:content-[''] group-hover:text-violet-primary">Pulumi and RedMonk on developer-first infrastructure and why it matters</a></h4><div class="flex shrink-0 items-center gap-2"><span class="hidden md:inline-flex"><span class="badge badge-outline">Perspectives</span></span>
<span class="w-32 mx-auto hidden md:inline-flex justify-center"><span class="flex items-center gap-2"><span class="flex items-center shrink-0"><img src="/images/team/george-huang.jpg" alt="George Huang" title="George Huang" class="size-8 rounded-full object-cover bg-violet-200 ring-1 ring-gray-100 shrink-0" loading="lazy" decoding="async"></span></span>
</span><time class="body-sm whitespace-nowrap text-service-black md:w-28 md:text-right" datetime="2022-04-26">Apr 26, 2022</time></div></div><div data-row-card class="hidden items-center gap-4 py-6 md:gap-8"><div class="flex min-w-0 flex-1 flex-col items-start gap-2"><span class="badge badge-outline">Perspectives</span><h3 class="heading-4 mt-1 mb-0!"><a href="/blog/redmonk-pulumi-developer-first-infrastructure/" data-track="blog-card-pulumi-and-redmonk-on-developer-first-infrastructure-and-why-it-matters" class="text-service-black transition-colors after:absolute after:inset-0 after:content-[''] group-hover:text-violet-primary">Pulumi and RedMonk on developer-first infrastructure and why it matters</a></h3><p class="m-0! body-sm text-service-black line-clamp-2">Pulumi and RedMonk discuss developer-first infrastructure and how it empowers developers to build cloud applications through software engineering practices.</p><div class="mt-1"><div class="flex flex-wrap items-center gap-x-2 gap-y-1 body-sm"><span class="flex items-center gap-2"><span class="flex items-center shrink-0"><img src="/images/team/george-huang.jpg" alt="George Huang" title="George Huang" class="size-8 rounded-full object-cover bg-violet-200 ring-1 ring-gray-100 shrink-0" loading="lazy" decoding="async"></span><span class="body-sm text-service-black whitespace-nowrap">George Huang</span></span>
<span class="text-gray-500" aria-hidden="true">•</span><time class="text-service-black whitespace-nowrap" datetime="2022-04-26">Apr 26, 2022</time></div></div></div></div></article><article data-post-row data-category="best-practices" class="group relative border-b border-gray-200 last:border-0"><div data-row-compact class="flex flex-col md:flex-row items-start md:items-center gap-2 md:gap-4 py-6"><h4 class="m-0! min-w-0 flex-1 md:truncate"><a href="/blog/p3-some-assembly-required/" data-track="blog-row-pulumi-patterns-and-practices-platform-p3-some-assembly-required" class="text-service-black transition-colors after:absolute after:inset-0 after:content-[''] group-hover:text-violet-primary">Pulumi Patterns and Practices Platform (P3): Some Assembly Required</a></h4><div class="flex shrink-0 items-center gap-2"><span class="hidden md:inline-flex"><span class="badge badge-outline">Best Practices</span></span>
<span class="w-32 mx-auto hidden md:inline-flex justify-center"><span class="flex items-center gap-2"><span class="flex items-center shrink-0"><img src="/images/team/troy-howard.jpg" alt="Troy Howard" title="Troy Howard" class="size-8 rounded-full object-cover bg-violet-200 ring-1 ring-gray-100 shrink-0" loading="lazy" decoding="async"></span></span>
</span><time class="body-sm whitespace-nowrap text-service-black md:w-28 md:text-right" datetime="2024-11-11">Nov 11, 2024</time></div></div><div data-row-card class="hidden items-center gap-4 py-6 md:gap-8"><div class="flex min-w-0 flex-1 flex-col items-start gap-2"><span class="badge badge-outline">Best Practices</span><h3 class="heading-4 mt-1 mb-0!"><a href="/blog/p3-some-assembly-required/" data-track="blog-card-pulumi-patterns-and-practices-platform-p3-some-assembly-required" class="text-service-black transition-colors after:absolute after:inset-0 after:content-[''] group-hover:text-violet-primary">Pulumi Patterns and Practices Platform (P3): Some Assembly Required</a></h3><p class="m-0! body-sm text-service-black line-clamp-2">Assembly instructions for building the Pulumi Patterns and Practices Platform (P3) reference architecture of a Pulumi-based internal developer platform (IDP).</p><div class="mt-1"><div class="flex flex-wrap items-center gap-x-2 gap-y-1 body-sm"><span class="flex items-center gap-2"><span class="flex items-center shrink-0"><img src="/images/team/troy-howard.jpg" alt="Troy Howard" title="Troy Howard" class="size-8 rounded-full object-cover bg-violet-200 ring-1 ring-gray-100 shrink-0" loading="lazy" decoding="async"></span><span class="body-sm text-service-black whitespace-nowrap">Troy Howard</span></span>
<span class="text-gray-500" aria-hidden="true">•</span><time class="text-service-black whitespace-nowrap" datetime="2024-11-11">Nov 11, 2024</time></div></div></div></div></article><article data-post-row data-category="best-practices" class="group relative border-b border-gray-200 last:border-0"><div data-row-compact class="flex flex-col md:flex-row items-start md:items-center gap-2 md:gap-4 py-6"><h4 class="m-0! min-w-0 flex-1 md:truncate"><a href="/blog/pulumi-patterns-and-practices/" data-track="blog-row-pulumi-patterns-and-practices-platform-p3-a-reference-architecture-for-large-scale-organizations" class="text-service-black transition-colors after:absolute after:inset-0 after:content-[''] group-hover:text-violet-primary">Pulumi Patterns and Practices Platform (P3): A reference architecture for large-scale organizations</a></h4><div class="flex shrink-0 items-center gap-2"><span class="hidden md:inline-flex"><span class="badge badge-outline">Best Practices</span></span>
<span class="w-32 mx-auto hidden md:inline-flex justify-center"><span class="flex items-center gap-2"><span class="flex items-center shrink-0"><img src="/images/team/troy-howard.jpg" alt="Troy Howard" title="Troy Howard" class="size-8 rounded-full object-cover bg-violet-200 ring-1 ring-gray-100 shrink-0" loading="lazy" decoding="async"></span></span>
</span><time class="body-sm whitespace-nowrap text-service-black md:w-28 md:text-right" datetime="2024-08-05">Aug 5, 2024</time></div></div><div data-row-card class="hidden items-center gap-4 py-6 md:gap-8"><div class="flex min-w-0 flex-1 flex-col items-start gap-2"><span class="badge badge-outline">Best Practices</span><h3 class="heading-4 mt-1 mb-0!"><a href="/blog/pulumi-patterns-and-practices/" data-track="blog-card-pulumi-patterns-and-practices-platform-p3-a-reference-architecture-for-large-scale-organizations" class="text-service-black transition-colors after:absolute after:inset-0 after:content-[''] group-hover:text-violet-primary">Pulumi Patterns and Practices Platform (P3): A reference architecture for large-scale organizations</a></h3><p class="m-0! body-sm text-service-black line-clamp-2">Pulumi Patterns and Practices Platform (P3): A reference architecture for building Pulumi-based internal platforms at enterprise scale.</p><div class="mt-1"><div class="flex flex-wrap items-center gap-x-2 gap-y-1 body-sm"><span class="flex items-center gap-2"><span class="flex items-center shrink-0"><img src="/images/team/troy-howard.jpg" alt="Troy Howard" title="Troy Howard" class="size-8 rounded-full object-cover bg-violet-200 ring-1 ring-gray-100 shrink-0" loading="lazy" decoding="async"></span><span class="body-sm text-service-black whitespace-nowrap">Troy Howard</span></span>
<span class="text-gray-500" aria-hidden="true">•</span><time class="text-service-black whitespace-nowrap" datetime="2024-08-05">Aug 5, 2024</time></div></div></div></div></article><article data-post-row data-category="best-practices" class="group relative border-b border-gray-200 last:border-0"><div data-row-compact class="flex flex-col md:flex-row items-start md:items-center gap-2 md:gap-4 py-6"><h4 class="m-0! min-w-0 flex-1 md:truncate"><a href="/blog/scaling-apps-across-multiple-regions/" data-track="blog-row-scaling-applications-across-multiple-regions" class="text-service-black transition-colors after:absolute after:inset-0 after:content-[''] group-hover:text-violet-primary">Scaling Applications Across Multiple Regions</a></h4><div class="flex shrink-0 items-center gap-2"><span class="hidden md:inline-flex"><span class="badge badge-outline">Best Practices</span></span>
<span class="w-32 mx-auto hidden md:inline-flex justify-center"><span class="flex items-center gap-2"><span class="flex items-center shrink-0"><img src="/images/team/adora-nwodo.jpg" alt="Adora Nwodo" title="Adora Nwodo" class="size-8 rounded-full object-cover bg-violet-200 ring-1 ring-gray-100 shrink-0" loading="lazy" decoding="async"></span></span>
</span><time class="body-sm whitespace-nowrap text-service-black md:w-28 md:text-right" datetime="2023-12-06">Dec 6, 2023</time></div></div><div data-row-card class="hidden items-center gap-4 py-6 md:gap-8"><div class="flex min-w-0 flex-1 flex-col items-start gap-2"><span class="badge badge-outline">Best Practices</span><h3 class="heading-4 mt-1 mb-0!"><a href="/blog/scaling-apps-across-multiple-regions/" data-track="blog-card-scaling-applications-across-multiple-regions" class="text-service-black transition-colors after:absolute after:inset-0 after:content-[''] group-hover:text-violet-primary">Scaling Applications Across Multiple Regions</a></h3><p class="m-0! body-sm text-service-black line-clamp-2">Learn about deploying applications to multiple regions globally. Uncover strategies for achieving high availability in a distributed environment.</p><div class="mt-1"><div class="flex flex-wrap items-center gap-x-2 gap-y-1 body-sm"><span class="flex items-center gap-2"><span class="flex items-center shrink-0"><img src="/images/team/adora-nwodo.jpg" alt="Adora Nwodo" title="Adora Nwodo" class="size-8 rounded-full object-cover bg-violet-200 ring-1 ring-gray-100 shrink-0" loading="lazy" decoding="async"></span><span class="body-sm text-service-black whitespace-nowrap">Adora Nwodo</span></span>
<span class="text-gray-500" aria-hidden="true">•</span><time class="text-service-black whitespace-nowrap" datetime="2023-12-06">Dec 6, 2023</time></div></div></div></div></article><article data-post-row data-category="best-practices" class="group relative border-b border-gray-200 last:border-0"><div data-row-compact class="flex flex-col md:flex-row items-start md:items-center gap-2 md:gap-4 py-6"><h4 class="m-0! min-w-0 flex-1 md:truncate"><a href="/blog/iac-best-practices-applying-stack-references/" data-track="blog-row-iac-best-practices-applying-stack-references" class="text-service-black transition-colors after:absolute after:inset-0 after:content-[''] group-hover:text-violet-primary">IaC Best Practices: Applying Stack References</a></h4><div class="flex shrink-0 items-center gap-2"><span class="hidden md:inline-flex"><span class="badge badge-outline">Best Practices</span></span>
<span class="w-32 mx-auto hidden md:inline-flex justify-center"><span class="flex items-center gap-2"><span class="flex items-center shrink-0"><img src="/images/team/scott-lowe.jpg" alt="Scott Lowe" title="Scott Lowe" class="size-8 rounded-full object-cover bg-violet-200 ring-1 ring-gray-100 shrink-0" loading="lazy" decoding="async"></span></span>
</span><time class="body-sm whitespace-nowrap text-service-black md:w-28 md:text-right" datetime="2023-03-31">Mar 31, 2023</time></div></div><div data-row-card class="hidden items-center gap-4 py-6 md:gap-8"><div class="flex min-w-0 flex-1 flex-col items-start gap-2"><span class="badge badge-outline">Best Practices</span><h3 class="heading-4 mt-1 mb-0!"><a href="/blog/iac-best-practices-applying-stack-references/" data-track="blog-card-iac-best-practices-applying-stack-references" class="text-service-black transition-colors after:absolute after:inset-0 after:content-[''] group-hover:text-violet-primary">IaC Best Practices: Applying Stack References</a></h3><p class="m-0! body-sm text-service-black line-clamp-2">Learn how to apply Pulumi stack references to share data across projects. Improve modularity and maintainability with best practices for stack dependencies.</p><div class="mt-1"><div class="flex flex-wrap items-center gap-x-2 gap-y-1 body-sm"><span class="flex items-center gap-2"><span class="flex items-center shrink-0"><img src="/images/team/scott-lowe.jpg" alt="Scott Lowe" title="Scott Lowe" class="size-8 rounded-full object-cover bg-violet-200 ring-1 ring-gray-100 shrink-0" loading="lazy" decoding="async"></span><span class="body-sm text-service-black whitespace-nowrap">Scott Lowe</span></span>
<span class="text-gray-500" aria-hidden="true">•</span><time class="text-service-black whitespace-nowrap" datetime="2023-03-31">Mar 31, 2023</time></div></div></div><div class="flex size-20 sm:size-28 lg:size-36 shrink-0 items-center justify-center overflow-hidden rounded-lg bg-violet-950"><img class="h-full w-auto max-w-none" src="/blog/iac-best-practices-applying-stack-references/feature_hu_d27216aef57358bf.webp" srcset="/blog/iac-best-practices-applying-stack-references/feature_hu_d27216aef57358bf.webp 1x, /blog/iac-best-practices-applying-stack-references/feature_hu_e6a18ed50ede11b3.webp 2x" sizes="288px" width="288" height="192" alt="IaC Best Practices: Applying Stack References" loading="lazy" decoding="async"></div></div></article><article data-post-row data-category="best-practices" class="group relative border-b border-gray-200 last:border-0"><div data-row-compact class="flex flex-col md:flex-row items-start md:items-center gap-2 md:gap-4 py-6"><h4 class="m-0! min-w-0 flex-1 md:truncate"><a href="/blog/iac-best-practices-structuring-pulumi-projects/" data-track="blog-row-iac-best-practices-structuring-pulumi-projects" class="text-service-black transition-colors after:absolute after:inset-0 after:content-[''] group-hover:text-violet-primary">IaC Best Practices: Structuring Pulumi Projects</a></h4><div class="flex shrink-0 items-center gap-2"><span class="hidden md:inline-flex"><span class="badge badge-outline">Best Practices</span></span>
<span class="w-32 mx-auto hidden md:inline-flex justify-center"><span class="flex items-center gap-2"><span class="flex items-center shrink-0"><img src="/images/team/christian-nunciato.jpg" alt="Christian Nunciato" title="Christian Nunciato" class="size-8 rounded-full object-cover bg-violet-200 ring-1 ring-gray-100 shrink-0" loading="lazy" decoding="async"><img src="/images/team/scott-lowe.jpg" alt="Scott Lowe" title="Scott Lowe" class="size-8 rounded-full object-cover bg-violet-200 ring-1 ring-gray-100 shrink-0 -ml-3" loading="lazy" decoding="async"></span></span>
</span><time class="body-sm whitespace-nowrap text-service-black md:w-28 md:text-right" datetime="2023-03-17">Mar 17, 2023</time></div></div><div data-row-card class="hidden items-center gap-4 py-6 md:gap-8"><div class="flex min-w-0 flex-1 flex-col items-start gap-2"><span class="badge badge-outline">Best Practices</span><h3 class="heading-4 mt-1 mb-0!"><a href="/blog/iac-best-practices-structuring-pulumi-projects/" data-track="blog-card-iac-best-practices-structuring-pulumi-projects" class="text-service-black transition-colors after:absolute after:inset-0 after:content-[''] group-hover:text-violet-primary">IaC Best Practices: Structuring Pulumi Projects</a></h3><p class="m-0! body-sm text-service-black line-clamp-2">See how you can structures Pulumi projects as your infrastructure grows. Learn best practices for managing complexity and scaling teams.</p><div class="mt-1"><div class="flex flex-wrap items-center gap-x-2 gap-y-1 body-sm"><span class="flex items-center gap-2"><span class="flex items-center shrink-0"><img src="/images/team/christian-nunciato.jpg" alt="Christian Nunciato" title="Christian Nunciato" class="size-8 rounded-full object-cover bg-violet-200 ring-1 ring-gray-100 shrink-0" loading="lazy" decoding="async"><img src="/images/team/scott-lowe.jpg" alt="Scott Lowe" title="Scott Lowe" class="size-8 rounded-full object-cover bg-violet-200 ring-1 ring-gray-100 shrink-0 -ml-3" loading="lazy" decoding="async"></span><span class="body-sm text-service-black whitespace-nowrap">2 authors</span></span>
<span class="text-gray-500" aria-hidden="true">•</span><time class="text-service-black whitespace-nowrap" datetime="2023-03-17">Mar 17, 2023</time></div></div></div><div class="flex size-20 sm:size-28 lg:size-36 shrink-0 items-center justify-center overflow-hidden rounded-lg bg-violet-950"><img class="h-full w-auto max-w-none" src="/blog/iac-best-practices-structuring-pulumi-projects/feature_hu_d27216aef57358bf.webp" srcset="/blog/iac-best-practices-structuring-pulumi-projects/feature_hu_d27216aef57358bf.webp 1x, /blog/iac-best-practices-structuring-pulumi-projects/feature_hu_e6a18ed50ede11b3.webp 2x" sizes="288px" width="288" height="192" alt="IaC Best Practices: Structuring Pulumi Projects" loading="lazy" decoding="async"></div></div></article></div></div></section></main><section class="bg-violet-background text-gray-950"><div class="container mx-auto flex flex-col md:flex-row items-center justify-center gap-5 md:gap-12 px-4 py-7 text-center md:text-left"><h2 class="text-2xl md:text-3xl font-semibold tracking-tight leading-tight mb-0">The infrastructure as code platform for any cloud.</h2><div class="flex gap-2.5 items-center shrink-0"><a class="btn btn-outline btn-xl" href="/contact/" data-track="footer-cta-contact-us">Contact us</a>
<a class="btn btn-primary btn-xl" href="https://app.pulumi.com/signup" data-track="footer-signup">Get started</a></div></div></section><footer class="relative bg-service-black text-white overflow-clip px-6 lg:px-8 pt-12 pb-24 lg:pb-8"><div class="absolute top-0 right-0 pointer-events-none max-w-[50%] opacity-90" aria-hidden="true"><img src="/fingerprinted/images/footer/bg-lines.db941eef4575a29e90d71577c26c8d1247a92ba851a12ab2021cc3150bc26ba9.svg" alt width="421" height="474" loading="lazy" decoding="async" aria-hidden="true"></div><div class="relative z-10 flex flex-col lg:flex-row gap-x-8 gap-y-10 justify-between"><div class="lg:w-56 lg:shrink-0 flex flex-col gap-4"><a href="/" class="inline-block" data-track="footer-logo" aria-label="Pulumi home"><img class="h-[89px] w-[84px]" src="/fingerprinted/logos/brand/pulumi-mark.2ff13df2c355746e06f3f84162d630b2d7a875e6b07a180a9187a50ba7d70db5.svg" alt="Pulumi" width="84" height="89" loading="lazy" decoding="async"></a><h3 class="mt-0 text-2xl font-semibold tracking-tight leading-snug text-white">Open source and free for individuals.</h3><div class="min-h-[28px]"><a href="https://github.com/pulumi/pulumi" target="_blank" rel="noopener" data-track="footer-github-stars" class="items-stretch h-9 shrink-0 rounded-lg border text-sm font-normal whitespace-nowrap outline-none select-none transition-all overflow-hidden focus-visible:ring-3 focus-visible:ring-violet-400/50 border-white/15 text-white hover:border-white/40 hover:bg-white/5 focus-visible:border-violet-400 inline-flex" aria-label="Star pulumi/pulumi on GitHub — 25669 stars"><span class="inline-flex items-center gap-1.5 px-2.5"><svg class="ph-icon size-4" fill="currentColor" aria-hidden="true" focusable="false"><use href="/icons/sprite.2cfc50dc64f04f7b5954b97ba2422ad621d10a8effc0d817cc0c25ec709e052a.svg#b-github"/></svg>
<span>pulumi/pulumi</span>
</span><span aria-hidden="true" style="width:1px;background-color:rgba(255,255,255,.15)"></span>
<span class="inline-flex items-center px-2.5">25.7K</span></a></div></div><div class="grid grid-cols-2 gap-x-8 gap-y-10 sm:grid-cols-3 lg:flex lg:flex-wrap lg:gap-x-16"><nav aria-label="Resources"><h3 class="footer-heading">Resources</h3><ul><li class="mb-2"><a href="/docs/" class="text-sm text-white hover:text-violet-300 hover:underline" data-track="footer-documentation">Docs</a></li><li class="mb-2"><a href="/registry/" class="text-sm text-white hover:text-violet-300 hover:underline" data-track="footer-apis">Registry</a></li><li class="mb-2"><a href="/dev/" class="text-sm text-white hover:text-violet-300 hover:underline" data-track="footer-learn">Dev Center</a></li><li class="mb-2"><a href="/events/" class="text-sm text-white hover:text-violet-300 hover:underline" data-track="footer-events">Events</a></li><li class="mb-2"><a href="/releases/" class="text-sm text-white hover:text-violet-300 hover:underline" data-track="footer-releases">Releases</a></li><li class="mb-2"><a href="/community/" class="text-sm text-white hover:text-violet-300 hover:underline" data-track="footer-community">Community</a></li></ul></nav><nav aria-label="Platform"><h3 class="footer-heading">Platform</h3><ul><li class="mb-2"><a href="/product/" class="text-sm text-white hover:text-violet-300 hover:underline" data-track="footer-platform-overview">Overview</a></li><li class="mb-2"><a href="/product/infrastructure-as-code/" class="text-sm text-white hover:text-violet-300 hover:underline" data-track="footer-platform-iac">Infrastructure as code</a></li><li class="mb-2"><a href="/product/secrets-management/" class="text-sm text-white hover:text-violet-300 hover:underline" data-track="footer-platform-secrets">Secrets & configuration</a></li><li class="mb-2"><a href="/product/discovery-governance/" class="text-sm text-white hover:text-violet-300 hover:underline" data-track="footer-platform-insights">Discovery & governance</a></li><li class="mb-2"><a href="/product/neo/" class="text-sm text-white hover:text-violet-300 hover:underline" data-track="footer-platform-neo">AI infrastructure agent</a></li><li class="mb-2"><a href="/product/internal-developer-platforms/" class="text-sm text-white hover:text-violet-300 hover:underline" data-track="footer-platform-idp">Internal developer platform</a></li><li class="mb-2"><a href="/pricing/" class="text-sm text-white hover:text-violet-300 hover:underline" data-track="footer-platform-pricing">Pricing</a></li></ul></nav><nav aria-label="Pulumi for"><h3 class="footer-heading">Pulumi for</h3><ul><li class="mb-2"><a href="/aws/" class="text-sm text-white hover:text-violet-300 hover:underline" data-track="footer-aws">AWS</a></li><li class="mb-2"><a href="/azure/" class="text-sm text-white hover:text-violet-300 hover:underline" data-track="footer-azure">Microsoft Azure</a></li><li class="mb-2"><a href="/gcp/" class="text-sm text-white hover:text-violet-300 hover:underline" data-track="footer-gcp">Google Cloud Platform</a></li><li class="mb-2"><a href="/kubernetes/" class="text-sm text-white hover:text-violet-300 hover:underline" data-track="footer-kubernetes">Kubernetes</a></li><li class="mb-2"><a href="/what-is/what-is-infrastructure-as-code/" class="text-sm text-white hover:text-violet-300 hover:underline" data-track="footer-what-is-infrastructure-as-code">Infrastructure as code</a></li><li class="mb-2"><a href="/solutions/ai/" class="text-sm text-white hover:text-violet-300 hover:underline" data-track="footer-artificial-intelligence">AI/ML workloads</a></li><li class="mb-2"><a href="/case-studies/" class="text-sm text-white hover:text-violet-300 hover:underline" data-track="footer-case-studies">Teams like yours</a></li></ul></nav><nav aria-label="Company"><h3 class="footer-heading">Company</h3><ul><li class="mb-2"><a href="/about/" class="text-sm text-white hover:text-violet-300 hover:underline" data-track="footer-about-us">About us</a></li><li class="mb-2"><a href="/blog/" class="text-sm text-white hover:text-violet-300 hover:underline" data-track="footer-blog">Blog</a></li><li class="mb-2"><a href="/careers/" class="text-sm text-white hover:text-violet-300 hover:underline" data-track="footer-careers">Careers</a></li><li class="mb-2"><a href="/about/newsroom/" class="text-sm text-white hover:text-violet-300 hover:underline" data-track="footer-newsroom">Newsroom</a></li><li class="mb-2"><a href="/awards/" class="text-sm text-white hover:text-violet-300 hover:underline" data-track="footer-awards">Awards</a></li><li class="mb-2"><a href="/security/" class="text-sm text-white hover:text-violet-300 hover:underline" data-track="footer-security">Security</a></li><li class="mb-2"><a href="https://brand.pulumi.com/" class="text-sm text-white hover:text-violet-300 hover:underline" data-track="footer-brand">Brand</a></li></ul></nav><nav aria-label="Get help"><h3 class="footer-heading">Get help</h3><ul><li class="mb-2"><a href="https://slack.pulumi.com/" class="text-sm text-white hover:text-violet-300 hover:underline" data-track="footer-help-slack">Join our Slack</a></li><li class="mb-2"><a href="/support/new/" class="text-sm text-white hover:text-violet-300 hover:underline" data-track="footer-support">Customer support</a></li><li class="mb-2"><a href="/proserv/" class="text-sm text-white hover:text-violet-300 hover:underline" data-track="footer-professional-services">Professional services</a></li><li class="mb-2"><a href="/request-a-demo/" class="text-sm text-white hover:text-violet-300 hover:underline" data-track="footer-help-demo">Request a demo</a></li><li class="mb-2"><a href="/contact/" class="text-sm text-white hover:text-violet-300 hover:underline" data-track="footer-contact-us">Contact us</a></li></ul></nav></div><div class="flex flex-col gap-8 lg:pr-20"><div><h3 class="footer-heading">Connect</h3><ul class="flex gap-4 items-center"><li><a href="https://slack.pulumi.com/" target="_blank" rel="noopener" class="inline-flex items-center justify-center text-white opacity-85 hover:opacity-100 transition-opacity duration-150" data-track="footer-slack" aria-label="Pulumi Slack"><svg class="ph-icon" fill="currentColor" width="24" height="24" style="width:24px;height:24px" aria-hidden="true" focusable="false"><use href="/icons/sprite.2cfc50dc64f04f7b5954b97ba2422ad621d10a8effc0d817cc0c25ec709e052a.svg#b-slack"/></svg></a></li><li><a href="https://github.com/pulumi/" target="_blank" rel="noopener" class="inline-flex items-center justify-center text-white opacity-85 hover:opacity-100 transition-opacity duration-150" data-track="footer-github" aria-label="Pulumi GitHub"><svg class="ph-icon" fill="currentColor" width="24" height="24" style="width:24px;height:24px" aria-hidden="true" focusable="false"><use href="/icons/sprite.2cfc50dc64f04f7b5954b97ba2422ad621d10a8effc0d817cc0c25ec709e052a.svg#b-github"/></svg></a></li><li><a href="https://www.youtube.com/channel/UC2Dhyn4Ev52YSbcpfnfP0Mw" target="_blank" rel="noopener" class="inline-flex items-center justify-center text-white opacity-85 hover:opacity-100 transition-opacity duration-150" data-track="footer-youtube" aria-label="Pulumi YouTube"><svg class="ph-icon" fill="currentColor" width="24" height="24" style="width:24px;height:24px" aria-hidden="true" focusable="false"><use href="/icons/sprite.2cfc50dc64f04f7b5954b97ba2422ad621d10a8effc0d817cc0c25ec709e052a.svg#b-youtube"/></svg></a></li><li><a href="https://x.com/pulumicorp" target="_blank" rel="noopener" class="inline-flex items-center justify-center text-white opacity-85 hover:opacity-100 transition-opacity duration-150" data-track="footer-twitter" aria-label="Pulumi X"><svg class="ph-icon" fill="currentColor" width="24" height="24" style="width:24px;height:24px" aria-hidden="true" focusable="false"><use href="/icons/sprite.2cfc50dc64f04f7b5954b97ba2422ad621d10a8effc0d817cc0c25ec709e052a.svg#b-x"/></svg></a></li><li><a href="https://www.linkedin.com/company/pulumi/" target="_blank" rel="noopener" class="inline-flex items-center justify-center text-white opacity-85 hover:opacity-100 transition-opacity duration-150" data-track="footer-linkedin" aria-label="Pulumi LinkedIn"><svg class="ph-icon" fill="currentColor" width="24" height="24" style="width:24px;height:24px" aria-hidden="true" focusable="false"><use href="/icons/sprite.2cfc50dc64f04f7b5954b97ba2422ad621d10a8effc0d817cc0c25ec709e052a.svg#b-linkedin"/></svg></a></li><li><a href="https://bsky.app/profile/pulumi.com" target="_blank" rel="noopener" class="inline-flex items-center justify-center text-white opacity-85 hover:opacity-100 transition-opacity duration-150" data-track="footer-bluesky" aria-label="Pulumi Bluesky"><svg class="ph-icon" fill="currentColor" width="24" height="24" style="width:24px;height:24px" aria-hidden="true" focusable="false"><use href="/icons/sprite.2cfc50dc64f04f7b5954b97ba2422ad621d10a8effc0d817cc0c25ec709e052a.svg#b-bluesky"/></svg></a></li></ul></div><div><h3 class="footer-heading">Get our newsletter</h3><pulumi-hubspot-form form-id="027b4c6d-9b73-4ad8-b149-3c8b07fff608" class="newsletter newsletter-dark-border newsletter-inline"></pulumi-hubspot-form></div></div></div><div class="mt-24 pt-6 flex flex-col lg:flex-row gap-4 lg:gap-6 items-center justify-between lg:mr-32"><ul class="text-xs flex flex-wrap gap-x-4 gap-y-2 justify-center lg:justify-start items-center"><li><a class="text-white opacity-70 hover:opacity-100 hover:underline cursor-pointer" data-track="footer-legal-privacy-preferences" onclick=window.consentManager&&window.consentManager.openConsentManager()>Your Privacy Preferences</a></li><li><a class="text-white opacity-70 hover:opacity-100 hover:underline" data-track="footer-legal-trademark-usage" href="/trademark/">Trademark Usage</a></li><li><a class="text-white opacity-70 hover:opacity-100 hover:underline" data-track="footer-legal-acceptable-use-policy" href="/acceptable-use/">Acceptable Use Policy</a></li><li><a class="text-white opacity-70 hover:opacity-100 hover:underline" data-track="footer-legal-terms-conditions" href="/terms-and-conditions/">Terms & Conditions</a></li><li><a class="text-white opacity-70 hover:opacity-100 hover:underline" data-track="footer-legal-privacy-policy" href="/privacy/">Privacy Policy</a></li><li><a class="text-white opacity-70 hover:opacity-100 hover:underline" data-track="footer-legal-professional-services-agreement" href="/professional-services-agreement/">Professional Services Agreement</a></li><li><span class="text-xs text-gray-500">&copy; 2026 Pulumi Corp.</span></li></ul><a class="inline-flex items-center gap-1.5 px-2 py-0.5 min-h-[24px] rounded-lg bg-service-black border border-gray-800 text-white text-sm leading-5 whitespace-nowrap hover:border-gray-500 hover:no-underline" href="https://pulumi.statuspage.io/" target="_blank" rel="noopener" data-statuspage data-track="footer-statuspage" aria-label="Pulumi system status"><span class="inline-block w-2 h-2 rounded-full shrink-0" data-statuspage-dot aria-hidden="true"></span>
<span data-statuspage-label>All Systems Operational</span></a></div></footer><div id="segment-consent-manager"></div></body></html>