SlideShare a Scribd company logo
1 of 81
Download to read offline
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 SocietyNaresh 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 MaintenanceNaresh Jain
 
Software Development The Trekkers Way
Software Development The Trekkers WaySoftware Development The Trekkers Way
Software Development The Trekkers WayNaresh Jain
 
Waterfall to Agile Demo
Waterfall to Agile DemoWaterfall to Agile Demo
Waterfall to Agile DemoNaresh Jain
 
Offshore Agile Maintenance
Offshore Agile MaintenanceOffshore Agile Maintenance
Offshore Agile MaintenanceNaresh Jain
 
Refactoring Fest
Refactoring FestRefactoring Fest
Refactoring FestNaresh Jain
 
Distributed Agile
Distributed AgileDistributed Agile
Distributed AgileNaresh Jain
 
Test Driven Development
Test Driven DevelopmentTest Driven Development
Test Driven DevelopmentNaresh 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 ConferenceNaresh 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 ProdNaresh 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
 

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 DesignNaresh Jain
 
Agile India 2019 Conference Welcome Note
Agile India 2019 Conference Welcome NoteAgile India 2019 Conference Welcome Note
Agile India 2019 Conference Welcome NoteNaresh Jain
 
Organizational Resilience
Organizational ResilienceOrganizational Resilience
Organizational ResilienceNaresh Jain
 
Improving the Quality of Incoming Code
Improving the Quality of Incoming CodeImproving the Quality of Incoming Code
Improving the Quality of Incoming CodeNaresh Jain
 
Agile India 2018 Conference Summary
Agile India 2018 Conference SummaryAgile India 2018 Conference Summary
Agile India 2018 Conference SummaryNaresh Jain
 
Agile India 2018 Conference
Agile India 2018 ConferenceAgile India 2018 Conference
Agile India 2018 ConferenceNaresh Jain
 
Agile India 2018 Conference
Agile India 2018 ConferenceAgile India 2018 Conference
Agile India 2018 ConferenceNaresh Jain
 
Agile India 2018 Conference
Agile India 2018 ConferenceAgile India 2018 Conference
Agile India 2018 ConferenceNaresh 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 VirdingNaresh 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 CesariniNaresh 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 CesariniNaresh 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 DatarNaresh 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 AppNaresh 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 McKennaNaresh Jain
 
Functional Programming Conference 2016
Functional Programming Conference 2016Functional Programming Conference 2016
Functional Programming Conference 2016Naresh 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 JDTNaresh 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 KimNaresh Jain
 
MVP Design Hacks
MVP Design HacksMVP Design Hacks
MVP Design HacksNaresh Jain
 
Functional Conf 2015
Functional Conf 2015Functional Conf 2015
Functional Conf 2015Naresh 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

Unleashing Real-time Insights with ClickHouse_ Navigating the Landscape in 20...
Unleashing Real-time Insights with ClickHouse_ Navigating the Landscape in 20...Unleashing Real-time Insights with ClickHouse_ Navigating the Landscape in 20...
Unleashing Real-time Insights with ClickHouse_ Navigating the Landscape in 20...Alkin Tezuysal
 
[Webinar] SpiraTest - Setting New Standards in Quality Assurance
[Webinar] SpiraTest - Setting New Standards in Quality Assurance[Webinar] SpiraTest - Setting New Standards in Quality Assurance
[Webinar] SpiraTest - Setting New Standards in Quality AssuranceInflectra
 
Varsha Sewlal- Cyber Attacks on Critical Critical Infrastructure
Varsha Sewlal- Cyber Attacks on Critical Critical InfrastructureVarsha Sewlal- Cyber Attacks on Critical Critical Infrastructure
Varsha Sewlal- Cyber Attacks on Critical Critical Infrastructureitnewsafrica
 
A Journey Into the Emotions of Software Developers
A Journey Into the Emotions of Software DevelopersA Journey Into the Emotions of Software Developers
A Journey Into the Emotions of Software DevelopersNicole Novielli
 
Bridging Between CAD & GIS: 6 Ways to Automate Your Data Integration
Bridging Between CAD & GIS:  6 Ways to Automate Your Data IntegrationBridging Between CAD & GIS:  6 Ways to Automate Your Data Integration
Bridging Between CAD & GIS: 6 Ways to Automate Your Data Integrationmarketing932765
 
Microsoft 365 Copilot: How to boost your productivity with AI – Part one: Ado...
Microsoft 365 Copilot: How to boost your productivity with AI – Part one: Ado...Microsoft 365 Copilot: How to boost your productivity with AI – Part one: Ado...
Microsoft 365 Copilot: How to boost your productivity with AI – Part one: Ado...Nikki Chapple
 
