The customer is an IOT company with multiple large industrial customers using their data analytics and services platform.
The client is an IoT company building a data & services platform for large industrial customers. The architecture was based on microservices architecture using Spring Cloud & Spring Boot. Microservices were deployed for each site based on the workflow for that site. As the number of use cases grew, the number of microservices was expected to grow to large numbers.
- A large number of Microservices based on specific workflows deployed at each customer site
- How to scale building of continuous delivery pipelines for the growing number of microservices
The goal was to build a scalable Continuous Delivery platform where the addition of a new microservice would create the whole delivery pipeline for that microservice without any manual effort.
- We followed the “Infrastructure as code” & “pipeline as code” approach.
- A one-click solution to deploy the whole CI/CD stack to a new customer environment
- The solution included Gitlab, Jenkins, Sonarqube & Artifactory.
- All components were docker containers orchestrated by Ansible and deployed on AWS.
- We defined Jenkins2 based pipeline templates. Each template represents a unique delivery pipeline.
- For example, a node.js based service would have 2/3 delivery pipeline templates. A spring boot based microservice would have 4/5 delivery pipeline templates.
- A new microservice can simply refer to a “delivery pipeline” template, and the whole delivery pipeline is created on-demand