Logo

dev-resources.site

for different kinds of informations.

Don't Couple Your Deployments

Published at
3/6/2024
Categories
devops
deploy
kubernetes
Author
cbui
Categories
3 categories in total
devops
open
deploy
open
kubernetes
open
Author
4 person written this
cbui
open
Don't Couple Your Deployments

You’ve made changes to your service and go to deploy it. Among your changes, you added a new SQS queue.

Your deployment pipeline applies the IaC changes to get you that new queue. Then, it updates your code.

Later, there’s a problem with your code, so you roll back. However, rolling back the commit will also revert your SQS queue and cause your IaC to destroy it, which you don’t want.

This is a contrived example, but I’ve seen variations of it so many times.

Another common example is Kubernetes deployments using kustomize. Typically, a directory with manifests in a repository is applied using kustomize in the pipeline.

Developers add configuration in the form of environment variables to the Deployment. A new service version is deployed and needs to be rolled back.

You want to revert the commit, but the environment variables must stay as the new version so you can’t. You can’t simply revert everything in all cases. For example, say the application’s database host changed because of an outside migration, and the old host has been torn down.

Just like with application code, don’t couple your deployments too tightly. Treat configuration as a separate deployment from application code.


Join the 80/20 DevOps Newsletter

If you're an engineering leader or developer, you should subscribe to my 80/20 DevOps Newsletter. Give me 1 minute of your day, and I'll teach you essential DevOps skills. I cover topics like Kubernetes, AWS, Infrastructure as Code, and more.

deploy Article's
30 articles in total
Favicon
How to Deploy a Static Website to AWS S3 with Razorops CI/CD
Favicon
Pipeline CD en Jenkins para terraform AWS EKS segunda parte (plugin AWS Credentials)
Favicon
Kamal 2 Quick Start - the missing tutorial
Favicon
Evento de Mobile, Frontend, Backend, Banco de Dados e Deploy Gratuito
Favicon
Deploy a Static Astro Site on Railway
Favicon
Deploy a PHP site to Railway
Favicon
Added advanced debugging features to my machine learning library like pytorch.
Favicon
When Companies Adopt Feature Flags
Favicon
Why should you have a Staging environment?
Favicon
How to Deploy Flutter Apps to the Google Play Store and App Store
Favicon
Deploy MongoDB Replica Set on K8s
Favicon
Deploy Go Application using Docker Compose Replicas and Nginx
Favicon
Despliegue de aplicación de Django con Github Actions para un servidor propio
Favicon
Common and Useful Deployment Patterns
Favicon
From Frustration to Fix: Conquering Vercel Errors Like a Pro
Favicon
Efficient Data Management with Prisma, Fly.io, and LiteFS Configuration
Favicon
Deploying Forem on Render.com PromptZone.com
Favicon
My Docker stack to deploy a Django + Celery web app
Favicon
Firebase Hosting Setup Complete Issue
Favicon
Deploy an Azure Functions app from a monorepo with a GitHub Action for Node.js
Favicon
DevOps, como começar? ...e por que?
Favicon
Kotlin and Azure Functions - Automating the deployment
Favicon
Private Deployment Gantt chart Project management tools
Favicon
Laravel Deployer Free package for laravel and nodejs apps Deployment
Favicon
Don't Couple Your Deployments
Favicon
Six niche tips for shipping Flutter MacOS builds
Favicon
Deploying a Static Site (feat.Vite, gh-pages)
Favicon
Deploy Express App to Render with MySQL
Favicon
Deploying on Netlify via GitHub Actions: A Seamless Guide
Favicon
AWS CodeDeploy Best Practices for Reliable and Efficient Deployments

Featured ones: