SlideShare a Scribd company logo
1 of 49
Download to read offline
Continuous delivery story with FIFA
Introducing best practices in legacy project


Mirosław Jedynak
Architect @ Making Waves




12.12.2012   © MAKING WAVES   1
Maslow’s hierarchy
                        Creativity

                       Self-esteem

                     Friends, family

                    Security of body,
                      employment

                 Breathing, food, sleep


12.12.2012   2
Revisable




                                             • Source control
             Revisable                       • Revert, branch and merge
                                             • No zip files/shared disk



12.12.2012      3        PROPOSED BY SCOTT HANSELMAN
Buildable & deployable



                                                      • Able to compile code
              Buildable & deployable                  • Built automatically
                                                      • Deploy as easily as you can
                                                        build it
                       Revisable



12.12.2012   © MAKING WAVES   4    PROPOSED BY SCOTT HANSELMAN
Maintainable


                                                 • Able to fix bugs
                 Maintainable                    • Verify them
                                                 • Any tests at all?
             Buildable & deployable

                  Revisable



12.12.2012            5       PROPOSED BY SCOTT HANSELMAN
Refactorable

                                                 • Follow conventions
                 Refactorable                    • Refactor without fear
                                                 • Automated unit tests
                 Maintainable

             Buildable & deployable

                  Revisable



12.12.2012            6       PROPOSED BY SCOTT HANSELMAN
Pride
                                                 • „It’s clear to me”
                    Pride                        • „Ok, John was here”

                 Refactorable

                 Maintainable

             Buildable & deployable

                  Revisable



12.12.2012            7       PROPOSED BY SCOTT HANSELMAN
source: www.wesport.org.uk
Day 0
Inherited project evaluation
Clever solutions
12.12.2012   © MAKING WAVES   11
Code
                                   duplication
12.12.2012   © MAKING WAVES   12
Day 1
Transfer source control
Revisable at FIFA
• Multiple SVN repositories
  – Code duplication between repositories       Pride
  – Missing revisions
                                             Refactorable
• Sometimes challenging to obtain code
  deployed to production                     Maintainable
   – Assemblies without clear source
   – Not versioned                       Buildable & deployable

• Changes directly on production              Revisable
   – In markup (aspx)
   – In assemblies


12.12.2012   © MAKING WAVES   14
Day 2
Automate build
practice where team
members integrate their work
frequently, usually at least
daily - leading to multiple
integrations per day

Continuous Integration
Single Source Repository
Automated Build
Self-testing
Easy to get the latest executable
Day 3
Establish internal test
environment
Testing - inheritance
• Manual test suite
  – Army of testers

       – Functionality exploration
       – Regression
       – Input for automation




12.12.2012   © MAKING WAVES   21
Testing - improvements
• Unit tests
   – Hard to introduce

• Functional acceptance tests
   – UI tests
   – Fragile

• Smoke tests
   – Useful when automating deployment




12.12.2012   © MAKING WAVES   22
Testing environment
• Similar to production
   – Operating system/IIS version
   – Load balancer



• Isolated



• Mocked external systems




12.12.2012   © MAKING WAVES   23
How long would it take in your
organization to deploy a change that
involves just a single line of code?


How long would it take to set up
production environment when your
data center blows up?
Project goal:
shorten release cycle
a set of practices and
principles aimed at
building, testing and
releasing software faster
and more frequently.
Continuous Delivery
Last mile




                  UAT               IT



                        Last mile


12.12.2012   27
Developer     IT


                                                              Customer
  Customer



                                               Focus of
       Focus of last 10 years                  continuous delivery


12.12.2012   © MAKING WAVES   28
http://agilemanifesto.org/principles.html




                Principles behind the Agile Manifesto

                                                     We follow these principles:
                                            Our highest priority is to satisfy the customer
                                               through early and continuous delivery
                                                        of valuable software.
                                         Welcome changing requirements, even late in
                                        development. Agile processes harness change for
                                             the customer's competitive advantage.
                                             Deliver working software frequently, from a
                                            couple of weeks to a couple of months, with a
                                                 preference to the shorter timescale.
                                             Business people and developers must work
                                               together daily throughout the project.
                                     Build projects around motivated individuals.
      12.12.2012                   Give them the environment and support they need,
                      © MAKING WAVES   29
Day 4
Convince customer – business
value
Business value
• Feedback from users
   – Competitive advantage
   – Fail fast and early




12.12.2012   © MAKING WAVES   31
Business value
• Feedback from users
   – Competitive advantage
   – Fail fast and early

• Reduced risks of release
   – Automated




                                    Change
     Change




• Real progress                                            less changes

   – Definition of done                       frequently


• Quicker return of investment
                          Time               Time

12.12.2012    © MAKING WAVES   32
Examples



                                   Waiting for 151 hosts




12.12.2012   © MAKING WAVES   33
Examples




12.12.2012   © MAKING WAVES   34
Most software developed by
large teams spends a significant
proportion of its development
time in an unusable state.
Waterfall
        Black art
„All hands on board”
                 „We deploy on Saturday”
 Deployment – bad parts
Day 5
Design deployment pipeline
Deployment pipeline
  Dev                                           Tester/PO                PO




Version           Build &          Acceptance               Acceptance
                                                                              Release
control           unit test           tests                    tests




                                         Artifacts repository


12.12.2012   © MAKING WAVES   38
When it hurts,
do it more often
Day 6
Manage environment
configuration
It’s easier to break
system by changing
one line of config than
one line of code
Configuration types


                  Environment      Environment    Application
                                         +
                                    Application




12.12.2012   © MAKING WAVES   43
Configuration templating




Configuration               Environment-    Environment    Deployment
  template                    specific      &application    package
                            configuration     specific



   12.12.2012   © MAKING WAVES   44
Troubles
                     Hotfix

* Rollback
  * Deploy last good version
  * Rollback scripts less tested than deployment
  * Avoid Fix-forward fire

* Hotfix
  * Follow regular deployment pipeline
  * It is a tested path
  * It has known time of deployment
Day 8
Deploy to production
Continuous deployment
 • Deploy continuoulsy
 • After each change




Continuous delivery
• Be production ready
• Release any time




12.12.2012   © MAKING WAVES   49
Best practices
How we get there
Best practices - Summary
•      Version everything
•      Similar environment



•      Automate existing procedure
•      Manage configuration



• Most expensive/risky first
• Deploy never easy - try as soon as possible



12.12.2012   © MAKING WAVES   51
Doubts/Fears
• Setup time
   – Sum up deployment and fix times

• Replacing software
   – Release to beta environment for early adopters

• Confidence in automation
   – Do it more often




12.12.2012   © MAKING WAVES   52
Q&A
 Mirosław Jedynak
 m.jedynak@makingwaves.pl

12.12.2012   © MAKING WAVES   53
Database deployment
• separate database migrations
   – expansion scripts - changes not breaking backwards
     compatibility with the existing version
   – contraction scripts - clean up any database structure that is
     no longer needed

App                                App
v1.0                               v2.0




         Expansion                              Contractions
         script v2.0                             cript v2.0
12.12.2012   © MAKING WAVES   55

More Related Content

Recently uploaded

Apidays New York 2024 - APIs in 2030: The Risk of Technological Sleepwalk by ...
Apidays New York 2024 - APIs in 2030: The Risk of Technological Sleepwalk by ...Apidays New York 2024 - APIs in 2030: The Risk of Technological Sleepwalk by ...
Apidays New York 2024 - APIs in 2030: The Risk of Technological Sleepwalk by ...apidays
 
Apidays New York 2024 - Scaling API-first by Ian Reasor and Radu Cotescu, Adobe
Apidays New York 2024 - Scaling API-first by Ian Reasor and Radu Cotescu, AdobeApidays New York 2024 - Scaling API-first by Ian Reasor and Radu Cotescu, Adobe
Apidays New York 2024 - Scaling API-first by Ian Reasor and Radu Cotescu, Adobeapidays
 
Rising Above_ Dubai Floods and the Fortitude of Dubai International Airport.pdf
Rising Above_ Dubai Floods and the Fortitude of Dubai International Airport.pdfRising Above_ Dubai Floods and the Fortitude of Dubai International Airport.pdf
Rising Above_ Dubai Floods and the Fortitude of Dubai International Airport.pdfOrbitshub
 
Elevate Developer Efficiency & build GenAI Application with Amazon Q​
Elevate Developer Efficiency & build GenAI Application with Amazon Q​Elevate Developer Efficiency & build GenAI Application with Amazon Q​
Elevate Developer Efficiency & build GenAI Application with Amazon Q​Bhuvaneswari Subramani
 
Modular Monolith - a Practical Alternative to Microservices @ Devoxx UK 2024
Modular Monolith - a Practical Alternative to Microservices @ Devoxx UK 2024Modular Monolith - a Practical Alternative to Microservices @ Devoxx UK 2024
Modular Monolith - a Practical Alternative to Microservices @ Devoxx UK 2024Victor Rentea
 
Navigating the Deluge_ Dubai Floods and the Resilience of Dubai International...
Navigating the Deluge_ Dubai Floods and the Resilience of Dubai International...Navigating the Deluge_ Dubai Floods and the Resilience of Dubai International...
Navigating the Deluge_ Dubai Floods and the Resilience of Dubai International...Orbitshub
 
DBX First Quarter 2024 Investor Presentation
DBX First Quarter 2024 Investor PresentationDBX First Quarter 2024 Investor Presentation
DBX First Quarter 2024 Investor PresentationDropbox
 
EMPOWERMENT TECHNOLOGY GRADE 11 QUARTER 2 REVIEWER
EMPOWERMENT TECHNOLOGY GRADE 11 QUARTER 2 REVIEWEREMPOWERMENT TECHNOLOGY GRADE 11 QUARTER 2 REVIEWER
EMPOWERMENT TECHNOLOGY GRADE 11 QUARTER 2 REVIEWERMadyBayot
 
MS Copilot expands with MS Graph connectors
MS Copilot expands with MS Graph connectorsMS Copilot expands with MS Graph connectors
MS Copilot expands with MS Graph connectorsNanddeep Nachan
 
Boost Fertility New Invention Ups Success Rates.pdf
Boost Fertility New Invention Ups Success Rates.pdfBoost Fertility New Invention Ups Success Rates.pdf
Boost Fertility New Invention Ups Success Rates.pdfsudhanshuwaghmare1
 
Cloud Frontiers: A Deep Dive into Serverless Spatial Data and FME
Cloud Frontiers:  A Deep Dive into Serverless Spatial Data and FMECloud Frontiers:  A Deep Dive into Serverless Spatial Data and FME
Cloud Frontiers: A Deep Dive into Serverless Spatial Data and FMESafe Software
 
Apidays New York 2024 - Accelerating FinTech Innovation by Vasa Krishnan, Fin...
Apidays New York 2024 - Accelerating FinTech Innovation by Vasa Krishnan, Fin...Apidays New York 2024 - Accelerating FinTech Innovation by Vasa Krishnan, Fin...
Apidays New York 2024 - Accelerating FinTech Innovation by Vasa Krishnan, Fin...apidays
 
"I see eyes in my soup": How Delivery Hero implemented the safety system for ...
"I see eyes in my soup": How Delivery Hero implemented the safety system for ..."I see eyes in my soup": How Delivery Hero implemented the safety system for ...
"I see eyes in my soup": How Delivery Hero implemented the safety system for ...Zilliz
 
Mcleodganj Call Girls 🥰 8617370543 Service Offer VIP Hot Model
Mcleodganj Call Girls 🥰 8617370543 Service Offer VIP Hot ModelMcleodganj Call Girls 🥰 8617370543 Service Offer VIP Hot Model
Mcleodganj Call Girls 🥰 8617370543 Service Offer VIP Hot ModelDeepika Singh
 
ProductAnonymous-April2024-WinProductDiscovery-MelissaKlemke
ProductAnonymous-April2024-WinProductDiscovery-MelissaKlemkeProductAnonymous-April2024-WinProductDiscovery-MelissaKlemke
ProductAnonymous-April2024-WinProductDiscovery-MelissaKlemkeProduct Anonymous
 
[BuildWithAI] Introduction to Gemini.pdf
[BuildWithAI] Introduction to Gemini.pdf[BuildWithAI] Introduction to Gemini.pdf
[BuildWithAI] Introduction to Gemini.pdfSandro Moreira
 
Architecting Cloud Native Applications
Architecting Cloud Native ApplicationsArchitecting Cloud Native Applications
Architecting Cloud Native ApplicationsWSO2
 
