Containerization Triggers Concerns over Software Compatibility

essidsolutions

In today’s computing environment, newly-developed software might need to run not only on the developer’s machine, but on other computers with different supporting software or on a virtual machine in the cloud. These new options have generated the need to ensure that software can and does run, regardless of the computing, networking or security environment in which it operates.

The solution is known as ‘containerization’: A containerized application will share the operating system of a computer with other programs, functions and possibly even other containers, but all supporting software is packaged within its own container.

“Put simply, a container consists of an entire runtime environment: an application, plus all its dependencies, libraries and other binaries, and configuration files needed to run it, bundled into one package,” Paul RubensOpens a new window writes. “By containerizing the application platform and its dependencies, differences in OS distributions and underlying infrastructure are abstracted away.”

Sleek Containerization Boasts Benefits

This new tech setting allows an application to be isolated and transported with its own operating environment to a different location, providing an option to full machine virtualization, while simultaneously allowing the application to run on any suitable computer. In traditional virtualization technology, the entire operating system is dedicated to the virtualized program, requiring much more storage and computing space.

Containerization is faster by eliminating the need to boot up the virtual operating system. It also allows more complex applications to be broken up into separate containers, easing changes to a specific containerized application, such as the database.

The development of the open-source Docker in 2013 has made containerization feasible and popular. Docker enables users to package their online software into what is essentially a shipping container, allowing the software to be run on several machines or on cloud services, ending the space and data-usage limitations that has stifled software usage in the past.

‘Docker is one step towards a world where we can treat all cloud services like one giant computer,” said Cade MetzOpens a new window , noting that Amazon and Rackspace have embraced Docker after recognizing its potential for greater use of their cloud services. It also solves the problem that new software typically faces in functioning properly with different support software.

“You’re going to test using Python 2.7, and then it’s going to run on Python 3 in production and something weird will happen,” said Docker creator Solomon HykesOpens a new window . “Or you’ll rely on the behavior of a certain version of an SSL library and another one will be installed. You’ll run your tests on Debian and production is on Red Hat and all sort of weird things happen.”

Container Competitiors Emerging

Docker was the first company to develop a container system option, but others have since come up with their own solutions: Microsoft is working on two versions of the technology, Drawbridge and Spoons and CoreOS has a containerization technology called Rocket.

Vamsi Chemitiganti, the chief strategist for Platform9, has a number of suggestions for containerization best practices – identifying the kind of software application suitable for containerization is the first step. The selected application for containerization should be sufficiently large or web-scale; it should be able to retrieve all necessary application data to execute its service from somewhere else (known as statelessness); and its design should emphasize a superior user experience, with a high frequency of releases and updates.

The open-source container-orchestration system developed by Google, Kubernetes, is highly recommended by Chemitiganti, who insists that it is still a non-replaceable “standard for container orchestration.”

“Every cloud provider that offers its own Kubernetes distribution or some other orchestration system with custom integration points and features that are unique to its ecosystem is bound to get you stuck in the long run,” Chemitiganti says. “Use the plain-vanilla, pure Kubernetes to stay cloud-neutral and to ensure that you can easily benefit from the great developments and enhancements produced by this vibrant, mature community.”

Staying current on Kubernetes releases and working out how authentication, monitoring, security and other issues will operate on the new system is also important. Many containerizations fail because companies do not consider network, storage and security issues and how they will be integrated into Kubernetes.