changing tires on a moving car a journey to zero downtime
play

Changing Tires on a Moving Car: A Journey to - PDF document

AT7 Agile/ DevOps Transformations Thursday, November 7th, 2019 10:00 AM Changing Tires on a Moving Car: A Journey to Zero-Downtime


  1. ¡ ¡ AT7 ¡ Agile/ ¡DevOps ¡Transformations ¡ Thursday, ¡November ¡7th, ¡2019 ¡10:00 ¡AM ¡ ¡ ¡ ¡ ¡ Changing ¡Tires ¡on ¡a ¡Moving ¡Car: ¡A ¡ Journey ¡to ¡Zero-­‑Downtime ¡ Deployments ¡ ¡ Presented ¡by: ¡ ¡ ¡ ¡ Pierre ¡Vincent ¡ ¡ Poppulo ¡ ¡ Brought ¡to ¡you ¡by: ¡ ¡ ¡ ¡ ¡ ¡ ¡ ¡ ¡ 888 -­‑-­‑-­‑ 268 -­‑-­‑-­‑ 8770 ¡ ·√·√ ¡904 -­‑-­‑-­‑ 278 -­‑-­‑-­‑ 0524 ¡-­‑ ¡info@techwell.com ¡ ¡ https://agiledevopseast.techwell.com/ ¡

  2. ¡ ¡ ¡ ¡ ¡ ¡ Pierre ¡Vincent ¡ ¡ Originally ¡from ¡a ¡software ¡development ¡background, ¡the ¡rise ¡of ¡DevOps ¡drove ¡ Pierre ¡Vincent ¡to ¡become ¡more ¡involved ¡in ¡how ¡systems ¡actually ¡run ¡in ¡the ¡real ¡ world ¡and ¡how ¡he ¡could ¡make ¡a ¡difference ¡helping ¡others ¡care ¡about ¡the ¡ applications ¡they ¡release ¡to ¡production. ¡Pierre ¡is ¡currently ¡an ¡infrastructure ¡and ¡ reliability ¡manager ¡at ¡Poppulo, ¡where ¡he's ¡responsible ¡for ¡the ¡continuous ¡delivery ¡ platform ¡and ¡the ¡operations ¡of ¡the ¡hybrid ¡on-­‑premises/cloud ¡infrastructure. ¡He ¡has ¡ given ¡talks ¡at ¡several ¡conferences ¡(O’Reilly ¡Velocity, ¡QCon ¡London) ¡in ¡the ¡space ¡of ¡ distributed ¡systems, ¡DevOps, ¡and ¡continuous ¡delivery. ¡ ¡

  3. November 7th, 2019 – Orlando, FL Changing tyres on a moving car Our journey to zero-downtime deployments @PierreVincent pvincent.io @PierreVincent Agile+DevOps East 2019 Changing tyres on a moving car @PierreVincent Agile+DevOps East 2019 Changing tyres on a moving car

  4. “ There has been a massive earthquake in New Zealand and I need to use Poppulo for regular updates. Please can you advise when it will be back online. ” – Poppulo customer @PierreVincent Agile+DevOps East 2019 Changing tyres on a moving car Pierre Vincent Infra. & Reliability Manager @PierreVincent pvincent.io @PierreVincent Agile+DevOps East 2019 Changing tyres on a moving car

  5. Deploying every 3 to 6 Deploying every 4 weeks Core months Monolith 4 hours downtime 2 hours downtime (est. 2007) On Sunday at 5PM On Sunday at 8PM 2009 2015 Microservices Deploying 10+ times/day (est. 2015) Zero downtime Deloy on-demand, anytime @PierreVincent Agile+DevOps East 2019 Changing tyres on a moving car High-performing technology organisations deploy 46x more frequently than low-performing ones Source: Accelerate - Dr. Nicole Forsgren @PierreVincent

  6. How can we hope to achieve Continuous Delivery, when more frequent deploys means more downtime? @PierreVincent The “zero-downtime” elephant in the room... Why are we so afraid to try? @PierreVincent

  7. Mapping the deployment process, and its impact on users @PierreVincent Agile+DevOps East 2019 Changing tyres on a moving car Deployment steps User impact Enable maintenance mode Limited functionality Wait for queued jobs to complete 5-30 mins Shut down services Run database migrations 15-60 mins Upgrade services Downtime 15 mins Start services Wait for services startup Disable maintenance mode @PierreVincent Agile+DevOps East 2019 Changing tyres on a moving car

  8. Keeping the application up and running while applying database schema migration @PierreVincent Agile+DevOps East 2019 Changing tyres on a moving car Online database migration Ensure backward Decouple schema version compatibility with Limit impact to live traffic from application version non-breaking changes only Application [N] must work No destructive operations to Detect changes likely to cause with schema [N+1] tables/columns in use locking problems Use expand/contract to split breaking changes @PierreVincent Agile+DevOps East 2019 Changing tyres on a moving car

  9. Expand/Contract example Create Write to Migrate Read Remove new both historical from new old column columns records column column Release N+1 N+2 N+3 @PierreVincent Agile+DevOps East 2019 Changing tyres on a moving car More on schema migrations Baron Schwartz - DevOps for the database Chapter: Loosening the Application/Database coupling www.vividcortex.com/resources/devops-for-the-database-ebook Michiel Rook - Database Schema Migrations with Zero Downtime speakerdeck.com/mrook/database-schema-migrations-with-zero-downtim e-continuous-lifecycle-london-2019 @PierreVincent Agile+DevOps East 2019 Changing tyres on a moving car

  10. Keeping the application up and running with rolling-upgrades @PierreVincent Agile+DevOps East 2019 Changing tyres on a moving car Full upgrade Rolling upgrade 1 2 1 2 Up [N] Up [N] Up [N] Feature continuously available Drain Drain Feature downtime Drain Stop Stop Stop Up [N] Upgrade Upgrade Upgrade Start Start Start Up [N+1] Up [N+1] Drain Stop Up [N+1] Upgrade Start Up [N+1] @PierreVincent Agile+DevOps East 2019 Changing tyres on a moving car

  11. Focusing on operability to confidently run upgrades while serving live traffic @PierreVincent Agile+DevOps East 2019 Changing tyres on a moving car Entire deployment pipeline in source control ✓ Consistent and repeatable deployments + ✓ Any change is code-reviewed ✓ No more manual operations @PierreVincent Agile+DevOps East 2019 Changing tyres on a moving car

  12. Observable deployments ✓ Core healthchecks ✓ Rolling-upgrade Progress ✓ Synthetic journey monitoring ✓ Error rates & queues saturation @PierreVincent Agile+DevOps East 2019 Changing tyres on a moving car Deploying every 3 to 6 Deploying every 4 weeks Deploying anytime months 4 hours downtime 2 hours downtime Zero downtime On Sunday at 8PM On Sunday at 8PM During working hours 2009 2015 2019 @PierreVincent Agile+DevOps East 2019 Changing tyres on a moving car

  13. Zero-downtime deployments don’t mean everything stays up or that everything is immediately running the latest version. They simply mean users don’t notice a thing while all this is happening. @PierreVincent Thank you! pvincent.io @PierreVincent Agile+DevOps East 2019 Changing tyres on a moving car

Recommend


More recommend