Ultimate DevOps: OpenShift Dedicated With CloudBees Jenkins Platform (Andy Pemberton)

34

Transcript of Ultimate DevOps: OpenShift Dedicated With CloudBees Jenkins Platform (Andy Pemberton)

Page 1: Ultimate DevOps: OpenShift Dedicated With CloudBees Jenkins Platform (Andy Pemberton)
Page 2: Ultimate DevOps: OpenShift Dedicated With CloudBees Jenkins Platform (Andy Pemberton)

Ultimate DevOps: OpenShift & CloudBees Jenkins Platform

Andy Pemberton@apemberton

Page 3: Ultimate DevOps: OpenShift Dedicated With CloudBees Jenkins Platform (Andy Pemberton)

About Andy

Author of DZone Refcard on Jenkins PipelineHands-on Delivery experience on CloudBees Jenkins and Pipelines

Lead CloudBees Solution Architecture and Consulting Teams

@apemberton

Page 4: Ultimate DevOps: OpenShift Dedicated With CloudBees Jenkins Platform (Andy Pemberton)

OpenShift: PaaS by Red Hat, Built on Docker and Kubernetes

Page 5: Ultimate DevOps: OpenShift Dedicated With CloudBees Jenkins Platform (Andy Pemberton)

projectstemplates

applicationsservices

routespods

imagestreamsdeployment

Page 6: Ultimate DevOps: OpenShift Dedicated With CloudBees Jenkins Platform (Andy Pemberton)

$ oc login --token=$foobar --server=https://api.foo.openshift.com

$ oc new-project mobile-development

$ oc project mobile-development

$ oc new-app https://github.com/cloudbees/openshift-example.git

$ oc scale mobile-deposit-ui-1 --replicas=4

Examples

Page 7: Ultimate DevOps: OpenShift Dedicated With CloudBees Jenkins Platform (Andy Pemberton)

$ oc help

Examples

Page 8: Ultimate DevOps: OpenShift Dedicated With CloudBees Jenkins Platform (Andy Pemberton)

OpenShift Web Console

Page 9: Ultimate DevOps: OpenShift Dedicated With CloudBees Jenkins Platform (Andy Pemberton)

Jenkins

Page 10: Ultimate DevOps: OpenShift Dedicated With CloudBees Jenkins Platform (Andy Pemberton)

Easy to Start

java -jar jenkins.war

Page 11: Ultimate DevOps: OpenShift Dedicated With CloudBees Jenkins Platform (Andy Pemberton)

Jenkins Popularity

11/1/2008

02/1/2009

05/1/2009

08/1/2009

11/1/2009

02/1/2010

05/1/2010

08/1/2010

11/1/2010

02/1/2011

05/1/2011

08/1/2011

11/1/2011

02/1/2012

05/1/2012

08/1/2012

11/1/2012

02/1/2013

05/1/2013

08/1/2013

11/1/2013

02/1/2014

05/1/2014

08/1/2014

11/1/2014

02/1/2015

05/1/2015

0

20,000

40,000

60,000

80,000

100,000

120,000

0

1,000,000

2,000,000

3,000,000

4,000,000

5,000,000

6,000,000

7,000,000

Active Jenkins Installations Worldwide

Total Jenkins Jobs Worldwide

http://www.infoq.com/research/ci-server http://stats.jenkins-ci.org/jenkins-stats

Page 12: Ultimate DevOps: OpenShift Dedicated With CloudBees Jenkins Platform (Andy Pemberton)

CloudBees Jenkins Enterprise… part of CloudBees Jenkins Platform

Jenkins for the EnterpriseCommunity Innovation

Page 13: Ultimate DevOps: OpenShift Dedicated With CloudBees Jenkins Platform (Andy Pemberton)

Jenkins + OpenShift: better together

+

Page 14: Ultimate DevOps: OpenShift Dedicated With CloudBees Jenkins Platform (Andy Pemberton)

Jenkins + OpenShift: better together

MASTER

AGENT

AGENT

AGENT

AGENT

AGENT

AGENT

Use case #1: OpenShift as an Elastic Runtime for Jenkins

Page 15: Ultimate DevOps: OpenShift Dedicated With CloudBees Jenkins Platform (Andy Pemberton)

Jenkins + OpenShift: better together

MASTER

Use case #2: OpenShift as deployment target from Jenkins

