Docker is making big waves in the IT community and for a good reason. The ability to fire up multiple applications on a host and share resources effectively, while maintaining their own configuration is a big step forward.
It brings me back to the days of my Atari ST and Commodore Amiga, in those days the executable (mostly) contained everything the program needed, if I wanted that program elsewhere I just moved it. Unlike today where we have libs, package dependencies, dlls, registries etc etc, programs have lots of dependencies, so many in fact it's hard to work out how anything works on anything other than the developers machine.
With Docker though all of the pain of configuration goes to the people who knows what the apps need more than anyone else, the project team. Instead of producing lengthy documentation it can now simply be a case of creating a docker container or dockerfile. The person then deploying the application elsewhere has none of the headaches of configuration, it's all (mostly) contained within the container, I say mostly because we are still free to configure it, for example if we want it to use a certain port or talk to another container we can.
So what does this mean for testers?
1> Speed of deployment, testers with minimal knowledge can fire up a self contained environment on their machine, or in the cloud and be testing away within no time.
2> We can be more confident that we are testing a more realistic representation of production, less time wasted when we find out we are on a different version of an OS, Database etc.
3> More environments, if they are quicker to spin up and use less resources we can have more of them, which is always great for places where multiple changes need testing simultaneously.
Good news right? yes mostly....
1> It does add extra work configuring the container in the first place, but this should't be more onerous than the current build scripts in environments.
2> Security testing just got more complex? I may be wrong here but the multi-tennancy stuff sharing kernels etc has to raise securty implications right?
3> Performance testing just got more complex right? more apps running on the same machine, lots of micro services running at the same time with different peaks. OK but it shouldn't be any harder than performance testing VMs and with a more stable configuration that could be a big time saver for performance testers. Also with a more modular approach it could help move testing left in the life-cycle.
I hope you've enjoyed this rather simple of view of Docker for testers. I've written this while on holiday and much drinking has been done. So I'll probably be correcting quite a lot of this on my return 🙂