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

A Continuous Journey with Jenkins

A Continuous Journey with Jenkins

Avatar for Twistlock

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?