Indispensable, Disposable Jenkins

Slides:



Advertisements
Similar presentations
Update on Version Control Systems: GitLab, SVN, Git, Trac, CERNforge
Advertisements

© copyright 2014 BMC Software, Inc. DevOps consultant Niek Bartholomeus Going DevOps with BMC.
Automating Drupal Deployment Dominique De Cooman.
CONTINUOUS DELIVERY / CONTINUOUS INTEGRATION. IDEAS -> SOLUTIONS Time.
DevOps Jesse Pai Robert Monical 8/14/2015. Agile Software Development 8/14/2015© 2015 SGT Inc.2.
Immutable Infrastructure With Docker and EC2 Docker Conf 2014 Michael Bryzek CTO & Co-Founder Gilt
Sumedha Rubasinghe October,2009 Introduction to Programming Tools.
& Dev Ops. Sherwin-Williams & DevOps Introduction to Sherwin-Williams.
GIT An introduction to GIT Source Control. What is GIT (1 of 2) ▪ “Git is a free and open source distributed version control system designed to handle.
Version control Using Git Version control, using Git1.
Continuous Integration and Code Review: how IT can help Alex Lossent – IT/PES – Version Control Systems 29-Sep st Forum1.
Perforce Software Version Everything.. Visual Studio Industry Partner Perforce Software NEXT STEPS Contact us at: Perforce products.
SAKY HCM Employee Details Payroll Management Leave Management Attendance Tracking Statutory Deductions Presented Saky.
Anubha Gupta | Software Engineer Visual Studio Online Microsoft Corp. Visual Studio Enterprise Leveraging modern tools to streamline Build and Release.
2 Joseph Clark Plugin Developer, Atlassian Continuous Deployment for Plugins.
Cruise Training Introduction of Continuous Integration.
Benjamin Day Get Good at DevOps: Feature Flag Deployments with ASP.NET, WebAPI, & JavaScript.
Software collaboration tools as a stack of services Borja Aparicio Cotarelo IT-PES-IS 2HEPiX Fall 2015 Workshop.
Using Git with collaboration, code review, and code management for open source and private projects. & Using Terminal to create, and push commits to repositories.
Jenkins Configuration Build Jobs Build Jobs Cogniteam jobBeersheva jobTechnion Job 1. Copy repository from Github to Jenkins server 2. Makefile Compile+link+
Test all the things! Improving code quality at the OU with Continuous Integration MoodleMoot Ireland UK 2016 Mark Johnson Tony Lin.
Jenkins 2.x Chris Vogel. Agenda O Jenkins background O Installation O Jenkins 2.x highlights O Build pipelines O Pipeline DSL O Multibranch plugin.
Getting & Running EdgeX Docker Containers
Joonas Sirén, Technology Architect, Emerging Technologies Accenture
Don’t Forget Security When Delivering Software
Deployment Architectures For Containers
Stress Free Deployments with Octopus Deploy
4/24/ :07 PM © Microsoft Corporation. All rights reserved. MICROSOFT MAKES NO WARRANTIES, EXPRESS, IMPLIED OR STATUTORY, AS TO THE INFORMATION IN.
I Don’t Git It: A beginner’s guide to git Presented by Mathew Robinson
Git and GitHub primer.
Mr. Gerkins InnerSource's first open tool
Version control, using Git
Jenkins and Azure OPEN322 Michael Friedrich.
Enterprise Quality Roadmap
ALICE-Juniors Meeting
Dmytro Mykhailov How HashiCorp platform tools can make the difference in development and deployment Target and goal of HashiCorp.
Change Deployment in ServiceN w
Macaualy2 Workshop Berkeley 2017
Building a Continuous Integration Pipeline using VSTS
API Testing and Continuous Integration
Introduction to Team Foundation Server 2010
Acutelearn Best Devops Online Training in Hyderabad Classroom Training Instructor led trainings at Acutelearn premises Corporate Training Custom tailored.
Continuous Integration
Akshay Narayan git up to speed with RCS Akshay Narayan
AUDITING SERVICES From Payroll to Audits, we are your one stop for business services.
Microsoft /12/2018 8:06 AM BRK2103 Deliver more features faster with a modern development and test solution Claude Remillard Group Program Manager.
Get Good at DevOps: Feature Flag Deployments with ASP
Part 1: Editing and Publishing Files
Simplified Development Toolkit
Sr. Developer Cloud System - Architecture
Git Best Practices Jay Patel Git Best Practices.
Version Control System - Git
Real World Scrum with TFS & VSTS / Azure DevOps
Your code is not just…your code
Christian Huebner, Principal Architect
Continuous Integration Tool
GitHub and Git.
Jenkins Multibranch Pipeline
DEVOPS & THE FUTURE OF TESTING
GitHub 101 Using Github and Git for Source Control
Enterprise Use Case for Docker
Rabobank’s Customer On-Boarding Program
Node.js Test Automation using Oracle Developer Cloud- Simplified
Branches And Releases Branch for Urgent Bug Branch for Feature A
Containers and Clones Paul Stanton Co-founder Windocks
Claritus- A Boutique Technology Firm
Setup QA Process Software Quality Assurance Telerik Software Academy
Continuous Integration and Delivery (CI/CD) in Azure Data Factory
Your code is not just…your code
Presentation transcript:

Indispensable, Disposable Jenkins Mandy Hubbard, London, 20 October 2017

import "me" Mandy Hubbard QA Architect, Care.com Homepay @DevMandy

World’s largest online platform for finding and managing family care Largest provider of payroll and tax services for household employees – caregivers -- in all 50 states. 25 years Innovating A lot at stake Two tasks For this I chose Jenkins

Quality as a Service “Quality is not an act, it is a habit.” — Aristotle Release in a reliable manner Reduce regression Process not testing at the end Minimize merge conflicts Continuous Integration Continuous Delivery Business cares about quality? Why? Fast

Canonical Analogy Time Q: Why do cars have brakes? A: So they can go fast. Full throttle Stop reliably Confidently release code fast Lightening speeds Edge of safety Transition: Fortunately, release quality software is simple, right? A: So they can go fast!

Developer Friendly Quality Software Process Upstream Master (Trigger) (Pull Requests) Auto build and test

GitHub Process Flow GitHub Dev A’s Dev A Fork (local) (origin) 2 1 GitHub Dev A (local) Dev A’s Fork (origin) Clone Fork Organization master (upstream) 3 4 Push PR Dev B (local) Dev B’s Fork (origin) Fork Clone PR Push

Continuous Integration 5 4 Dev A’s Fork (origin) Upstream PR Build/Test Build Status 6

Continuous Delivery Upstream 7 Build/Test push Webhook Event Release 8 9

GitHub Webhook Configuration

GitHub Webhook Configuration

Protected Branch

Demo Time What does this look like? How does my team use Jenkins every day? Let’s look at how Jenkins is indispensable to our continuous deliver process. Do you see what we’ve done here? Demo Time

Technology Stack Docker ContainerPilot Consul Docker Compose

Container Processes PreStart Jenkins Health Health Task Task ContainerPilot Consul Agent

Docker Compose Environment File LDAP_SERVER=openldap LDAP_ROOT_DN=dc=devmandy,dc=org LDAP_MANAGER_DN=cn=admin,dc=devmandy,dc=org LDAP_MANAGER_PASSWORD_SECRET=password LDAP_USERNAME=mandy LDAP_PASSWORD=password GITHUB_TOKEN=305fa17c9af90d1351541357528a5c49592d4260 GITHUB_USERNAME=devmandy GITHUB_ORGANIZATION=DevMandy GITHUB_CREDENTIALS_ID=github   DOCKERHUB_ORGANIZATION=devmandy DOCKERHUB_USERNAME=devmandy DOCKERHUB_PASSWORD=password DOCKER_REGISTRY=https://index.docker.io/v1/ DOCKERHUB_CREDENTIALS_ID=dockerhub DOCKER_HOST=tcp://10.0.2.15:2375  … LDAP_SERVER=openldap LDAP_ROOT_DN=dc=devmandy,dc=org LDAP_MANAGER_DN=cn=admin,dc=devmandy,dc=org LDAP_MANAGER_PASSWORD_SECRET=password

