Containerisation, a kind of virtualised computing environment, is a key part of delivering many modern applications within the digital sphere, including within aviation. But what is containerisation, and what are key options like Kubernetes and Docker? We look at the basics of these technologies in the latest of our ab initio introductory series.
To start diving into containerisation and what it means for developing the software at the heart of aviation’s digitalised future, we sat down with Stephan Rediske, development engineer AI systems at Hamburg’s ZAL Center of Applied Aeronautical Research.
“In the dynamic realm of software development and deployment, the quest for efficiency and reliability mirrors the demands of another complex industry: aviation. Just as pilots and engineers strive for streamlined processes and robust systems to ensure safe and efficient flight, software developers and IT professionals seek innovative solutions to enhance the deployment and management of applications,” Rediske tells us. “This quest has led to the emergence of containerisation technology, spearheaded by tools like Docker, which shares similarities with the principles employed in aviation. Containerisation is a technique that enables developers to encapsulate an application and its dependencies into a lightweight, portable unit called a container.”
Containers are essentially independent computing environments that run applications separately to others running at the same time. Beyond old-school deployment, at the technology level they’re perhaps most often contrasted with virtual machines, which can be comparatively inefficient.
“Unlike virtual machines, which necessitate a complete operating system instance, containers share the host system’s kernel and isolate the application’s runtime environment, resulting in significant efficiency gains,” Rediske says. “Just as each flight requires a specific set of resources, containers include everything needed to run the application independently of the deployment environment, from libraries to configuration files, fostering consistency and reliability similar to aviation standards.”
As a fundamental change to the technology stack underpinning application deployment, they come with several key advantages.
“Firstly, containers promote consistency and reproducibility by encapsulating applications and their dependencies, reducing the notorious ‘it works on my machine’ dilemma,” Rediske explains. “Secondly, they facilitate rapid deployment and scaling, enabling organisations to respond swiftly to fluctuating workloads and market demands. Additionally, containers promote resource efficiency by maximising hardware utilisation and minimising overhead, leading to cost savings and improved performance.”
They also reduce hardware requirements and constraints as a result, and allow deployment across different kinds of computing environments.
To deploy containerisation, most companies turn to container management platforms including Kubernetes and Docker, both of which are open-source services, but which have key strengths.
“Docker is a leading platform for building, shipping, and running containers. It provides developers with a comprehensive toolkit for creating and managing containers effortlessly, along with robust features for versioning, networking, and orchestration,” Rediske says. “Docker’s intuitive interface and extensive library of pre-configured images have democratised containerisation, making it accessible to developers across various industries and skill levels.”
Kubernetes, by contrast, is a level up in the chain, and focusses on cluster management across multiple systems. To perhaps oversimplify, if each Docker container is a specific instrument in an orchestra, Kubernetes would be the conductor. Docker does have scheduler options including its own Docker Swarm, which is easier to implement than Kubernetes but less powerful in terms of features, automation and customisation. Simpler apps might lean towards a full-Docker solution, while more complicated deployments might focus more towards Kubernetes to manage their containers.
Within aviation, ZAL’s Rediske concludes, “Docker and containerisation represent a paradigm shift in software deployment, empowering developers to build, ship, and run applications seamlessly across diverse environments.”
Author: John Walton
Published: 31st October 2024