Solution focus – Containerization
First off, here’s our expert
LSD loves containers, which is why it forms the basis of many of our open source solutions. We do feel that we could explain it a little better to educate and inspire some critical thinking about your infrastructure. For that reason, we’ve put together this piece with the help of our resident container expert – Andrew ‘Mac’ McIver.
Mac got into the Linux world when he was working for a retail chain that had to choose between renewing the licenses of their point-of-sale operating system or going open source with Linux. They went for the cost-effective solution which had Mac supporting the Linux system, until he eventually became part of the LSD team and now works on some of the most innovative container projects in the industry (in between he also had stints working as a Linux admin at a hosting company and at a couple of other businesses).
Let’s have a look at containers and their components:
Containers are very simple to understand – it isn’t a new concept and they’ve been around for decades where they can even be found in mainframe computers. Essentially, a container is a Linux process running isolated from other processes. Today it is used to package up everything that a process or service needs to run, like libraries and runtime environments, into one standalone container. The reason a container is isolated is so that the process can run, change, be updated or removed without influencing or being influenced by another process.
What do containers enable?
A major driver of a container-based platform is to enable rapid application development and deployment through having every process or runtime element of the application wrapped in lightweight, isolated containers. Gone are processes hidden underneath layers of cumbersome applications and other processes that obscure the full view of your infrastructure, because you’ll now know exactly which processes are running inside of them. The quicker you can get services deployed, the quicker your business or your customers can use it.
Containers also help to shrink your physical infrastructure footprint, as these processes can run anywhere, from on-premises to every major cloud platform provider on the market. Instead of having a database server or a server dedicated to one service, you’re able to wrap everything you need to run those services for your application in containers.
Who would benefit from containers?
Quite literally any organization that wants to develop and deploy applications rapidly. Containers do not deliver that kind of benefit for teams with a slow release cadence but can still be used to simplify development. Other organizations use it for application resilience, so that when something goes wrong with a component in a container, it can be killed and restarted without any service interruption. Then there are teams that use it to reduce the size of their infrastructure footprint (mentioned above), and who want to modernize their existing applications. Developers have used containers to break down legacy applications into services and processes, by wrapping them up in containers and have it available on a modern development platform.
Where do you go from here with containers?
The next move is to manage multiple containers with an orchestration tool like Kubernetes. Kubernetes is an open source project based on how Google manages and orchestrates their services and has become the industry standard for container orchestration and scheduling tools. It wraps containers (sometimes multiple containers) into a ‘Pod’, which can be moved from any environment to another, providing portability. Kubernetes gets rid of the manual work in managing, creating and deploying containers to your Kubernetes clusters, which are hosts running Linux containers grouped together in what is called a Kubernetes cluster (and can be on-premises, in the cloud or a hybrid cloud environment). Apart from that, it also provides the ideal environment for applications that require rapid development, deployment and scaling.
The point is this
Containers (or pods of containers) are the keys to a rapid delivery application platform that not only simplifies processes and services, it provides resilience for applications and reduces your organization’s infrastructure footprint. With services moving to cloud infrastructure at a frightening pace, containers may be the most viable option for many companies to move their applications into the cloud because of their inherent portability. Your service will run the way you intended, regardless of the environment, it gets started in. In other words, containers are the way forward to modernize your applications and infrastructure to deliver the best possible services as quickly as possible to your customers.