Build & maintain complex distributed systems
17–18 October 2017: Training
18–20 October 2017: Tutorials & Conference
London, UK

Indispensable, disposable Jenkins

Mandy Hubbard (Care.com HomePay)
15:4016:20 Friday, 20 October 2017
Average rating: ****.
(4.33, 3 ratings)

Who is this presentation for?

  • DevOps, software, and build engineers

Prerequisite knowledge

  • A basic understanding of Docker and Jenkins

What you'll learn

  • Learn how to Dockerize and preconfigure your production Jenkins environment using ContainerPilot

Description

Jenkins’s key strengths are automation and repeatability of complex continuous delivery processes, but for the vast majority of users, Jenkins’s configuration is a highly manual and too-often error-prone process. Backups alone are critical, resource-consuming tasks. And if a new Jenkins environment has to be configured from scratch, it can bring a team’s productivity to a grinding halt. But what if there was a way to launch a preconfigured Jenkins system customized to your team’s environment with the push of a button?

Mandy Hubbard explains how Care.com uses a customized, script-based startup process and Joyent’s ContainerPilot with a just few edits to a Docker Compose _env file to launch Jenkins in a Docker container. No configuration in the UI is required for Jenkins to start building. Simply run docker-compose up and the environment is ready to go.

With this environment:

  1. Users can immediately log in using their Active Directory credentials—using the Active Directory plugin, which is automatically installed and configured for the organization with matrix-based security enabled.
  2. Pipeline jobs are automatically created for all GitHub repositories in the organization that contain a Jenkinsfile, and an initial build of each repository is run immediately—using the Github Organization Folder plugin, which is already installed and configured with the organization’s name and credentials.
  3. Jenkins can immediately begin building in ephemeral agents running in Docker containers—using the Docker plugin, which is automatically installed and configured for the intended Docker environment with templates for the Docker build images preconfigured.
  4. Credentials are predefined for interacting with third-party services such as GitHub and Docker Hub—using the Credentials plugin, which is installed automatically with the appropriate credential sets already created.
  5. The entire configuration is completely reusable. Kill the environment and start a new container with the exact configuration or change the _env file and create a new environment. All code lives in GitHub; manual configuration and configuration tools are unnecessary. Jenkins is versioned just like the rest of the source code.
Photo of Mandy Hubbard

Mandy Hubbard

Care.com HomePay

Mandy Hubbard is a software engineer and QA architect at Care.com, where she is leading the creation of a CI/CD environment for end-to-end automation of microservices for Care.com’s Financial Services Division. A seasoned professional with over 17 years of QA experience, most of which was spent in fast-paced startup environments driving product quality, Mandy has played a critical role in all stages of software development and has a deep understanding of build-test-deploy processes from development to production.