Six Myths about Ontologies: The Basics of Formal Ontology
Six Myths about Ontologies: The Basics of Formal OntologySix Myths about Ontologies: The Basics of Formal Ontology
Six Myths about Ontologies: The Basics of Formal Ontologyjohnbeverley2021
 
Biography Of Angeliki Cooney | Senior Vice President Life Sciences | Albany, ...
Biography Of Angeliki Cooney | Senior Vice President Life Sciences | Albany, ...Biography Of Angeliki Cooney | Senior Vice President Life Sciences | Albany, ...
Biography Of Angeliki Cooney | Senior Vice President Life Sciences | Albany, ...Angeliki Cooney
 
CNIC Information System with Pakdata Cf In Pakistan
CNIC Information System with Pakdata Cf In PakistanCNIC Information System with Pakdata Cf In Pakistan
CNIC Information System with Pakdata Cf In Pakistandanishmna97
 

Recently uploaded (20)

Apidays New York 2024 - APIs in 2030: The Risk of Technological Sleepwalk by ...
Apidays New York 2024 - APIs in 2030: The Risk of Technological Sleepwalk by ...Apidays New York 2024 - APIs in 2030: The Risk of Technological Sleepwalk by ...
Apidays New York 2024 - APIs in 2030: The Risk of Technological Sleepwalk by ...
 
Apidays New York 2024 - Scaling API-first by Ian Reasor and Radu Cotescu, Adobe
Apidays New York 2024 - Scaling API-first by Ian Reasor and Radu Cotescu, AdobeApidays New York 2024 - Scaling API-first by Ian Reasor and Radu Cotescu, Adobe
Apidays New York 2024 - Scaling API-first by Ian Reasor and Radu Cotescu, Adobe
 
Rising Above_ Dubai Floods and the Fortitude of Dubai International Airport.pdf
Rising Above_ Dubai Floods and the Fortitude of Dubai International Airport.pdfRising Above_ Dubai Floods and the Fortitude of Dubai International Airport.pdf
Rising Above_ Dubai Floods and the Fortitude of Dubai International Airport.pdf
 
Elevate Developer Efficiency & build GenAI Application with Amazon Q​
Elevate Developer Efficiency & build GenAI Application with Amazon Q​Elevate Developer Efficiency & build GenAI Application with Amazon Q​
Elevate Developer Efficiency & build GenAI Application with Amazon Q​
 
Modular Monolith - a Practical Alternative to Microservices @ Devoxx UK 2024
Modular Monolith - a Practical Alternative to Microservices @ Devoxx UK 2024Modular Monolith - a Practical Alternative to Microservices @ Devoxx UK 2024
Modular Monolith - a Practical Alternative to Microservices @ Devoxx UK 2024
 
Navigating the Deluge_ Dubai Floods and the Resilience of Dubai International...
Navigating the Deluge_ Dubai Floods and the Resilience of Dubai International...Navigating the Deluge_ Dubai Floods and the Resilience of Dubai International...
Navigating the Deluge_ Dubai Floods and the Resilience of Dubai International...
 
DBX First Quarter 2024 Investor Presentation
DBX First Quarter 2024 Investor PresentationDBX First Quarter 2024 Investor Presentation
DBX First Quarter 2024 Investor Presentation
 
EMPOWERMENT TECHNOLOGY GRADE 11 QUARTER 2 REVIEWER
EMPOWERMENT TECHNOLOGY GRADE 11 QUARTER 2 REVIEWEREMPOWERMENT TECHNOLOGY GRADE 11 QUARTER 2 REVIEWER
EMPOWERMENT TECHNOLOGY GRADE 11 QUARTER 2 REVIEWER
 
MS Copilot expands with MS Graph connectors
MS Copilot expands with MS Graph connectorsMS Copilot expands with MS Graph connectors
MS Copilot expands with MS Graph connectors
 
Boost Fertility New Invention Ups Success Rates.pdf
Boost Fertility New Invention Ups Success Rates.pdfBoost Fertility New Invention Ups Success Rates.pdf
Boost Fertility New Invention Ups Success Rates.pdf
 
Cloud Frontiers: A Deep Dive into Serverless Spatial Data and FME
Cloud Frontiers:  A Deep Dive into Serverless Spatial Data and FMECloud Frontiers:  A Deep Dive into Serverless Spatial Data and FME
Cloud Frontiers: A Deep Dive into Serverless Spatial Data and FME
 
Apidays New York 2024 - Accelerating FinTech Innovation by Vasa Krishnan, Fin...
Apidays New York 2024 - Accelerating FinTech Innovation by Vasa Krishnan, Fin...Apidays New York 2024 - Accelerating FinTech Innovation by Vasa Krishnan, Fin...
Apidays New York 2024 - Accelerating FinTech Innovation by Vasa Krishnan, Fin...
 
"I see eyes in my soup": How Delivery Hero implemented the safety system for ...
"I see eyes in my soup": How Delivery Hero implemented the safety system for ..."I see eyes in my soup": How Delivery Hero implemented the safety system for ...
"I see eyes in my soup": How Delivery Hero implemented the safety system for ...
 
Mcleodganj Call Girls 🥰 8617370543 Service Offer VIP Hot Model
Mcleodganj Call Girls 🥰 8617370543 Service Offer VIP Hot ModelMcleodganj Call Girls 🥰 8617370543 Service Offer VIP Hot Model
Mcleodganj Call Girls 🥰 8617370543 Service Offer VIP Hot Model
 
ProductAnonymous-April2024-WinProductDiscovery-MelissaKlemke
ProductAnonymous-April2024-WinProductDiscovery-MelissaKlemkeProductAnonymous-April2024-WinProductDiscovery-MelissaKlemke
ProductAnonymous-April2024-WinProductDiscovery-MelissaKlemke
 
[BuildWithAI] Introduction to Gemini.pdf
[BuildWithAI] Introduction to Gemini.pdf[BuildWithAI] Introduction to Gemini.pdf
[BuildWithAI] Introduction to Gemini.pdf
 
Architecting Cloud Native Applications
Architecting Cloud Native ApplicationsArchitecting Cloud Native Applications
Architecting Cloud Native Applications
 
Six Myths about Ontologies: The Basics of Formal Ontology
Six Myths about Ontologies: The Basics of Formal OntologySix Myths about Ontologies: The Basics of Formal Ontology
Six Myths about Ontologies: The Basics of Formal Ontology
 
Biography Of Angeliki Cooney | Senior Vice President Life Sciences | Albany, ...
Biography Of Angeliki Cooney | Senior Vice President Life Sciences | Albany, ...Biography Of Angeliki Cooney | Senior Vice President Life Sciences | Albany, ...
Biography Of Angeliki Cooney | Senior Vice President Life Sciences | Albany, ...
 
CNIC Information System with Pakdata Cf In Pakistan
CNIC Information System with Pakdata Cf In PakistanCNIC Information System with Pakdata Cf In Pakistan
CNIC Information System with Pakdata Cf In Pakistan
 

Featured

AI Trends in Creative Operations 2024 by Artwork Flow.pdf
AI Trends in Creative Operations 2024 by Artwork Flow.pdfAI Trends in Creative Operations 2024 by Artwork Flow.pdf
AI Trends in Creative Operations 2024 by Artwork Flow.pdfmarketingartwork
 
PEPSICO Presentation to CAGNY Conference Feb 2024
PEPSICO Presentation to CAGNY Conference Feb 2024PEPSICO Presentation to CAGNY Conference Feb 2024
PEPSICO Presentation to CAGNY Conference Feb 2024Neil Kimberley
 
Content Methodology: A Best Practices Report (Webinar)
Content Methodology: A Best Practices Report (Webinar)Content Methodology: A Best Practices Report (Webinar)
Content Methodology: A Best Practices Report (Webinar)contently
 
How to Prepare For a Successful Job Search for 2024
How to Prepare For a Successful Job Search for 2024How to Prepare For a Successful Job Search for 2024
How to Prepare For a Successful Job Search for 2024Albert Qian
 
Social Media Marketing Trends 2024 // The Global Indie Insights
Social Media Marketing Trends 2024 // The Global Indie InsightsSocial Media Marketing Trends 2024 // The Global Indie Insights
Social Media Marketing Trends 2024 // The Global Indie InsightsKurio // The Social Media Age(ncy)
 
Trends In Paid Search: Navigating The Digital Landscape In 2024
Trends In Paid Search: Navigating The Digital Landscape In 2024Trends In Paid Search: Navigating The Digital Landscape In 2024
Trends In Paid Search: Navigating The Digital Landscape In 2024Search Engine Journal
 
5 Public speaking tips from TED - Visualized summary
5 Public speaking tips from TED - Visualized summary5 Public speaking tips from TED - Visualized summary
5 Public speaking tips from TED - Visualized summarySpeakerHub
 
ChatGPT and the Future of Work - Clark Boyd
ChatGPT and the Future of Work - Clark Boyd ChatGPT and the Future of Work - Clark Boyd
ChatGPT and the Future of Work - Clark Boyd Clark Boyd
 
Getting into the tech field. what next
Getting into the tech field. what next Getting into the tech field. what next
Getting into the tech field. what next Tessa Mero
 
Google's Just Not That Into You: Understanding Core Updates & Search Intent
Google's Just Not That Into You: Understanding Core Updates & Search IntentGoogle's Just Not That Into You: Understanding Core Updates & Search Intent
Google's Just Not That Into You: Understanding Core Updates & Search IntentLily Ray
 
Time Management & Productivity - Best Practices
Time Management & Productivity -  Best PracticesTime Management & Productivity -  Best Practices
Time Management & Productivity - Best PracticesVit Horky
 
The six step guide to practical project management
The six step guide to practical project managementThe six step guide to practical project management
The six step guide to practical project managementMindGenius
 
Beginners Guide to TikTok for Search - Rachel Pearson - We are Tilt __ Bright...
Beginners Guide to TikTok for Search - Rachel Pearson - We are Tilt __ Bright...Beginners Guide to TikTok for Search - Rachel Pearson - We are Tilt __ Bright...
Beginners Guide to TikTok for Search - Rachel Pearson - We are Tilt __ Bright...RachelPearson36
 
Unlocking the Power of ChatGPT and AI in Testing - A Real-World Look, present...
Unlocking the Power of ChatGPT and AI in Testing - A Real-World Look, present...Unlocking the Power of ChatGPT and AI in Testing - A Real-World Look, present...
Unlocking the Power of ChatGPT and AI in Testing - A Real-World Look, present...Applitools
 
12 Ways to Increase Your Influence at Work
12 Ways to Increase Your Influence at Work12 Ways to Increase Your Influence at Work
12 Ways to Increase Your Influence at WorkGetSmarter
 

Featured (20)

AI Trends in Creative Operations 2024 by Artwork Flow.pdf
AI Trends in Creative Operations 2024 by Artwork Flow.pdfAI Trends in Creative Operations 2024 by Artwork Flow.pdf
AI Trends in Creative Operations 2024 by Artwork Flow.pdf
 
Skeleton Culture Code
Skeleton Culture CodeSkeleton Culture Code
Skeleton Culture Code
 
PEPSICO Presentation to CAGNY Conference Feb 2024
PEPSICO Presentation to CAGNY Conference Feb 2024PEPSICO Presentation to CAGNY Conference Feb 2024
PEPSICO Presentation to CAGNY Conference Feb 2024
 
Content Methodology: A Best Practices Report (Webinar)
Content Methodology: A Best Practices Report (Webinar)Content Methodology: A Best Practices Report (Webinar)
Content Methodology: A Best Practices Report (Webinar)
 
How to Prepare For a Successful Job Search for 2024
How to Prepare For a Successful Job Search for 2024How to Prepare For a Successful Job Search for 2024
How to Prepare For a Successful Job Search for 2024
 
Social Media Marketing Trends 2024 // The Global Indie Insights
Social Media Marketing Trends 2024 // The Global Indie InsightsSocial Media Marketing Trends 2024 // The Global Indie Insights
Social Media Marketing Trends 2024 // The Global Indie Insights
 
Trends In Paid Search: Navigating The Digital Landscape In 2024
Trends In Paid Search: Navigating The Digital Landscape In 2024Trends In Paid Search: Navigating The Digital Landscape In 2024
Trends In Paid Search: Navigating The Digital Landscape In 2024
 
5 Public speaking tips from TED - Visualized summary
5 Public speaking tips from TED - Visualized summary5 Public speaking tips from TED - Visualized summary
5 Public speaking tips from TED - Visualized summary
 
ChatGPT and the Future of Work - Clark Boyd
ChatGPT and the Future of Work - Clark Boyd ChatGPT and the Future of Work - Clark Boyd
ChatGPT and the Future of Work - Clark Boyd
 
