Upgrade to Pro — share decks privately, control downloads, hide ads and more …

A Continuous Journey with Jenkins

A Continuous Journey with Jenkins

Twistlock

March 28, 2019
Tweet

More Decks by Twistlock

Other Decks in Technology

Transcript

  1. Meet Me David B. Schott Sr. Biz Dev Eng /

    Partner SA CloudBees, Inc. 2 dbschott schottsfired
  2. Meet Jenkins -An open source automation server -Facilitates Continuous Integration

    (CI) and Continuous Delivery (CD) -Flexible and extensible with 1550+ Plugins 3
  3. CI/CD instructions as code Durable Resumable Auditable Reviewable Programmatic Shareable

    Convert to Pipeline! //Jenkinsfile.groovy pipeline { agent { docker 'maven:3-alpine' } stages { stage('Example Build') { steps { sh 'mvn -B clean verify' } } } }
  4. A DevSecOps Blue Ocean Pipeline.. “It’s at this point in

    our journey that we can implement DevSecOps, like so” 13
  5. - No more load issues - Failures are less impactful

    - Teams have their own - Plugins - Configurations - Build queue Scale Masters!
  6. - Optimizing agent resources - Difficulties - Managing - Securing

    - Governing - Operationalizing Scaling Challenges
  7. CloudBees Core https://www.cloudbees.com/products/cloudbees-core 17 Jenkins Operations Center Jenkins Master Project

    Team 1 Jenkins Master Project Team 2 Jenkins Master Project Team 3 Jenkins Master Project Team 4 Build Agent Build Agent Build Agent Build Agent Build Agent Build Agent RBAC LDAP Plugin Catalog Shared Agents
  8. - Fault tolerant by default - Small and nimble -

    Fewer moving pieces during upgrades - Bin packing Masters in Kubernetes
  9. - Launched on demand, as capacity allows - May be

    defined by end users - Simplified tooling and dependency management - Steps are run in containers - Shared workspace Agents in Kubernetes //Jenkinsfile.groovy pipeline { agent { kubernetes { //cloud 'kubernetes' label 'mypod' yaml """ apiVersion: v1 kind: Pod spec: containers: - name: maven image: maven:3.3.9-jdk-8-alpine command: ['cat'] tty: true """ } } stages { stage('Run Maven') { steps { container('maven') { sh 'mvn -version' } } } } }
  10. - How do we treat masters as cattle, not pets?

    - How do we leverage Cloud services? - How do we onboard new apps more quickly? - What does K8s-native CD look like? Cloud Native Thinking
  11. Webhook “The world is envisioned as a repo and not

    as a kubernetes installation" - Kelsey Hightower GitOps Pattern 22 Desired State Operator Apply
  12. - Goal: eliminate the need for jenkins_home - How? -

    Artifact Manager for S3 - Kubernetes Credentials Provider - Logs → Elasticsearch, Fluentd, CloudWatch - Many more, WiP Pluggable Storage /jenkins_home /jobs /plugins ... https://jenkins.io/sigs/cloud-native/pluggable-storage/
  13. Summary / Next Steps - Reach out to CloudBees to

    learn more! - Jenkins: Shifting Gears by Kohsuke Kawaguchi (CTO) - 8/31/18 - CloudBees and Jenkins Update by Christina Noren (CPO) - 3/11/19 Thank you! Questions?