SlideShare a Scribd company logo
Continuous Deployment
  Embrace Continuous Improvement


            Naresh Jain
                 @nashjain
          naresh@agilefaqs.com
        http://blogs.agilefaqs.com


         Licensed Under Creative Commons by Naresh Jain
                                                          1
Licensed Under Creative Commons by Naresh Jain
                                                 2
Licensed Under Creative Commons by Naresh Jain
                                                 2
Continuous Deployment




     Licensed Under Creative Commons by Naresh Jain
                                                      3
But....

Licensed Under Creative Commons by Naresh Jain
                                                 4
re nt!
                                                   diffe
                                                 re us?                                       ?
           Too                                e a or
                                             W F                                        h ere
               mu                                                                  em
                  ch                                                         probl
                        Ch                                            re a
                            aos                                    he
  Wh
      o? W
                               ?                             Is t
               hen
                  ?

                                                                   ROI?
Pro
   duc
       tivit
            y?




                 Licensed Under Creative Commons by Naresh Jain
                                                                                                  4
Me


Licensed Under Creative Commons by Naresh Jain
                                                 5
Licensed Under Creative Commons by Naresh Jain
                                                 6
Mumbai




Licensed Under Creative Commons by Naresh Jain
                                                 7
AgilePhilly
                                                 Tech Talks!




Licensed Under Creative Commons by Naresh Jain
                                                               8
FitNesse Panopticode ProTest



DBFit      FitDecorator                                    ProFIT



   La"u              Patang                         QWick


          Licensed Under Creative Commons by Naresh Jain
                                                                    9
Licensed Under Creative Commons by Naresh Jain
                                                 10
Licensed Under Creative Commons by Naresh Jain
                                                 11
Licensed Under Creative Commons by Naresh Jain
                                                 12
Licensed Under Creative Commons by Naresh Jain
                                                 13
Licensed Under Creative Commons by Naresh Jain
                                                 14
Licensed Under Creative Commons by Naresh Jain
                                                 15
Back in the Stone-age




     Licensed Under Creative Commons by Naresh Jain
                                                      16
Happiness/Excitement




                       Time/Money/Opportunity Cost
                         Licensed Under Creative Commons by Naresh Jain
                                                                          17
Plan
Happiness/Excitement




                              Time/Money/Opportunity Cost
                                Licensed Under Creative Commons by Naresh Jain
                                                                                 17
Plan


                              Design
Happiness/Excitement




                                       Time/Money/Opportunity Cost
                                         Licensed Under Creative Commons by Naresh Jain
                                                                                          17
Plan


                              Design
Happiness/Excitement




                                       Distribute




                                       Time/Money/Opportunity Cost
                                         Licensed Under Creative Commons by Naresh Jain
                                                                                          17
Plan


                              Design
Happiness/Excitement




                                       Distribute

                                                                Work in
                                                                Isolation




                                       Time/Money/Opportunity Cost
                                         Licensed Under Creative Commons by Naresh Jain
                                                                                          17
Plan


                              Design
Happiness/Excitement




                                       Distribute

                                                                Work in
                                                                Isolation

                                                                                          Integrate


                                       Time/Money/Opportunity Cost
                                         Licensed Under Creative Commons by Naresh Jain
                                                                                                      17
Last Minute Integration Surprises




         Licensed Under Creative Commons by Naresh Jain
                                                          18
BAD things were visible too Late...




         Licensed Under Creative Commons by Naresh Jain
                                                          19
Birth of CI



Licensed Under Creative Commons by Naresh Jain
                                                 20
Licensed Under Creative Commons by Naresh Jain
                                                 21
CI Helped Us Learn That...
 Life can Suck a lot Less!




       Licensed Under Creative Commons by Naresh Jain
                                                        22
CI Helped Us Learn That...
   Life can Suck a lot Less!
Collaboration               Feedback                              Quality




         Delivery Time                                  Wastage
                Licensed Under Creative Commons by Naresh Jain
                                                                            22
If people are afraid to
 check-in frequently...
   your CI process is
     NOT working.

      Licensed Under Creative Commons by Naresh Jain
                                                       23
We already do CI.
   What’s next?



    Licensed Under Creative Commons by Naresh Jain
                                                     24
Multi-Stage CI Process
    Scaling CI using Build Promotion




        Licensed Under Creative Commons by Naresh Jain
                                                         25
Licensed Under Creative Commons by Naresh Jain
                                                 26
While the
Lean-Start-up Community
    They tried something quite disruptive...




           Licensed Under Creative Commons by Naresh Jain
                                                            27
Continuous Deployment (CD)




        Licensed Under Creative Commons by Naresh Jain
                                                         28
CD is quite natural for
 companies delivering
   content via Web

      Licensed Under Creative Commons by Naresh Jain
                                                       29
Freeset - In Business for Freedom
         Licensed Under Creative Commons by Naresh Jain
                                                          30
Stage 1




            Static
            Files
 DB




     freesetglobal.com
     s



                 Vie
 te
da




                  w
Up




      Freeset - In Business for Freedom
                         Licensed Under Creative Commons by Naresh Jain
                                                                          30
Stage 1
                                                                        Stage 2




            Static                                             Static                          Static
            Files                                              Files                           Files
 DB                                             DB                                      DB
                         Structural


                          Changes                                                Sync




     freesetglobal.com                         dev.freesetglobal.com                    freesetglobal.com
     s




                                                     Updates
                 Vie
 te




                                                                                                  View
da




                  w
Up




                                                                            ck
                                                                           li
                                                                       -C
                                                                           oy
                                                                      le
                                                                        pl
                                                                  ng
                                                                      De
                                                                 Si




      Freeset - In Business for Freedom
                               Licensed Under Creative Commons by Naresh Jain
                                                                                                            30
Freeset Demo



 Licensed Under Creative Commons by Naresh Jain
                                                  31
Benefits of CD



  Licensed Under Creative Commons by Naresh Jain
                                                   32
Automation removes
     Errors



    Licensed Under Creative Commons by Naresh Jain
                                                     33
Eliminates stressful
   release crunch



    Licensed Under Creative Commons by Naresh Jain
                                                     34
Users continuously see
    improvements



      Licensed Under Creative Commons by Naresh Jain
                                                       35
Reducing batch size
helps drive out waste



     Licensed Under Creative Commons by Naresh Jain
                                                      36
Faster responses to
  customer issues



    Licensed Under Creative Commons by Naresh Jain
                                                     37
A/B testing is easier
due to less release
     overhead


     Licensed Under Creative Commons by Naresh Jain
                                                      38
Encourages
experimenting with
    new ideas


    Licensed Under Creative Commons by Naresh Jain
                                                     39
Allows for fine-grained
monitoring of changes



      Licensed Under Creative Commons by Naresh Jain
                                                       40
Provides satisfaction
from seeing constant
       progress



     Licensed Under Creative Commons by Naresh Jain
                                                      41
Can we embrace CD
    for eLearning?
Rich Multi-Media Content
  Video, Screencasts, Quizzes, Images, Personas, etc.

Programming Exercises
  Java, C#, C++, C & Python

  Mac OS, Windows, Linux, Solaris


Different IDE Plugins