Page 16: Ultimate DevOps: OpenShift Dedicated With CloudBees Jenkins Platform (Andy Pemberton)

Jenkins + OpenShift: better together

MASTER

AGENT AGENT AGENT

Page 17: Ultimate DevOps: OpenShift Dedicated With CloudBees Jenkins Platform (Andy Pemberton)

Jenkins Pipeline

Page 18: Ultimate DevOps: OpenShift Dedicated With CloudBees Jenkins Platform (Andy Pemberton)

Pipeline: a new Job Type

Page 19: Ultimate DevOps: OpenShift Dedicated With CloudBees Jenkins Platform (Andy Pemberton)

Pipeline: a new Job Type

✓ Concise✓ Long-running✓ Durable✓ Flexible✓ Extensible

19

Page 20: Ultimate DevOps: OpenShift Dedicated With CloudBees Jenkins Platform (Andy Pemberton)

stage 'build' node { checkout scm tool 'mvn-3.3' sh 'mvn clean install' stash name: 'source', excludes: 'target/' }

stage 'test' node { unstash 'source' sh 'mvn verify' }

Page 21: Ultimate DevOps: OpenShift Dedicated With CloudBees Jenkins Platform (Andy Pemberton)
Page 22: Ultimate DevOps: OpenShift Dedicated With CloudBees Jenkins Platform (Andy Pemberton)

Pipeline-as-Code

Page 23: Ultimate DevOps: OpenShift Dedicated With CloudBees Jenkins Platform (Andy Pemberton)

PIPELINE

Page 24: Ultimate DevOps: OpenShift Dedicated With CloudBees Jenkins Platform (Andy Pemberton)

Jenkins Pipeline + OpenShift

Page 25: Ultimate DevOps: OpenShift Dedicated With CloudBees Jenkins Platform (Andy Pemberton)
Page 26: Ultimate DevOps: OpenShift Dedicated With CloudBees Jenkins Platform (Andy Pemberton)

Live Demo.What could go wrong?

Page 27: Ultimate DevOps: OpenShift Dedicated With CloudBees Jenkins Platform (Andy Pemberton)

https://github.com/cloudbees/openshift-example

Page 28: Ultimate DevOps: OpenShift Dedicated With CloudBees Jenkins Platform (Andy Pemberton)

wrap([$class: 'OpenShiftBuildWrapper', url: 'https://api.foobar.openshift.com', credentialsId: 'development-credentials', installation: 'oc-latest']){

...

}

Your OpenShift server API (Origin,

Enterprise, etc.)Credentials for your OpenShift

account (probably a serviceaccount)

CLI version for your OpenShift

Server, defined by a Jenkins Tool

Page 29: Ultimate DevOps: OpenShift Dedicated With CloudBees Jenkins Platform (Andy Pemberton)

wrap([$class: 'OpenShiftBuildWrapper', ... ]){ oc('project mobile-development -q') def bc = oc('get bc -o json') if(!bc.items) { oc("new-app --name=mobile-deposit-ui --code='.’ --image-stream=jboss-webserver30-tomcat8-

openshift") wait('app=mobile-deposit-ui', 5, 'MINUTES') oc('expose service mobile-deposit-ui') } else { oc("start-build mobile-deposit-ui --from-dir=. --

wait") }}

Page 30: Ultimate DevOps: OpenShift Dedicated With CloudBees Jenkins Platform (Andy Pemberton)
Page 31: Ultimate DevOps: OpenShift Dedicated With CloudBees Jenkins Platform (Andy Pemberton)

Additional Resources

https://blog.openshift.com/openshift-cloudbees-jenkins-enterprise-devopshttps://www.cloudbees.com/partners/platform/red-hat

@apemberton

Page 32: Ultimate DevOps: OpenShift Dedicated With CloudBees Jenkins Platform (Andy Pemberton)

www.cloudbees.com/get-started

Page 33: Ultimate DevOps: OpenShift Dedicated With CloudBees Jenkins Platform (Andy Pemberton)

CloudBees Jenkins Platform Editions

Platinum Support Gold Support

Enterprise Edition

Cloud/Container Support

Support and features for running Jenkins @ enterprise scalePrivate SaaS Edition Self-Service Docker-based Elastic & Resilient Private Cloud Analytics Shared Resources

Page 34: Ultimate DevOps: OpenShift Dedicated With CloudBees Jenkins Platform (Andy Pemberton)