SlideShare a Scribd company logo
Yale Jenkins
Build and Deploy
                                       E Camden Fisher
                               camden.fisher@yale.edu
                                         Technical Lead
                   Unix Infrastructure and Virtualization
Who Uses Jenkins @Yale?
Overview:
How does Jenkins make life better?
Without Jenkins                          With Jenkins
●   Building is slow, error prone        ●   "fire and forget", consistent!
●   Testing is onerous                   ●   Testing is automated!
●   Code coverage is onerous             ●   Code coverage is automated!
●   Bugs caught later                    ●   Bugs caught early and often!
●   Devs worry about environments        ●   Devs worry about code!
●   Lack of change control for           ●   Change control in the right
    deployments                              places for deployments!
●   Slow progress                        ●   Rapid progress! Agility!
●   Different artifact per environment   ●   Identical artifact per
●   Inconsistent configuration per           environment!
    environment                          ●   Identical configuration per
●   Deployments are "hard"                   environments!
●   Integration Hell                     ●   Deployments are easy! "Click!"
                                         ●   Integration Nirvana
Continuous Integration
Continuous Integration is a software development practice
     ○   Maintain a Single Source Repository
     ○   Automate the Build
     ○   Make Your Build Self-Testing
     ○   Everyone Commits To the Mainline Every Day
     ○   Every Commit Should Build the Mainline on an Integration Machine
     ○   Keep the Build Fast
     ○   Test in a Clone of the Production Environment
     ○   Make it Easy for Anyone to Get the Latest Executable
     ○   Everyone can see what's happening
     ○   Automate Deployment
Avoid "Integration Hell!!"
What is Jenkins?




Jenkins is an application and a framework that
   manages and monitors the execution of
               repeated tasks.
Why Jenkins?


●   Easy!
●   Extensible
●   Scalable
●   Flexible
●   Open Source
●   Supported by Cloudbees
History Lesson:
Application lifecycle is a progression
● Source Code Management
● Maven and Artifactory
● Building and Testing with Jenkins
● Container Configurable artifacts
● Managed deployments with Jenkins
Source Control Management

● Islands of SCM begat central SCM (subversion)
   ○ Single source repository!
   ○ Easy to get access.
   ○ Easy to onboard.
   ○   Easy to support.
   ○ Everyone wins!
Maven and Artifactory
●   Maven

    ○   Project Object Model (POM)

    ○   Simplifies dependency resolution ("oops I forgot that .jar!")

    ○   Makes the build process easy and uniform

●   Artifactory (Maven Repository)

    ○   Where do I put my built artifacts?

    ○   Makes it easy for everyone to get the latest build!
Builds without Jenkins
●   Builds take a long time

●   Automated Testing takes longer!

●   Code coverage reports take even longer!

●   Result: developers don't build, test or report on their code regularly enough
    because it's just too time consuming.
●   Build environments are not standardized
    ○   my laptop has a different o/s, jvm, ruby version, gems, libraries, etc
        than yours
●   Mistakes are caught later, harder to debug
Builds with Jenkins
●   SCM commits automatically kick off a build
    ○   Automate the build!
●   Testing and code coverage is automated and is run on every commit.
    ○   Makes the Build Self-Testing!
●   Broken builds immediately notify the team and the committer (Email, IRC,
    IM, Taskbar, etc)
●   Tests run in a Clone of the Production Environment!
●   Everyone can easily see what's happening!
●   Developers can get back to coding instead of building and testing.
●   Releases are quick and easy
Container Configurable Artifacts
●   Artifacts were built with configuration information embedded inside them.
    ○   ie. datasources, CAS service endpoints, etc
    ○   Artifacts are different per environment! What!?
    ○   "Oops, I forgot to update that parameter!"
●   Externalization of configuration parameters
    ○   deployable XML
    ○  Apps self configure with JNDI
●   Now we have Container Configurable artifacts
    ○   The SAME artifact migrates between environments
    ○  XML configuration data is all that differentiates environments
●   Vendor-lock-in-less PaaS plug
Deployments without Jenkins
●   Choice between loss of control or loss of agility
    ○    Either devs can edit deployables or they can't
    ○    Often devs can configure the container
●   If they can...
    ○    Code is deployed, edited and removed without Change Control
    ○    "I'll clean it up later!"
    ○    Dev environments quickly diverge from Production
    ○    Security is compromised
         ■    Elevated privileges on servers
         ■    Shell management on servers
●   If they can't...
    ○    Change requests are "slow", systems groups must do everything
Deployments with Jenkins
●   Consistency!

●   Jenkins writes configuration XML

●   Developers can deploy to DEV at will

●   Eliminate shells, and elevated privileges on servers

●   Container is managed by infrastructure with the O/S

●   Empowers developers to GTD

●   Puts gates at appropriate places

●   Changes to the Jenkins jobs require change control

●   Frees Systems folks to work on more interesting things

●   Workflow integration with Kintana
Non-Java languages
This all applies to Non-Java projects too!
Php
   ○ Continuous deployment to DEV for Drupal
   ○ Code coverage and unit testing available
Ruby
   ○ Automated unit testing
   ○ Automated code coverage
   ○ Automated deployment coming soon
.Net
   ○ Build, unit test, archive creation
The future...
● RBAC + folders
  ○ delegate responsibility to other systems groups
● More ruby
  ○ unit testing and code coverage
  ○ deployments
● Enterprise Service Bus
● Cloud deployments
Questions?



             E Camden Fisher
              Technical Lead
   Unix Infrastructure and Virtualization
         camden.fisher@yale.edu
                 @fishnix

More Related Content

What's hot

CI CD Pipeline Using Jenkins | Continuous Integration and Deployment | DevOps...
CI CD Pipeline Using Jenkins | Continuous Integration and Deployment | DevOps...CI CD Pipeline Using Jenkins | Continuous Integration and Deployment | DevOps...
CI CD Pipeline Using Jenkins | Continuous Integration and Deployment | DevOps...
Edureka!
 
Introduction to CI/CD
Introduction to CI/CDIntroduction to CI/CD
Introduction to CI/CD
Hoang Le
 
Jenkins
JenkinsJenkins
Jenkins CI
Jenkins CIJenkins CI
Jenkins CI
haochenglee
 
Jenkins presentation
Jenkins presentationJenkins presentation
Jenkins presentation
Valentin Buryakov
 
Jenkins tutorial for beginners
Jenkins tutorial for beginnersJenkins tutorial for beginners
Jenkins tutorial for beginners
BugRaptors
 
Jenkins
JenkinsJenkins
Jenkins
Roger Xia
 
Fundamentals of DevOps and CI/CD
Fundamentals of DevOps and CI/CDFundamentals of DevOps and CI/CD
Fundamentals of DevOps and CI/CD
Batyr Nuryyev
 
CI/CD with Jenkins and Docker - DevOps Meetup Day Thailand
CI/CD with Jenkins and Docker - DevOps Meetup Day ThailandCI/CD with Jenkins and Docker - DevOps Meetup Day Thailand
CI/CD with Jenkins and Docker - DevOps Meetup Day Thailand
Troublemaker Khunpech
 
Continuous Integration, Build Pipelines and Continuous Deployment
Continuous Integration, Build Pipelines and Continuous DeploymentContinuous Integration, Build Pipelines and Continuous Deployment
Continuous Integration, Build Pipelines and Continuous Deployment
Christopher Read
 
Continuous integration
Continuous integrationContinuous integration
Continuous integrationamscanne
 
Continuous Delivery, Continuous Integration
Continuous Delivery, Continuous Integration Continuous Delivery, Continuous Integration
Continuous Delivery, Continuous Integration
Amazon Web Services
 
Introduction to CI/CD
Introduction to CI/CDIntroduction to CI/CD
Introduction to CI/CD
Steve Mactaggart
 
CICD with Jenkins
CICD with JenkinsCICD with Jenkins
CICD with Jenkins
MoogleLabs default
 
"DevOps > CI+CD "
"DevOps > CI+CD ""DevOps > CI+CD "
"DevOps > CI+CD "
Innovation Roots
 
Jenkins for java world
Jenkins for java worldJenkins for java world
Jenkins for java world
Ashok Kumar
 
Jenkins.pdf
Jenkins.pdfJenkins.pdf
Continuous Delivery with Jenkins
Continuous Delivery with JenkinsContinuous Delivery with Jenkins
Continuous Delivery with Jenkins
Jadson Santos
 
Jenkins tutorial
Jenkins tutorialJenkins tutorial
Jenkins tutorial
HarikaReddy115
 
Jenkins-CI
Jenkins-CIJenkins-CI
Jenkins-CI
Gong Haibing
 

What's hot (20)

CI CD Pipeline Using Jenkins | Continuous Integration and Deployment | DevOps...
CI CD Pipeline Using Jenkins | Continuous Integration and Deployment | DevOps...CI CD Pipeline Using Jenkins | Continuous Integration and Deployment | DevOps...
CI CD Pipeline Using Jenkins | Continuous Integration and Deployment | DevOps...
 
Introduction to CI/CD
Introduction to CI/CDIntroduction to CI/CD
Introduction to CI/CD
 
Jenkins
JenkinsJenkins
Jenkins
 
Jenkins CI
Jenkins CIJenkins CI
Jenkins CI
 
Jenkins presentation
Jenkins presentationJenkins presentation
Jenkins presentation
 
Jenkins tutorial for beginners
Jenkins tutorial for beginnersJenkins tutorial for beginners
Jenkins tutorial for beginners
 
Jenkins
JenkinsJenkins
Jenkins
 
Fundamentals of DevOps and CI/CD
Fundamentals of DevOps and CI/CDFundamentals of DevOps and CI/CD
Fundamentals of DevOps and CI/CD
 
CI/CD with Jenkins and Docker - DevOps Meetup Day Thailand
CI/CD with Jenkins and Docker - DevOps Meetup Day ThailandCI/CD with Jenkins and Docker - DevOps Meetup Day Thailand
CI/CD with Jenkins and Docker - DevOps Meetup Day Thailand
 
Continuous Integration, Build Pipelines and Continuous Deployment
Continuous Integration, Build Pipelines and Continuous DeploymentContinuous Integration, Build Pipelines and Continuous Deployment
Continuous Integration, Build Pipelines and Continuous Deployment
 
Continuous integration
Continuous integrationContinuous integration
Continuous integration
 
Continuous Delivery, Continuous Integration
Continuous Delivery, Continuous Integration Continuous Delivery, Continuous Integration
Continuous Delivery, Continuous Integration
 
Introduction to CI/CD
Introduction to CI/CDIntroduction to CI/CD
Introduction to CI/CD
 
CICD with Jenkins
CICD with JenkinsCICD with Jenkins
CICD with Jenkins
 
"DevOps > CI+CD "
"DevOps > CI+CD ""DevOps > CI+CD "
"DevOps > CI+CD "
 
Jenkins for java world
Jenkins for java worldJenkins for java world
Jenkins for java world
 
Jenkins.pdf
Jenkins.pdfJenkins.pdf
Jenkins.pdf
 
Continuous Delivery with Jenkins
Continuous Delivery with JenkinsContinuous Delivery with Jenkins
Continuous Delivery with Jenkins
 
Jenkins tutorial
Jenkins tutorialJenkins tutorial
Jenkins tutorial
 
Jenkins-CI
Jenkins-CIJenkins-CI
Jenkins-CI
 

Similar to Yale Jenkins Show and Tell

Jenkins Meetup Pune
Jenkins Meetup PuneJenkins Meetup Pune
Jenkins Meetup Pune
Umesh Kumhar
 
Introduction to jenkins
Introduction to jenkinsIntroduction to jenkins
Introduction to jenkins
Abe Diaz
 
Build software like a bag of marbles, not a castle of LEGO®
Build software like a bag of marbles, not a castle of LEGO®Build software like a bag of marbles, not a castle of LEGO®
Build software like a bag of marbles, not a castle of LEGO®
Hannes Lowette
 
Why NXTware Remote for Jenkins
Why NXTware Remote for JenkinsWhy NXTware Remote for Jenkins
Why NXTware Remote for Jenkins
ecubemarketing
 
DevOps World | Jenkins World 2018 and The Future of Jenkins
DevOps World | Jenkins World 2018 and The Future of JenkinsDevOps World | Jenkins World 2018 and The Future of Jenkins
DevOps World | Jenkins World 2018 and The Future of Jenkins
Nigel Charman
 
JUC Europe 2015: From Virtual Machines to Containers: Achieving Continuous In...
JUC Europe 2015: From Virtual Machines to Containers: Achieving Continuous In...JUC Europe 2015: From Virtual Machines to Containers: Achieving Continuous In...
JUC Europe 2015: From Virtual Machines to Containers: Achieving Continuous In...
CloudBees
 
From Virtual Machines to Containers
From Virtual Machines to ContainersFrom Virtual Machines to Containers
From Virtual Machines to Containers
camunda services GmbH
 
JOSA TechTalks - Docker in Production
JOSA TechTalks - Docker in ProductionJOSA TechTalks - Docker in Production
JOSA TechTalks - Docker in Production
Jordan Open Source Association
 
Jenkinsconf Presentation - Advance jenkins management with multiple projects.
Jenkinsconf Presentation - Advance jenkins management with multiple projects.Jenkinsconf Presentation - Advance jenkins management with multiple projects.
Jenkinsconf Presentation - Advance jenkins management with multiple projects.
Ohad Basan
 
[WSO2Con EU 2018] Architecting for a Container Native Environment
[WSO2Con EU 2018] Architecting for a Container Native Environment[WSO2Con EU 2018] Architecting for a Container Native Environment
[WSO2Con EU 2018] Architecting for a Container Native Environment
WSO2
 
The Future of System Administration
The Future of System AdministrationThe Future of System Administration
The Future of System Administration
Kris Buytaert
 
An Introduction to Docker
An Introduction to DockerAn Introduction to Docker
An Introduction to Docker
bwinterton
 
ContainerDays NYC 2015: "Easing Your Way Into Docker: Lessons From a Journey ...
ContainerDays NYC 2015: "Easing Your Way Into Docker: Lessons From a Journey ...ContainerDays NYC 2015: "Easing Your Way Into Docker: Lessons From a Journey ...
ContainerDays NYC 2015: "Easing Your Way Into Docker: Lessons From a Journey ...
DynamicInfraDays
 
Seven Habits of Highly Effective Jenkins Users (2014 edition!)
Seven Habits of Highly Effective Jenkins Users (2014 edition!)Seven Habits of Highly Effective Jenkins Users (2014 edition!)
Seven Habits of Highly Effective Jenkins Users (2014 edition!)
Andrew Bayer
 
Deploying your SaaS stack OnPrem
Deploying your SaaS stack OnPremDeploying your SaaS stack OnPrem
Deploying your SaaS stack OnPrem
Kris Buytaert
 
Jenkins Evolutions - JEEConf 2012
Jenkins Evolutions - JEEConf 2012Jenkins Evolutions - JEEConf 2012
Jenkins Evolutions - JEEConf 2012Anton Arhipov
 
Introduction to jenkins for the net developer
Introduction to jenkins for the net developerIntroduction to jenkins for the net developer
Introduction to jenkins for the net developer
Abe Diaz
 
CI/CD with Openshift and Jenkins
CI/CD with Openshift and JenkinsCI/CD with Openshift and Jenkins
CI/CD with Openshift and Jenkins
Ari LiVigni
 
Sean schofield & Richard Lister, Spree Commerce_ Fearless deployment @ Open C...
Sean schofield & Richard Lister, Spree Commerce_ Fearless deployment @ Open C...Sean schofield & Richard Lister, Spree Commerce_ Fearless deployment @ Open C...
Sean schofield & Richard Lister, Spree Commerce_ Fearless deployment @ Open C...
Spark Solutions
 

Similar to Yale Jenkins Show and Tell (20)

Jenkins Meetup Pune
Jenkins Meetup PuneJenkins Meetup Pune
Jenkins Meetup Pune
 
Introduction to jenkins
Introduction to jenkinsIntroduction to jenkins
Introduction to jenkins
 
Build software like a bag of marbles, not a castle of LEGO®
Build software like a bag of marbles, not a castle of LEGO®Build software like a bag of marbles, not a castle of LEGO®
Build software like a bag of marbles, not a castle of LEGO®
 
Why NXTware Remote for Jenkins
Why NXTware Remote for JenkinsWhy NXTware Remote for Jenkins
Why NXTware Remote for Jenkins
 
DevOps World | Jenkins World 2018 and The Future of Jenkins
DevOps World | Jenkins World 2018 and The Future of JenkinsDevOps World | Jenkins World 2018 and The Future of Jenkins
DevOps World | Jenkins World 2018 and The Future of Jenkins
 
JUC Europe 2015: From Virtual Machines to Containers: Achieving Continuous In...
JUC Europe 2015: From Virtual Machines to Containers: Achieving Continuous In...JUC Europe 2015: From Virtual Machines to Containers: Achieving Continuous In...
JUC Europe 2015: From Virtual Machines to Containers: Achieving Continuous In...
 
From Virtual Machines to Containers
From Virtual Machines to ContainersFrom Virtual Machines to Containers
From Virtual Machines to Containers
 
JOSA TechTalks - Docker in Production
JOSA TechTalks - Docker in ProductionJOSA TechTalks - Docker in Production
JOSA TechTalks - Docker in Production
 
Jenkinsconf Presentation - Advance jenkins management with multiple projects.
Jenkinsconf Presentation - Advance jenkins management with multiple projects.Jenkinsconf Presentation - Advance jenkins management with multiple projects.
Jenkinsconf Presentation - Advance jenkins management with multiple projects.
 
[WSO2Con EU 2018] Architecting for a Container Native Environment
[WSO2Con EU 2018] Architecting for a Container Native Environment[WSO2Con EU 2018] Architecting for a Container Native Environment
[WSO2Con EU 2018] Architecting for a Container Native Environment
 
The Future of System Administration
The Future of System AdministrationThe Future of System Administration
The Future of System Administration
 
An Introduction to Docker
An Introduction to DockerAn Introduction to Docker
An Introduction to Docker
 
ContainerDays NYC 2015: "Easing Your Way Into Docker: Lessons From a Journey ...
ContainerDays NYC 2015: "Easing Your Way Into Docker: Lessons From a Journey ...ContainerDays NYC 2015: "Easing Your Way Into Docker: Lessons From a Journey ...
ContainerDays NYC 2015: "Easing Your Way Into Docker: Lessons From a Journey ...
 