Server side code analysis                                 (Java, C#, C++, C & Python)

                 Licensed Under Creative Commons by Naresh Jain
                                                                                    42
This is what we did...



     Licensed Under Creative Commons by Naresh Jain
                                                      43
Deploy build to inactive
 production servers




      Licensed Under Creative Commons by Naresh Jain
                                                       44
Inactive joins the cluster




       Licensed Under Creative Commons by Naresh Jain
                                                        45
Delivery tests verify
 inactive release




     Licensed Under Creative Commons by Naresh Jain
                                                      46
Reverse proxy swaps
 inactive with active




     Licensed Under Creative Commons by Naresh Jain
                                                      47
Licensed Under Creative Commons by Naresh Jain
                                                 48
CD Requires Zero Downtime




        Licensed Under Creative Commons by Naresh Jain
                                                         49
Zero Downtime Requires
Performing updates without interrupting users is
   essential for Zero Downtime deployments.

• The application code
• Database schema
• Data files
• Web Server
• Application Server or Servlet Container
• Database Server
• OS upgrades and patches
               Licensed Under Creative Commons by Naresh Jain
                                                                50
What about DB
 Upgrades?
Will Continuous Deployment work?




     Licensed Under Creative Commons by Naresh Jain
                                                      51
Hibernate


• hbm2ddl.auto = update
• Rarely we need to go in and update DB
  manually




             Licensed Under Creative Commons by Naresh Jain
                                                              52
Zero-downtime DB Updates
        012_rename_login_id_to_user_name




012_add_user_name_column 02_remove_login_id_column


        expansion                                               contraction

         Src: Owen Rogers http://exortech.com/blog/
                    Licensed Under Creative Commons by Naresh Jain
                                                                              53
Zero-downtime DB Updates




    Src: Owen Rogers http://exortech.com/blog/
             Licensed Under Creative Commons by Naresh Jain
                                                              54
Zero-downtime DB Updates
  • expansion




     Src: Owen Rogers http://exortech.com/blog/
              Licensed Under Creative Commons by Naresh Jain
                                                               54
Zero-downtime DB Updates
  • expansion
   • preserves backwards compatibility




     Src: Owen Rogers http://exortech.com/blog/
              Licensed Under Creative Commons by Naresh Jain
                                                               54
Zero-downtime DB Updates
  • expansion
   • preserves backwards compatibility
  • contract



     Src: Owen Rogers http://exortech.com/blog/
              Licensed Under Creative Commons by Naresh Jain
                                                               54
Zero-downtime DB Updates
  • expansion
   • preserves backwards compatibility
  • contract
   • clean up


     Src: Owen Rogers http://exortech.com/blog/
              Licensed Under Creative Commons by Naresh Jain
                                                               54
Industrial Logic’s
eLearning CD Demo



    Licensed Under Creative Commons by Naresh Jain
                                                     55
Eventually...




Licensed Under Creative Commons by Naresh Jain
                                                 56
CD’s Impact on
 Team Culture


  Licensed Under Creative Commons by Naresh Jain
                                                   57
Encourage Evolutionary Design and
 Continuous Improvement culture




          Licensed Under Creative Commons by Naresh Jain
                                                           58
Breaks work into micro-pieces,
thereby enabling micro-deliveries




          Licensed Under Creative Commons by Naresh Jain
                                                           59
Limited Work In Progress




       Licensed Under Creative Commons by Naresh Jain
                                                        60
Knows when to hide or
reveal work in progress




      Licensed Under Creative Commons by Naresh Jain
                                                       61
Team takes shared ownership of the
entire software development lifecycle




            Licensed Under Creative Commons by Naresh Jain
                                                             62
The product is in a
           always-working-state




No developer is blocked because they can't get stable code
                   Licensed Under Creative Commons by Naresh Jain
                                                                    63
Stop the Line Culture




Team catches issues at the source and avoid last
 minute integration and deployment nightmares
             Licensed Under Creative Commons by Naresh Jain
                                                              64
Team crave for rapid feedback




         Licensed Under Creative Commons by Naresh Jain
                                                          65
Complete Traceability




Version Control, Project & Requirements
Managements tool, Bug Tracking and Build
    system are completely integrated
          Licensed Under Creative Commons by Naresh Jain
                                                           66
Questions?
    Naresh Jain
         @nashjain
   naresh@agilefaqs.com
 http://blogs.agilefaqs.com


  Licensed Under Creative Commons by Naresh Jain
                                                   67

More Related Content

Viewers also liked

The Limited Red Society
The Limited Red SocietyThe Limited Red Society
The Limited Red Society
Naresh Jain
 
Our Journey Down the Yellow Brick Road (Agile Adoption @ Directi)
Our Journey Down the Yellow Brick Road (Agile Adoption @ Directi)Our Journey Down the Yellow Brick Road (Agile Adoption @ Directi)
Our Journey Down the Yellow Brick Road (Agile Adoption @ Directi)
Directi Group
 
Agile Maintenance
Agile MaintenanceAgile Maintenance
Agile Maintenance
Naresh Jain
 
TDD Overview
TDD OverviewTDD Overview
TDD Overview
Naresh Jain
 
Software Development The Trekkers Way
Software Development The Trekkers WaySoftware Development The Trekkers Way
Software Development The Trekkers Way
Naresh Jain
 
Waterfall to Agile Demo
Waterfall to Agile DemoWaterfall to Agile Demo
Waterfall to Agile Demo
Naresh Jain
 
Offshore Agile Maintenance
Offshore Agile MaintenanceOffshore Agile Maintenance
Offshore Agile Maintenance
Naresh Jain
 
Refactoring Fest
Refactoring FestRefactoring Fest
Refactoring Fest
Naresh Jain
 
Distributed Agile
Distributed AgileDistributed Agile
Distributed Agile
Naresh Jain
 
Test Driven Development
Test Driven DevelopmentTest Driven Development
Test Driven Development
Naresh Jain
 
MVP Hacks
MVP HacksMVP Hacks
MVP Hacks
Naresh Jain
 
Agile Testing
Agile TestingAgile Testing
Agile Testing
Naresh Jain
 
Value Driven Development by Dave Thomas
Value Driven Development by Dave Thomas Value Driven Development by Dave Thomas
Value Driven Development by Dave Thomas
Naresh Jain
 
Agile India 2017 Conference
Agile India 2017 ConferenceAgile India 2017 Conference
Agile India 2017 Conference
Naresh Jain
 
Towards FutureOps: Stable, Repeatable environments from Dev to Prod
Towards FutureOps: Stable, Repeatable environments from Dev to ProdTowards FutureOps: Stable, Repeatable environments from Dev to Prod
Towards FutureOps: Stable, Repeatable environments from Dev to Prod
Naresh Jain
 
ScrumBan Evolution - What is you next step?
ScrumBan Evolution - What is you next step?ScrumBan Evolution - What is you next step?
ScrumBan Evolution - What is you next step?
Sebastian Radics
 
Introduction to Waterfall
Introduction to WaterfallIntroduction to Waterfall
Introduction to WaterfallKarl Scotland
 
Big Data – Are You Ready?
Big Data – Are You Ready?Big Data – Are You Ready?
Big Data – Are You Ready?
Talentica Software
 

Viewers also liked (18)

The Limited Red Society
The Limited Red SocietyThe Limited Red Society
The Limited Red Society
 
Our Journey Down the Yellow Brick Road (Agile Adoption @ Directi)
Our Journey Down the Yellow Brick Road (Agile Adoption @ Directi)Our Journey Down the Yellow Brick Road (Agile Adoption @ Directi)
Our Journey Down the Yellow Brick Road (Agile Adoption @ Directi)
 
Agile Maintenance
Agile MaintenanceAgile Maintenance
Agile Maintenance
 
TDD Overview
TDD OverviewTDD Overview
TDD Overview
 
Software Development The Trekkers Way
Software Development The Trekkers WaySoftware Development The Trekkers Way
Software Development The Trekkers Way
 
Waterfall to Agile Demo
Waterfall to Agile DemoWaterfall to Agile Demo
Waterfall to Agile Demo
 
Offshore Agile Maintenance
Offshore Agile MaintenanceOffshore Agile Maintenance
Offshore Agile Maintenance
 
Refactoring Fest
Refactoring FestRefactoring Fest
Refactoring Fest
 
Distributed Agile
Distributed AgileDistributed Agile
Distributed Agile
 
Test Driven Development
Test Driven DevelopmentTest Driven Development
Test Driven Development
 
MVP Hacks
MVP HacksMVP Hacks
MVP Hacks
 
Agile Testing
Agile TestingAgile Testing
Agile Testing
 
Value Driven Development by Dave Thomas
Value Driven Development by Dave Thomas Value Driven Development by Dave Thomas
Value Driven Development by Dave Thomas
 
Agile India 2017 Conference
Agile India 2017 ConferenceAgile India 2017 Conference
Agile India 2017 Conference
 
Towards FutureOps: Stable, Repeatable environments from Dev to Prod
Towards FutureOps: Stable, Repeatable environments from Dev to ProdTowards FutureOps: Stable, Repeatable environments from Dev to Prod
Towards FutureOps: Stable, Repeatable environments from Dev to Prod
 
ScrumBan Evolution - What is you next step?
ScrumBan Evolution - What is you next step?ScrumBan Evolution - What is you next step?
ScrumBan Evolution - What is you next step?
 
Introduction to Waterfall
Introduction to WaterfallIntroduction to Waterfall
Introduction to Waterfall
 
Big Data – Are You Ready?
Big Data – Are You Ready?Big Data – Are You Ready?
Big Data – Are You Ready?
 

More from Naresh Jain

Problem Solving Techniques For Evolutionary Design
Problem Solving Techniques For Evolutionary DesignProblem Solving Techniques For Evolutionary Design
Problem Solving Techniques For Evolutionary Design
Naresh Jain
 
Agile India 2019 Conference Welcome Note
Agile India 2019 Conference Welcome NoteAgile India 2019 Conference Welcome Note
Agile India 2019 Conference Welcome Note
Naresh Jain
 
Organizational Resilience
Organizational ResilienceOrganizational Resilience
Organizational Resilience
Naresh Jain
 
Improving the Quality of Incoming Code
Improving the Quality of Incoming CodeImproving the Quality of Incoming Code
Improving the Quality of Incoming Code
Naresh Jain
 
Agile India 2018 Conference Summary
Agile India 2018 Conference SummaryAgile India 2018 Conference Summary
Agile India 2018 Conference Summary
Naresh Jain
 
Agile India 2018 Conference
Agile India 2018 ConferenceAgile India 2018 Conference
Agile India 2018 Conference
Naresh Jain
 
Agile India 2018 Conference
Agile India 2018 ConferenceAgile India 2018 Conference
Agile India 2018 Conference
Naresh Jain
 
Agile India 2018 Conference
Agile India 2018 ConferenceAgile India 2018 Conference
Agile India 2018 Conference
Naresh Jain
 
Pilgrim's Progress to the Promised Land by Robert Virding
Pilgrim's Progress to the Promised Land by Robert VirdingPilgrim's Progress to the Promised Land by Robert Virding
Pilgrim's Progress to the Promised Land by Robert Virding
Naresh Jain
 
Concurrent languages are Functional by Francesco Cesarini
Concurrent languages are Functional by Francesco CesariniConcurrent languages are Functional by Francesco Cesarini
Concurrent languages are Functional by Francesco Cesarini
Naresh Jain
 
Erlang from behing the trenches by Francesco Cesarini
Erlang from behing the trenches by Francesco CesariniErlang from behing the trenches by Francesco Cesarini
Erlang from behing the trenches by Francesco Cesarini
Naresh Jain
 
Anatomy of an eCommerce Search Engine by Mayur Datar
Anatomy of an eCommerce Search Engine by Mayur DatarAnatomy of an eCommerce Search Engine by Mayur Datar
Anatomy of an eCommerce Search Engine by Mayur Datar
Naresh Jain
 
Setting up Continuous Delivery Culture for a Large Scale Mobile App
Setting up Continuous Delivery Culture for a Large Scale Mobile AppSetting up Continuous Delivery Culture for a Large Scale Mobile App
Setting up Continuous Delivery Culture for a Large Scale Mobile App
Naresh Jain
 
No Silver Bullets in Functional Programming by Brian McKenna
No Silver Bullets in Functional Programming by Brian McKennaNo Silver Bullets in Functional Programming by Brian McKenna
No Silver Bullets in Functional Programming by Brian McKenna
Naresh Jain
 
Functional Programming Conference 2016
Functional Programming Conference 2016Functional Programming Conference 2016
Functional Programming Conference 2016
Naresh Jain
 
The Eclipse Way
The Eclipse WayThe Eclipse Way
The Eclipse Way
Naresh Jain
 
Unleashing the Power of Automated Refactoring with JDT
Unleashing the Power of Automated Refactoring with JDTUnleashing the Power of Automated Refactoring with JDT
Unleashing the Power of Automated Refactoring with JDT
Naresh Jain
 
Getting2Alpha: Turbo-charge your product with Game Thinking by Amy Jo Kim
Getting2Alpha: Turbo-charge your product with Game Thinking by Amy Jo KimGetting2Alpha: Turbo-charge your product with Game Thinking by Amy Jo Kim
Getting2Alpha: Turbo-charge your product with Game Thinking by Amy Jo Kim
Naresh Jain
 
MVP Design Hacks
MVP Design HacksMVP Design Hacks
MVP Design Hacks
Naresh Jain
 
Functional Conf 2015
Functional Conf 2015Functional Conf 2015
Functional Conf 2015
Naresh Jain
 

More from Naresh Jain (20)

Problem Solving Techniques For Evolutionary Design
Problem Solving Techniques For Evolutionary DesignProblem Solving Techniques For Evolutionary Design
Problem Solving Techniques For Evolutionary Design
 
Agile India 2019 Conference Welcome Note
Agile India 2019 Conference Welcome NoteAgile India 2019 Conference Welcome Note
Agile India 2019 Conference Welcome Note
 
Organizational Resilience
Organizational ResilienceOrganizational Resilience
Organizational Resilience
 
Improving the Quality of Incoming Code
Improving the Quality of Incoming CodeImproving the Quality of Incoming Code
Improving the Quality of Incoming Code
 
Agile India 2018 Conference Summary
Agile India 2018 Conference SummaryAgile India 2018 Conference Summary
Agile India 2018 Conference Summary
 
Agile India 2018 Conference
Agile India 2018 ConferenceAgile India 2018 Conference
Agile India 2018 Conference
 
Agile India 2018 Conference
Agile India 2018 ConferenceAgile India 2018 Conference
Agile India 2018 Conference
 
Agile India 2018 Conference
Agile India 2018 ConferenceAgile India 2018 Conference
Agile India 2018 Conference
 
Pilgrim's Progress to the Promised Land by Robert Virding
Pilgrim's Progress to the Promised Land by Robert VirdingPilgrim's Progress to the Promised Land by Robert Virding
Pilgrim's Progress to the Promised Land by Robert Virding
 
Concurrent languages are Functional by Francesco Cesarini
Concurrent languages are Functional by Francesco CesariniConcurrent languages are Functional by Francesco Cesarini
Concurrent languages are Functional by Francesco Cesarini
 
Erlang from behing the trenches by Francesco Cesarini
Erlang from behing the trenches by Francesco CesariniErlang from behing the trenches by Francesco Cesarini
Erlang from behing the trenches by Francesco Cesarini
 
Anatomy of an eCommerce Search Engine by Mayur Datar
Anatomy of an eCommerce Search Engine by Mayur DatarAnatomy of an eCommerce Search Engine by Mayur Datar
Anatomy of an eCommerce Search Engine by Mayur Datar
 
Setting up Continuous Delivery Culture for a Large Scale Mobile App
Setting up Continuous Delivery Culture for a Large Scale Mobile AppSetting up Continuous Delivery Culture for a Large Scale Mobile App
Setting up Continuous Delivery Culture for a Large Scale Mobile App
 
No Silver Bullets in Functional Programming by Brian McKenna
No Silver Bullets in Functional Programming by Brian McKennaNo Silver Bullets in Functional Programming by Brian McKenna
No Silver Bullets in Functional Programming by Brian McKenna
 
Functional Programming Conference 2016
Functional Programming Conference 2016Functional Programming Conference 2016
Functional Programming Conference 2016
 
The Eclipse Way
The Eclipse WayThe Eclipse Way
The Eclipse Way
 
Unleashing the Power of Automated Refactoring with JDT
Unleashing the Power of Automated Refactoring with JDTUnleashing the Power of Automated Refactoring with JDT
Unleashing the Power of Automated Refactoring with JDT
 
Getting2Alpha: Turbo-charge your product with Game Thinking by Amy Jo Kim
Getting2Alpha: Turbo-charge your product with Game Thinking by Amy Jo KimGetting2Alpha: Turbo-charge your product with Game Thinking by Amy Jo Kim
Getting2Alpha: Turbo-charge your product with Game Thinking by Amy Jo Kim
 
MVP Design Hacks
MVP Design HacksMVP Design Hacks
MVP Design Hacks
 
Functional Conf 2015
Functional Conf 2015Functional Conf 2015
Functional Conf 2015
 

Recently uploaded

The Future of Platform Engineering
The Future of Platform EngineeringThe Future of Platform Engineering
The Future of Platform Engineering
Jemma Hussein Allen
 
Key Trends Shaping the Future of Infrastructure.pdf
Key Trends Shaping the Future of Infrastructure.pdfKey Trends Shaping the Future of Infrastructure.pdf
Key Trends Shaping the Future of Infrastructure.pdf
Cheryl Hung
 
LF Energy Webinar: Electrical Grid Modelling and Simulation Through PowSyBl -...
LF Energy Webinar: Electrical Grid Modelling and Simulation Through PowSyBl -...LF Energy Webinar: Electrical Grid Modelling and Simulation Through PowSyBl -...
LF Energy Webinar: Electrical Grid Modelling and Simulation Through PowSyBl -...
DanBrown980551
 
SAP Sapphire 2024 - ASUG301 building better apps with SAP Fiori.pdf
SAP Sapphire 2024 - ASUG301 building better apps with SAP Fiori.pdfSAP Sapphire 2024 - ASUG301 building better apps with SAP Fiori.pdf
SAP Sapphire 2024 - ASUG301 building better apps with SAP Fiori.pdf
Peter Spielvogel
 
Leading Change strategies and insights for effective change management pdf 1.pdf
Leading Change strategies and insights for effective change management pdf 1.pdfLeading Change strategies and insights for effective change management pdf 1.pdf
Leading Change strategies and insights for effective change management pdf 1.pdf
OnBoard
 
Generative AI Deep Dive: Advancing from Proof of Concept to Production
Generative AI Deep Dive: Advancing from Proof of Concept to ProductionGenerative AI Deep Dive: Advancing from Proof of Concept to Production
Generative AI Deep Dive: Advancing from Proof of Concept to Production
Aggregage
 
Accelerate your Kubernetes clusters with Varnish Caching
Accelerate your Kubernetes clusters with Varnish CachingAccelerate your Kubernetes clusters with Varnish Caching
Accelerate your Kubernetes clusters with Varnish Caching
Thijs Feryn
 
Le nuove frontiere dell'AI nell'RPA con UiPath Autopilot™
Le nuove frontiere dell'AI nell'RPA con UiPath Autopilot™Le nuove frontiere dell'AI nell'RPA con UiPath Autopilot™
Le nuove frontiere dell'AI nell'RPA con UiPath Autopilot™
UiPathCommunity
 
PHP Frameworks: I want to break free (IPC Berlin 2024)
PHP Frameworks: I want to break free (IPC Berlin 2024)PHP Frameworks: I want to break free (IPC Berlin 2024)
PHP Frameworks: I want to break free (IPC Berlin 2024)
Ralf Eggert
 
Secstrike : Reverse Engineering & Pwnable tools for CTF.pptx
Secstrike : Reverse Engineering & Pwnable tools for CTF.pptxSecstrike : Reverse Engineering & Pwnable tools for CTF.pptx
Secstrike : Reverse Engineering & Pwnable tools for CTF.pptx
nkrafacyberclub
 
FIDO Alliance Osaka Seminar: FIDO Security Aspects.pdf
FIDO Alliance Osaka Seminar: FIDO Security Aspects.pdfFIDO Alliance Osaka Seminar: FIDO Security Aspects.pdf
FIDO Alliance Osaka Seminar: FIDO Security Aspects.pdf
FIDO Alliance
 
GraphRAG is All You need? LLM & Knowledge Graph
GraphRAG is All You need? LLM & Knowledge GraphGraphRAG is All You need? LLM & Knowledge Graph
GraphRAG is All You need? LLM & Knowledge Graph
Guy Korland
 
Free Complete Python - A step towards Data Science
Free Complete Python - A step towards Data ScienceFree Complete Python - A step towards Data Science
Free Complete Python - A step towards Data Science
RinaMondal9
 
Elizabeth Buie - Older adults: Are we really designing for our future selves?
Elizabeth Buie - Older adults: Are we really designing for our future selves?Elizabeth Buie - Older adults: Are we really designing for our future selves?
Elizabeth Buie - Older adults: Are we really designing for our future selves?
Nexer Digital
 
UiPath Test Automation using UiPath Test Suite series, part 4
UiPath Test Automation using UiPath Test Suite series, part 4UiPath Test Automation using UiPath Test Suite series, part 4
UiPath Test Automation using UiPath Test Suite series, part 4
DianaGray10
 
FIDO Alliance Osaka Seminar: The WebAuthn API and Discoverable Credentials.pdf
FIDO Alliance Osaka Seminar: The WebAuthn API and Discoverable Credentials.pdfFIDO Alliance Osaka Seminar: The WebAuthn API and Discoverable Credentials.pdf
FIDO Alliance Osaka Seminar: The WebAuthn API and Discoverable Credentials.pdf
FIDO Alliance
 
FIDO Alliance Osaka Seminar: Passkeys at Amazon.pdf
FIDO Alliance Osaka Seminar: Passkeys at Amazon.pdfFIDO Alliance Osaka Seminar: Passkeys at Amazon.pdf
FIDO Alliance Osaka Seminar: Passkeys at Amazon.pdf
FIDO Alliance
 
By Design, not by Accident - Agile Venture Bolzano 2024
By Design, not by Accident - Agile Venture Bolzano 2024By Design, not by Accident - Agile Venture Bolzano 2024
By Design, not by Accident - Agile Venture Bolzano 2024
Pierluigi Pugliese
 
De-mystifying Zero to One: Design Informed Techniques for Greenfield Innovati...
De-mystifying Zero to One: Design Informed Techniques for Greenfield Innovati...De-mystifying Zero to One: Design Informed Techniques for Greenfield Innovati...
De-mystifying Zero to One: Design Informed Techniques for Greenfield Innovati...
Product School
 
When stars align: studies in data quality, knowledge graphs, and machine lear...
When stars align: studies in data quality, knowledge graphs, and machine lear...When stars align: studies in data quality, knowledge graphs, and machine lear...
When stars align: studies in data quality, knowledge graphs, and machine lear...
Elena Simperl
 

Recently uploaded (20)

The Future of Platform Engineering
The Future of Platform EngineeringThe Future of Platform Engineering
The Future of Platform Engineering
 
Key Trends Shaping the Future of Infrastructure.pdf
Key Trends Shaping the Future of Infrastructure.pdfKey Trends Shaping the Future of Infrastructure.pdf
Key Trends Shaping the Future of Infrastructure.pdf
 
LF Energy Webinar: Electrical Grid Modelling and Simulation Through PowSyBl -...
LF Energy Webinar: Electrical Grid Modelling and Simulation Through PowSyBl -...LF Energy Webinar: Electrical Grid Modelling and Simulation Through PowSyBl -...
LF Energy Webinar: Electrical Grid Modelling and Simulation Through PowSyBl -...
 
SAP Sapphire 2024 - ASUG301 building better apps with SAP Fiori.pdf
SAP Sapphire 2024 - ASUG301 building better apps with SAP Fiori.pdfSAP Sapphire 2024 - ASUG301 building better apps with SAP Fiori.pdf
SAP Sapphire 2024 - ASUG301 building better apps with SAP Fiori.pdf
 
Leading Change strategies and insights for effective change management pdf 1.pdf
Leading Change strategies and insights for effective change management pdf 1.pdfLeading Change strategies and insights for effective change management pdf 1.pdf
Leading Change strategies and insights for effective change management pdf 1.pdf
 
Generative AI Deep Dive: Advancing from Proof of Concept to Production
Generative AI Deep Dive: Advancing from Proof of Concept to ProductionGenerative AI Deep Dive: Advancing from Proof of Concept to Production
Generative AI Deep Dive: Advancing from Proof of Concept to Production
 
Accelerate your Kubernetes clusters with Varnish Caching
Accelerate your Kubernetes clusters with Varnish CachingAccelerate your Kubernetes clusters with Varnish Caching
Accelerate your Kubernetes clusters with Varnish Caching
 
Le nuove frontiere dell'AI nell'RPA con UiPath Autopilot™
Le nuove frontiere dell'AI nell'RPA con UiPath Autopilot™Le nuove frontiere dell'AI nell'RPA con UiPath Autopilot™
Le nuove frontiere dell'AI nell'RPA con UiPath Autopilot™
 
PHP Frameworks: I want to break free (IPC Berlin 2024)
PHP Frameworks: I want to break free (IPC Berlin 2024)PHP Frameworks: I want to break free (IPC Berlin 2024)
PHP Frameworks: I want to break free (IPC Berlin 2024)
 
Secstrike : Reverse Engineering & Pwnable tools for CTF.pptx
Secstrike : Reverse Engineering & Pwnable tools for CTF.pptxSecstrike : Reverse Engineering & Pwnable tools for CTF.pptx
Secstrike : Reverse Engineering & Pwnable tools for CTF.pptx
 
FIDO Alliance Osaka Seminar: FIDO Security Aspects.pdf
FIDO Alliance Osaka Seminar: FIDO Security Aspects.pdfFIDO Alliance Osaka Seminar: FIDO Security Aspects.pdf
FIDO Alliance Osaka Seminar: FIDO Security Aspects.pdf
 
GraphRAG is All You need? LLM & Knowledge Graph
GraphRAG is All You need? LLM & Knowledge GraphGraphRAG is All You need? LLM & Knowledge Graph
GraphRAG is All You need? LLM & Knowledge Graph
 
Free Complete Python - A step towards Data Science
Free Complete Python - A step towards Data ScienceFree Complete Python - A step towards Data Science
Free Complete Python - A step towards Data Science
 
Elizabeth Buie - Older adults: Are we really designing for our future selves?
Elizabeth Buie - Older adults: Are we really designing for our future selves?Elizabeth Buie - Older adults: Are we really designing for our future selves?
Elizabeth Buie - Older adults: Are we really designing for our future selves?
 
UiPath Test Automation using UiPath Test Suite series, part 4
UiPath Test Automation using UiPath Test Suite series, part 4UiPath Test Automation using UiPath Test Suite series, part 4
UiPath Test Automation using UiPath Test Suite series, part 4
 
FIDO Alliance Osaka Seminar: The WebAuthn API and Discoverable Credentials.pdf
FIDO Alliance Osaka Seminar: The WebAuthn API and Discoverable Credentials.pdfFIDO Alliance Osaka Seminar: The WebAuthn API and Discoverable Credentials.pdf
FIDO Alliance Osaka Seminar: The WebAuthn API and Discoverable Credentials.pdf
 
FIDO Alliance Osaka Seminar: Passkeys at Amazon.pdf
FIDO Alliance Osaka Seminar: Passkeys at Amazon.pdfFIDO Alliance Osaka Seminar: Passkeys at Amazon.pdf
FIDO Alliance Osaka Seminar: Passkeys at Amazon.pdf
 
By Design, not by Accident - Agile Venture Bolzano 2024
By Design, not by Accident - Agile Venture Bolzano 2024By Design, not by Accident - Agile Venture Bolzano 2024
By Design, not by Accident - Agile Venture Bolzano 2024
 
De-mystifying Zero to One: Design Informed Techniques for Greenfield Innovati...
De-mystifying Zero to One: Design Informed Techniques for Greenfield Innovati...De-mystifying Zero to One: Design Informed Techniques for Greenfield Innovati...
De-mystifying Zero to One: Design Informed Techniques for Greenfield Innovati...
 
When stars align: studies in data quality, knowledge graphs, and machine lear...
When stars align: studies in data quality, knowledge graphs, and machine lear...When stars align: studies in data quality, knowledge graphs, and machine lear...
When stars align: studies in data quality, knowledge graphs, and machine lear...
 

Continuous Deployment Demystified

  • 1. Continuous Deployment Embrace Continuous Improvement Naresh Jain @nashjain naresh@agilefaqs.com http://blogs.agilefaqs.com Licensed Under Creative Commons by Naresh Jain 1
  • 2. Licensed Under Creative Commons by Naresh Jain 2
  • 3. Licensed Under Creative Commons by Naresh Jain 2
  • 4. Continuous Deployment Licensed Under Creative Commons by Naresh Jain 3
  • 5. But.... Licensed Under Creative Commons by Naresh Jain 4
  • 6. re nt! diffe re us? ? Too e a or W F h ere mu em ch probl Ch re a aos he Wh o? W ? Is t hen ? ROI? Pro duc tivit y? Licensed Under Creative Commons by Naresh Jain 4
  • 7. Me Licensed Under Creative Commons by Naresh Jain 5
  • 8. Licensed Under Creative Commons by Naresh Jain 6
  • 9. Mumbai Licensed Under Creative Commons by Naresh Jain 7
  • 10. AgilePhilly Tech Talks! Licensed Under Creative Commons by Naresh Jain 8
  • 11. FitNesse Panopticode ProTest DBFit FitDecorator ProFIT La"u Patang QWick Licensed Under Creative Commons by Naresh Jain 9
  • 12. Licensed Under Creative Commons by Naresh Jain 10
  • 13. Licensed Under Creative Commons by Naresh Jain 11
  • 14. Licensed Under Creative Commons by Naresh Jain 12
  • 15. Licensed Under Creative Commons by Naresh Jain 13
  • 16. Licensed Under Creative Commons by Naresh Jain 14
  • 17. Licensed Under Creative Commons by Naresh Jain 15
  • 18. Back in the Stone-age Licensed Under Creative Commons by Naresh Jain 16
  • 19. Happiness/Excitement Time/Money/Opportunity Cost Licensed Under Creative Commons by Naresh Jain 17
  • 20. Plan Happiness/Excitement Time/Money/Opportunity Cost Licensed Under Creative Commons by Naresh Jain 17
  • 21. Plan Design Happiness/Excitement Time/Money/Opportunity Cost Licensed Under Creative Commons by Naresh Jain 17
  • 22. Plan Design Happiness/Excitement Distribute Time/Money/Opportunity Cost Licensed Under Creative Commons by Naresh Jain 17
  • 23. Plan Design Happiness/Excitement Distribute Work in Isolation Time/Money/Opportunity Cost Licensed Under Creative Commons by Naresh Jain 17
  • 24. Plan Design Happiness/Excitement Distribute Work in Isolation Integrate Time/Money/Opportunity Cost Licensed Under Creative Commons by Naresh Jain 17
  • 25. Last Minute Integration Surprises Licensed Under Creative Commons by Naresh Jain 18
  • 26. BAD things were visible too Late... Licensed Under Creative Commons by Naresh Jain 19
  • 27. Birth of CI Licensed Under Creative Commons by Naresh Jain 20
  • 28. Licensed Under Creative Commons by Naresh Jain 21
  • 29. CI Helped Us Learn That... Life can Suck a lot Less! Licensed Under Creative Commons by Naresh Jain 22
  • 30. CI Helped Us Learn That... Life can Suck a lot Less! Collaboration Feedback Quality Delivery Time Wastage Licensed Under Creative Commons by Naresh Jain 22
  • 31. If people are afraid to check-in frequently... your CI process is NOT working. Licensed Under Creative Commons by Naresh Jain 23
  • 32. We already do CI. What’s next? Licensed Under Creative Commons by Naresh Jain 24
  • 33. Multi-Stage CI Process Scaling CI using Build Promotion Licensed Under Creative Commons by Naresh Jain 25
  • 34. Licensed Under Creative Commons by Naresh Jain 26
  • 35. While the Lean-Start-up Community They tried something quite disruptive... Licensed Under Creative Commons by Naresh Jain 27
  • 36. Continuous Deployment (CD) Licensed Under Creative Commons by Naresh Jain 28
  • 37. CD is quite natural for companies delivering content via Web Licensed Under Creative Commons by Naresh Jain 29
  • 38. Freeset - In Business for Freedom Licensed Under Creative Commons by Naresh Jain 30
  • 39. Stage 1 Static Files DB freesetglobal.com s Vie te da w Up Freeset - In Business for Freedom Licensed Under Creative Commons by Naresh Jain 30
  • 40. Stage 1 Stage 2 Static Static Static Files Files Files DB DB DB Structural Changes Sync freesetglobal.com dev.freesetglobal.com freesetglobal.com s Updates Vie te View da w Up ck li -C oy le pl ng De Si Freeset - In Business for Freedom Licensed Under Creative Commons by Naresh Jain 30
  • 41. Freeset Demo Licensed Under Creative Commons by Naresh Jain 31
  • 42. Benefits of CD Licensed Under Creative Commons by Naresh Jain 32
  • 43. Automation removes Errors Licensed Under Creative Commons by Naresh Jain 33
  • 44. Eliminates stressful release crunch Licensed Under Creative Commons by Naresh Jain 34
  • 45. Users continuously see improvements Licensed Under Creative Commons by Naresh Jain 35
  • 46. Reducing batch size helps drive out waste Licensed Under Creative Commons by Naresh Jain 36
  • 47. Faster responses to customer issues Licensed Under Creative Commons by Naresh Jain 37
  • 48. A/B testing is easier due to less release overhead Licensed Under Creative Commons by Naresh Jain 38
  • 49. Encourages experimenting with new ideas Licensed Under Creative Commons by Naresh Jain 39
  • 50. Allows for fine-grained monitoring of changes Licensed Under Creative Commons by Naresh Jain 40
  • 51. Provides satisfaction from seeing constant progress Licensed Under Creative Commons by Naresh Jain 41
  • 52. Can we embrace CD for eLearning? Rich Multi-Media Content Video, Screencasts, Quizzes, Images, Personas, etc. Programming Exercises Java, C#, C++, C & Python Mac OS, Windows, Linux, Solaris Different IDE Plugins Server side code analysis (Java, C#, C++, C & Python) Licensed Under Creative Commons by Naresh Jain 42
  • 53. This is what we did... Licensed Under Creative Commons by Naresh Jain 43
  • 54. Deploy build to inactive production servers Licensed Under Creative Commons by Naresh Jain 44
  • 55. Inactive joins the cluster Licensed Under Creative Commons by Naresh Jain 45
  • 56. Delivery tests verify inactive release Licensed Under Creative Commons by Naresh Jain 46
  • 57. Reverse proxy swaps inactive with active Licensed Under Creative Commons by Naresh Jain 47
  • 58. Licensed Under Creative Commons by Naresh Jain 48
  • 59. CD Requires Zero Downtime Licensed Under Creative Commons by Naresh Jain 49
  • 60. Zero Downtime Requires Performing updates without interrupting users is essential for Zero Downtime deployments. • The application code • Database schema • Data files • Web Server • Application Server or Servlet Container • Database Server • OS upgrades and patches Licensed Under Creative Commons by Naresh Jain 50
  • 61. What about DB Upgrades? Will Continuous Deployment work? Licensed Under Creative Commons by Naresh Jain 51
  • 62. Hibernate • hbm2ddl.auto = update • Rarely we need to go in and update DB manually Licensed Under Creative Commons by Naresh Jain 52
  • 63. Zero-downtime DB Updates 012_rename_login_id_to_user_name 012_add_user_name_column 02_remove_login_id_column expansion contraction Src: Owen Rogers http://exortech.com/blog/ Licensed Under Creative Commons by Naresh Jain 53
  • 64. Zero-downtime DB Updates Src: Owen Rogers http://exortech.com/blog/ Licensed Under Creative Commons by Naresh Jain 54
  • 65. Zero-downtime DB Updates • expansion Src: Owen Rogers http://exortech.com/blog/ Licensed Under Creative Commons by Naresh Jain 54
  • 66. Zero-downtime DB Updates • expansion • preserves backwards compatibility Src: Owen Rogers http://exortech.com/blog/ Licensed Under Creative Commons by Naresh Jain 54
  • 67. Zero-downtime DB Updates • expansion • preserves backwards compatibility • contract Src: Owen Rogers http://exortech.com/blog/ Licensed Under Creative Commons by Naresh Jain 54
  • 68. Zero-downtime DB Updates • expansion • preserves backwards compatibility • contract • clean up Src: Owen Rogers http://exortech.com/blog/ Licensed Under Creative Commons by Naresh Jain 54
  • 69. Industrial Logic’s eLearning CD Demo Licensed Under Creative Commons by Naresh Jain 55
  • 70. Eventually... Licensed Under Creative Commons by Naresh Jain 56
  • 71. CD’s Impact on Team Culture Licensed Under Creative Commons by Naresh Jain 57
  • 72. Encourage Evolutionary Design and Continuous Improvement culture Licensed Under Creative Commons by Naresh Jain 58
  • 73. Breaks work into micro-pieces, thereby enabling micro-deliveries Licensed Under Creative Commons by Naresh Jain 59
  • 74. Limited Work In Progress Licensed Under Creative Commons by Naresh Jain 60
  • 75. Knows when to hide or reveal work in progress Licensed Under Creative Commons by Naresh Jain 61
  • 76. Team takes shared ownership of the entire software development lifecycle Licensed Under Creative Commons by Naresh Jain 62
  • 77. The product is in a always-working-state No developer is blocked because they can't get stable code Licensed Under Creative Commons by Naresh Jain 63
  • 78. Stop the Line Culture Team catches issues at the source and avoid last minute integration and deployment nightmares Licensed Under Creative Commons by Naresh Jain 64
  • 79. Team crave for rapid feedback Licensed Under Creative Commons by Naresh Jain 65
  • 80. Complete Traceability Version Control, Project & Requirements Managements tool, Bug Tracking and Build system are completely integrated Licensed Under Creative Commons by Naresh Jain 66
  • 81. Questions? Naresh Jain @nashjain naresh@agilefaqs.com http://blogs.agilefaqs.com Licensed Under Creative Commons by Naresh Jain 67