In this week’s podcast, @mapgirll and I talk about what containerization is, the appeal of it, and how people are using it to their advantage.
What is containerization?
A container is a bundle of everything an application needs to run. More than a zip file and less than a virtual machine, it’s like a method of deploying applications. You can allocate resources to a container and restrict it from accessing anything beyond what you allocate.
There are lots of solutions for containerization, but probably the most widely adopted one, and the one we use at Safe Software, is Docker. The production-ready version of Docker runs on Linux, but for development and testing you can also get Docker for Mac and Windows. (The Mac and Windows versions use a lightweight virtual machine to host the Linux version.)
What’s the appeal?
Containers are isolated, self-contained, and easy to create and destroy. System administrators and anyone who needs to deploy a bunch of applications, databases, etc, are able to have fewer systems, because you just isolate the applications in separate containers. Developers can easily package an application with everything it needs and ship it all together, which is also great for testing (no more “but it works for me!”).
Who uses it, and how?
People use containerization on a scale both massive and small. Some people create and destroy them on the scale of millions. Others use them like virtual machines, letting containers persist for months.
At Safe Software, we use Docker both internally and as a way to deploy FME Server (making FME Server easy to set up and compatible on any platform that supports Docker). Our team uses it to facilitate QA testing, development, prototyping new technology, and more.