Onboarding A Consulting Group’s Development Team
Submitted By Jenkins User Eugene Starchenko
Cloudologia’s, a cloud consulting firm, boosted their software development cycle by creating a unified Ci/CD system powered by Jenkins.
Organization: Cloudologia, http://cloudologia.com
Team: John Smith and Aaron Swales, both members of Cloudologia’s tech team
Programming Language: C/C++, Java, Node.js, Python
Platform: Docker or Kubernetes, Linux, Windows
Version Control System: GitHub
Build Tool: Ant, Gradle, Maven
Community Support: Spoke with colleagues and peers
A unified CI/CD system for DevOps-as-a-service developers
Background: Backed by VC funding, Cloudologia is a cloud consulting firm specializing in DevOps-as-a-Service. As a new solution provider, it made sense to ensure that the release and deployment pipelines for Jenkins would be easily deployable for 50+ teams of developers accessing centralized system settings. These settings would include AD setup, backups, git, and sets of custom management jobs and plugins versions. Additionally, the dev teams required separate system boxes for security. The Ops team also required access to must-have tools & management processes as well as ongoing Jenkins upgrades. Finally, Cloudologia needed to be able to deploy whenever necessary — and in multiple clouds like AWS, GCP, and Azure — with a single push of a button using a standardized example.Goals: Deploy a unified CI/CD system for multiple development teams, to boost Cloudologia’s software development lifecycle.
Goals: Deploy a unified CI/CD system for multiple development teams, to boost Cloudologia’s software development lifecycle.
Solution & Results:
We use Jenkins in Docker to be able to run & set up Jenkins masters on any cloud VMs to provision it on the hosts as the container. We have several repositories per specific cases that are combined into sets of Ansible roles for provisioning and Terraform for deploying. These work perfectly in a multi-cloud world.
Our solution uses our own internal UI system dashboard for testing & deployment purposes to give one single interface to manage permissions and accesses in the clouds through Jenkins-CLI and API. Our release pipelines are charged with Jenkinsfile and BlueOcean plugin for UI. And Jenkins Job Builder takes simple descriptions of Jenkins jobs in YAML or JSON format and uses them to configure Jenkins. Plus, we can keep our job descriptions in a human-readable text format in a version control system to make changes and auditing easier. It also has a flexible template system, so creating many similarly configured jobs is really easy.
The capabilities we used include: Jenkins-CLI, Jenkins in Docker, Project-Based Matrix Authorization Strategy & Active Directory Support, Jenkins DSL, Jenkins SSH Slave Agents.
Results we saw were the following:
- 120 + boxes deployed to 4 different cloud providers
- AutoRelease Jenkins Pipeline with a single click of a button
- Jenkins backups auto-restore on any VM failure or service interruption
- Onboarding for Deployment & Build release cycles was shortened from one week to 1 day
- The system is now managed and supported only by 2 engineers