Docker: a first step
Tim Norris - Developer
Docker is a way of virtualising a self-contained development environment for our code.
At this point, you would be forgiven for thinking, "Waaaat?" or "Why?". But hold on, it's actually quite a big deal for us devs. For example, imagine a magic room…
Imagine a room that you can completely destroy and rebuild, exactly as it was before, verbatim, in minutes (or even seconds). Not only does this have tremendous implications on the speed at which you can create these rooms but it also provides us with rooms you could test with! E.g. you tried painting the walls a fabulous, bright orange. You loved it. However, a few days later, you found out it gives you migraines. Instead of a paint job of X hours to put it back the way it was, you're looking at a trivial X minutes instead.
Now imagine a room you can pick up from one building and duplicate to another seamlessly, or maybe we don't like the area so much. An area with much nicer neighbours.
Imagine a safe room. One that is self-contained and only has access to other similar rooms that you allow it access to. One that's not accessible to the outside world. A nuclear bomb could go off in these rooms, yet the outside world is unaffected.
Imagine a consistent room. It doesn't matter if a room is placed in the Sahara desert or Antartica, the temperature inside will stay the same.
Imagine having a room where you can pick and choose the best idea from other people's rooms. It's like Grand Designs, but instead of an entire house, you can pick specific rooms or even objects inside those rooms. No effort or creativity required.
So, In a nutshell, this is what Docker does for us…
- Code environment flexibility, testability and speed.
- Portability. Moving from one server to another, is a much simpler process.
- Safety in containerisation. We only expose the minimum access to code.
- Consistency. Previously, code could potentially behave differently in different servers but now the environment is the same, so there are no behavioural differences.
- Community of work and ideas. Docker is well established. There are just under 400k containers we can choose from at time of writing (https://medium.com/microscaling-systems/how-many-public-images-are-there-on-docker-hub-bcdd2f7d6100). So we can take the good stuff, tweak it to our heart's content, with little effort.
It's still something we're just getting our teeth into here, but even though it's in the early stages of use, it's something that has helped us significantly and helps us future-proof ourselves and our clients.