build trust in your build to deployment flow
play

Build Trust in Your Build-to-Deployment Flow! Baruch - PowerPoint PPT Presentation

Build Trust in Your Build-to-Deployment Flow! Baruch Sadogursky, JFrog About me Baruch Sadogursky Developer Advocate @JFrog > Job definition (part of): Hang out with the


  1. Build ¡Trust ¡in ¡Your ¡ ¡Build-­‑to-­‑Deployment ¡Flow! ¡ Baruch ¡Sadogursky, ¡JFrog ¡ ¡

  2. About me ü Baruch Sadogursky ü Developer Advocate @JFrog > Job definition (part of): Hang out with the DevOps guys ü @jbaruch QCon ¡London ¡2012 ¡ 2 ¡

  3. Agenda ü The cloud silver bullet ü The right tool for the job ü Binaries all the way ü The black magic of releasing QCon ¡London ¡2012 ¡ 3 ¡

  4. The ¡New ¡Silver ¡Bullet ¡ EVERYTHING ¡*aaS ¡

  5. Why We Need *aaS? ü *aaS features Continuous Delivery QCon ¡London ¡2012 ¡ 5 ¡

  6. Continuous Delivery FTW ü Advantages for the user: > Always on the latest version ü Advantages for the ISV: > Agile > Rapid feedback > Users are the best beta-testers > No long-term support ü Everybody Wins? QCon ¡London ¡2012 ¡ 6 ¡

  7. Almost, except DevOps ü Very frequent releases ü More than one version in production ü Complicated access levels QCon ¡London ¡2012 ¡ 7 ¡

  8. Almost, except DevOps ü Very frequent releases ü More than one version in production ü Complicated access levels QCon ¡London ¡2012 ¡ 8 ¡

  9. Almost, except DevOps ü Root cause analysis > Trace from binaries to sources > Reproduction abilities ü Promotions > Status changes QCon ¡London ¡2012 ¡ 9 ¡

  10. Almost, except DevOps ü Root cause analysis > Trace from binaries to sources > Reproduction abilities ü Promotions > Status changes QCon ¡London ¡2012 ¡ 10 ¡

  11. Sounds Familiar? ü Agile principles applied for DevOps ü We have good tooling for Agile development > Version Control > Unit Testing (and coverage) > Build Servers > Hot Swap tools ü What’s up with tooling for Agile DevOps? QCon ¡London ¡2012 ¡ 11 ¡

  12. Agile Tooling for DevOps Checklist ü Versioning ü Access control ü Traceability ü Promotions ü Tags and annotations ü Search QCon ¡London ¡2012 ¡ 12 ¡

  13. How Do I Know? ü JFrog SaaS offering > Artifactory Online ü We build, release and eat our own dog food > Continuously QCon ¡London ¡2012 ¡ 13 ¡

  14. The ¡Right ¡Tool ¡for ¡the ¡Job ¡ HERE ¡COMES ¡BINARY ¡REPOSITORY ¡

  15. Here Comes Binary Repository ü E.g. Artifactory ü Main feature – Smart Storage ü Much more than passive storage ü Critical for CI and ALM QCon ¡London ¡2012 ¡ 15 ¡

  16. Tooling Chain QCon ¡London ¡2012 ¡ 16 ¡

  17. Artifactory in DevOps Ecosystem QCon ¡London ¡2012 ¡ 17 ¡

  18. Meet ¡ArRfactory ¡ DEMO ¡TIME! ¡

  19. Binaries All the Way ü From some point product in your lifecycle, all you care about is binaries ü Lots of things to do after the software is built QCon ¡London ¡2012 ¡ 19 ¡

  20. The Release Pipeline Source: ¡Agile ¡ALM, ¡Michael ¡Hü4ermann, ¡Manning ¡Publica9ons ¡Co. ¡ ¡ QCon ¡London ¡2012 ¡ 20 ¡

  21. Passing the software to QA ü Different access rights ü Different physical location ü Ability to annotate QCon ¡London ¡2012 ¡ 21 ¡

  22. Staging and Preproduction ü Replication of Production environment > Lock versions of dependencies and artifacts ü Allow access to set of users QCon ¡London ¡2012 ¡ 22 ¡

  23. Going to Production ü Convert staging binaries to production ü Allow public access ü Change settings ü Tag QCon ¡London ¡2012 ¡ 23 ¡

  24. Traceability ü Binaries should be traceable in every stage > Sources > Dependencies > Environment details > Tags ü Where’s the information? > Version Control System > Build Server QCon ¡London ¡2012 ¡ 24 ¡

  25. DevOps ¡ WHAT ¡MY ¡FRIENDS ¡THINK ¡I ¡DO ¡

  26. What Others Think I Do QCon ¡London ¡2012 ¡ 26 ¡

  27. What I Think I Do QCon ¡London ¡2012 ¡ 27 ¡

  28. What I Really Do QCon ¡London ¡2012 ¡ 28 ¡

  29. What I should Do QCon ¡London ¡2012 ¡ 29 ¡

  30. Target: Automation ü It’s impossible to release frequently with manual procedures > While maintaining quality ü Use your binaries storage to release QCon ¡London ¡2012 ¡ 30 ¡

  31. Put ¡your ¡repository ¡to ¡work ¡ THE ¡MAGIC ¡OF ¡RELEASE ¡

  32. Release With Release Candidate ü Your next build is release-candidate ü Once successfully built and tested, click the button > Automatic versions switch › From integration to release > Right place to put your binaries › Move from Staging to Public > Automatic VCS tagging for the release QCon ¡London ¡2012 ¡ 32 ¡

  33. Release With Release Candidate ü Process: 1. Produce and build snapshots until satisfied 2. Once satisfied, build release candidate 3. Stage RC, check and verify 4. Once checked, release QCon ¡London ¡2012 ¡ 33 ¡

  34. Release With Artifactory: Mechanics ü : The Artifactory Jenkins Plugin > Gathers build information > Uploads artifacts in bulk > Uploads build information > Provides bi-directional linking ü Release Management > Changes versions in build script > Allows to Choose repository to deploy to > Creates a VCS tag/branch QCon ¡London ¡2012 ¡ 34 ¡

  35. Release ¡With ¡Release ¡Candidate ¡ DEMO ¡TIME! ¡

  36. OOTB Release Management ü Pros ü Cons > Out of the box > Not flexible > Supports the “by > Not extensible the book” > May not suite release cycle your case > Supports majority of the tools

  37. We Know: We Don’t Know Better ü YMMV (great deal) ü Write your own release logic ü Pre and post build deploy hooks QCon ¡London ¡2012 ¡ 37 ¡

  38. Flexible Release ü Code your release strategy > Versioning scheme > VCS (tagging, branching, commit comments) > Promotion hook (copy/move, comments, status) ü Available by REST QCon ¡London ¡2012 ¡ 38 ¡

  39. Controlling Versioning Scheme ü Classic versioning scheme: > Release version › 2.0.3 > Integration version › 2.0.4-SNAPSHOT ü YMMV > Write your own strategy for versioning > Dynamic Groovy code QCon ¡London ¡2012 ¡ 39 ¡

  40. Example: Promotion of Snapshots ü Sometimes the build takes long time… ü But that’s the silly reason QCon ¡London ¡2012 ¡ 40 ¡

  41. Release With Release Candidate ü Process: 1. Produce and build snapshots until satisfied 2. Once satisfied, build release candidate 3. Stage RC, check and verify 4. Once checked, release QCon ¡London ¡2012 ¡ 41 ¡

  42. Release With Release Candidate ü Process: 1. Produce and build snapshots until satisfied 3. Stage RC, check and verify 4. Once checked, release QCon ¡London ¡2012 ¡ 42 ¡

  43. Release With Release Candidate ü Lots of things can go wrong during one more build ü If we won’t build it, we won’t screw it ü Process: 1. Produce and build snapshots until satisfied 2. When satisfied, check and verify 3. Once checked, release QCon ¡London ¡2012 ¡ 43 ¡

  44. Example: Promotion of Snapshots ü Choose existing build to become a release ü Using REST API without build server ü Invoke Promotion plugin > Convert to next version > Tag, branch, etc. > Promote (copy/move) QCon ¡London ¡2012 ¡ 44 ¡

  45. Plugin ¡What? ¡ CODE ¡TIME! ¡

  46. Plugin Code ü Groovy goodness ü Executed directly in Artifactory ü Uses Public API > Search for artifacts > Search for builds > Copy/Move artifacts > Manipulate files › E.g. change versions in descriptors QCon ¡London ¡2012 ¡ 46 ¡

  47. Plugin Code ü Manipulating Version Control Systems QCon ¡London ¡2012 ¡ 47 ¡

  48. Plugin Code ü Manipulating BuildInfo object QCon ¡London ¡2012 ¡ 48 ¡

  49. Plugin Code ü Creating and replacing artifacts QCon ¡London ¡2012 ¡ 49 ¡

  50. Calling REST API With CURL QCon ¡London ¡2012 ¡ 50 ¡

  51. Calling REST API With CURL http://repo-demo:8080/ artifactory/api/plugins/ build/promote/snapshotToRelease/ gradle-multi-example/1? params=snapExp=d14| targetRepository=gradle-release- local QCon ¡London ¡2012 ¡ 51 ¡

  52. Calling REST API With CURL http://repo-demo:8080/ ArRfactory ¡Server ¡ artifactory/api/plugins/ build/promote/snapshotToRelease/ gradle-multi-example/1? params=snapExp=d14| targetRepository=gradle-release- local QCon ¡London ¡2012 ¡ 52 ¡

  53. Calling REST API With CURL http://repo-demo:8080/ ArRfactory ¡Server ¡ artifactory/api/plugins/ Plugins ¡API ¡ build/promote/snapshotToRelease/ gradle-multi-example/1? params=snapExp=d14| targetRepository=gradle-release- local QCon ¡London ¡2012 ¡ 53 ¡

Download Presentation
Download Policy: The content available on the website is offered to you 'AS IS' for your personal information and use only. It cannot be commercialized, licensed, or distributed on other websites without prior consent from the author. To download a presentation, simply click this link. If you encounter any difficulties during the download process, it's possible that the publisher has removed the file from their server.

Recommend


More recommend