Cable news came as the newest iteration of daily papers. Texting came as the next generation of mail. GPS came as version 2.0 of road atlases.
Today’s digital world is fast-moving like never before. Under the hood of modern turbo-speed innovation is a widely shared mindset — one of continuous integration and continuous delivery (CI/CD).
How CI/CD works is the result of countless technological gears, one turning the next. You may have heard of some of the overarching virtual technology – like containers, Linux and Kubernetes – but it’s more than understandable given the pace of change not to know what these terms are, or how they work. Still, learning the basics can help foster a more agile environment that embraces the CI/CD doctrine, which advances the idea applications should be regularly checked, improved and upgraded.
The following points are takeaways from a recent GovLoop online training that explained the machinery behind CI/CD. On the training, John Walter, Solutions Architect at Red Hat, defined the terms and explained the connections of a modern software factory.
Working in unison, these technologies are how apps are made.
Virtual machines (VMs) used to be the standard for IT operations, by providing an operating system and supporting dependencies to launch applications. With VMs, everything is housed on a single, isolated infrastructure.
But while VMs create the space to operate applications in a package, they come with a lot of baggage.
VMs are isolated from other machines, but the applications within a VM are still intertwined, meaning a bug on one could crash the rest.
Moreover, VMs all have their own operating systems and languages. Applications from different VMs can’t easily interact, and neither can development or operations teams responsible for their functionality.
Containers are an upgrade over virtual machines, though the two aren’t always in direct competition. Instead of running separate VMs in isolated environments, open source brings a shared operating system to every container – and thus, every application. An application’s processes are all contained on a shared kernel.
Each container is a self-sufficient kit carrying an application and all its tools and dependencies. Containers are separate from one another, meaning that if one application goes down, it won’t impact another one because they don’t rely on the same support. All their services are individualized.
An easy way to think of containers vs. VMs is that containers isolate the process, while VMs isolate the hardware. In flexible, modern IT environments that stretch from small data centers to massive public clouds, the same container can pass through them all. Containers can even run on top of VMs.
“Containers can provide an agility that really just isn’t feasible with VMs,” Walter said.
The shared kernel that containers run on is Linux, an open source operating system available anywhere.
“Linux is containers. Containers are Linux,” Walter said.
The two, containers and Linux, go hand in hand. Containers operate on a shared Linux host, and Linux is used to build every container.
Benefits of this shared system are portability and agility. Containers can be spun up in seconds across multiple environments, as long as all are running on a consistent, enterprise Linux version.
Problems with containers come with scale. Organizations aren’t dealing with a handful of containers across an enterprise. Their job is to make thousands run like a well-oiled machine.
Kubernetes is an open source orchestration platform where containers can be managed on an enterprise level. Organizations can bring in automation to link multiple processes together and create a coherent, connected experience.
Technologies like Red Hat’s OpenShift provide the support to run Kubernetes smoothly. Organizations can use this to enable easier automations and manage across environments seamlessly.
“Everyone’s talking about digital transformation and really what they’re talking about is: ‘How do we become a more efficient software company?’” Walter said.
Photo by ThisisEngineering RAEng on Unsplash
This online training was brought to you by: