Se ha denunciado esta presentación.
Utilizamos tu perfil de LinkedIn y tus datos de actividad para personalizar los anuncios y mostrarte publicidad más relevante. Puedes cambiar tus preferencias de publicidad en cualquier momento.

Jenkins Workflow Summit London 2015: Kohsuke/Jesse slides

5.361 visualizaciones

Publicado el

http://www.meetup.com/jenkinsmeetup/events/219967721/ slides from Kohsuke & Jesse

Publicado en: Tecnología
  • If we are speaking about saving time and money this site ⇒ www.HelpWriting.net ⇐ is going to be the best option!! I personally used lots of times and remain highly satisfied.
       Responder 
    ¿Estás seguro?    No
    Tu mensaje aparecerá aquí
  • Dating for everyone is here: ♥♥♥ http://bit.ly/2ZDZFYj ♥♥♥
       Responder 
    ¿Estás seguro?    No
    Tu mensaje aparecerá aquí
  • Dating direct: ❶❶❶ http://bit.ly/2ZDZFYj ❶❶❶
       Responder 
    ¿Estás seguro?    No
    Tu mensaje aparecerá aquí

Jenkins Workflow Summit London 2015: Kohsuke/Jesse slides

  1. 1. ©2015 CloudBees, Inc. All Rights Reserved©2015 CloudBees, Inc. All Rights Reserved Workflow in Jenkins Kohsuke Kawaguchi / CTO, CloudBees, Inc. kk@kohsuke.org / @kohsukekawa Jesse Glick / Developer, CloudBees, Inc. @tyvole
  2. 2. ©2015 CloudBees, Inc. All Rights Reserved
  3. 3. ©2015 CloudBees, Inc. All Rights Reserved Use Cases: orchestrated activities • Multi-stage continuous deployment pipeline • Run part of build with a temporary server • Blue/green deployment + auto commit/abort • Parallel tests with automatic sharding • Automatic per-branch jobs (à la Literate)
  4. 4. ©2015 CloudBees, Inc. All Rights Reserved Characteristics • Complex pipelines involving multiple stages • Non-sequential logic such as loops and forks • Long-running builds must survive outages • Interaction with humans pauses, input • Restartable builds in case of a transient error • Reusable definitions to avoid duplication • Comprehensible scripts one clear definition
  5. 5. ©2015 CloudBees, Inc. All Rights Reserved
  6. 6. ©2015 CloudBees, Inc. All Rights Reserved
  7. 7. ©2015 CloudBees, Inc. All Rights Reserved
  8. 8. ©2015 CloudBees, Inc. All Rights Reserved node('linux') { stage 'Dev' git 'https://github.com/me/app.git' sh "${tool 'Maven 3'}/bin/mvn install" parallel regr: {sh './regression-test.sh'}, perf: {sh './performance-test.sh'} input 'All set?' stage name: 'Prod', concurrency: 1 sh './deploy.sh' }
  9. 9. ©2015 CloudBees, Inc. All Rights Reserved Key features (what I already covered) • Entire flow is one concise Groovy script – for-loops, try-finally, fork-join, etc. • Can restart Jenkins while flow is running • Human input/approval integrated into flow
  10. 10. ©2015 CloudBees, Inc. All Rights Reserved More key features • Allocate slave nodes and workspaces – as many as you like, when you like • Standard project concepts: SCM, artifacts, …
  11. 11. ©2015 CloudBees, Inc. All Rights Reserved Design: workflow in VCS (1) • Load the script from another file • In repository node { git 'https://github.com/acme/foo.git' load 'jenkins.groovy' } pom.xml src jenkins.groovy ...
  12. 12. ©2015 CloudBees, Inc. All Rights Reserved Design: workflow in VCS (2) • Load the whole script from repository • Job definition contains no Groovy
  13. 13. ©2015 CloudBees, Inc. All Rights Reserved Design: workflow in VCS (3) • Shared workflow scripts/utilities in Git • Your job just needs to have this Git org.acme.MyWorkflow.run(this)
  14. 14. ©2015 CloudBees, Inc. All Rights Reserved Stages (aka James Nord operator) • Pipeline throttling primitive • Special semaphore: only newest build may wait time builds build build build selenium tests selenium tests selenium tests build selenium tests deployment deployment build build selenium tests deployment all but deployment phase runs in parallel deployment still runs as fast as it can canceled
  15. 15. ©2015 CloudBees, Inc. All Rights Reserved Build #153Build #153
  16. 16. ©2015 CloudBees, Inc. All Rights Reserved foo() void foo() { try { sh 'sleep 1h' } finally { sh 'rm -rf *.tmp' } }
  17. 17. ©2015 CloudBees, Inc. All Rights Reserved Resumption of Groovy flows • Transformed to “continuation-passing style” • Run on custom interpreter of Groovy – on master; includes security checks • State of program saved at each pause point • Variables serialized and restored after restart
  18. 18. ©2015 CloudBees, Inc. All Rights Reserved Resumed builds to the user • It “just works” • (Serializable) local variables restored too • Shell-like steps survive restart – Reconnection of slave, too
  19. 19. ©2015 CloudBees, Inc. All Rights Reserved
  20. 20. ©2015 CloudBees, Inc. All Rights Reserved Jenkins Enterprise by CloudBees • CloudBees’ value-added Jenkins distro – Support & additional plugins • Resume from checkpoint – Can pick up artifacts from original build – No need to rerun earlier expensive steps • Visualization – “Stage” view of pipelines – More planned later • Templates – Define script in template, use attributes
  21. 21. ©2015 CloudBees, Inc. All Rights Reserved Demo
  22. 22. ©2015 CloudBees, Inc. All Rights Reserved Still to come • more plugin integrations • lots of little RFEs & bugs • easier script syntax, editing • workspace management • multibranch projects? • matrix project equivalent? • much more, tracked in JIRA
  23. 23. ©2015 CloudBees, Inc. All Rights Reserved Status • Open for contribution • github.com/jenkinsci/workflow-plugin • 1.3 current release • Requires Jenkins 1.580.x+ today • Under active development
  24. 24. ©2015 CloudBees, Inc. All Rights Reserved Summary • Simplifies complex orchestration • Define everything in single job • Workflow as Groovy code • Survives JVM loss, and even restartable • Extensible • github.com/jenkinsci/workflow-plugin
  25. 25. ©2015 CloudBees, Inc. All Rights Reserved
  26. 26. ©2015 CloudBees, Inc. All Rights Reserved Design: flows • persistent record of execution • directed acyclic graph of nodes • some nodes represent one step • others indicate block start/stop structure • nodes may have associated metadata – console log fragment contributes to main log • pluggable visualizations for different views
  27. 27. ©2015 CloudBees, Inc. All Rights Reserved Design: steps • standalone API for asynchronous build steps • context serves as an identifier & callback – also offers logger, build, workspace, &c. • support for block-structured steps – invoke body 0+ times with revised context • standard step for “durable” shell/batch scripts • standard steps for SCMs (git, svn, other) – >1 SCM per build possible
  28. 28. ©2015 CloudBees, Inc. All Rights Reserved Design: interoperability • run on existing Jenkins slaves • SCM plugins supported with modest changes • some existing build steps & publishers – “build wrappers” coming (1.599+) • trigger existing jobs • standard build history, artifacts • needs Jenkins 1.580.x or later – features factored out of standard projects

×