Container Days
Container DaysContainer Days
Container Days
 
Seven Habits of Highly Effective Jenkins Users (2014 edition!)
Seven Habits of Highly Effective Jenkins Users (2014 edition!)Seven Habits of Highly Effective Jenkins Users (2014 edition!)
Seven Habits of Highly Effective Jenkins Users (2014 edition!)
 
Deploying your SaaS stack OnPrem
Deploying your SaaS stack OnPremDeploying your SaaS stack OnPrem
Deploying your SaaS stack OnPrem
 
Jenkins Evolutions - JEEConf 2012
Jenkins Evolutions - JEEConf 2012Jenkins Evolutions - JEEConf 2012
Jenkins Evolutions - JEEConf 2012
 
Introduction to jenkins for the net developer
Introduction to jenkins for the net developerIntroduction to jenkins for the net developer
Introduction to jenkins for the net developer
 
CI/CD with Openshift and Jenkins
CI/CD with Openshift and JenkinsCI/CD with Openshift and Jenkins
CI/CD with Openshift and Jenkins
 
Sean schofield & Richard Lister, Spree Commerce_ Fearless deployment @ Open C...
Sean schofield & Richard Lister, Spree Commerce_ Fearless deployment @ Open C...Sean schofield & Richard Lister, Spree Commerce_ Fearless deployment @ Open C...
Sean schofield & Richard Lister, Spree Commerce_ Fearless deployment @ Open C...
 

Recently uploaded

DevOps and Testing slides at DASA Connect
DevOps and Testing slides at DASA ConnectDevOps and Testing slides at DASA Connect
DevOps and Testing slides at DASA Connect
Kari Kakkonen
 
How world-class product teams are winning in the AI era by CEO and Founder, P...
How world-class product teams are winning in the AI era by CEO and Founder, P...How world-class product teams are winning in the AI era by CEO and Founder, P...
How world-class product teams are winning in the AI era by CEO and Founder, P...
Product School
 
Epistemic Interaction - tuning interfaces to provide information for AI support
Epistemic Interaction - tuning interfaces to provide information for AI supportEpistemic Interaction - tuning interfaces to provide information for AI support
Epistemic Interaction - tuning interfaces to provide information for AI support
Alan Dix
 
Dev Dives: Train smarter, not harder – active learning and UiPath LLMs for do...
Dev Dives: Train smarter, not harder – active learning and UiPath LLMs for do...Dev Dives: Train smarter, not harder – active learning and UiPath LLMs for do...
Dev Dives: Train smarter, not harder – active learning and UiPath LLMs for do...
UiPathCommunity
 
Unsubscribed: Combat Subscription Fatigue With a Membership Mentality by Head...
Unsubscribed: Combat Subscription Fatigue With a Membership Mentality by Head...Unsubscribed: Combat Subscription Fatigue With a Membership Mentality by Head...
Unsubscribed: Combat Subscription Fatigue With a Membership Mentality by Head...
Product School
 
GenAISummit 2024 May 28 Sri Ambati Keynote: AGI Belongs to The Community in O...
GenAISummit 2024 May 28 Sri Ambati Keynote: AGI Belongs to The Community in O...GenAISummit 2024 May 28 Sri Ambati Keynote: AGI Belongs to The Community in O...
GenAISummit 2024 May 28 Sri Ambati Keynote: AGI Belongs to The Community in O...
Sri Ambati
 
Quantum Computing: Current Landscape and the Future Role of APIs
Quantum Computing: Current Landscape and the Future Role of APIsQuantum Computing: Current Landscape and the Future Role of APIs
Quantum Computing: Current Landscape and the Future Role of APIs
Vlad Stirbu
 
De-mystifying Zero to One: Design Informed Techniques for Greenfield Innovati...
De-mystifying Zero to One: Design Informed Techniques for Greenfield Innovati...De-mystifying Zero to One: Design Informed Techniques for Greenfield Innovati...
De-mystifying Zero to One: Design Informed Techniques for Greenfield Innovati...
Product School
 
Key Trends Shaping the Future of Infrastructure.pdf
Key Trends Shaping the Future of Infrastructure.pdfKey Trends Shaping the Future of Infrastructure.pdf
Key Trends Shaping the Future of Infrastructure.pdf
Cheryl Hung
 
Securing your Kubernetes cluster_ a step-by-step guide to success !
Securing your Kubernetes cluster_ a step-by-step guide to success !Securing your Kubernetes cluster_ a step-by-step guide to success !
Securing your Kubernetes cluster_ a step-by-step guide to success !
KatiaHIMEUR1
 
Generative AI Deep Dive: Advancing from Proof of Concept to Production
Generative AI Deep Dive: Advancing from Proof of Concept to ProductionGenerative AI Deep Dive: Advancing from Proof of Concept to Production
Generative AI Deep Dive: Advancing from Proof of Concept to Production
Aggregage
 
