The world of application hosting is constantly changing. Since a couple of years a new method for application packaging, installation and running emerged, based on containers. In this blog I will explain Containerization and the advantages for businesses.
What are containers?
With containers the world of application packaging and deployment has changed, similar to the changes that happened in the logistics world. In the old days goods were loaded into ships using man power. A lot of manual labour was involved, not only because big cranes were not yet invented, but mostly because the goods came in all sizes and shapes: bulk goods without packaging, bags for grains, boxes for other goods, etc. This was all stacked together in the bulk of the ship. The invention of shipping containers with their standard size was a game changer for the logistics world. Suddenly all goods had the same shape and size, making loading and unloading much more efficient and allowing for an enormous scale up.
The use of containers allows for a similar standardisation. The idea is that an application is divided in components, each with only one function or process. For example a Wordpress application can be divided in a webserver, a PHP engine and a database server. Each of these functions will land in 1 container. Each container contains everything required to fulfil that function, so for example a Linux base image, a number of libraries and the package (such as NginX for a webserver). With this approach each function is completely isolated from the other, so many containers can run side by side on one OS instance (such as a VM), just like containers on a ship. The containers have no demands for the underlying OS (the ship), other than that a container engine is running. Nothing else needs to be installed. While containers are completely isolated from each other, it is still possible for containers to communicate, but only after explicit configuration. Containers are identical in each environment (Dev, Test, Acc, Prod), only the parameters with which they are started can differ.
The idea actually is not new, the same concept is also used in HP-UX packages and Solaris Zones. But the company Docker made this big by bringing these concepts to the Linux and Windows world, where it really took off. A whole suite of tools has emerged to make working with containers easy and robust. A tool like Kubernetes provides orchestration and management of containers, similar to the cranes loading the ship. Rancher provides a nice GUI to the developer and the application manager and is used to manage Kubernetes. Think of it as the crane driver. Tools like GitLab are closely connected to the world of containers to create a smooth CI/CD process.
Advantages of containerization
With the container approach it becomes easier to replace parts of an application (e.g. upgrades) or scale an application by running multiple instances of some containers. Also, Dev, Test and Acc are more Prod-alike, making troubleshooting easier. There are less OS instances so less hardware resources required. And it makes further automation of the release process possible, so from code commit to Go-Live (CI/CD). All of this leads to a shorter time-to-market for application changes and releases, at lower cost.
Solvinity and containers
The use of containers is not new to Solvinity, we have over three years of experience with this. Not only is our Oracle database hotel running on Solaris containers, we already delivered a number of services and projects to both internal and external clients based on Docker. But Solvinity now chooses to help more clients with these container based solutions, bundling all parts like container building, testing, registry, orchestration, vulnerability management and consultancy.
The solutions will be broadly usable, both on premise and in the public cloud. Other possibilities are a container platform (PaaS service instead of housing or managed hosting) or consultancy on DevOps, CI/CD and containers, where we collaborate with clients, partly on-site in (stretched) DevOps teams.
Containerization is the future of Solvinity. Whether it is a modern Micro Services based web application, a traditional application that is "dockerized" or LCM on Windows environments, containers will prove their value in all situations. They are the new paradigm.
Richard de Jong - Solution Architect