It’s no secret that Docker and containers have been threatening to change the world for a while now. And they already have for some of us. But you know what… there’s always been something missing, something preventing it from taking off big style. Like a missing ingredient or something. Well it’s missing no more!
WARNING: I’m gonna say this right up front…. this is probably gonna end up being a bit of a Docker love fest. If you’re not game for that, feel free to head off somewhere else. I won’t cry. The problem is… this stuff is so game changing on the technical front that it’s actually pretty hard not to get carried away.
What was missing?
In a word…. orchestration.
Docker’s pretty much always been cool. And I mean that in game changing technology way. A way that can bring immense value to a business in things like; time to market, stability, agility, and resource utilization. Just to name a few.
But at the same time… containers have always been hard to manage at scale.
So in the past we’ve had to grab external tools like Docker Swarm, Kubernetes, or may be Mesosphere DCOS and layer them on top of containers in order to be able to manage this stuff at scale. And while that was fine, it really wasn’t.
And the reason it wasn’t fine was complexity. Every one of these tools brought additional complexity. Especially if you wanted to do things securely. As if security was an “option” anymore!
Anyway…… the way I see it there were three main problems:
1. Deploying and managing the infrastructure stuff (Docker engines) at scale
2. Deploying and managing the application stuff (containers) at scale
3. Doing it all securely
Enter Swarm Mode…
Tackling point number one….. Docker 1.12 introduces an entirely new mode of operation called Swarm Mode. This is where Docker engines automagically join together and work as a team at scale. This team is called a swarm.
But check this out… every swarm is secure by default! Seriously.
Oh and it’s embarrassingly simple to build and manage! It’s only two commands to configure a brand new swarm that’s fully secured with TLS and key rotation! Something that in the past was painfully hard, took a stupid amount of time, money, and effort. Believe me, I’ve done it and it was never pretty!
Well Swarm Mode does away with that with two blindly simple commands!
Another massive thing about swarm mode is the introduction of services.
So before services came along we deployed individual containers. If we had an app comprising 5 components we’d have a whole boat load of work to deploy them and manage them. Scaling was challenging and performing updates was more fun than it should’ve been.
Well all of that goes away with services.
With services we take that same app with 5 components, and define each component as a Docker Service. And it’s all declarative. This means we can tell Docker things like “hey make sure we’ve always got 5 containers backing my web front-end service” and Docker will go all out to make sure there’s always 5 containers backing your web front-end. Even when things fail. I’ll have some of that for a dollar!
But that’s not the end of it with services. Get a spike in demand, or predict a spike in demand? Well it’s a single simple command to instantly scale your service!
Updates are a doddle too. Wanna change the version of an image your service is using…? Walk – in – the – park! Another simple command and your service is updated to the new version.
But the same single command can make the update a rolling update. For example, take a service with 200 containers and update 20 containers at a time, and wait 15 minutes in between each batch of 20.
Seriously…. this stuff is so easy even I can do it!
I honestly fail to see how this is gonna be anything less than game changing. It’s just kicked aside the biggest technical hurdle to mainstream adoption of Docker at scale! It’s secure, it’s scalable, and it’s simple. Who doesn’t want that?!?!?!
Is it a kick where it hurts for the ecosystem? Hmmmm… kinda sorta. But let me explain….
I see this as a kick up the backside for the ecosystem, not a kick to the front!
What’s the difference? Well a kick up the backside is more of a nudge for the ecosystem to up its game. There’s shed loads of talent and great products in the ecosystem. They just need to continue to get better.
And it’s not like the ecosystem wouldn’t have been expecting something like this from Docker, Inc. After all, as much as Docker want to develop an ecosystem of partners and the likes… they also want to continue to change the world themselves, not to mention turn a profit.
So in my opinion this is a kick to the backside for the ecosystem – albeit a firm one. But certainly not an all out sickening kick to the front :-S
Wanna actually see what this all looks like and see how to do it yourself?
Sure… Pluralsight’s a subscription-based service. But you know what… they’ve ALWAYS got free trial periods if you’re not sure if wanna part with your hard earned cash. Go check it out, it’s my best course yet, on a technology that promises to be huge for your future career!
Thoughts and comments welcome.