Bosch develops innovative solutions that facilitate new mobility offerings.
Summary: Bosch delivers new, innovative vehicle features and enhancements faster with CI/CD and CloudBees.
Challenge: Manage and streamline the development of increasingly complex automotive software by adopting CI and CD practices to shorten time-to-market
Solution: Use the CloudBees CI to increase automation and project status visibility while improving build stability and software quality
Three-day build process reduced to less than three hours
Large scale deployment kept on track by expert support
Visibility and transparency improved with Jenkins Operations Center
Product: CloudBees CI
The growing importance of software development has been apparent for several years within the Diesel Gasoline Systems – Electronic Controls division (DGS-EC) of Bosch, the world’s leading supplier of automotive parts and systems to vehicle manufacturers and the automotive aftermarket. Reflecting on this shift, Bosch CEO Volkmar Denner has even noted, "Bosch is a software company.”
About 40,000 Bosch employees work in R&D for the company’s mobility solutions sector, and about one-third of them are software engineers. For example, Bosch’s automotive division, one of their main areas of business, provides software for the engine control of passenger vehicles. As part of an initiative to help its software engineers deliver higher quality software faster, the DGS-EC division is adopting continuous integration (CI) and continuous delivery (CD) practices with CloudBees CI.
"Every year, more functionality moves from hardware to software. In parallel, software engineers are being asked to deliver features faster and faster, while maintaining or improving quality,” says Sebastian Bosse, project lead for continuous integration within the DGS-EC division. "CloudBees CI is helping us meet these demands by reducing manual steps and duplication of effort in our build, deploy and test processes. In addition to increasing efficiency, CloudBees has also decreased frustration, and the value of that is hard to measure.”
"CloudBees expertise enabled us to quickly set up Jenkins for CI and CD and avoid the months or years it would have taken to build up the knowledge ourselves. Development is now faster, while quality and reliability have improved."Sebastian Bosse
Continuous Integration Project Lead
Improve Development Efficiency by Increasing Automation, Stability and Transparency
In Bosse’s division, a software development organization of about 4,000 engineers work on roughly 400 different projects for 100 customers. Historically, this group has been focused on implementing new features rather than maximizing the efficiency of processes and tools. The build and test process included numerous manual steps, involving custom-developed and third party tools, some of which had stability issues. Replicating problems with the tools was difficult, and the process lacked transparency. Build and test processes were implemented in silos at the team level, making it difficult for one team to know if another team was facing similar issues. These silos led to redundant work and made it a challenge for management to monitor and communicate progress.
In addressing these challenges, the division sought to increase the number of features delivered in each release while improving the predictability of the releases for embedded software to better prepare for the increase of IoT opportunities for connected cars and new cloud services. Aside from automating manual build and test tasks, this required streamlining software integration activities and implementing a solution that would scale from a small initial roll-out to the full 4,000-person development organization.
Start with Early CI Successes and Scale
The DGS-EC division is implementing CI and CD using CloudBees CI.
The group started by running a few small pilot projects with Jenkins. Having gained some experience from these initial proof-of-concept efforts, Bosse lobbied for a more extensive implementation. "We defined our targets, which included having all 4,000 plus engineers on our team using Jenkins,” says Bosse. "When I talked to management I said that we could try hitting these targets on our own and wait as we build up knowledge, or we could have it faster with support from the worldwide experts at CloudBees.”
The DCS-EC division worked with CloudBees engineers to develop a Jenkins strategy and set up the infrastructure, which now includes seven production controllers and six test controllers.
Among the group’s first goals was to use Jenkins to automate many of the manual build and test activities in the development teams’ current processes. They wrote plugins and adapted existing plugins as needed for tools that had been developed in-house as well as third-party tools invoked in the build, test and delivery processes.
The initial automation revealed stability issues with some of the tools that had not been readily apparent when the tools were run locally on an as needed basis. Jenkins made it easy to identify these issues and recreate the conditions needed to replicate them for debugging.
The group set up three CloudBees plugins: the Role-based Access Control (RBAC) plugin, the High Availability plugin and the Pipeline plugin. They used the RBAC plugin to control access to Jenkins jobs and to set up dedicated spaces that users could use to experiment without affecting the work of other users.
The High Availability plugin enabled the group to minimize downtime due to master failures. "With potentially 4,000 users on the system, I wanted to do everything possible to ensure availability,” says Bosse. "For me, there was no question – I wanted the High Availability plugin because I did not want to get a call from any user saying the system is down.”
Using the Pipeline plugin, they orchestrated and managed complex software delivery pipelines and evaluated the performance of individual stages within those pipelines. Bosse and his colleagues are using CloudBees CI to access build analytics, manage and view controllers in a central dashboard and simplify plugin version control and upgrades.
Having achieved some early successes with CI and CD, the group is now focused on expanding the use of Jenkins throughout the organization. "We started with a base setup and now we are growing gradually,” says Bosse. "It was easier for us to make our case to management by investing a little and seeing the benefits than by trying to do everything all at once.”
Bosse adds, "From my point of view, Jenkins is playing a part in our transformation from strictly embedded development to software development. Until now, we have been more focused on improving our embedded products and making them faster, better and less expensive. With CloudBees we are now building up our CI and CD knowledge to be prepared for whatever comes in the future.”
Deployment accelerated by 240X with MTAF (from four people, three-day process reduced to less than three hours).
"We decided to use as a benchmark a large, complex project. Because of dependencies and other factors that often interrupted the hours of manual procedures required, the build for this project took up to three days,” says Bosse. "After automating the build pipeline with CloudBees, it now completes in two hours and 20 minutes.” That translates to more than 95% increase in speed.
Large scale deployment kept on track by expert support.
"During the initial deployment we had biweekly calls with CloudBees engineers to discuss technical issues,” says Bosse. "We now have these calls monthly, because when issues arise with Jenkins it’s very useful to have direct communication with experts rather than trying to find a solution on the Internet.”
Visibility and transparency improved.
"In the past management would ask each project manager to take time to report progress in a spreadsheet, which would then get reviewed weekly or monthly,” says Bosse. "With CloudBees CI, management can directly access real-time status metrics including which production jobs are buildable and other details.”