Getting into the tech field. what next
Getting into the tech field. what next Getting into the tech field. what next
Getting into the tech field. what next
 
Google's Just Not That Into You: Understanding Core Updates & Search Intent
Google's Just Not That Into You: Understanding Core Updates & Search IntentGoogle's Just Not That Into You: Understanding Core Updates & Search Intent
Google's Just Not That Into You: Understanding Core Updates & Search Intent
 
How to have difficult conversations
How to have difficult conversations How to have difficult conversations
How to have difficult conversations
 
Introduction to Data Science
Introduction to Data ScienceIntroduction to Data Science
Introduction to Data Science
 
Time Management & Productivity - Best Practices
Time Management & Productivity -  Best PracticesTime Management & Productivity -  Best Practices
Time Management & Productivity - Best Practices
 
The six step guide to practical project management
The six step guide to practical project managementThe six step guide to practical project management
The six step guide to practical project management
 
Beginners Guide to TikTok for Search - Rachel Pearson - We are Tilt __ Bright...
Beginners Guide to TikTok for Search - Rachel Pearson - We are Tilt __ Bright...Beginners Guide to TikTok for Search - Rachel Pearson - We are Tilt __ Bright...
Beginners Guide to TikTok for Search - Rachel Pearson - We are Tilt __ Bright...
 
Unlocking the Power of ChatGPT and AI in Testing - A Real-World Look, present...
Unlocking the Power of ChatGPT and AI in Testing - A Real-World Look, present...Unlocking the Power of ChatGPT and AI in Testing - A Real-World Look, present...
Unlocking the Power of ChatGPT and AI in Testing - A Real-World Look, present...
 
12 Ways to Increase Your Influence at Work
12 Ways to Increase Your Influence at Work12 Ways to Increase Your Influence at Work
12 Ways to Increase Your Influence at Work
 
ChatGPT webinar slides
ChatGPT webinar slidesChatGPT webinar slides
ChatGPT webinar slides
 
More than Just Lines on a Map: Best Practices for U.S Bike Routes
More than Just Lines on a Map: Best Practices for U.S Bike RoutesMore than Just Lines on a Map: Best Practices for U.S Bike Routes
More than Just Lines on a Map: Best Practices for U.S Bike Routes
 