Anatomy of a Plugin Jenkins UI Config.xml config.xml Read / Write <plugin="docker-plugin@0.16.1-SNAPSHOT"> <scope>GLOBAL</scope> <id>unique-id</id> <description>Triton Certificates</description> <path>/var/jenkins_home/.sdc/docker/jenkins</path> </com.nirima.jenkins.plugins.docker.utils.DockerDirectoryCredentials> Read / Write Jenkins UI Config.xml config.xml

LDAP Plugin UI

Configuration File <securityRealm class="hudson.security.LDAPSecurityRealm" plugin="ldap@1.16"> <jenkins.security.plugins.ldap.LDAPConfiguration> <server>ldap-server</server> <rootDN>root-dn</rootDN> <inhibitInferRootDN>false</inhibitInferRootDN> <userSearchBase></userSearchBase> <userSearch>uid={0}</userSearch> <groupMembershipStrategy class="jenkins.security.plugins.ldap.FromGroupSearchLDAPGroupMembershipStrategy"> <filter></filter> </groupMembershipStrategy> <managerDN>manager-dn</managerDN> <managerPasswordSecret>password</managerPasswordSecret> <displayNameAttributeName>givenName</displayNameAttributeName> <mailAddressAttributeName>mail</mailAddressAttributeName> </jenkins.security.plugins.ldap.LDAPConfiguration> </securityRealm> <server>ldap-server</server> <rootDN>root-dn</rootDN> <managerDN>manager-dn</managerDN> <managerPasswordSecret>password</managerPasswordSecret>

Docker Compose Environment File LDAP_SERVER=openldap LDAP_ROOT_DN=dc=devmandy,dc=org LDAP_MANAGER_DN=cn=admin,dc=devmandy,dc=org LDAP_MANAGER_PASSWORD_SECRET=password LDAP_USERNAME=mandy LDAP_PASSWORD=password GITHUB_TOKEN=305fa17c9af90d1351541357528a5c49592d4260 GITHUB_USERNAME=devmandy GITHUB_ORGANIZATION=DevMandy GITHUB_CREDENTIALS_ID=github   DOCKERHUB_ORGANIZATION=devmandy DOCKERHUB_USERNAME=devmandy DOCKERHUB_PASSWORD=password DOCKER_REGISTRY=https://index.docker.io/v1/ DOCKERHUB_CREDENTIALS_ID=dockerhub DOCKER_HOST=tcp://10.0.2.15:2375  … LDAP_SERVER=openldap LDAP_ROOT_DN=dc=devmandy,dc=org LDAP_MANAGER_DN=cn=admin,dc=devmandy,dc=org LDAP_MANAGER_PASSWORD_SECRET=password

Jenkins Environment Variables jenkins@b10065bda8f4:/$ printenv | grep LDAP LDAP_ROOT_DN=dc=devmandy,dc=org LDAP_MANAGER_PASSWORD_SECRET=password LDAP_SERVER=openldap LDAP_MANAGER_DN=cn=admin,dc=devmandy,dc=org

first-run.sh '//jenkins.security.plugins.ldap.LDAPConfiguration/server' \ -v ${LDAP_SERVER} \ -u '//jenkins.security.plugins.ldap.LDAPConfiguration/rootDN' \ -v ${LDAP_ROOT_DN} \ -u '//jenkins.security.plugins.ldap.LDAPConfiguration/managerDN' \ -v ${LDAP_MANAGER_DN} \ -u '//jenkins.security.plugins.ldap.LDAPConfiguration/managerPasswordSecret' \ -v ${LDAP_MANAGER_PASSWORD_SECRET} \ ${JENKINS_HOME}/config.xml

ContainerPilot Prestart Config { "consul": "http://localhost:8500", "preStart": "/usr/local/bin/first-run.sh", "stopTimeout": 5, . . . }

Summary: Do Try This at Home Quality makes the business go fast Jenkins automates our pipeline so we can go fast Jenkins is critical Software-define your Jenkins!

Q&A Thanks for attending! Contact: Mandy.Hubbard@yahoo.com @DevMandy I encourage your questions and feedback

Additional Resources https://github.com/autopilotpattern/jenkins https://jenkins.io/blog/2017/07/17/speaker-blog-care/ https://www.joyent.com/containerpilot