SlideShare a Scribd company logo
1 of 76
Download to read offline
The Brave New World of Continuous Release


          Baruch, JFrog
About me

 Baruch
 Developer Advocate @JFrog
  > Job definition (part of):
    Hang out with the DevOps guys
 @jbaruch




                                    2
Agenda

   The cloud silver bullet
   The right tool for the job
   Binaries all the way
   The magic of release




                                 3
Everything *aas
The New Silver Bullet
What’s So Good About *aaS?

 *aaS features Continuous Delivery




                                      5
Continuous Delivery FTW

 User advantages
  > Latest version/features
  > No upgrades/maintenance
 Developer advantages
  > Agile
  > Rapid feedback
  > Users are the best beta-testers
  > No long-term support
 Everybody wins?

                                      6
Almost, except the IT

 Used to quarterly release cycles
 “Secure” pace
 Minimizing the entropy caused by
  developers with ADD




                                     7
Herding Cats

Developers
  > Increasing entropy

             +
IT (operations)
  > Maintaining stability

             =
DevOps
  > Stable change
Continuous Delivery Challenge

   Very frequent releases
   More than one version in production
   Complicated access levels
   Root cause analysis
    > Tracing from binaries to source
 Version tracking
 Not everyone is ready for CD


                                        9
Continuous Delivery Challenge

   Very frequent releases
   More than one version in production
   Complicated access levels
   Root cause analysis
    > Tracing from binaries to source
 Version tracking
 Not everyone is ready for CD


                                        10
It’s… Agile!

 Agile principles applied for DevOps
 We have good tooling for Agile
  development
  > Version control
  > Unit testing and code coverage
  > CI servers
  > Hot swap tools
 What’s up with tooling for agile DevOps?

                                     11
Agile Tooling for DevOps Checklist

 Versioning
 Access control
 Traceability
 Promotions
 Tags and
  annotations
 Search


                                12
How Do I Know?

 Artifactory is released
  with Artifactory
 JFrog SaaS offering
  > Artifactory Online
  > Gradle, Grails, SpringSource,
    Typesafe, Jenkins, etc.

 We build, release and
  eat our own dog food
  > Continuously




                                    13
Here Comes Binary Repository
The Right Tool for the Job
Here Comes Binary Repository

 E.g. Artifactory
 Proxy
 Smart storage
  > Much more than a passive space
 Critical for CI/CD and ALM




                                     15
Tooling Chain
In the Beginning it was…
Binary Repo in DevOps Ecosystem
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




                                     19
The Release Pipeline




Source: Agile ALM, Michael Hüttermann, Manning Publications Co.
Passing the software to QA

 Different access rights
 Different physical location
 Ability to annotate




                                21
Staging and Preproduction

 Replication of Production environment
  > Lock versions of dependencies and artifacts
 Allow access to set of users




                                        22
Going to Production

   Convert staging binaries to production
   Allow public access
   Change settings
   Tag




                                     23
Traceability
Why and How?
The Time Machine

 Sometimes you need to go back in time
Quest for Traceability

 What should be restored?
  > Sources
  > Dependencies
  > Environment details
  > Tags
 Where’s the information?
  > Version control system
  > Build Tool
  > Build server

                             26
Rebuilding from Sources

 Checkout branch/tag/revision
 Build
 Done!

 Time consuming
 Unstable



                                 27
Dependencies Lie

 Dependency Descriptors aren’t stable




                                  28
Evil Dependencies Resolution

 POMs deployed
  with variables
  > Ivy is OK
 Resolution
  strategies change
  over time




                               29
Single Source of Truth

 Record information on spot
  > When binaries are created


 Build Server




                                30
Single Target of Truth

 Truth should be saved…
 … with the binaries…
 … in binaries storage!




                           31
Open Standard Of Truth

   Bill of Materials
   JSON
   REST accessible
   API accessible
   APLv2 on GitHub




                         32
Build Server Plugin

 Build information
  > Resolved and realized during the build
  > Attached to the artifacts
  > Uploaded with the
    artifacts




                Artifacts + Build Info = 4eva!!11

                                             33
Demo Time!
Tracing Artifacts
What my friends think I do
DevOps
What Others Think I Do




                         36
What I Think I Do




                    37
What I Really Do




                   38
What I Really Do




                   39
What I should Do
Target: Automation

 It’s impossible to release frequently with
  manual procedures
  > While maintaining quality
 Use your binaries storage to release
The magic of Release
Put your repository to work
Release Candidates

 Your next build is a 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


                                       43
Releasing with Release Candidates

 Process:
  1.   Produce and build snapshots until satisfied
  2.   Once satisfied, build a release candidate
  3.   Stage RC, check and verify
  4.   Once verified, release




                                          44
Releasing With Artifactory Plugin

 Changes versions in build script
 Allows choosing a target deploy
  repository
 Creates a VCS tag/branch




                                     45
Demo time!
Release With Release Candidates
OOTB Release Management

 Pros                  Cons
  > Out of the box      > Limited
  > Supports the “by      extensibility
    the book”           > May not fit your
    release cycle         requirements
  > Supports
    majority of the
    tools
Releasing with Release Candidates

 Process:
  1.   Produce and build snapshots until satisfied
  2.   Once satisfied, build a release candidate
  3.   Stage RC, check and verify
  4.   Once checked, release




                                          48
Releasing with Release Candidates

 Process:
  1.   Produce and build snapshots until satisfied
  2.   Once satisfied, build release candidate
  3.   Stage RC, check and verify
  4.   Once checked, release




                             Redundant build

                                          49
Releasing with Release Candidates?
Releasing with Release Candidates?

 Lots of things can go wrong during one
  more build
 If we won’t build it, we won’t screw it
 Revised Process:
  1. Produce and build snapshots until satisfied
  2. When satisfied, check and verify
  3. Once checked, release



                                        51
Automation Flexibility

 We Know: We Don’t Know Better
 YMMV (great deal)       Write your own
                           release logic
                          Pre and post build
                           deploy hooks
Controlling Versioning Scheme

 Classic versioning scheme:
  > Release version
  > 2.0.3
  > Integration version
  > 2.0.4-SNAPSHOT
 YMMV




                                53
Flexible Release

 Code your release strategy
  > Versioning scheme
  > VCS (tagging, branching, commit comments)
  > Promotion hook (copy/move, comments,
    status)
 Available by REST




                                     54
REST == Scriptability == Automation

 It’s impossible to release frequently with
  manual procedures
  > While maintaining quality
 Use your scriptable binaries storage to
  release
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)



                                   56
Code time!
Plugin What?
Pluggable Architecture with DSLs

   Artifactory is open for user plugins
   Groovy groovy DSL
   Your code runs inside the server
   Uses Public API (PAPI)
    > Search for artifacts
    > Search for builds
    > Copy/move artifacts
    > Manipulate files
    > E.g. change versions in descriptors


                                            58
Community Effort
 https://github.com/JFrogDev/artifactory-user-plugins




                                             59
Plugin Invocation Options

 As a response for various events
  > Download/Create/Delete
  > Login
  > Release
 Scheduled
 On demand




                                     60
Plugin Code




 Manipulating Version Control Systems
Plugin Code




 Manipulating BuildInfo object
Plugin Code




 Creating and replacing artifacts
Calling REST API With CURL
                                                                                                                                                                            al
                                                                                                                                                                          oc
                                                                                                                                                                       e-l
                                                                                                                                                                     as
                                                                                                                                                                   le
                                                                                                                                                                -re
                                                                                                                                                              le
                                                                                                                                                            ad
                                                                                                                                                         =gr
                                                                                                                                                      ry
                                                                                                                                                    to
                                                                                                                                                 osi
                                                                                                                                               ep
                                                                                                                                             tR
                                                                                                                                          rge
                                                                                                                                        ta
                                                                                                                                     4|
                                                                                                                                  =d1
                                                                                                                                xp
                                                                                                                              pE
                                                                                                                           sna
                                                                                                                     m   s=
                                                                                                                   ra
                                                                                                                 pa
                                                                                                              /1?
                                                                                                            le
                                                                                                          mp
                                                                                                        xa
                                                                                                  i   -e
                                                                                                lt
                                                                                              mu
                                                                                           le-
                                                                                         ad
                                                                                       gr
                                                                                 s   e/
                                                                               ea
                                                                             el
                                                                           oR
                                                                         tT
                                                                       ho
                                                                    aps
                                                                  sn
                                                               e/
                                                            mot
                                                          ro
                                                        /p
                                                     ild
                                                   bu
                                                s/
                                             gin
                                           lu
                                         /p
                                      api
                                    y/
                                  or
                              act
                            if
                          rt
                       0/a
                     08
               o   :8
             em
           -d
        epo
      /r
    :/
  tp
ht




                                                                                                                                              64
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


                             65
Calling REST API With CURL

http://repo-demo:8080/   Artifactory server

artifactory/api/plugins/
build/promote/snapshotToRelease/
gradle-multi-example/1?
params=snapExp=d14|
targetRepository=gradle-release-
local


                                    66
Calling REST API With CURL

http://repo-demo:8080/   Artifactory server

artifactory/api/plugins/       Plugins API

build/promote/snapshotToRelease/
gradle-multi-example/1?
params=snapExp=d14|
targetRepository=gradle-release-
local


                                    67
Calling REST API With CURL

http://repo-demo:8080/   Artifactory server

artifactory/api/plugins/       Plugins API

build/promote/snapshotToRelease/
                               Plugin name

gradle-multi-example/1?
params=snapExp=d14|
targetRepository=gradle-release-
local


                                    68
Calling REST API With CURL

http://repo-demo:8080/    Artifactory server

artifactory/api/plugins/        Plugins API

build/promote/snapshotToRelease/Plugin name

gradle-multi-example/1? Build name and number
params=snapExp=d14|
targetRepository=gradle-release-
local


                                    69
Calling REST API With CURL

http://repo-demo:8080/       Artifactory server

artifactory/api/plugins/           Plugins API

build/promote/snapshotToRelease/   Plugin name

gradle-multi-example/1? Build name and number
params=snapExp=d14|    versioning scheme

targetRepository=gradle-release-
local


                                     70
Calling REST API With CURL

http://repo-demo:8080/                  Artifactory server

artifactory/api/plugins/                      Plugins API

build/promote/snapshotToRelease/              Plugin name

gradle-multi-example/1? Build name and number
params=snapExp=d14|              versioning scheme

targetRepository=gradle-release-
local          Target repository for release




                                              71
Recap: Promotion of Snapshots

 Choose existing build to become a
  release
 Using the REST API without building
 Invoking the promotion plugin
  > Convert to next version
  > Tag, branch, etc.
  > Promote (copy/move)



                                   72
Demo time!
Release by Snapshot Promotion
4 Commandments of DevOps

 Automate
  everything
 Version
  everything
 Trace everything
 Report/Log/Feed
  back everything    Designed by Jessica Allen on Dribbble.com




                                                     74
4 Commandments of DevOps

 Automate
  everything
 Version
  everything
 Trace everything
 Report/Log/Feed
  back everything    Designed by Jessica Allen on Dribbble.com




                                                     75
The Brave New World of Continuous Release

More Related Content

What's hot

Team Development and Release Management
Team Development and Release ManagementTeam Development and Release Management
Team Development and Release ManagementSalesforce Partners
 
Continuous Delivery Applied (Agile Richmond)
Continuous Delivery Applied (Agile Richmond)Continuous Delivery Applied (Agile Richmond)
Continuous Delivery Applied (Agile Richmond)Mike McGarr
 
Devops interview-questions-PDF
Devops interview-questions-PDFDevops interview-questions-PDF
Devops interview-questions-PDFMayank Kumar
 
TMF2014 CI-CD Workshop Michael Palotas
TMF2014 CI-CD Workshop Michael PalotasTMF2014 CI-CD Workshop Michael Palotas
TMF2014 CI-CD Workshop Michael PalotasKJR
 
Ci jenkins maven svn
Ci jenkins maven svnCi jenkins maven svn
Ci jenkins maven svnAnkur Goyal
 
Devops interview questions 1 www.bigclasses.com
Devops interview questions  1  www.bigclasses.comDevops interview questions  1  www.bigclasses.com
Devops interview questions 1 www.bigclasses.combigclasses.com
 
Continuous Delivery Applied (AgileDC)
Continuous Delivery Applied (AgileDC)Continuous Delivery Applied (AgileDC)
Continuous Delivery Applied (AgileDC)Mike McGarr
 
Ordina Accelerator program 2019 - DevOps CI-CD
Ordina Accelerator program 2019 - DevOps CI-CDOrdina Accelerator program 2019 - DevOps CI-CD
Ordina Accelerator program 2019 - DevOps CI-CDBert Koorengevel
 
Codecamp 2020 microservices made easy workshop
Codecamp 2020 microservices made easy workshopCodecamp 2020 microservices made easy workshop
Codecamp 2020 microservices made easy workshopJamie Coleman
 
DevOps Interview Questions Part - 2 | Devops Interview Questions And Answers ...
DevOps Interview Questions Part - 2 | Devops Interview Questions And Answers ...DevOps Interview Questions Part - 2 | Devops Interview Questions And Answers ...
DevOps Interview Questions Part - 2 | Devops Interview Questions And Answers ...Simplilearn
 
Ordina Accelerator program 2019 - Jenkins blue ocean pipelines
Ordina Accelerator program 2019 - Jenkins blue ocean pipelinesOrdina Accelerator program 2019 - Jenkins blue ocean pipelines
Ordina Accelerator program 2019 - Jenkins blue ocean pipelinesBert Koorengevel
 
Containerize your Blackbox tests
Containerize your Blackbox testsContainerize your Blackbox tests
Containerize your Blackbox testsKevin Beeman
 
Labri 2021-invited-talk
Labri 2021-invited-talkLabri 2021-invited-talk
Labri 2021-invited-talkvschiavoni
 
DevOps and Microservice
DevOps and MicroserviceDevOps and Microservice
DevOps and MicroserviceInho Kang
 

What's hot (19)

Team Development and Release Management
Team Development and Release ManagementTeam Development and Release Management
Team Development and Release Management
 
Continuous Delivery Applied (Agile Richmond)
Continuous Delivery Applied (Agile Richmond)Continuous Delivery Applied (Agile Richmond)
Continuous Delivery Applied (Agile Richmond)
 
Devops interview-questions-PDF
Devops interview-questions-PDFDevops interview-questions-PDF
Devops interview-questions-PDF
 
TMF2014 CI-CD Workshop Michael Palotas
TMF2014 CI-CD Workshop Michael PalotasTMF2014 CI-CD Workshop Michael Palotas
TMF2014 CI-CD Workshop Michael Palotas
 
Ci jenkins maven svn
Ci jenkins maven svnCi jenkins maven svn
Ci jenkins maven svn
 
Build server
Build serverBuild server
Build server
 
Devops interview questions 1 www.bigclasses.com
Devops interview questions  1  www.bigclasses.comDevops interview questions  1  www.bigclasses.com
Devops interview questions 1 www.bigclasses.com
 
Continuous Delivery Applied (AgileDC)
Continuous Delivery Applied (AgileDC)Continuous Delivery Applied (AgileDC)
Continuous Delivery Applied (AgileDC)
 
Ordina Accelerator program 2019 - DevOps CI-CD
Ordina Accelerator program 2019 - DevOps CI-CDOrdina Accelerator program 2019 - DevOps CI-CD
Ordina Accelerator program 2019 - DevOps CI-CD
 
Codecamp 2020 microservices made easy workshop
Codecamp 2020 microservices made easy workshopCodecamp 2020 microservices made easy workshop
Codecamp 2020 microservices made easy workshop
 
DevOps Interview Questions Part - 2 | Devops Interview Questions And Answers ...
DevOps Interview Questions Part - 2 | Devops Interview Questions And Answers ...DevOps Interview Questions Part - 2 | Devops Interview Questions And Answers ...
DevOps Interview Questions Part - 2 | Devops Interview Questions And Answers ...
 
Ordina Accelerator program 2019 - Jenkins blue ocean pipelines
Ordina Accelerator program 2019 - Jenkins blue ocean pipelinesOrdina Accelerator program 2019 - Jenkins blue ocean pipelines
Ordina Accelerator program 2019 - Jenkins blue ocean pipelines
 
Svn tutorial
Svn tutorialSvn tutorial
Svn tutorial
 
Subversion and bug tracking
Subversion and bug trackingSubversion and bug tracking
Subversion and bug tracking
 
Containerize your Blackbox tests
Containerize your Blackbox testsContainerize your Blackbox tests
Containerize your Blackbox tests
 
Devenv command line
Devenv command lineDevenv command line
Devenv command line
 
Labri 2021-invited-talk
Labri 2021-invited-talkLabri 2021-invited-talk
Labri 2021-invited-talk
 
DevOps and Microservice
DevOps and MicroserviceDevOps and Microservice
DevOps and Microservice
 
svn
svnsvn
svn
 

Viewers also liked

Writing Plugged-in Java EE Apps: Jason Lee
Writing Plugged-in Java EE Apps: Jason LeeWriting Plugged-in Java EE Apps: Jason Lee
Writing Plugged-in Java EE Apps: Jason Leejaxconf
 
JavaScript: Your New Overlord
JavaScript: Your New OverlordJavaScript: Your New Overlord
JavaScript: Your New Overlordjaxconf
 
Hacking JavaFX with Groovy, Clojure, Scala, and Visage: Stephen Chin
Hacking JavaFX with Groovy, Clojure, Scala, and Visage: Stephen ChinHacking JavaFX with Groovy, Clojure, Scala, and Visage: Stephen Chin
Hacking JavaFX with Groovy, Clojure, Scala, and Visage: Stephen Chinjaxconf
 
Java EE Web Security By Example: Frank Kim
Java EE Web Security By Example: Frank KimJava EE Web Security By Example: Frank Kim
Java EE Web Security By Example: Frank Kimjaxconf
 
Cloud development goes lightweight - Ken Walker
Cloud development goes lightweight - Ken WalkerCloud development goes lightweight - Ken Walker
Cloud development goes lightweight - Ken Walkerjaxconf
 
The Road to Lambda - Mike Duigou
The Road to Lambda - Mike DuigouThe Road to Lambda - Mike Duigou
The Road to Lambda - Mike Duigoujaxconf
 
The lean startup for enterprise Java developers - Peter Bell
The lean startup for enterprise Java developers - Peter BellThe lean startup for enterprise Java developers - Peter Bell
The lean startup for enterprise Java developers - Peter Belljaxconf
 
Amazon Web Services and PaaS - Enterprise Java for the Cloud Era? - Mark Pric...
Amazon Web Services and PaaS - Enterprise Java for the Cloud Era? - Mark Pric...Amazon Web Services and PaaS - Enterprise Java for the Cloud Era? - Mark Pric...
Amazon Web Services and PaaS - Enterprise Java for the Cloud Era? - Mark Pric...jaxconf
 
The Play Framework at LinkedIn: productivity and performance at scale - Jim B...
The Play Framework at LinkedIn: productivity and performance at scale - Jim B...The Play Framework at LinkedIn: productivity and performance at scale - Jim B...
The Play Framework at LinkedIn: productivity and performance at scale - Jim B...jaxconf
 
CPU Caches - Jamie Allen
CPU Caches - Jamie AllenCPU Caches - Jamie Allen
CPU Caches - Jamie Allenjaxconf
 
Living on the edge at Netflix - Adrian Cole
Living on the edge at Netflix - Adrian ColeLiving on the edge at Netflix - Adrian Cole
Living on the edge at Netflix - Adrian Colejaxconf
 
Creating Data Driven Web Apps with BIRT - Michael Williams
Creating Data Driven Web Apps with BIRT - Michael WilliamsCreating Data Driven Web Apps with BIRT - Michael Williams
Creating Data Driven Web Apps with BIRT - Michael Williamsjaxconf
 
Apache TomEE, Java EE 6 Web Profile on Tomcat - David Blevins
Apache TomEE, Java EE 6 Web Profile on Tomcat - David BlevinsApache TomEE, Java EE 6 Web Profile on Tomcat - David Blevins
Apache TomEE, Java EE 6 Web Profile on Tomcat - David Blevinsjaxconf
 
How cloud and in memory computing revolutionised enterprise development - Ste...
How cloud and in memory computing revolutionised enterprise development - Ste...How cloud and in memory computing revolutionised enterprise development - Ste...
How cloud and in memory computing revolutionised enterprise development - Ste...jaxconf
 
Considerations for using NoSQL technology on your next IT project - Akmal Cha...
Considerations for using NoSQL technology on your next IT project - Akmal Cha...Considerations for using NoSQL technology on your next IT project - Akmal Cha...
Considerations for using NoSQL technology on your next IT project - Akmal Cha...jaxconf
 
Beautiful REST and JSON APIs - Les Hazlewood
Beautiful REST and JSON APIs - Les HazlewoodBeautiful REST and JSON APIs - Les Hazlewood
Beautiful REST and JSON APIs - Les Hazlewoodjaxconf
 
Mocha Raspberry Pi hacking - Stephen Chin
Mocha Raspberry Pi hacking - Stephen ChinMocha Raspberry Pi hacking - Stephen Chin
Mocha Raspberry Pi hacking - Stephen Chinjaxconf
 

Viewers also liked (17)

Writing Plugged-in Java EE Apps: Jason Lee
Writing Plugged-in Java EE Apps: Jason LeeWriting Plugged-in Java EE Apps: Jason Lee
Writing Plugged-in Java EE Apps: Jason Lee
 
JavaScript: Your New Overlord
JavaScript: Your New OverlordJavaScript: Your New Overlord
JavaScript: Your New Overlord
 
Hacking JavaFX with Groovy, Clojure, Scala, and Visage: Stephen Chin
Hacking JavaFX with Groovy, Clojure, Scala, and Visage: Stephen ChinHacking JavaFX with Groovy, Clojure, Scala, and Visage: Stephen Chin
Hacking JavaFX with Groovy, Clojure, Scala, and Visage: Stephen Chin
 
Java EE Web Security By Example: Frank Kim
Java EE Web Security By Example: Frank KimJava EE Web Security By Example: Frank Kim
Java EE Web Security By Example: Frank Kim
 
Cloud development goes lightweight - Ken Walker
Cloud development goes lightweight - Ken WalkerCloud development goes lightweight - Ken Walker
Cloud development goes lightweight - Ken Walker
 
The Road to Lambda - Mike Duigou
The Road to Lambda - Mike DuigouThe Road to Lambda - Mike Duigou
The Road to Lambda - Mike Duigou
 
The lean startup for enterprise Java developers - Peter Bell
The lean startup for enterprise Java developers - Peter BellThe lean startup for enterprise Java developers - Peter Bell
The lean startup for enterprise Java developers - Peter Bell
 
Amazon Web Services and PaaS - Enterprise Java for the Cloud Era? - Mark Pric...
Amazon Web Services and PaaS - Enterprise Java for the Cloud Era? - Mark Pric...Amazon Web Services and PaaS - Enterprise Java for the Cloud Era? - Mark Pric...
Amazon Web Services and PaaS - Enterprise Java for the Cloud Era? - Mark Pric...
 
The Play Framework at LinkedIn: productivity and performance at scale - Jim B...
The Play Framework at LinkedIn: productivity and performance at scale - Jim B...The Play Framework at LinkedIn: productivity and performance at scale - Jim B...
The Play Framework at LinkedIn: productivity and performance at scale - Jim B...
 
CPU Caches - Jamie Allen
CPU Caches - Jamie AllenCPU Caches - Jamie Allen
CPU Caches - Jamie Allen
 
Living on the edge at Netflix - Adrian Cole
Living on the edge at Netflix - Adrian ColeLiving on the edge at Netflix - Adrian Cole
Living on the edge at Netflix - Adrian Cole
 
Creating Data Driven Web Apps with BIRT - Michael Williams
Creating Data Driven Web Apps with BIRT - Michael WilliamsCreating Data Driven Web Apps with BIRT - Michael Williams
Creating Data Driven Web Apps with BIRT - Michael Williams
 
Apache TomEE, Java EE 6 Web Profile on Tomcat - David Blevins
Apache TomEE, Java EE 6 Web Profile on Tomcat - David BlevinsApache TomEE, Java EE 6 Web Profile on Tomcat - David Blevins
Apache TomEE, Java EE 6 Web Profile on Tomcat - David Blevins
 
How cloud and in memory computing revolutionised enterprise development - Ste...
How cloud and in memory computing revolutionised enterprise development - Ste...How cloud and in memory computing revolutionised enterprise development - Ste...
How cloud and in memory computing revolutionised enterprise development - Ste...
 
Considerations for using NoSQL technology on your next IT project - Akmal Cha...
Considerations for using NoSQL technology on your next IT project - Akmal Cha...Considerations for using NoSQL technology on your next IT project - Akmal Cha...
Considerations for using NoSQL technology on your next IT project - Akmal Cha...
 
Beautiful REST and JSON APIs - Les Hazlewood
Beautiful REST and JSON APIs - Les HazlewoodBeautiful REST and JSON APIs - Les Hazlewood
Beautiful REST and JSON APIs - Les Hazlewood
 
Mocha Raspberry Pi hacking - Stephen Chin
Mocha Raspberry Pi hacking - Stephen ChinMocha Raspberry Pi hacking - Stephen Chin
Mocha Raspberry Pi hacking - Stephen Chin
 

Similar to The Brave New World of Continuous Release

FooConf23_Bringing the cloud back down to earth.pptx
FooConf23_Bringing the cloud back down to earth.pptxFooConf23_Bringing the cloud back down to earth.pptx
FooConf23_Bringing the cloud back down to earth.pptxGrace Jansen
 
Continuos Integration and Delivery: from Zero to Hero with TeamCity, Docker a...
Continuos Integration and Delivery: from Zero to Hero with TeamCity, Docker a...Continuos Integration and Delivery: from Zero to Hero with TeamCity, Docker a...
Continuos Integration and Delivery: from Zero to Hero with TeamCity, Docker a...Lean IT Consulting
 
DevOps at Amazon: A Look at Our Tools and Processes
DevOps at Amazon: A Look at Our Tools and ProcessesDevOps at Amazon: A Look at Our Tools and Processes
DevOps at Amazon: A Look at Our Tools and ProcessesAmazon Web Services
 
Jfokus_Bringing the cloud back down to earth.pptx
Jfokus_Bringing the cloud back down to earth.pptxJfokus_Bringing the cloud back down to earth.pptx
Jfokus_Bringing the cloud back down to earth.pptxGrace Jansen
 
DevOps at Amazon: A Look at Our Tools and Processes
DevOps at Amazon: A Look at Our Tools and ProcessesDevOps at Amazon: A Look at Our Tools and Processes
DevOps at Amazon: A Look at Our Tools and ProcessesAmazon Web Services
 
Continuous deployment of polyglot microservices: A practical approach
Continuous deployment of polyglot microservices: A practical approachContinuous deployment of polyglot microservices: A practical approach
Continuous deployment of polyglot microservices: A practical approachJuan Larriba
 
Continuous Delivery, Continuous Integration
Continuous Delivery, Continuous Integration Continuous Delivery, Continuous Integration
Continuous Delivery, Continuous Integration Amazon Web Services
 
Automating development-operations-v1
Automating development-operations-v1Automating development-operations-v1
Automating development-operations-v1Sumanth Vepa
 
JavaEdge 2008: Your next version control system
JavaEdge 2008: Your next version control systemJavaEdge 2008: Your next version control system
JavaEdge 2008: Your next version control systemGilad Garon
 
Continous integration and delivery for single page applications
Continous integration and delivery for single page applicationsContinous integration and delivery for single page applications
Continous integration and delivery for single page applicationsSunil Dalal
 
Puzzle ITC Talk @Docker CH meetup CI CD_with_Openshift_0.2
Puzzle ITC Talk @Docker CH meetup CI CD_with_Openshift_0.2Puzzle ITC Talk @Docker CH meetup CI CD_with_Openshift_0.2
Puzzle ITC Talk @Docker CH meetup CI CD_with_Openshift_0.2Amrita Prasad
 
Increase the Velocity of Your Software Releases Using GitHub and DeployHub
Increase the Velocity of Your Software Releases Using GitHub and DeployHubIncrease the Velocity of Your Software Releases Using GitHub and DeployHub
Increase the Velocity of Your Software Releases Using GitHub and DeployHubDevOps.com
 
Understand release engineering
Understand release engineeringUnderstand release engineering
Understand release engineeringgaoliang641
 
Enterprise-Grade DevOps Solutions for a Start Up Budget
Enterprise-Grade DevOps Solutions for a Start Up BudgetEnterprise-Grade DevOps Solutions for a Start Up Budget
Enterprise-Grade DevOps Solutions for a Start Up BudgetDevOps.com
 
Continuous Delivery Applied
Continuous Delivery AppliedContinuous Delivery Applied
Continuous Delivery AppliedExcella
 
DevOps at Amazon: A Look at Our Tools and Processes by Matthew Trescot, Manag...
DevOps at Amazon: A Look at Our Tools and Processes by Matthew Trescot, Manag...DevOps at Amazon: A Look at Our Tools and Processes by Matthew Trescot, Manag...
DevOps at Amazon: A Look at Our Tools and Processes by Matthew Trescot, Manag...Amazon Web Services
 
Jbossworld Presentation
Jbossworld PresentationJbossworld Presentation
Jbossworld PresentationDan Hinojosa
 

Similar to The Brave New World of Continuous Release (20)

FooConf23_Bringing the cloud back down to earth.pptx
FooConf23_Bringing the cloud back down to earth.pptxFooConf23_Bringing the cloud back down to earth.pptx
FooConf23_Bringing the cloud back down to earth.pptx
 
Continuos Integration and Delivery: from Zero to Hero with TeamCity, Docker a...
Continuos Integration and Delivery: from Zero to Hero with TeamCity, Docker a...Continuos Integration and Delivery: from Zero to Hero with TeamCity, Docker a...
Continuos Integration and Delivery: from Zero to Hero with TeamCity, Docker a...
 
DevOps at Amazon: A Look at Our Tools and Processes
DevOps at Amazon: A Look at Our Tools and ProcessesDevOps at Amazon: A Look at Our Tools and Processes
DevOps at Amazon: A Look at Our Tools and Processes
 
Jfokus_Bringing the cloud back down to earth.pptx
Jfokus_Bringing the cloud back down to earth.pptxJfokus_Bringing the cloud back down to earth.pptx
Jfokus_Bringing the cloud back down to earth.pptx
 
DevOps at Amazon: A Look at Our Tools and Processes
DevOps at Amazon: A Look at Our Tools and ProcessesDevOps at Amazon: A Look at Our Tools and Processes
DevOps at Amazon: A Look at Our Tools and Processes
 
Continuous deployment of polyglot microservices: A practical approach
Continuous deployment of polyglot microservices: A practical approachContinuous deployment of polyglot microservices: A practical approach
Continuous deployment of polyglot microservices: A practical approach
 
Continuous Delivery, Continuous Integration
Continuous Delivery, Continuous Integration Continuous Delivery, Continuous Integration
Continuous Delivery, Continuous Integration
 
Automating development-operations-v1
Automating development-operations-v1Automating development-operations-v1
Automating development-operations-v1
 
JavaEdge 2008: Your next version control system
JavaEdge 2008: Your next version control systemJavaEdge 2008: Your next version control system
JavaEdge 2008: Your next version control system
 
Continous integration and delivery for single page applications
Continous integration and delivery for single page applicationsContinous integration and delivery for single page applications
Continous integration and delivery for single page applications
 
Puzzle ITC Talk @Docker CH meetup CI CD_with_Openshift_0.2
Puzzle ITC Talk @Docker CH meetup CI CD_with_Openshift_0.2Puzzle ITC Talk @Docker CH meetup CI CD_with_Openshift_0.2
Puzzle ITC Talk @Docker CH meetup CI CD_with_Openshift_0.2
 
Increase the Velocity of Your Software Releases Using GitHub and DeployHub
Increase the Velocity of Your Software Releases Using GitHub and DeployHubIncrease the Velocity of Your Software Releases Using GitHub and DeployHub
Increase the Velocity of Your Software Releases Using GitHub and DeployHub
 
Understand release engineering
Understand release engineeringUnderstand release engineering
Understand release engineering
 
Enterprise-Grade DevOps Solutions for a Start Up Budget
Enterprise-Grade DevOps Solutions for a Start Up BudgetEnterprise-Grade DevOps Solutions for a Start Up Budget
Enterprise-Grade DevOps Solutions for a Start Up Budget
 
Agile Software Development & Tools
Agile Software Development & ToolsAgile Software Development & Tools
Agile Software Development & Tools
 
Continuous Delivery Applied
Continuous Delivery AppliedContinuous Delivery Applied
Continuous Delivery Applied
 
CI/CD on AWS
CI/CD on AWSCI/CD on AWS
CI/CD on AWS
 
Continuous Delivery Applied
Continuous Delivery AppliedContinuous Delivery Applied
Continuous Delivery Applied
 
DevOps at Amazon: A Look at Our Tools and Processes by Matthew Trescot, Manag...
DevOps at Amazon: A Look at Our Tools and Processes by Matthew Trescot, Manag...DevOps at Amazon: A Look at Our Tools and Processes by Matthew Trescot, Manag...
DevOps at Amazon: A Look at Our Tools and Processes by Matthew Trescot, Manag...
 
Jbossworld Presentation
Jbossworld PresentationJbossworld Presentation
Jbossworld Presentation
 

Recently uploaded

[2024]Digital Global Overview Report 2024 Meltwater.pdf
[2024]Digital Global Overview Report 2024 Meltwater.pdf[2024]Digital Global Overview Report 2024 Meltwater.pdf
[2024]Digital Global Overview Report 2024 Meltwater.pdfhans926745
 
The 7 Things I Know About Cyber Security After 25 Years | April 2024
The 7 Things I Know About Cyber Security After 25 Years | April 2024The 7 Things I Know About Cyber Security After 25 Years | April 2024
The 7 Things I Know About Cyber Security After 25 Years | April 2024Rafal Los
 
How to Troubleshoot Apps for the Modern Connected Worker
How to Troubleshoot Apps for the Modern Connected WorkerHow to Troubleshoot Apps for the Modern Connected Worker
How to Troubleshoot Apps for the Modern Connected WorkerThousandEyes
 
#StandardsGoals for 2024: What’s new for BISAC - Tech Forum 2024
#StandardsGoals for 2024: What’s new for BISAC - Tech Forum 2024#StandardsGoals for 2024: What’s new for BISAC - Tech Forum 2024
#StandardsGoals for 2024: What’s new for BISAC - Tech Forum 2024BookNet Canada
 
A Domino Admins Adventures (Engage 2024)
A Domino Admins Adventures (Engage 2024)A Domino Admins Adventures (Engage 2024)
A Domino Admins Adventures (Engage 2024)Gabriella Davis
 
The Codex of Business Writing Software for Real-World Solutions 2.pptx
The Codex of Business Writing Software for Real-World Solutions 2.pptxThe Codex of Business Writing Software for Real-World Solutions 2.pptx
The Codex of Business Writing Software for Real-World Solutions 2.pptxMalak Abu Hammad
 
Human Factors of XR: Using Human Factors to Design XR Systems
Human Factors of XR: Using Human Factors to Design XR SystemsHuman Factors of XR: Using Human Factors to Design XR Systems
Human Factors of XR: Using Human Factors to Design XR SystemsMark Billinghurst
 
08448380779 Call Girls In Greater Kailash - I Women Seeking Men
08448380779 Call Girls In Greater Kailash - I Women Seeking Men08448380779 Call Girls In Greater Kailash - I Women Seeking Men
08448380779 Call Girls In Greater Kailash - I Women Seeking MenDelhi Call girls
 
WhatsApp 9892124323 ✓Call Girls In Kalyan ( Mumbai ) secure service
WhatsApp 9892124323 ✓Call Girls In Kalyan ( Mumbai ) secure serviceWhatsApp 9892124323 ✓Call Girls In Kalyan ( Mumbai ) secure service
WhatsApp 9892124323 ✓Call Girls In Kalyan ( Mumbai ) secure servicePooja Nehwal
 
How to convert PDF to text with Nanonets
How to convert PDF to text with NanonetsHow to convert PDF to text with Nanonets
How to convert PDF to text with Nanonetsnaman860154
 
Maximizing Board Effectiveness 2024 Webinar.pptx
Maximizing Board Effectiveness 2024 Webinar.pptxMaximizing Board Effectiveness 2024 Webinar.pptx
Maximizing Board Effectiveness 2024 Webinar.pptxOnBoard
 
Breaking the Kubernetes Kill Chain: Host Path Mount
Breaking the Kubernetes Kill Chain: Host Path MountBreaking the Kubernetes Kill Chain: Host Path Mount
Breaking the Kubernetes Kill Chain: Host Path MountPuma Security, LLC
 
FULL ENJOY 🔝 8264348440 🔝 Call Girls in Diplomatic Enclave | Delhi
FULL ENJOY 🔝 8264348440 🔝 Call Girls in Diplomatic Enclave | DelhiFULL ENJOY 🔝 8264348440 🔝 Call Girls in Diplomatic Enclave | Delhi
FULL ENJOY 🔝 8264348440 🔝 Call Girls in Diplomatic Enclave | Delhisoniya singh
 
Transforming Data Streams with Kafka Connect: An Introduction to Single Messa...
Transforming Data Streams with Kafka Connect: An Introduction to Single Messa...Transforming Data Streams with Kafka Connect: An Introduction to Single Messa...
Transforming Data Streams with Kafka Connect: An Introduction to Single Messa...HostedbyConfluent
 
Slack Application Development 101 Slides
Slack Application Development 101 SlidesSlack Application Development 101 Slides
Slack Application Development 101 Slidespraypatel2
 
Scaling API-first – The story of a global engineering organization
Scaling API-first – The story of a global engineering organizationScaling API-first – The story of a global engineering organization
Scaling API-first – The story of a global engineering organizationRadu Cotescu
 
Transcript: #StandardsGoals for 2024: What’s new for BISAC - Tech Forum 2024
Transcript: #StandardsGoals for 2024: What’s new for BISAC - Tech Forum 2024Transcript: #StandardsGoals for 2024: What’s new for BISAC - Tech Forum 2024
Transcript: #StandardsGoals for 2024: What’s new for BISAC - Tech Forum 2024BookNet Canada
 
Integration and Automation in Practice: CI/CD in Mule Integration and Automat...
Integration and Automation in Practice: CI/CD in Mule Integration and Automat...Integration and Automation in Practice: CI/CD in Mule Integration and Automat...
Integration and Automation in Practice: CI/CD in Mule Integration and Automat...Patryk Bandurski
 
Benefits Of Flutter Compared To Other Frameworks
Benefits Of Flutter Compared To Other FrameworksBenefits Of Flutter Compared To Other Frameworks
Benefits Of Flutter Compared To Other FrameworksSoftradix Technologies
 
Unblocking The Main Thread Solving ANRs and Frozen Frames
Unblocking The Main Thread Solving ANRs and Frozen FramesUnblocking The Main Thread Solving ANRs and Frozen Frames
Unblocking The Main Thread Solving ANRs and Frozen FramesSinan KOZAK
 

Recently uploaded (20)

[2024]Digital Global Overview Report 2024 Meltwater.pdf
[2024]Digital Global Overview Report 2024 Meltwater.pdf[2024]Digital Global Overview Report 2024 Meltwater.pdf
[2024]Digital Global Overview Report 2024 Meltwater.pdf
 
The 7 Things I Know About Cyber Security After 25 Years | April 2024
The 7 Things I Know About Cyber Security After 25 Years | April 2024The 7 Things I Know About Cyber Security After 25 Years | April 2024
The 7 Things I Know About Cyber Security After 25 Years | April 2024
 
How to Troubleshoot Apps for the Modern Connected Worker
How to Troubleshoot Apps for the Modern Connected WorkerHow to Troubleshoot Apps for the Modern Connected Worker
How to Troubleshoot Apps for the Modern Connected Worker
 
#StandardsGoals for 2024: What’s new for BISAC - Tech Forum 2024
#StandardsGoals for 2024: What’s new for BISAC - Tech Forum 2024#StandardsGoals for 2024: What’s new for BISAC - Tech Forum 2024
#StandardsGoals for 2024: What’s new for BISAC - Tech Forum 2024
 
