On Friday Deploys: Sometimes that Puppy Needs Murdering
It's the most wonderful time of the year: the pie, the eggnog, the eternal debates over whether deploy freezes cause more harm than good. š¤¶š²
āTis the season that one of my favorite blog posts gets pulled out and put in rotation, much like āWhite Christmasā on the radio station. Iām speaking, of course, of āFriday Deploy Freezes are Exactly Like Murdering Puppiesā (old link on WP).
This feels like as good a time as any to note that I am not as much of an extremist as people seem to think I am when it comes to Friday deploys, or deploy freezes in general.
(Sometimes I wonder why people think Iām such an extremist, and then I remember that I did write a post about murdering puppies. Ok, ok. Point taken.)
Take this recent thread from LinkedIn, where Michael Davis posted an endorsement of my Puppies article along with his own thoughts on holiday code freezes, followed by a number of smart, thoughtful comments on why this isnāt actually attainable for everyone. Payam Azadi talks about an āicingā and ādefrostingā period where you ease into and out of deploy freezes (never heard of this, I like it!), and a few other highly knowledgeable folks chime in with their own war stories and cautionary tales.
Itās a great thread, with lots of great points. I recommend reading it. I agree with all of them!!
If you canāt move swiftly with confidence, you need workarounds
For the record, I do not believe that everyone should get rid of deploy freezes, on Fridays or otherwise.
If you do not have the ability to move swiftly with confidence, which in practice means āyou can generally find problems in your new code before your customers doā, which generally comes down to the quality and usability of your observability tooling, and your ability to explore high cardinality dimensions in real time (which most teams do not have), then deploy freezes before a holiday or a big event, or hell, even weekends, are probably the sensible thing to do.
If you canāt do the ārightā thing, you find a workaround. This is what we do, as engineers and operators.
Deploy freezes are a hack, not a virtue
Look, you know your systems better than I do. If you say you need to freeze deploys, I believe you.
Honestly, I feel like Iāve always been fairly pragmatic about this. The one thing that does get my knickers in a twist is when people adopt a holier-than-thou posture towards their Friday deploy freezes. Like theyāre doing it because they Care About People and itās the Right Thing To Do and some sort of grand moral gesture. Dude, itās a fucking hack. Just admit it.
Itās the best you can do with the hand youāve been dealt, and thereās no shame in that! That is ALL Iām saying. Donāt pat yourself on the back, act a little sheepish, and I am so with you.
I think we can have nice things
I think thereās a lot of wisdom in saying āhey, itās the holidays, this is not the time to be rushing new shit out the door absent some specific forcing function, alright?ā
My favorite time of year to be at work (back when I worked in an office) was always the holidays. It was so quiet and peaceful, the place was empty, my calendar was clear, and I could switch gears and work on completely different things, out of the critical line of fire. I feel like I often peaked creatively during those last few weeks of the year.
I believe we can have the best of both worlds: a yearly period of peace and stability, with relatively low change rate, and we can evade the high stakes peril of locks and freezes and terrifying January recoveries.
How? Two things.
Donāt freeze deploys. Freeze merges.
To a developer, ideally, the act of merging their changes back to main and those changes being deployed to production should feel like one singular atomic action, the faster the better, the less variance the better. You merge, it goes right out. You donāt want it to go out, you better not merge.
The worst of both worlds is when you let devs keep merging diffs, checking items off their todo lists, closing out tasks, for days or weeks. All these changes build up like a snowdrift over a pile of grenades. You arenāt going to find the grenades til you plow into the snowdrift on January 5th, and then youāll find them with your face. Congrats!
If you want to freeze deploys, freeze merges. Let people work on other things. I assure you, there is plenty of other valuable work to be done.
Donāt freeze deploys unless your goal is to test deploy freezes
The second thing is a corollary. Donāt actually freeze deploys, unless your SREs and on call folks are bored and sitting around together, going āwouldnāt this be a great opportunity to test for memory leaks and other systemic issues that we donāt know about due to the frequency and regularity of our deploys?ā
If thatās you, godspeed! Park that deploy engine and sit on the hood, letās see what happens!
People always remember the outages and instability that we trigger with our actions. We tend to forget about the outages and instability we trigger with our inaction. But if youāre used to deploying every day, or many times a day: first, good for you. Second, I bet you a bottle of whiskey that somethingās gonna break if you go for two weeks without deploying.
I bet you the good shit. Top shelf. š„
This one is so easy to mitigate, too. Just run the deploy process every day or two, but donāt ship new code out.
Alright. Time for me to go fly to my sisterās house. Happy holidays everyone! May your pagers be silent and your bellies be full, and may no one in your family or friend group mention politics this year!
ššššš§”ā¤ļøš
charity
P.S. The title is hyperbole! I was frustrated! I felt like people were intentionally misrepresenting my point and my beliefs, so I leaned into it. Please remember that I grew up on a farm and we ended up eating most of our animals. Possibly I am still adjusting to civilized life. Also, I have two cats and I love them very much and have not eaten either of them yet.
A few other things Iāve written on the topic:







We call ours ācode slushiesā. Itās not frozen, but your risk and urgency bar gets higher and higher the closer to the 24th you get. Can it wait? Can you do something else that last week? Helps itās mid summer and no one wants to be paged from the beach.
Previous job even got a literal slushy machine in. That was⦠diabetic coma inducing.