App containers have helped transform the way companies run their software, but despite being around for almost a decade, for many people, the term app container remains one of those obscure pieces of IT jargon. Here, we aim to give you a clear understanding of what app containers are, what they’re used for and whether they might be a solution that’s useful for your business.
What are app containers?
An app container is like any other form of container, it’s what you put something in to keep it separate from what’s around it and to move it from place to place. In IT, what you put in a container is software. The idea is that putting an application in a container prevents it from conflicting with other applications or not working properly when move to a different environment.
How are containers useful?
One of the biggest benefits of a container is that they enable the software within it to work independently from the environment in which they are located and this prevents issues from arriving when they are moved from one environment to another.
A typical example is an app developed using one version of an operating system (OS) and then moved to an environment with a different version. Without a container, the app might work flawlessly in development but when moved might hit problems that prevent it from working as expected. It’s not just operating systems that can have this effect, so too can programming languages, PHP versions, SSL libraries, network structure and various other differences.
A container prevents this from happening by placing the software in a self-contained environment of its own where it can be moved without issue. In other words, a container is a complete runtime environment for the software and contains all the other things it is dependent on to run. In a sense, it works like a submarine or a spacecraft, supporting the life inside regardless of what alien environments they travel to.
Additional benefits of containers
Virtualisation can be used as an alternative to containers as applications and their operating systems running on virtual machines can also be easily moved across different hardware. The key difference is that containerised applications usually require smaller storage, enabling a company to host more containers than virtual machines on a server. This can help reduce the costs of running applications in a cloud environment. Another advantage containers have over virtual machines is that they can be booted almost instantaneously, whereas a virtual machine takes several minutes.
From a development and management point of view, another benefit is that applications can be separated into their individual parts (microservices) and each of these placed in their own container, for example, the front-end in one container and the database in another. This approach is useful as it enables each microservice to be modified independently without the developer having to rewrite the entire software. It also means companies can save money as they don’t need to run the full application at all times. By providing instant availability, containers can be used to turn different microservices on and off as and when the application needs them.
A well-established technology
After almost a decade, containers have become an established part of the IT landscape and some prominent organisations are helping to develop them. The Open Container Project (OCP), run by the Linux Foundation, is the key initiative in the field, with the aim of standardising container formats and runtime software across different platforms so that they can benefit everyone. In addition, this open-source approach has led to improvements in container security and management systems and the development of freely available container management systems, such as the well-known Kubernetes that was kickstarted by Google. The OCP is supported by industry giants like Google, Microsoft, Amazon, IBM, VMware and many others.
Would app containers be useful for my company?
The fact that containerised applications tend to use less storage and because individual microservices can be turned on and off as needed so they use fewer resources means their adoption could help companies reduce the cost of their cloud services especially because cloud services are charged for on a pay per use basis. Whether this could be a significant saving depends, of course, on the size of the overall application and the extent of the resources it uses.
Another value is that containers help prevent vendor lock-in. In the past, companies have felt tied to a vendor because they have been concerned that moving their application to a new provider with a different environment might cause their applications to falter. Containers prevent this from happening. They also make it far less problematic to move applications across environments for any other reason and make it easier to modify microservices in isolation from the rest of the application.
Today, many companies use containers to house their applications in the cloud and, with most platforms being free to use and their formats standardised, they look certain to remain part of the cloud landscape for the foreseeable future. Hopefully, from reading this article you’ll now be aware of what app containers are, what they are used for and how they could benefit your business.