DevOps Platform in the Automotive Industry
Submitted by Jenkins User Akhil Pradhan
The technology team fueling a global automotive company was struggling with builds and processes due to an antiquated legacy system. They turned to Jenkins to standardize the toolset in the entire CI/CD process to improve performance, accelerate time to market, and reduce the change failure rate.
Organization: Fortune 500 Automotive Organization
Programming Language: C/C++, Java, Node.js, Python, Golang, Scala
Platform: Docker, Kubernetes, Linux, Windows
Version Control System: Bitbucket Server, GitHub
Build Tool: Gradle, Maven, npm, docker, Golang, Helm, Packer, Dotnet, PY, SBT
Community Support: Jenkins Users Google Group or IRC Chat, Jenkins.io websites & blogs
Standardizing CI/CD for the development team of a leading automotive organization.
Background: Working for a large global automotive company requires rapid development and speed to market. That involves all of our developers being in sync all of the time. Before we migrated to Jenkins, our company was relying on dated software: our build tool and framework were non-standard, and applications were using legacy tools (ant, as an example) and an old struts framework. The company also lacked a standard code scanning tool, such as Sonar. All of this led to a multitude of security vulnerabilities and slower release schedules. Without a standardized toolset, the build tools and processes made everything extremely difficult.
Goals: Our main focus was to create a complete standardization of all CI/CD across all projects in the organization. Our goal was to achieve a predictable behavior and process while also standardizing framework, build tools, security/scanning tools, testing tools, etc.
Solution & Results: As part of the migration effort, we needed to standardize the toolset in the entire CI/CD process. We chose Jenkins because it is battle-tested and has community support like no other. Literally, there is nothing which can’t be achieved using Jenkins.
We set up a shared pipeline concept of Jenkins and provided CI/CD solutions to application teams (aka pipeline-as-a-service). This way, the app teams would not need to worry about writing long groovy pipeline code. They can focus on writing business logic, and the shared pipeline has intelligence built-in to build, unit-test, lint, package, publish, and deploy to our target environment.
Jenkins has been awesome with its rich plugin ecosystem. But it’s the flexibility of allowing us to write our own plugins that has made Jenkins the most critical and widely used tool in our organization.
Because of the rich community plugin support and ease of writing our own, we were able to design and customize our workflow and solutions. For example, we integrated Jenkins with our on-prem secrets manager using a custom plugin, hosted on AWS Cloud, so that we do not store any secrets in Jenkins. The other useful plugins we used are ECS, Artifactory, Email, Pipeline, Office365, Kubernetes, monitoring, and config-history.
Jenkins rocks because it is fast, flexible, and easy to use. It’s also easy to manage for administrators. As no prior training is needed for new users, Jenkins is a dream platform for IT professionals. With our new CI/CD platform, we were able to achieve our goals and more, including:
- increased velocity
- predictable behavior
- reduced time to market
- increased release frequency
- reduced change failure rate