Elizabeth Buie - Older adults: Are we really designing for our future selves?
Elizabeth Buie - Older adults: Are we really designing for our future selves?Elizabeth Buie - Older adults: Are we really designing for our future selves?
Elizabeth Buie - Older adults: Are we really designing for our future selves?
Nexer Digital
 
GDG Cloud Southlake #33: Boule & Rebala: Effective AppSec in SDLC using Deplo...
GDG Cloud Southlake #33: Boule & Rebala: Effective AppSec in SDLC using Deplo...GDG Cloud Southlake #33: Boule & Rebala: Effective AppSec in SDLC using Deplo...
GDG Cloud Southlake #33: Boule & Rebala: Effective AppSec in SDLC using Deplo...
James Anderson
 
UiPath Test Automation using UiPath Test Suite series, part 4
UiPath Test Automation using UiPath Test Suite series, part 4UiPath Test Automation using UiPath Test Suite series, part 4
UiPath Test Automation using UiPath Test Suite series, part 4
DianaGray10
 
Free Complete Python - A step towards Data Science
Free Complete Python - A step towards Data ScienceFree Complete Python - A step towards Data Science
Free Complete Python - A step towards Data Science
RinaMondal9
 
LF Energy Webinar: Electrical Grid Modelling and Simulation Through PowSyBl -...
LF Energy Webinar: Electrical Grid Modelling and Simulation Through PowSyBl -...LF Energy Webinar: Electrical Grid Modelling and Simulation Through PowSyBl -...
LF Energy Webinar: Electrical Grid Modelling and Simulation Through PowSyBl -...
DanBrown980551
 
The Art of the Pitch: WordPress Relationships and Sales
The Art of the Pitch: WordPress Relationships and SalesThe Art of the Pitch: WordPress Relationships and Sales
The Art of the Pitch: WordPress Relationships and Sales
Laura Byrne
 
FIDO Alliance Osaka Seminar: The WebAuthn API and Discoverable Credentials.pdf
FIDO Alliance Osaka Seminar: The WebAuthn API and Discoverable Credentials.pdfFIDO Alliance Osaka Seminar: The WebAuthn API and Discoverable Credentials.pdf
FIDO Alliance Osaka Seminar: The WebAuthn API and Discoverable Credentials.pdf
FIDO Alliance
 
Assuring Contact Center Experiences for Your Customers With ThousandEyes
Assuring Contact Center Experiences for Your Customers With ThousandEyesAssuring Contact Center Experiences for Your Customers With ThousandEyes
Assuring Contact Center Experiences for Your Customers With ThousandEyes
ThousandEyes
 
Accelerate your Kubernetes clusters with Varnish Caching
Accelerate your Kubernetes clusters with Varnish CachingAccelerate your Kubernetes clusters with Varnish Caching
Accelerate your Kubernetes clusters with Varnish Caching
Thijs Feryn
 

Recently uploaded (20)

DevOps and Testing slides at DASA Connect
DevOps and Testing slides at DASA ConnectDevOps and Testing slides at DASA Connect
DevOps and Testing slides at DASA Connect
 
How world-class product teams are winning in the AI era by CEO and Founder, P...
How world-class product teams are winning in the AI era by CEO and Founder, P...How world-class product teams are winning in the AI era by CEO and Founder, P...
How world-class product teams are winning in the AI era by CEO and Founder, P...
 
Epistemic Interaction - tuning interfaces to provide information for AI support
Epistemic Interaction - tuning interfaces to provide information for AI supportEpistemic Interaction - tuning interfaces to provide information for AI support
Epistemic Interaction - tuning interfaces to provide information for AI support
 
Dev Dives: Train smarter, not harder – active learning and UiPath LLMs for do...
Dev Dives: Train smarter, not harder – active learning and UiPath LLMs for do...Dev Dives: Train smarter, not harder – active learning and UiPath LLMs for do...
Dev Dives: Train smarter, not harder – active learning and UiPath LLMs for do...
 
Unsubscribed: Combat Subscription Fatigue With a Membership Mentality by Head...
Unsubscribed: Combat Subscription Fatigue With a Membership Mentality by Head...Unsubscribed: Combat Subscription Fatigue With a Membership Mentality by Head...
Unsubscribed: Combat Subscription Fatigue With a Membership Mentality by Head...
 
GenAISummit 2024 May 28 Sri Ambati Keynote: AGI Belongs to The Community in O...
GenAISummit 2024 May 28 Sri Ambati Keynote: AGI Belongs to The Community in O...GenAISummit 2024 May 28 Sri Ambati Keynote: AGI Belongs to The Community in O...
GenAISummit 2024 May 28 Sri Ambati Keynote: AGI Belongs to The Community in O...
 
