Containerization refers to the creation of standardized software packages; often, a container will include an application and all of the software components needed to run it. In the automotive industry, containerization is an essential tool to make very small and precise updates to software — which allows those updates to happen more quickly, more efficiently and more often. In addition, containerization allows developers to make the most of legacy software by packaging legacy code with specific abstraction layers to communicate with the underlying operating system and platform.
One key benefit of containerization is its standardization. Imagine how difficult and inefficient it would be to load a cargo vessel with shipping boxes of varying shapes and sizes. By placing all of the goods into standard containers, shipping companies can load and unload vessels much more efficiently.
Similarly, in making the shift toward software-defined vehicles, it is extremely useful to have a standardized format for software containers that enables the management of a container to be decoupled from the operating system running it. The technology allows developers to divide software into many small pieces — called microservices — each of which can be updated independently.
Containerization also facilitates the use of a centralized computing architecture by making it much easier to move containers from other nodes to a centralized platform. As automotive companies up-integrate functions from dozens of electronic control units into centralized domain controllers, containers allow developers to migrate those functions’ legacy code. In this way, containerization is critical to enabling a smooth transition toward advanced architectures such as Aptiv’s Smart Vehicle Architecture™.
Enhancing over-the-air updates
A second key benefit of containerization is how it allows function updates. Because each container is isolated from the others, automotive companies can send an over-the-air update to a single function in its own container. This is more efficient than updating an entire system, and it provides for safer updates. Some software programs can even be placed in containers within other containers, to allow related applications to share libraries or other digital resources while maintaining separation.
Containerization also removes much of the complexity around installing and configuring software, making it ideal for automotive environments where installation has to happen without user intervention. Like the shipping instructions that are attached to every container on a vessel, a list of requirements is attached to the software containers to tell the system what they need.
Cloud computing and container orchestration
Containerization is a pillar of cloud-native computing. In traditional virtualization, multiple virtual machines — each with its own operating system — can run on the hardware of a single physical server. In containerization, multiple containers — each with its own application — can share an operating system and supporting software within a virtual machine or a physical server. Because containers do not have to include a full operating system, they are more streamlined than virtual machines.
As developers add more applications and containers, the hardware resources must be managed effectively. A container orchestration program fills that role, load-balancing CPU and memory usage to ensure that the needs of all applications can be met. It automates the deployment, scaling and management of containerized applications.
Functional safety demands unique expertise
As with all things in the mobility industry, safety is paramount. Manufacturers must ensure that their containers do not invalidate existing safety functions. Everything from the boot time of backup cameras to the pinch-protection systems on electric windows needs to be accounted for as legacy software migrates to containers, keeping in line with the ISO 26262 industry standard for the functional safety of electrical and electronic systems in production vehicles.
Engineers have to address a variety of common and fringe scenarios in real-world settings to safely implement containerization on vehicles. As cloud companies make significant investments in automotive software development, OEMs need partners with expertise specific to the automotive industry to continue to meet safety requirements.