A Domino Admins Adventures (Engage 2024)
A Domino Admins Adventures (Engage 2024)A Domino Admins Adventures (Engage 2024)
A Domino Admins Adventures (Engage 2024)
 
The Codex of Business Writing Software for Real-World Solutions 2.pptx
The Codex of Business Writing Software for Real-World Solutions 2.pptxThe Codex of Business Writing Software for Real-World Solutions 2.pptx
The Codex of Business Writing Software for Real-World Solutions 2.pptx
 
Human Factors of XR: Using Human Factors to Design XR Systems
Human Factors of XR: Using Human Factors to Design XR SystemsHuman Factors of XR: Using Human Factors to Design XR Systems
Human Factors of XR: Using Human Factors to Design XR Systems
 
08448380779 Call Girls In Greater Kailash - I Women Seeking Men
08448380779 Call Girls In Greater Kailash - I Women Seeking Men08448380779 Call Girls In Greater Kailash - I Women Seeking Men
08448380779 Call Girls In Greater Kailash - I Women Seeking Men
 
WhatsApp 9892124323 ✓Call Girls In Kalyan ( Mumbai ) secure service
WhatsApp 9892124323 ✓Call Girls In Kalyan ( Mumbai ) secure serviceWhatsApp 9892124323 ✓Call Girls In Kalyan ( Mumbai ) secure service
WhatsApp 9892124323 ✓Call Girls In Kalyan ( Mumbai ) secure service
 
How to convert PDF to text with Nanonets
How to convert PDF to text with NanonetsHow to convert PDF to text with Nanonets
How to convert PDF to text with Nanonets
 
Maximizing Board Effectiveness 2024 Webinar.pptx
Maximizing Board Effectiveness 2024 Webinar.pptxMaximizing Board Effectiveness 2024 Webinar.pptx
Maximizing Board Effectiveness 2024 Webinar.pptx
 
Breaking the Kubernetes Kill Chain: Host Path Mount
Breaking the Kubernetes Kill Chain: Host Path MountBreaking the Kubernetes Kill Chain: Host Path Mount
Breaking the Kubernetes Kill Chain: Host Path Mount
 
FULL ENJOY 🔝 8264348440 🔝 Call Girls in Diplomatic Enclave | Delhi
FULL ENJOY 🔝 8264348440 🔝 Call Girls in Diplomatic Enclave | DelhiFULL ENJOY 🔝 8264348440 🔝 Call Girls in Diplomatic Enclave | Delhi
FULL ENJOY 🔝 8264348440 🔝 Call Girls in Diplomatic Enclave | Delhi
 
Transforming Data Streams with Kafka Connect: An Introduction to Single Messa...
Transforming Data Streams with Kafka Connect: An Introduction to Single Messa...Transforming Data Streams with Kafka Connect: An Introduction to Single Messa...
Transforming Data Streams with Kafka Connect: An Introduction to Single Messa...
 
Slack Application Development 101 Slides
Slack Application Development 101 SlidesSlack Application Development 101 Slides
Slack Application Development 101 Slides
 
Scaling API-first – The story of a global engineering organization
Scaling API-first – The story of a global engineering organizationScaling API-first – The story of a global engineering organization
Scaling API-first – The story of a global engineering organization
 
Transcript: #StandardsGoals for 2024: What’s new for BISAC - Tech Forum 2024
Transcript: #StandardsGoals for 2024: What’s new for BISAC - Tech Forum 2024Transcript: #StandardsGoals for 2024: What’s new for BISAC - Tech Forum 2024
Transcript: #StandardsGoals for 2024: What’s new for BISAC - Tech Forum 2024
 
Integration and Automation in Practice: CI/CD in Mule Integration and Automat...
Integration and Automation in Practice: CI/CD in Mule Integration and Automat...Integration and Automation in Practice: CI/CD in Mule Integration and Automat...
Integration and Automation in Practice: CI/CD in Mule Integration and Automat...
 
Benefits Of Flutter Compared To Other Frameworks
Benefits Of Flutter Compared To Other FrameworksBenefits Of Flutter Compared To Other Frameworks
Benefits Of Flutter Compared To Other Frameworks
 
Unblocking The Main Thread Solving ANRs and Frozen Frames
Unblocking The Main Thread Solving ANRs and Frozen FramesUnblocking The Main Thread Solving ANRs and Frozen Frames
Unblocking The Main Thread Solving ANRs and Frozen Frames
 