Quantum Computing: Current Landscape and the Future Role of APIs
Quantum Computing: Current Landscape and the Future Role of APIsQuantum Computing: Current Landscape and the Future Role of APIs
Quantum Computing: Current Landscape and the Future Role of APIs
 
De-mystifying Zero to One: Design Informed Techniques for Greenfield Innovati...
De-mystifying Zero to One: Design Informed Techniques for Greenfield Innovati...De-mystifying Zero to One: Design Informed Techniques for Greenfield Innovati...
De-mystifying Zero to One: Design Informed Techniques for Greenfield Innovati...
 
Key Trends Shaping the Future of Infrastructure.pdf
Key Trends Shaping the Future of Infrastructure.pdfKey Trends Shaping the Future of Infrastructure.pdf
Key Trends Shaping the Future of Infrastructure.pdf
 
Securing your Kubernetes cluster_ a step-by-step guide to success !
Securing your Kubernetes cluster_ a step-by-step guide to success !Securing your Kubernetes cluster_ a step-by-step guide to success !
Securing your Kubernetes cluster_ a step-by-step guide to success !
 
Generative AI Deep Dive: Advancing from Proof of Concept to Production
Generative AI Deep Dive: Advancing from Proof of Concept to ProductionGenerative AI Deep Dive: Advancing from Proof of Concept to Production
Generative AI Deep Dive: Advancing from Proof of Concept to Production
 
Elizabeth Buie - Older adults: Are we really designing for our future selves?
Elizabeth Buie - Older adults: Are we really designing for our future selves?Elizabeth Buie - Older adults: Are we really designing for our future selves?
Elizabeth Buie - Older adults: Are we really designing for our future selves?
 
GDG Cloud Southlake #33: Boule & Rebala: Effective AppSec in SDLC using Deplo...
GDG Cloud Southlake #33: Boule & Rebala: Effective AppSec in SDLC using Deplo...GDG Cloud Southlake #33: Boule & Rebala: Effective AppSec in SDLC using Deplo...
GDG Cloud Southlake #33: Boule & Rebala: Effective AppSec in SDLC using Deplo...
 
UiPath Test Automation using UiPath Test Suite series, part 4
UiPath Test Automation using UiPath Test Suite series, part 4UiPath Test Automation using UiPath Test Suite series, part 4
UiPath Test Automation using UiPath Test Suite series, part 4
 
Free Complete Python - A step towards Data Science
Free Complete Python - A step towards Data ScienceFree Complete Python - A step towards Data Science
Free Complete Python - A step towards Data Science
 
LF Energy Webinar: Electrical Grid Modelling and Simulation Through PowSyBl -...
LF Energy Webinar: Electrical Grid Modelling and Simulation Through PowSyBl -...LF Energy Webinar: Electrical Grid Modelling and Simulation Through PowSyBl -...
LF Energy Webinar: Electrical Grid Modelling and Simulation Through PowSyBl -...
 
The Art of the Pitch: WordPress Relationships and Sales
The Art of the Pitch: WordPress Relationships and SalesThe Art of the Pitch: WordPress Relationships and Sales
The Art of the Pitch: WordPress Relationships and Sales
 
FIDO Alliance Osaka Seminar: The WebAuthn API and Discoverable Credentials.pdf
FIDO Alliance Osaka Seminar: The WebAuthn API and Discoverable Credentials.pdfFIDO Alliance Osaka Seminar: The WebAuthn API and Discoverable Credentials.pdf
FIDO Alliance Osaka Seminar: The WebAuthn API and Discoverable Credentials.pdf
 
Assuring Contact Center Experiences for Your Customers With ThousandEyes
Assuring Contact Center Experiences for Your Customers With ThousandEyesAssuring Contact Center Experiences for Your Customers With ThousandEyes
Assuring Contact Center Experiences for Your Customers With ThousandEyes
 
Accelerate your Kubernetes clusters with Varnish Caching
Accelerate your Kubernetes clusters with Varnish CachingAccelerate your Kubernetes clusters with Varnish Caching
Accelerate your Kubernetes clusters with Varnish Caching
 

