Technology explained: Containers
What do eggs, milk, and toilet paper have in common? They're not just some of the currently most sought after products at the supermarket! Read on to find out more from our Chief Architecture owner at Lido Flight 4D - Christoph Krüger.
What would our lives look like without containers and standard interfaces?
Imagine you would have to bring your own milk carton to the shop. Or think about how to carry eggs without the box. Any liquid or fragile good would have a severe logistical problem without standardized containers like bottles, egg boxes or beer crates.
And what about standard interfaces? They are everywhere around us. You don‘t have to ask yourself each time in which direction to unscrew a bottle. If you have a driving license, you can safely operate nearly any car in the world because of the standard driver interface (steering wheel, pedals). Even toilet paper comes in standard sizes to fit into our bathrooms.
Standard containers and interfaces are the base for efficient logistics and handling processes and these lower the production cost of goods. That‘s why this idea is so successful.
Unit Load Devices (ULD) for air transportation have existed since the early 1960s, but it took until 2013 for the IT world to finally benefit from these concepts. That year, the Docker container technology became widely popular. It addressed a need that came with virtual machines and cloud computing. Today an application must be scalable, resilient, secure and mobile. It has to run on different sizes and types of hardware. On top of that, it has to be quickly changeable to contain new features or enhance existing ones. This cannot be handled manually any more. We need standard interfaces and containers for software in order to handle the operation at large. The Docker container gives us a standard packaging format and standard operational interfaces for any kind of software that is running within.
The architecture designed during the re-engineering of the Lido Flight Planning System massively benefits from container technology. Dividing the software into small independent units reduces the dependencies between the individual parts. This leads to more stability of the whole system. If one container has a problem, it can be treated separately from the rest. It can be moved, replaced, upgraded and even quarantined if necessary.
The standardization of interfaces between containers makes software development much easier. A team of developers can now improve the interiors of a container to any extent as long as they don‘t change the interface. The container is hiding all the complexity of the contents. With containers updating a software component, it becomes as easy as changing a battery in a toy.
Our customers are also affected by this. Since Lido Flight 4D version 6.2, we have been making much better use of the available hardware resources by running several optimizer services in parallel in different containers. Though the user interface has stayed roughly the same. License customers that run the software on premise will notice that the prerequisites for the container-based part of Lido Flight 4D are significantly less than for the part that is still based on a standard Linux machine.
There is still a lot of work to do until we can finally put the last part of Lido into a container. Operating many of them bears its own challenges, but so far, the experience shows that the benefits of containers can be transported from the physical reality into the virtual world of software. Starting a container can be as easy as opening a bottle of milk.