The Brave New World of Continuous Release

  • 1. The Brave New World of Continuous Release Baruch, JFrog
  • 2. About me  Baruch  Developer Advocate @JFrog > Job definition (part of): Hang out with the DevOps guys  @jbaruch 2
  • 3. Agenda  The cloud silver bullet  The right tool for the job  Binaries all the way  The magic of release 3
  • 4. Everything *aas The New Silver Bullet
  • 5. What’s So Good About *aaS?  *aaS features Continuous Delivery 5
  • 6. Continuous Delivery FTW  User advantages > Latest version/features > No upgrades/maintenance  Developer advantages > Agile > Rapid feedback > Users are the best beta-testers > No long-term support  Everybody wins? 6
  • 7. Almost, except the IT  Used to quarterly release cycles  “Secure” pace  Minimizing the entropy caused by developers with ADD 7
  • 8. Herding Cats Developers > Increasing entropy + IT (operations) > Maintaining stability = DevOps > Stable change
  • 9. Continuous Delivery Challenge  Very frequent releases  More than one version in production  Complicated access levels  Root cause analysis > Tracing from binaries to source  Version tracking  Not everyone is ready for CD 9
  • 10. Continuous Delivery Challenge  Very frequent releases  More than one version in production  Complicated access levels  Root cause analysis > Tracing from binaries to source  Version tracking  Not everyone is ready for CD 10
  • 11. It’s… Agile!  Agile principles applied for DevOps  We have good tooling for Agile development > Version control > Unit testing and code coverage > CI servers > Hot swap tools  What’s up with tooling for agile DevOps? 11
  • 12. Agile Tooling for DevOps Checklist  Versioning  Access control  Traceability  Promotions  Tags and annotations  Search 12
  • 13. How Do I Know?  Artifactory is released with Artifactory  JFrog SaaS offering > Artifactory Online > Gradle, Grails, SpringSource, Typesafe, Jenkins, etc.  We build, release and eat our own dog food > Continuously 13
  • 14. Here Comes Binary Repository The Right Tool for the Job
  • 15. Here Comes Binary Repository  E.g. Artifactory  Proxy  Smart storage > Much more than a passive space  Critical for CI/CD and ALM 15
  • 17. In the Beginning it was…
  • 18. Binary Repo in DevOps Ecosystem
  • 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 19
  • 20. The Release Pipeline Source: Agile ALM, Michael Hüttermann, Manning Publications Co.
  • 21. Passing the software to QA  Different access rights  Different physical location  Ability to annotate 21
  • 22. Staging and Preproduction  Replication of Production environment > Lock versions of dependencies and artifacts  Allow access to set of users 22
  • 23. Going to Production  Convert staging binaries to production  Allow public access  Change settings  Tag 23
  • 25. The Time Machine  Sometimes you need to go back in time
  • 26. Quest for Traceability  What should be restored? > Sources > Dependencies > Environment details > Tags  Where’s the information? > Version control system > Build Tool > Build server 26
  • 27. Rebuilding from Sources  Checkout branch/tag/revision  Build  Done!  Time consuming  Unstable 27
  • 28. Dependencies Lie  Dependency Descriptors aren’t stable 28
  • 29. Evil Dependencies Resolution  POMs deployed with variables > Ivy is OK  Resolution strategies change over time 29
  • 30. Single Source of Truth  Record information on spot > When binaries are created  Build Server 30
  • 31. Single Target of Truth  Truth should be saved…  … with the binaries…  … in binaries storage! 31
  • 32. Open Standard Of Truth  Bill of Materials  JSON  REST accessible  API accessible  APLv2 on GitHub 32
  • 33. Build Server Plugin  Build information > Resolved and realized during the build > Attached to the artifacts > Uploaded with the artifacts Artifacts + Build Info = 4eva!!11 33
  • 35. What my friends think I do DevOps
  • 36. What Others Think I Do 36
  • 37. What I Think I Do 37
  • 38. What I Really Do 38
  • 39. What I Really Do 39
  • 41. Target: Automation  It’s impossible to release frequently with manual procedures > While maintaining quality  Use your binaries storage to release
  • 42. The magic of Release Put your repository to work
  • 43. Release Candidates  Your next build is a 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 43
  • 44. Releasing with Release Candidates  Process: 1. Produce and build snapshots until satisfied 2. Once satisfied, build a release candidate 3. Stage RC, check and verify 4. Once verified, release 44
  • 45. Releasing With Artifactory Plugin  Changes versions in build script  Allows choosing a target deploy repository  Creates a VCS tag/branch 45
  • 46. Demo time! Release With Release Candidates
  • 47. OOTB Release Management  Pros  Cons > Out of the box > Limited > Supports the “by extensibility the book” > May not fit your release cycle requirements > Supports majority of the tools
  • 48. Releasing with Release Candidates  Process: 1. Produce and build snapshots until satisfied 2. Once satisfied, build a release candidate 3. Stage RC, check and verify 4. Once checked, release 48
  • 49. Releasing with Release Candidates  Process: 1. Produce and build snapshots until satisfied 2. Once satisfied, build release candidate 3. Stage RC, check and verify 4. Once checked, release Redundant build 49
  • 50. Releasing with Release Candidates?
  • 51. Releasing with Release Candidates?  Lots of things can go wrong during one more build  If we won’t build it, we won’t screw it  Revised Process: 1. Produce and build snapshots until satisfied 2. When satisfied, check and verify 3. Once checked, release 51
  • 52. Automation Flexibility  We Know: We Don’t Know Better  YMMV (great deal)  Write your own release logic  Pre and post build deploy hooks
  • 53. Controlling Versioning Scheme  Classic versioning scheme: > Release version > 2.0.3 > Integration version > 2.0.4-SNAPSHOT  YMMV 53
  • 54. Flexible Release  Code your release strategy > Versioning scheme > VCS (tagging, branching, commit comments) > Promotion hook (copy/move, comments, status)  Available by REST 54
  • 55. REST == Scriptability == Automation  It’s impossible to release frequently with manual procedures > While maintaining quality  Use your scriptable binaries storage to release
  • 56. 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) 56
  • 58. Pluggable Architecture with DSLs  Artifactory is open for user plugins  Groovy groovy DSL  Your code runs inside the server  Uses Public API (PAPI) > Search for artifacts > Search for builds > Copy/move artifacts > Manipulate files > E.g. change versions in descriptors 58
  • 60. Plugin Invocation Options  As a response for various events > Download/Create/Delete > Login > Release  Scheduled  On demand 60
  • 61. Plugin Code  Manipulating Version Control Systems
  • 62. Plugin Code  Manipulating BuildInfo object
  • 63. Plugin Code  Creating and replacing artifacts
  • 64. Calling REST API With CURL al oc e-l as le -re le ad =gr ry to osi ep tR rge ta 4| =d1 xp pE sna m s= ra pa /1? le mp xa i -e lt mu le- ad gr s e/ ea el oR tT ho aps sn e/ mot ro /p ild bu s/ gin lu /p api y/ or act if rt 0/a 08 o :8 em -d epo /r :/ tp ht 64
  • 65. 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 65
  • 66. Calling REST API With CURL http://repo-demo:8080/ Artifactory server artifactory/api/plugins/ build/promote/snapshotToRelease/ gradle-multi-example/1? params=snapExp=d14| targetRepository=gradle-release- local 66
  • 67. Calling REST API With CURL http://repo-demo:8080/ Artifactory server artifactory/api/plugins/ Plugins API build/promote/snapshotToRelease/ gradle-multi-example/1? params=snapExp=d14| targetRepository=gradle-release- local 67
  • 68. Calling REST API With CURL http://repo-demo:8080/ Artifactory server artifactory/api/plugins/ Plugins API build/promote/snapshotToRelease/ Plugin name gradle-multi-example/1? params=snapExp=d14| targetRepository=gradle-release- local 68
  • 69. Calling REST API With CURL http://repo-demo:8080/ Artifactory server artifactory/api/plugins/ Plugins API build/promote/snapshotToRelease/Plugin name gradle-multi-example/1? Build name and number params=snapExp=d14| targetRepository=gradle-release- local 69
  • 70. Calling REST API With CURL http://repo-demo:8080/ Artifactory server artifactory/api/plugins/ Plugins API build/promote/snapshotToRelease/ Plugin name gradle-multi-example/1? Build name and number params=snapExp=d14| versioning scheme targetRepository=gradle-release- local 70
  • 71. Calling REST API With CURL http://repo-demo:8080/ Artifactory server artifactory/api/plugins/ Plugins API build/promote/snapshotToRelease/ Plugin name gradle-multi-example/1? Build name and number params=snapExp=d14| versioning scheme targetRepository=gradle-release- local Target repository for release 71
  • 72. Recap: Promotion of Snapshots  Choose existing build to become a release  Using the REST API without building  Invoking the promotion plugin > Convert to next version > Tag, branch, etc. > Promote (copy/move) 72
  • 73. Demo time! Release by Snapshot Promotion
  • 74. 4 Commandments of DevOps  Automate everything  Version everything  Trace everything  Report/Log/Feed back everything Designed by Jessica Allen on Dribbble.com 74
  • 75. 4 Commandments of DevOps  Automate everything  Version everything  Trace everything  Report/Log/Feed back everything Designed by Jessica Allen on Dribbble.com 75