Yale Jenkins Show and Tell

  • 1. Yale Jenkins Build and Deploy E Camden Fisher camden.fisher@yale.edu Technical Lead Unix Infrastructure and Virtualization
  • 3. Overview: How does Jenkins make life better? Without Jenkins With Jenkins ● Building is slow, error prone ● "fire and forget", consistent! ● Testing is onerous ● Testing is automated! ● Code coverage is onerous ● Code coverage is automated! ● Bugs caught later ● Bugs caught early and often! ● Devs worry about environments ● Devs worry about code! ● Lack of change control for ● Change control in the right deployments places for deployments! ● Slow progress ● Rapid progress! Agility! ● Different artifact per environment ● Identical artifact per ● Inconsistent configuration per environment! environment ● Identical configuration per ● Deployments are "hard" environments! ● Integration Hell ● Deployments are easy! "Click!" ● Integration Nirvana
  • 4. Continuous Integration Continuous Integration is a software development practice ○ Maintain a Single Source Repository ○ Automate the Build ○ Make Your Build Self-Testing ○ Everyone Commits To the Mainline Every Day ○ Every Commit Should Build the Mainline on an Integration Machine ○ Keep the Build Fast ○ Test in a Clone of the Production Environment ○ Make it Easy for Anyone to Get the Latest Executable ○ Everyone can see what's happening ○ Automate Deployment Avoid "Integration Hell!!"
  • 5. What is Jenkins? Jenkins is an application and a framework that manages and monitors the execution of repeated tasks.
  • 6. Why Jenkins? ● Easy! ● Extensible ● Scalable ● Flexible ● Open Source ● Supported by Cloudbees
  • 7. History Lesson: Application lifecycle is a progression ● Source Code Management ● Maven and Artifactory ● Building and Testing with Jenkins ● Container Configurable artifacts ● Managed deployments with Jenkins
  • 8. Source Control Management ● Islands of SCM begat central SCM (subversion) ○ Single source repository! ○ Easy to get access. ○ Easy to onboard. ○ Easy to support. ○ Everyone wins!
  • 9. Maven and Artifactory ● Maven ○ Project Object Model (POM) ○ Simplifies dependency resolution ("oops I forgot that .jar!") ○ Makes the build process easy and uniform ● Artifactory (Maven Repository) ○ Where do I put my built artifacts? ○ Makes it easy for everyone to get the latest build!
  • 10. Builds without Jenkins ● Builds take a long time ● Automated Testing takes longer! ● Code coverage reports take even longer! ● Result: developers don't build, test or report on their code regularly enough because it's just too time consuming. ● Build environments are not standardized ○ my laptop has a different o/s, jvm, ruby version, gems, libraries, etc than yours ● Mistakes are caught later, harder to debug
  • 11. Builds with Jenkins ● SCM commits automatically kick off a build ○ Automate the build! ● Testing and code coverage is automated and is run on every commit. ○ Makes the Build Self-Testing! ● Broken builds immediately notify the team and the committer (Email, IRC, IM, Taskbar, etc) ● Tests run in a Clone of the Production Environment! ● Everyone can easily see what's happening! ● Developers can get back to coding instead of building and testing. ● Releases are quick and easy
  • 12.
  • 13. Container Configurable Artifacts ● Artifacts were built with configuration information embedded inside them. ○ ie. datasources, CAS service endpoints, etc ○ Artifacts are different per environment! What!? ○ "Oops, I forgot to update that parameter!" ● Externalization of configuration parameters ○ deployable XML ○ Apps self configure with JNDI ● Now we have Container Configurable artifacts ○ The SAME artifact migrates between environments ○ XML configuration data is all that differentiates environments ● Vendor-lock-in-less PaaS plug
  • 14. Deployments without Jenkins ● Choice between loss of control or loss of agility ○ Either devs can edit deployables or they can't ○ Often devs can configure the container ● If they can... ○ Code is deployed, edited and removed without Change Control ○ "I'll clean it up later!" ○ Dev environments quickly diverge from Production ○ Security is compromised ■ Elevated privileges on servers ■ Shell management on servers ● If they can't... ○ Change requests are "slow", systems groups must do everything
  • 15. Deployments with Jenkins ● Consistency! ● Jenkins writes configuration XML ● Developers can deploy to DEV at will ● Eliminate shells, and elevated privileges on servers ● Container is managed by infrastructure with the O/S ● Empowers developers to GTD ● Puts gates at appropriate places ● Changes to the Jenkins jobs require change control ● Frees Systems folks to work on more interesting things ● Workflow integration with Kintana
  • 16.
  • 17.
  • 18.
  • 19.
  • 20.
  • 21.
  • 22. Non-Java languages This all applies to Non-Java projects too! Php ○ Continuous deployment to DEV for Drupal ○ Code coverage and unit testing available Ruby ○ Automated unit testing ○ Automated code coverage ○ Automated deployment coming soon .Net ○ Build, unit test, archive creation
  • 23. The future... ● RBAC + folders ○ delegate responsibility to other systems groups ● More ruby ○ unit testing and code coverage ○ deployments ● Enterprise Service Bus ● Cloud deployments
  • 24. Questions? E Camden Fisher Technical Lead Unix Infrastructure and Virtualization camden.fisher@yale.edu @fishnix