What Is CI/CD?
As software takes vehicles to new levels of safety, comfort and convenience, developers now need software development environments that are much more modern and capable than legacy systems. They need environments that enable frequent software updates and deployment of those updates to vehicles in the field. That approach is called continuous integration (CI) and continuous deployment (CD), or CI/CD.
In the past, software development followed the rigid, slow “waterfall” method and used highly fragmented toolchains. Development would go through discrete phases, with each phase being completed before the next began. Many of the development processes were manual, as were handoffs from one part of the toolchain to the next. It would take six to eight months for a new version of the software to emerge in that approach.
Today, software is becoming more abstracted from hardware in the automotive world, and developers have an opportunity to take advantage of that architectural shift. They can use modern agile and DevOps methods to update the software on its own schedule, much more quickly and free from ties to hardware changes or other physical updates. This approach provides unprecedented levels of speed, scalability, quality and security.
In CI, the work of building software is automated, and all of the steps of software production are included in a “CI chain,” as the output of one part becomes the input to the next. CD is the automated deployment of new versions of software in the field. CI/CD — as well as continuous testing (CT) — is now possible in automotive, but testing new, advanced applications presents a unique problem in the automotive industry, because tests need to be conducted on a physical vehicle or in a complex simulation on a test bench. For example, imagine the complexity of testing software that analyzes input from multiple radars and cameras in order to autonomously execute a maneuver like passing a slower car on the highway or navigating a complex urban environment with vehicles, pedestrians and other obstacles.
The ideal approach eliminates bottlenecks in the development and testing processes through a cloud-based, centralized platform that enables developers to execute any tests on related test benches located in any test center in the world. The tests can put software-in-the-loop (SIL), hardware-in-the-loop (HIL) or even the vehicle-in-the-loop (VIL) for ever more realistic testing. This approach allows for the scale required to tackle today’s toughest challenges, using global resources.
Using cloud-based CI means that new code created by development teams is automatically integrated into the larger code base, and cloud-based CD — using over-the-air (OTA) updates — ensures that successfully built code automatically deploys into testing or production environments wherever they are. Done right, the cloud approach can also build in security, including disaster recovery, throughout the process. And centralized infrastructure hosted in the cloud can allow for a single management view into all of those highly secure and resilient CI chains.
For more on Aptiv’s innovative approach to automotive software development, read our white paper.