Connecting the Dots for Information Discovery.pdf
Connecting the Dots for Information Discovery.pdfConnecting the Dots for Information Discovery.pdf
Connecting the Dots for Information Discovery.pdfNeo4j
 
All These Sophisticated Attacks, Can We Really Detect Them - PDF
All These Sophisticated Attacks, Can We Really Detect Them - PDFAll These Sophisticated Attacks, Can We Really Detect Them - PDF
All These Sophisticated Attacks, Can We Really Detect Them - PDFMichael Gough
 
Zeshan Sattar- Assessing the skill requirements and industry expectations for...
Zeshan Sattar- Assessing the skill requirements and industry expectations for...Zeshan Sattar- Assessing the skill requirements and industry expectations for...
Zeshan Sattar- Assessing the skill requirements and industry expectations for...itnewsafrica
 
Email Marketing Automation for Bonterra Impact Management (fka Social Solutio...
Email Marketing Automation for Bonterra Impact Management (fka Social Solutio...Email Marketing Automation for Bonterra Impact Management (fka Social Solutio...
Email Marketing Automation for Bonterra Impact Management (fka Social Solutio...Jeffrey Haguewood
 
Long journey of Ruby standard library at RubyConf AU 2024
Long journey of Ruby standard library at RubyConf AU 2024Long journey of Ruby standard library at RubyConf AU 2024
Long journey of Ruby standard library at RubyConf AU 2024Hiroshi SHIBATA
 
Top 10 Hubspot Development Companies in 2024
Top 10 Hubspot Development Companies in 2024Top 10 Hubspot Development Companies in 2024
Top 10 Hubspot Development Companies in 2024TopCSSGallery
 
A Framework for Development in the AI Age
A Framework for Development in the AI AgeA Framework for Development in the AI Age
A Framework for Development in the AI AgeCprime
 
The Future Roadmap for the Composable Data Stack - Wes McKinney - Data Counci...
The Future Roadmap for the Composable Data Stack - Wes McKinney - Data Counci...The Future Roadmap for the Composable Data Stack - Wes McKinney - Data Counci...
The Future Roadmap for the Composable Data Stack - Wes McKinney - Data Counci...Wes McKinney
 
The State of Passkeys with FIDO Alliance.pptx
The State of Passkeys with FIDO Alliance.pptxThe State of Passkeys with FIDO Alliance.pptx
The State of Passkeys with FIDO Alliance.pptxLoriGlavin3
 
Genislab builds better products and faster go-to-market with Lean project man...
Genislab builds better products and faster go-to-market with Lean project man...Genislab builds better products and faster go-to-market with Lean project man...
Genislab builds better products and faster go-to-market with Lean project man...Farhan Tariq
 
Glenn Lazarus- Why Your Observability Strategy Needs Security Observability
Glenn Lazarus- Why Your Observability Strategy Needs Security ObservabilityGlenn Lazarus- Why Your Observability Strategy Needs Security Observability
Glenn Lazarus- Why Your Observability Strategy Needs Security Observabilityitnewsafrica
 
2024 April Patch Tuesday
2024 April Patch Tuesday2024 April Patch Tuesday
2024 April Patch TuesdayIvanti
 
Moving Beyond Passwords: FIDO Paris Seminar.pdf
Moving Beyond Passwords: FIDO Paris Seminar.pdfMoving Beyond Passwords: FIDO Paris Seminar.pdf
Moving Beyond Passwords: FIDO Paris Seminar.pdfLoriGlavin3
 
MuleSoft Online Meetup Group - B2B Crash Course: Release SparkNotes
MuleSoft Online Meetup Group - B2B Crash Course: Release SparkNotesMuleSoft Online Meetup Group - B2B Crash Course: Release SparkNotes
MuleSoft Online Meetup Group - B2B Crash Course: Release SparkNotesManik S Magar
 

Recently uploaded (20)

Unleashing Real-time Insights with ClickHouse_ Navigating the Landscape in 20...
Unleashing Real-time Insights with ClickHouse_ Navigating the Landscape in 20...Unleashing Real-time Insights with ClickHouse_ Navigating the Landscape in 20...
Unleashing Real-time Insights with ClickHouse_ Navigating the Landscape in 20...
 
[Webinar] SpiraTest - Setting New Standards in Quality Assurance
[Webinar] SpiraTest - Setting New Standards in Quality Assurance[Webinar] SpiraTest - Setting New Standards in Quality Assurance
[Webinar] SpiraTest - Setting New Standards in Quality Assurance
 
Varsha Sewlal- Cyber Attacks on Critical Critical Infrastructure
Varsha Sewlal- Cyber Attacks on Critical Critical InfrastructureVarsha Sewlal- Cyber Attacks on Critical Critical Infrastructure
Varsha Sewlal- Cyber Attacks on Critical Critical Infrastructure
 
A Journey Into the Emotions of Software Developers
A Journey Into the Emotions of Software DevelopersA Journey Into the Emotions of Software Developers
A Journey Into the Emotions of Software Developers
 
Bridging Between CAD & GIS: 6 Ways to Automate Your Data Integration
Bridging Between CAD & GIS:  6 Ways to Automate Your Data IntegrationBridging Between CAD & GIS:  6 Ways to Automate Your Data Integration
Bridging Between CAD & GIS: 6 Ways to Automate Your Data Integration
 
Microsoft 365 Copilot: How to boost your productivity with AI – Part one: Ado...
Microsoft 365 Copilot: How to boost your productivity with AI – Part one: Ado...Microsoft 365 Copilot: How to boost your productivity with AI – Part one: Ado...
Microsoft 365 Copilot: How to boost your productivity with AI – Part one: Ado...
 
Connecting the Dots for Information Discovery.pdf
Connecting the Dots for Information Discovery.pdfConnecting the Dots for Information Discovery.pdf
Connecting the Dots for Information Discovery.pdf
 
All These Sophisticated Attacks, Can We Really Detect Them - PDF
All These Sophisticated Attacks, Can We Really Detect Them - PDFAll These Sophisticated Attacks, Can We Really Detect Them - PDF
All These Sophisticated Attacks, Can We Really Detect Them - PDF
 
Zeshan Sattar- Assessing the skill requirements and industry expectations for...
Zeshan Sattar- Assessing the skill requirements and industry expectations for...Zeshan Sattar- Assessing the skill requirements and industry expectations for...
Zeshan Sattar- Assessing the skill requirements and industry expectations for...
 
Email Marketing Automation for Bonterra Impact Management (fka Social Solutio...
Email Marketing Automation for Bonterra Impact Management (fka Social Solutio...Email Marketing Automation for Bonterra Impact Management (fka Social Solutio...
Email Marketing Automation for Bonterra Impact Management (fka Social Solutio...
 
Long journey of Ruby standard library at RubyConf AU 2024
Long journey of Ruby standard library at RubyConf AU 2024Long journey of Ruby standard library at RubyConf AU 2024
Long journey of Ruby standard library at RubyConf AU 2024
 
Top 10 Hubspot Development Companies in 2024
Top 10 Hubspot Development Companies in 2024Top 10 Hubspot Development Companies in 2024
Top 10 Hubspot Development Companies in 2024
 
A Framework for Development in the AI Age
A Framework for Development in the AI AgeA Framework for Development in the AI Age
A Framework for Development in the AI Age
 
The Future Roadmap for the Composable Data Stack - Wes McKinney - Data Counci...
The Future Roadmap for the Composable Data Stack - Wes McKinney - Data Counci...The Future Roadmap for the Composable Data Stack - Wes McKinney - Data Counci...
The Future Roadmap for the Composable Data Stack - Wes McKinney - Data Counci...
 
The State of Passkeys with FIDO Alliance.pptx
The State of Passkeys with FIDO Alliance.pptxThe State of Passkeys with FIDO Alliance.pptx
The State of Passkeys with FIDO Alliance.pptx
 
Genislab builds better products and faster go-to-market with Lean project man...
Genislab builds better products and faster go-to-market with Lean project man...Genislab builds better products and faster go-to-market with Lean project man...
Genislab builds better products and faster go-to-market with Lean project man...
 
Glenn Lazarus- Why Your Observability Strategy Needs Security Observability
Glenn Lazarus- Why Your Observability Strategy Needs Security ObservabilityGlenn Lazarus- Why Your Observability Strategy Needs Security Observability
Glenn Lazarus- Why Your Observability Strategy Needs Security Observability
 
2024 April Patch Tuesday
2024 April Patch Tuesday2024 April Patch Tuesday
2024 April Patch Tuesday
 
Moving Beyond Passwords: FIDO Paris Seminar.pdf
Moving Beyond Passwords: FIDO Paris Seminar.pdfMoving Beyond Passwords: FIDO Paris Seminar.pdf
Moving Beyond Passwords: FIDO Paris Seminar.pdf
 
MuleSoft Online Meetup Group - B2B Crash Course: Release SparkNotes
MuleSoft Online Meetup Group - B2B Crash Course: Release SparkNotesMuleSoft Online Meetup Group - B2B Crash Course: Release SparkNotes
MuleSoft Online Meetup Group - B2B Crash Course: Release SparkNotes
 

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