Continuous Delivery story with FIFA (Wroc.net - 2012.12.11)

  • 1. Continuous delivery story with FIFA Introducing best practices in legacy project Mirosław Jedynak Architect @ Making Waves 12.12.2012 © MAKING WAVES 1
  • 2. Maslow’s hierarchy Creativity Self-esteem Friends, family Security of body, employment Breathing, food, sleep 12.12.2012 2
  • 3. Revisable • Source control Revisable • Revert, branch and merge • No zip files/shared disk 12.12.2012 3 PROPOSED BY SCOTT HANSELMAN
  • 4. Buildable & deployable • Able to compile code Buildable & deployable • Built automatically • Deploy as easily as you can build it Revisable 12.12.2012 © MAKING WAVES 4 PROPOSED BY SCOTT HANSELMAN
  • 5. Maintainable • Able to fix bugs Maintainable • Verify them • Any tests at all? Buildable & deployable Revisable 12.12.2012 5 PROPOSED BY SCOTT HANSELMAN
  • 6. Refactorable • Follow conventions Refactorable • Refactor without fear • Automated unit tests Maintainable Buildable & deployable Revisable 12.12.2012 6 PROPOSED BY SCOTT HANSELMAN
  • 7. Pride • „It’s clear to me” Pride • „Ok, John was here” Refactorable Maintainable Buildable & deployable Revisable 12.12.2012 7 PROPOSED BY SCOTT HANSELMAN
  • 10. Clever solutions 12.12.2012 © MAKING WAVES 11
  • 11. Code duplication 12.12.2012 © MAKING WAVES 12
  • 13. Revisable at FIFA • Multiple SVN repositories – Code duplication between repositories Pride – Missing revisions Refactorable • Sometimes challenging to obtain code deployed to production Maintainable – Assemblies without clear source – Not versioned Buildable & deployable • Changes directly on production Revisable – In markup (aspx) – In assemblies 12.12.2012 © MAKING WAVES 14
  • 15. practice where team members integrate their work frequently, usually at least daily - leading to multiple integrations per day Continuous Integration
  • 16. Single Source Repository Automated Build Self-testing Easy to get the latest executable
  • 17. Day 3 Establish internal test environment
  • 18. Testing - inheritance • Manual test suite – Army of testers – Functionality exploration – Regression – Input for automation 12.12.2012 © MAKING WAVES 21
  • 19. Testing - improvements • Unit tests – Hard to introduce • Functional acceptance tests – UI tests – Fragile • Smoke tests – Useful when automating deployment 12.12.2012 © MAKING WAVES 22
  • 20. Testing environment • Similar to production – Operating system/IIS version – Load balancer • Isolated • Mocked external systems 12.12.2012 © MAKING WAVES 23
  • 21. How long would it take in your organization to deploy a change that involves just a single line of code? How long would it take to set up production environment when your data center blows up?
  • 23. a set of practices and principles aimed at building, testing and releasing software faster and more frequently. Continuous Delivery
  • 24. Last mile UAT IT Last mile 12.12.2012 27
  • 25. Developer IT Customer Customer Focus of Focus of last 10 years continuous delivery 12.12.2012 © MAKING WAVES 28
  • 26. http://agilemanifesto.org/principles.html Principles behind the Agile Manifesto We follow these principles: Our highest priority is to satisfy the customer through early and continuous delivery of valuable software. Welcome changing requirements, even late in development. Agile processes harness change for the customer's competitive advantage. Deliver working software frequently, from a couple of weeks to a couple of months, with a preference to the shorter timescale. Business people and developers must work together daily throughout the project. Build projects around motivated individuals. 12.12.2012 Give them the environment and support they need, © MAKING WAVES 29
  • 27. Day 4 Convince customer – business value
  • 28. Business value • Feedback from users – Competitive advantage – Fail fast and early 12.12.2012 © MAKING WAVES 31
  • 29. Business value • Feedback from users – Competitive advantage – Fail fast and early • Reduced risks of release – Automated Change Change • Real progress less changes – Definition of done frequently • Quicker return of investment Time Time 12.12.2012 © MAKING WAVES 32
  • 30. Examples Waiting for 151 hosts 12.12.2012 © MAKING WAVES 33
  • 31. Examples 12.12.2012 © MAKING WAVES 34
  • 32. Most software developed by large teams spends a significant proportion of its development time in an unusable state.
  • 33. Waterfall Black art „All hands on board” „We deploy on Saturday” Deployment – bad parts
  • 35. Deployment pipeline Dev Tester/PO PO Version Build & Acceptance Acceptance Release control unit test tests tests Artifacts repository 12.12.2012 © MAKING WAVES 38
  • 36. When it hurts, do it more often
  • 38. It’s easier to break system by changing one line of config than one line of code
  • 39. Configuration types Environment Environment Application + Application 12.12.2012 © MAKING WAVES 43
  • 40. Configuration templating Configuration Environment- Environment Deployment template specific &application package configuration specific 12.12.2012 © MAKING WAVES 44
  • 41. Troubles Hotfix * Rollback * Deploy last good version * Rollback scripts less tested than deployment * Avoid Fix-forward fire * Hotfix * Follow regular deployment pipeline * It is a tested path * It has known time of deployment
  • 42. Day 8 Deploy to production
  • 43. Continuous deployment • Deploy continuoulsy • After each change Continuous delivery • Be production ready • Release any time 12.12.2012 © MAKING WAVES 49
  • 45. Best practices - Summary • Version everything • Similar environment • Automate existing procedure • Manage configuration • Most expensive/risky first • Deploy never easy - try as soon as possible 12.12.2012 © MAKING WAVES 51
  • 46. Doubts/Fears • Setup time – Sum up deployment and fix times • Replacing software – Release to beta environment for early adopters • Confidence in automation – Do it more often 12.12.2012 © MAKING WAVES 52
  • 47. Q&A Mirosław Jedynak m.jedynak@makingwaves.pl 12.12.2012 © MAKING WAVES 53
  • 48. Database deployment • separate database migrations – expansion scripts - changes not breaking backwards compatibility with the existing version – contraction scripts - clean up any database structure that is no longer needed App App v1.0 v2.0 Expansion Contractions script v2.0 cript v2.0
  • 49. 12.12.2012 © MAKING WAVES 55