Smooth is Fast when it comes to Deployments
“Are you deployments predictable?”
The answer to the above really, really depends on the context. After all if all you want to do is spin the latest build up on AWS, then nothing could be simpler right?
The answer to the above really, really depends on the context. After all if all you want to do is spin the latest build up on AWS, then nothing could be simpler right?
Unless, of course, by “predictable” you mean “It takes Alice 7 minutes to spin up the build”, and Alice is on vacation. Or your pipeline is automated once you log in, and your laptop crashed. Or hey, your laptop is just fine, but you ran up against an AWS limit (“too many EC2 instances”).
And that presupposes that the build actually exists. After all, where did that come from? And is it a unitary thing, or does “build” involve some kind of complex orchestration, involving getting artifacts from here, doing a docker thing there, and so forth. Is that process predictable? Or are you also at the vagaries of Alice, laptops, DockerHub, and whatnot?
The point behind all this is that you need to know that the time that it takes something to get through the deployment pipeline is consistent, repeatable, and auditable. That it is not a bottle-neck — and if it is, you know exactly how big it is.
And the reason you need to know this is for when a Bad Thing happens. You’ve exposed customer data, and it needs to be patched now. Or a bug took everything down, and you need to fix it stat. There are any number of Bad Things that can — and will! — happen, and what you want to be able to do is focus on them, and not on uncertainties elsewhere in the system!
And the reason you need to know this is for when a Bad Thing happens. You’ve exposed customer data, and it needs to be patched now. Or a bug took everything down, and you need to fix it stat. There are any number of Bad Things that can — and will! — happen, and what you want to be able to do is focus on them, and not on uncertainties elsewhere in the system!
So yeah, get your deployments predictable — and this is key — deploy constantly! The more you exercise your deployments, the more likely it is that you’ll have shaken the bugs out of the system, and the more ready you will be for that crisis. You’ll find out about the chaos when Alice goes on vacation, you’ll be bedeviled by credentials when you break your laptop, and, oh, so much more.
(And yeah, this is also partly because the state of the art on QA for pipelines is *seriously* horked)
(And yeah, this is also partly because the state of the art on QA for pipelines is *seriously* horked)
Mind you, this won’t be easy up front, but the more you do it, the easier it gets. Always remember, Smooth is Fast when it comes to Deployments!

Comments