Jenkins is the way to experiments & eternity

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.
Logo
Organization: Cloudologia, <http://cloudologia.com>
Team Members: Eugene Starchenko, CTO as well as John Smith and Aaron Swales, all members of Cloudologia's tech team
Industries: Consulting
Programming Languages: C/C++, Java, Node.js, Python
Platform: : Docker or Kubernetes, Linux, Windows
Version Control System: GitHub
Build Tools: 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.

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.

Jenkins solved all our business problems and saved tons of $$$!
profile picture
Eugene Starchenko, CTO, Cloudologia

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