SlideShare une entreprise Scribd logo
1  sur  22
The Why and How of Continuous Delivery Nigel McNie getyourgameon.co.nz
[object Object]
The Development Landscape ,[object Object],[object Object],[object Object],[object Object]
The Deployment Landscape ,[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object]
What's wrong with them? ,[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object]
What's wrong with them? ,[object Object],[object Object]
What's wrong with them? ,[object Object],[object Object]
The Development Landscape (again) ,[object Object],[object Object],[object Object],[object Object]
Continuous Delivery ,[object Object],[object Object],[object Object],[object Object],[object Object]
Commit ,[object Object],[object Object],[object Object]
Feature Branches ,[object Object],[object Object],[object Object]
Feature Flags (Flippers/Toggles) ,[object Object],[object Object],[object Object],[object Object],[object Object],[object Object]
Test ,[object Object],[object Object],[object Object]
Deploy ,[object Object],[object Object],[object Object]
What happens if things break? ,[object Object],[object Object],[object Object],[object Object]
"It sounds too risky!" ,[object Object],[object Object],[object Object]
Benefits ,[object Object],[object Object],[object Object],[object Object],[object Object]
Core Benefit ,[object Object]
"But what about... ?" ,[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object]
But what about... ? ,[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object]
Final Thoughts ,[object Object],[object Object],[object Object],[object Object]
EOF ,[object Object],[object Object],[object Object]

Contenu connexe

Tendances

Test Automation Pyramid
Test Automation PyramidTest Automation Pyramid
Test Automation PyramidvodQA
 
Using flow approaches to effectively manage agile testing at the enterprise l...
Using flow approaches to effectively manage agile testing at the enterprise l...Using flow approaches to effectively manage agile testing at the enterprise l...
Using flow approaches to effectively manage agile testing at the enterprise l...Yuval Yeret
 
Kanban Methodologist Certification at Xebia
Kanban Methodologist Certification at XebiaKanban Methodologist Certification at Xebia
Kanban Methodologist Certification at XebiaPooja Gulati
 
Improving Agility (Learning from Maersk Line's Journey) | Özlem Yüce | Agile ...
Improving Agility (Learning from Maersk Line's Journey) | Özlem Yüce | Agile ...Improving Agility (Learning from Maersk Line's Journey) | Özlem Yüce | Agile ...
Improving Agility (Learning from Maersk Line's Journey) | Özlem Yüce | Agile ...Agile Greece
 
A lean automation blueprint for testing in continuous delivery
A lean automation blueprint for testing in continuous deliveryA lean automation blueprint for testing in continuous delivery
A lean automation blueprint for testing in continuous deliverySauce Labs
 
Testit Process
Testit ProcessTestit Process
Testit ProcessLeoShares
 
What is Agile Software Development?
What is Agile Software Development?What is Agile Software Development?
What is Agile Software Development?Blossom IO Inc.
 
Continuous Deployment
Continuous DeploymentContinuous Deployment
Continuous DeploymentTimothy Fitz
 
Cas2010 to-track-defects-or-not-to-track-defects-that-is-the-question
Cas2010 to-track-defects-or-not-to-track-defects-that-is-the-questionCas2010 to-track-defects-or-not-to-track-defects-that-is-the-question
Cas2010 to-track-defects-or-not-to-track-defects-that-is-the-questionAgile Spain
 
Continuous Deployment
Continuous DeploymentContinuous Deployment
Continuous DeploymentTimothy Fitz
 
Quality not-speed-for-distrobution
Quality not-speed-for-distrobutionQuality not-speed-for-distrobution
Quality not-speed-for-distrobutionbownyboy
 
Stress Test & Chaos Engineering
Stress Test & Chaos EngineeringStress Test & Chaos Engineering
Stress Test & Chaos EngineeringDiego Pacheco
 
Pushing the Bottleneck: Predicting and Addressing the Next, Next Thing
Pushing the Bottleneck: Predicting and Addressing the Next, Next ThingPushing the Bottleneck: Predicting and Addressing the Next, Next Thing
Pushing the Bottleneck: Predicting and Addressing the Next, Next ThingIBM UrbanCode Products
 
Software testing presentation
Software testing presentationSoftware testing presentation
Software testing presentationNikolas Vourlakis
 
QASymphony and TestPlant: Bringing Together Best-in-Class Test Management and...
QASymphony and TestPlant: Bringing Together Best-in-Class Test Management and...QASymphony and TestPlant: Bringing Together Best-in-Class Test Management and...
QASymphony and TestPlant: Bringing Together Best-in-Class Test Management and...QASymphony
 
Kanban and Iterationless Working
Kanban and Iterationless WorkingKanban and Iterationless Working
Kanban and Iterationless WorkingKerry Buckley
 
Unstoppable releases with kanban
Unstoppable releases with kanbanUnstoppable releases with kanban
Unstoppable releases with kanbanAndrii Shumada
 

Tendances (20)

Test Automation Pyramid
Test Automation PyramidTest Automation Pyramid
Test Automation Pyramid
 
Kanban VS Scrum
Kanban VS ScrumKanban VS Scrum
Kanban VS Scrum
 
Using flow approaches to effectively manage agile testing at the enterprise l...
Using flow approaches to effectively manage agile testing at the enterprise l...Using flow approaches to effectively manage agile testing at the enterprise l...
Using flow approaches to effectively manage agile testing at the enterprise l...
 
Kanban Methodologist Certification at Xebia
Kanban Methodologist Certification at XebiaKanban Methodologist Certification at Xebia
Kanban Methodologist Certification at Xebia
 
Improving Agility (Learning from Maersk Line's Journey) | Özlem Yüce | Agile ...
Improving Agility (Learning from Maersk Line's Journey) | Özlem Yüce | Agile ...Improving Agility (Learning from Maersk Line's Journey) | Özlem Yüce | Agile ...
Improving Agility (Learning from Maersk Line's Journey) | Özlem Yüce | Agile ...
 
A lean automation blueprint for testing in continuous delivery
A lean automation blueprint for testing in continuous deliveryA lean automation blueprint for testing in continuous delivery
A lean automation blueprint for testing in continuous delivery
 
Testit Process
Testit ProcessTestit Process
Testit Process
 
What is Agile Software Development?
What is Agile Software Development?What is Agile Software Development?
What is Agile Software Development?
 
Continuous Deployment
Continuous DeploymentContinuous Deployment
Continuous Deployment
 
Cas2010 to-track-defects-or-not-to-track-defects-that-is-the-question
Cas2010 to-track-defects-or-not-to-track-defects-that-is-the-questionCas2010 to-track-defects-or-not-to-track-defects-that-is-the-question
Cas2010 to-track-defects-or-not-to-track-defects-that-is-the-question
 
Continuous Deployment
Continuous DeploymentContinuous Deployment
Continuous Deployment
 
Quality not-speed-for-distrobution
Quality not-speed-for-distrobutionQuality not-speed-for-distrobution
Quality not-speed-for-distrobution
 
Stress Test & Chaos Engineering
Stress Test & Chaos EngineeringStress Test & Chaos Engineering
Stress Test & Chaos Engineering
 
Pushing the Bottleneck: Predicting and Addressing the Next, Next Thing
Pushing the Bottleneck: Predicting and Addressing the Next, Next ThingPushing the Bottleneck: Predicting and Addressing the Next, Next Thing
Pushing the Bottleneck: Predicting and Addressing the Next, Next Thing
 
The art of Bugging
The art of BuggingThe art of Bugging
The art of Bugging
 
Scrumban pechakucha
Scrumban pechakuchaScrumban pechakucha
Scrumban pechakucha
 
Software testing presentation
Software testing presentationSoftware testing presentation
Software testing presentation
 
QASymphony and TestPlant: Bringing Together Best-in-Class Test Management and...
QASymphony and TestPlant: Bringing Together Best-in-Class Test Management and...QASymphony and TestPlant: Bringing Together Best-in-Class Test Management and...
QASymphony and TestPlant: Bringing Together Best-in-Class Test Management and...
 
Kanban and Iterationless Working
Kanban and Iterationless WorkingKanban and Iterationless Working
Kanban and Iterationless Working
 
Unstoppable releases with kanban
Unstoppable releases with kanbanUnstoppable releases with kanban
Unstoppable releases with kanban
 

En vedette

DevOps and Continuous Delivery Reference Architectures (including Nexus and o...
DevOps and Continuous Delivery Reference Architectures (including Nexus and o...DevOps and Continuous Delivery Reference Architectures (including Nexus and o...
DevOps and Continuous Delivery Reference Architectures (including Nexus and o...Sonatype
 
презентация Microsoft power point
презентация Microsoft power pointпрезентация Microsoft power point
презентация Microsoft power pointAlexander Denisov
 
Poweravions2013 131111034617-phpapp01
Poweravions2013 131111034617-phpapp01Poweravions2013 131111034617-phpapp01
Poweravions2013 131111034617-phpapp01iclaret
 
Learning styles auditory
Learning styles auditoryLearning styles auditory
Learning styles auditoryidoya_queralt
 
Planeacion basada en competencias Leslie Cazares
Planeacion basada en competencias Leslie CazaresPlaneacion basada en competencias Leslie Cazares
Planeacion basada en competencias Leslie CazaresMaría Julia Bravo
 
Northwest Territories Tourism AGM - Keynote Address
Northwest Territories Tourism AGM - Keynote AddressNorthwest Territories Tourism AGM - Keynote Address
Northwest Territories Tourism AGM - Keynote AddressJohn Gunter
 
8號鄭倩如
8號鄭倩如8號鄭倩如
8號鄭倩如輝 哲
 
Радиостанция Диполь FM, Тюмень
Радиостанция Диполь FM, ТюменьРадиостанция Диполь FM, Тюмень
Радиостанция Диполь FM, ТюменьДмитрий Гупало
 
Insight Translation - IDSA Columbus - 2008
Insight Translation - IDSA Columbus - 2008Insight Translation - IDSA Columbus - 2008
Insight Translation - IDSA Columbus - 2008Lextant
 
解讀App新趨勢,運用App贏得更多商機!
解讀App新趨勢,運用App贏得更多商機!解讀App新趨勢,運用App贏得更多商機!
解讀App新趨勢,運用App贏得更多商機!Leo Lin
 
9號 許婕羽
9號 許婕羽9號 許婕羽
9號 許婕羽輝 哲
 
文學欣賞[1]張雅欣
文學欣賞[1]張雅欣文學欣賞[1]張雅欣
文學欣賞[1]張雅欣輝 哲
 
NME Cover Analysis
NME Cover AnalysisNME Cover Analysis
NME Cover AnalysisLukaMedia
 
Bag bilgi notu 01.06.16 mrl degerı
Bag bilgi notu 01.06.16 mrl degerıBag bilgi notu 01.06.16 mrl degerı
Bag bilgi notu 01.06.16 mrl degerıadex25
 

En vedette (20)

DevOps and Continuous Delivery Reference Architectures (including Nexus and o...
DevOps and Continuous Delivery Reference Architectures (including Nexus and o...DevOps and Continuous Delivery Reference Architectures (including Nexus and o...
DevOps and Continuous Delivery Reference Architectures (including Nexus and o...
 
презентация Microsoft power point
презентация Microsoft power pointпрезентация Microsoft power point
презентация Microsoft power point
 
Project Proposal
Project ProposalProject Proposal
Project Proposal
 
Poweravions2013 131111034617-phpapp01
Poweravions2013 131111034617-phpapp01Poweravions2013 131111034617-phpapp01
Poweravions2013 131111034617-phpapp01
 
Learning styles auditory
Learning styles auditoryLearning styles auditory
Learning styles auditory
 
Planeacion basada en competencias Leslie Cazares
Planeacion basada en competencias Leslie CazaresPlaneacion basada en competencias Leslie Cazares
Planeacion basada en competencias Leslie Cazares
 
Northwest Territories Tourism AGM - Keynote Address
Northwest Territories Tourism AGM - Keynote AddressNorthwest Territories Tourism AGM - Keynote Address
Northwest Territories Tourism AGM - Keynote Address
 
ไทย
ไทยไทย
ไทย
 
Format mingguan
Format mingguanFormat mingguan
Format mingguan
 
Anggaran kas 2
Anggaran kas 2Anggaran kas 2
Anggaran kas 2
 
8號鄭倩如
8號鄭倩如8號鄭倩如
8號鄭倩如
 
Neraca anggaran
Neraca anggaranNeraca anggaran
Neraca anggaran
 
Радиостанция Диполь FM, Тюмень
Радиостанция Диполь FM, ТюменьРадиостанция Диполь FM, Тюмень
Радиостанция Диполь FM, Тюмень
 
Insight Translation - IDSA Columbus - 2008
Insight Translation - IDSA Columbus - 2008Insight Translation - IDSA Columbus - 2008
Insight Translation - IDSA Columbus - 2008
 
Kp livi
Kp liviKp livi
Kp livi
 
解讀App新趨勢,運用App贏得更多商機!
解讀App新趨勢,運用App贏得更多商機!解讀App新趨勢,運用App贏得更多商機!
解讀App新趨勢,運用App贏得更多商機!
 
9號 許婕羽
9號 許婕羽9號 許婕羽
9號 許婕羽
 
文學欣賞[1]張雅欣
文學欣賞[1]張雅欣文學欣賞[1]張雅欣
文學欣賞[1]張雅欣
 
NME Cover Analysis
NME Cover AnalysisNME Cover Analysis
NME Cover Analysis
 
Bag bilgi notu 01.06.16 mrl degerı
Bag bilgi notu 01.06.16 mrl degerıBag bilgi notu 01.06.16 mrl degerı
Bag bilgi notu 01.06.16 mrl degerı
 

Similaire à The Why and How of Continuous Delivery

Enterprise Workflows When You Aren't Enterprise
Enterprise Workflows When You Aren't EnterpriseEnterprise Workflows When You Aren't Enterprise
Enterprise Workflows When You Aren't EnterpriseChris Tankersley
 
Continues Deployment - Tech Talk week
Continues Deployment - Tech Talk weekContinues Deployment - Tech Talk week
Continues Deployment - Tech Talk weekrantav
 
Continuous Delivery (The newest)
Continuous Delivery (The newest)Continuous Delivery (The newest)
Continuous Delivery (The newest)Eduards Sizovs
 
Principles and Practices in Continuous Deployment at Etsy
Principles and Practices in Continuous Deployment at EtsyPrinciples and Practices in Continuous Deployment at Etsy
Principles and Practices in Continuous Deployment at EtsyMike Brittain
 
The Continuous delivery value - Funaro
The Continuous delivery value - FunaroThe Continuous delivery value - Funaro
The Continuous delivery value - FunaroCodemotion
 
The Continuous delivery Value @ codemotion 2014
The Continuous delivery Value @ codemotion 2014The Continuous delivery Value @ codemotion 2014
The Continuous delivery Value @ codemotion 2014David Funaro
 
Continuously Delivering: Compress the time from committed to consumed
Continuously Delivering: Compress the time from committed to consumedContinuously Delivering: Compress the time from committed to consumed
Continuously Delivering: Compress the time from committed to consumedAtlassian
 
Matt carroll - "Security patching system packages is fun" said no-one ever
Matt carroll - "Security patching system packages is fun" said no-one everMatt carroll - "Security patching system packages is fun" said no-one ever
Matt carroll - "Security patching system packages is fun" said no-one everDevSecCon
 
Continuous, continuous, continuous
Continuous, continuous, continuousContinuous, continuous, continuous
Continuous, continuous, continuousMichele Orselli
 
Continuous delivery @wcap 5-09-2013
Continuous delivery   @wcap 5-09-2013Continuous delivery   @wcap 5-09-2013
Continuous delivery @wcap 5-09-2013David Funaro
 
Continuous Deployment
Continuous DeploymentContinuous Deployment
Continuous DeploymentBrian Henerey
 
Agile Development Brown Bag Lunches Slides
Agile Development Brown Bag Lunches SlidesAgile Development Brown Bag Lunches Slides
Agile Development Brown Bag Lunches Slidesguesta1c5d7
 
Continuous Delivery
Continuous Delivery Continuous Delivery
Continuous Delivery Dmitry Buzdin
 
Confoo-Montreal-2016: Controlling Your Environments using Infrastructure as Code
Confoo-Montreal-2016: Controlling Your Environments using Infrastructure as CodeConfoo-Montreal-2016: Controlling Your Environments using Infrastructure as Code
Confoo-Montreal-2016: Controlling Your Environments using Infrastructure as CodeSteve Mercier
 

Similaire à The Why and How of Continuous Delivery (20)

Enterprise Workflows When You Aren't Enterprise
Enterprise Workflows When You Aren't EnterpriseEnterprise Workflows When You Aren't Enterprise
Enterprise Workflows When You Aren't Enterprise
 
Continues Deployment - Tech Talk week
Continues Deployment - Tech Talk weekContinues Deployment - Tech Talk week
Continues Deployment - Tech Talk week
 
Continuous Delivery (The newest)
Continuous Delivery (The newest)Continuous Delivery (The newest)
Continuous Delivery (The newest)
 
Principles and Practices in Continuous Deployment at Etsy
Principles and Practices in Continuous Deployment at EtsyPrinciples and Practices in Continuous Deployment at Etsy
Principles and Practices in Continuous Deployment at Etsy
 
The Continuous delivery value - Funaro
The Continuous delivery value - FunaroThe Continuous delivery value - Funaro
The Continuous delivery value - Funaro
 
The Continuous delivery Value @ codemotion 2014
The Continuous delivery Value @ codemotion 2014The Continuous delivery Value @ codemotion 2014
The Continuous delivery Value @ codemotion 2014
 
Continuously Delivering: Compress the time from committed to consumed
Continuously Delivering: Compress the time from committed to consumedContinuously Delivering: Compress the time from committed to consumed
Continuously Delivering: Compress the time from committed to consumed
 
Matt carroll - "Security patching system packages is fun" said no-one ever
Matt carroll - "Security patching system packages is fun" said no-one everMatt carroll - "Security patching system packages is fun" said no-one ever
Matt carroll - "Security patching system packages is fun" said no-one ever
 
Continuous, continuous, continuous
Continuous, continuous, continuousContinuous, continuous, continuous
Continuous, continuous, continuous
 
Continuous Delivery
Continuous DeliveryContinuous Delivery
Continuous Delivery
 
Continuous delivery @wcap 5-09-2013
Continuous delivery   @wcap 5-09-2013Continuous delivery   @wcap 5-09-2013
Continuous delivery @wcap 5-09-2013
 
Tec314f
Tec314fTec314f
Tec314f
 
Continuous Deployment
Continuous DeploymentContinuous Deployment
Continuous Deployment
 
Agile Development Brown Bag Lunches Slides
Agile Development Brown Bag Lunches SlidesAgile Development Brown Bag Lunches Slides
Agile Development Brown Bag Lunches Slides
 
Getting It Done
Getting It DoneGetting It Done
Getting It Done
 
DevOps in an Embedded World
DevOps in an Embedded WorldDevOps in an Embedded World
DevOps in an Embedded World
 
Continuous Delivery
Continuous Delivery Continuous Delivery
Continuous Delivery
 
Confoo-Montreal-2016: Controlling Your Environments using Infrastructure as Code
Confoo-Montreal-2016: Controlling Your Environments using Infrastructure as CodeConfoo-Montreal-2016: Controlling Your Environments using Infrastructure as Code
Confoo-Montreal-2016: Controlling Your Environments using Infrastructure as Code
 
Software provider
Software providerSoftware provider
Software provider
 
Future of QA
Future of QAFuture of QA
Future of QA
 

Dernier

Data Cloud, More than a CDP by Matt Robison
Data Cloud, More than a CDP by Matt RobisonData Cloud, More than a CDP by Matt Robison
Data Cloud, More than a CDP by Matt RobisonAnna Loughnan Colquhoun
 
CNv6 Instructor Chapter 6 Quality of Service
CNv6 Instructor Chapter 6 Quality of ServiceCNv6 Instructor Chapter 6 Quality of Service
CNv6 Instructor Chapter 6 Quality of Servicegiselly40
 
TrustArc Webinar - Stay Ahead of US State Data Privacy Law Developments
TrustArc Webinar - Stay Ahead of US State Data Privacy Law DevelopmentsTrustArc Webinar - Stay Ahead of US State Data Privacy Law Developments
TrustArc Webinar - Stay Ahead of US State Data Privacy Law DevelopmentsTrustArc
 
Real Time Object Detection Using Open CV
Real Time Object Detection Using Open CVReal Time Object Detection Using Open CV
Real Time Object Detection Using Open CVKhem
 
Tata AIG General Insurance Company - Insurer Innovation Award 2024
Tata AIG General Insurance Company - Insurer Innovation Award 2024Tata AIG General Insurance Company - Insurer Innovation Award 2024
Tata AIG General Insurance Company - Insurer Innovation Award 2024The Digital Insurer
 
A Call to Action for Generative AI in 2024
A Call to Action for Generative AI in 2024A Call to Action for Generative AI in 2024
A Call to Action for Generative AI in 2024Results
 
Breaking the Kubernetes Kill Chain: Host Path Mount
Breaking the Kubernetes Kill Chain: Host Path MountBreaking the Kubernetes Kill Chain: Host Path Mount
Breaking the Kubernetes Kill Chain: Host Path MountPuma Security, LLC
 
Workshop - Best of Both Worlds_ Combine KG and Vector search for enhanced R...
Workshop - Best of Both Worlds_ Combine  KG and Vector search for  enhanced R...Workshop - Best of Both Worlds_ Combine  KG and Vector search for  enhanced R...
Workshop - Best of Both Worlds_ Combine KG and Vector search for enhanced R...Neo4j
 
The Codex of Business Writing Software for Real-World Solutions 2.pptx
The Codex of Business Writing Software for Real-World Solutions 2.pptxThe Codex of Business Writing Software for Real-World Solutions 2.pptx
The Codex of Business Writing Software for Real-World Solutions 2.pptxMalak Abu Hammad
 
Strategies for Unlocking Knowledge Management in Microsoft 365 in the Copilot...
Strategies for Unlocking Knowledge Management in Microsoft 365 in the Copilot...Strategies for Unlocking Knowledge Management in Microsoft 365 in the Copilot...
Strategies for Unlocking Knowledge Management in Microsoft 365 in the Copilot...Drew Madelung
 
Bajaj Allianz Life Insurance Company - Insurer Innovation Award 2024
Bajaj Allianz Life Insurance Company - Insurer Innovation Award 2024Bajaj Allianz Life Insurance Company - Insurer Innovation Award 2024
Bajaj Allianz Life Insurance Company - Insurer Innovation Award 2024The Digital Insurer
 
Driving Behavioral Change for Information Management through Data-Driven Gree...
Driving Behavioral Change for Information Management through Data-Driven Gree...Driving Behavioral Change for Information Management through Data-Driven Gree...
Driving Behavioral Change for Information Management through Data-Driven Gree...Enterprise Knowledge
 
Powerful Google developer tools for immediate impact! (2023-24 C)
Powerful Google developer tools for immediate impact! (2023-24 C)Powerful Google developer tools for immediate impact! (2023-24 C)
Powerful Google developer tools for immediate impact! (2023-24 C)wesley chun
 
08448380779 Call Girls In Civil Lines Women Seeking Men
08448380779 Call Girls In Civil Lines Women Seeking Men08448380779 Call Girls In Civil Lines Women Seeking Men
08448380779 Call Girls In Civil Lines Women Seeking MenDelhi Call girls
 
Exploring the Future Potential of AI-Enabled Smartphone Processors
Exploring the Future Potential of AI-Enabled Smartphone ProcessorsExploring the Future Potential of AI-Enabled Smartphone Processors
Exploring the Future Potential of AI-Enabled Smartphone Processorsdebabhi2
 
What Are The Drone Anti-jamming Systems Technology?
What Are The Drone Anti-jamming Systems Technology?What Are The Drone Anti-jamming Systems Technology?
What Are The Drone Anti-jamming Systems Technology?Antenna Manufacturer Coco
 
2024: Domino Containers - The Next Step. News from the Domino Container commu...
2024: Domino Containers - The Next Step. News from the Domino Container commu...2024: Domino Containers - The Next Step. News from the Domino Container commu...
2024: Domino Containers - The Next Step. News from the Domino Container commu...Martijn de Jong
 
The 7 Things I Know About Cyber Security After 25 Years | April 2024
The 7 Things I Know About Cyber Security After 25 Years | April 2024The 7 Things I Know About Cyber Security After 25 Years | April 2024
The 7 Things I Know About Cyber Security After 25 Years | April 2024Rafal Los
 
EIS-Webinar-Prompt-Knowledge-Eng-2024-04-08.pptx
EIS-Webinar-Prompt-Knowledge-Eng-2024-04-08.pptxEIS-Webinar-Prompt-Knowledge-Eng-2024-04-08.pptx
EIS-Webinar-Prompt-Knowledge-Eng-2024-04-08.pptxEarley Information Science
 
Handwritten Text Recognition for manuscripts and early printed texts
Handwritten Text Recognition for manuscripts and early printed textsHandwritten Text Recognition for manuscripts and early printed texts
Handwritten Text Recognition for manuscripts and early printed textsMaria Levchenko
 

Dernier (20)

Data Cloud, More than a CDP by Matt Robison
Data Cloud, More than a CDP by Matt RobisonData Cloud, More than a CDP by Matt Robison
Data Cloud, More than a CDP by Matt Robison
 
CNv6 Instructor Chapter 6 Quality of Service
CNv6 Instructor Chapter 6 Quality of ServiceCNv6 Instructor Chapter 6 Quality of Service
CNv6 Instructor Chapter 6 Quality of Service
 
TrustArc Webinar - Stay Ahead of US State Data Privacy Law Developments
TrustArc Webinar - Stay Ahead of US State Data Privacy Law DevelopmentsTrustArc Webinar - Stay Ahead of US State Data Privacy Law Developments
TrustArc Webinar - Stay Ahead of US State Data Privacy Law Developments
 
Real Time Object Detection Using Open CV
Real Time Object Detection Using Open CVReal Time Object Detection Using Open CV
Real Time Object Detection Using Open CV
 
Tata AIG General Insurance Company - Insurer Innovation Award 2024
Tata AIG General Insurance Company - Insurer Innovation Award 2024Tata AIG General Insurance Company - Insurer Innovation Award 2024
Tata AIG General Insurance Company - Insurer Innovation Award 2024
 
A Call to Action for Generative AI in 2024
A Call to Action for Generative AI in 2024A Call to Action for Generative AI in 2024
A Call to Action for Generative AI in 2024
 
Breaking the Kubernetes Kill Chain: Host Path Mount
Breaking the Kubernetes Kill Chain: Host Path MountBreaking the Kubernetes Kill Chain: Host Path Mount
Breaking the Kubernetes Kill Chain: Host Path Mount
 
Workshop - Best of Both Worlds_ Combine KG and Vector search for enhanced R...
Workshop - Best of Both Worlds_ Combine  KG and Vector search for  enhanced R...Workshop - Best of Both Worlds_ Combine  KG and Vector search for  enhanced R...
Workshop - Best of Both Worlds_ Combine KG and Vector search for enhanced R...
 
The Codex of Business Writing Software for Real-World Solutions 2.pptx
The Codex of Business Writing Software for Real-World Solutions 2.pptxThe Codex of Business Writing Software for Real-World Solutions 2.pptx
The Codex of Business Writing Software for Real-World Solutions 2.pptx
 
Strategies for Unlocking Knowledge Management in Microsoft 365 in the Copilot...
Strategies for Unlocking Knowledge Management in Microsoft 365 in the Copilot...Strategies for Unlocking Knowledge Management in Microsoft 365 in the Copilot...
Strategies for Unlocking Knowledge Management in Microsoft 365 in the Copilot...
 
Bajaj Allianz Life Insurance Company - Insurer Innovation Award 2024
Bajaj Allianz Life Insurance Company - Insurer Innovation Award 2024Bajaj Allianz Life Insurance Company - Insurer Innovation Award 2024
Bajaj Allianz Life Insurance Company - Insurer Innovation Award 2024
 
Driving Behavioral Change for Information Management through Data-Driven Gree...
Driving Behavioral Change for Information Management through Data-Driven Gree...Driving Behavioral Change for Information Management through Data-Driven Gree...
Driving Behavioral Change for Information Management through Data-Driven Gree...
 
Powerful Google developer tools for immediate impact! (2023-24 C)
Powerful Google developer tools for immediate impact! (2023-24 C)Powerful Google developer tools for immediate impact! (2023-24 C)
Powerful Google developer tools for immediate impact! (2023-24 C)
 
08448380779 Call Girls In Civil Lines Women Seeking Men
08448380779 Call Girls In Civil Lines Women Seeking Men08448380779 Call Girls In Civil Lines Women Seeking Men
08448380779 Call Girls In Civil Lines Women Seeking Men
 
Exploring the Future Potential of AI-Enabled Smartphone Processors
Exploring the Future Potential of AI-Enabled Smartphone ProcessorsExploring the Future Potential of AI-Enabled Smartphone Processors
Exploring the Future Potential of AI-Enabled Smartphone Processors
 
What Are The Drone Anti-jamming Systems Technology?
What Are The Drone Anti-jamming Systems Technology?What Are The Drone Anti-jamming Systems Technology?
What Are The Drone Anti-jamming Systems Technology?
 
2024: Domino Containers - The Next Step. News from the Domino Container commu...
2024: Domino Containers - The Next Step. News from the Domino Container commu...2024: Domino Containers - The Next Step. News from the Domino Container commu...
2024: Domino Containers - The Next Step. News from the Domino Container commu...
 
The 7 Things I Know About Cyber Security After 25 Years | April 2024
The 7 Things I Know About Cyber Security After 25 Years | April 2024The 7 Things I Know About Cyber Security After 25 Years | April 2024
The 7 Things I Know About Cyber Security After 25 Years | April 2024
 
EIS-Webinar-Prompt-Knowledge-Eng-2024-04-08.pptx
EIS-Webinar-Prompt-Knowledge-Eng-2024-04-08.pptxEIS-Webinar-Prompt-Knowledge-Eng-2024-04-08.pptx
EIS-Webinar-Prompt-Knowledge-Eng-2024-04-08.pptx
 
Handwritten Text Recognition for manuscripts and early printed texts
Handwritten Text Recognition for manuscripts and early printed textsHandwritten Text Recognition for manuscripts and early printed texts
Handwritten Text Recognition for manuscripts and early printed texts
 

The Why and How of Continuous Delivery

  • 1. The Why and How of Continuous Delivery Nigel McNie getyourgameon.co.nz
  • 2.
  • 3.
  • 4.
  • 5.
  • 6.
  • 7.
  • 8.
  • 9.
  • 10.
  • 11.
  • 12.
  • 13.
  • 14.
  • 15.
  • 16.
  • 17.
  • 18.
  • 19.
  • 20.
  • 21.
  • 22.

Notes de l'éditeur

  1. Slight detour - the "what" of CD. It's a strategic decision about "ops" (business operations). You attain the goal of fast development of high quality software through build/test/deployment automation. Many people get as far as build/test automation, so we're really just going one step further. It's a strategy - no prescribed way to do it, many tactics you can use. We'll visit some of them later. But before then, I should justify "why". Why deployment automation?
  2. To understand why, we need to look at the "development landscape". The business needs a stable, working product to function. Furthermore, product dev does not happen in a vacuum. From time to time, there are legitimate business reasons that something needs to be done by a certain time (e.g. conference, or "marketing need a date to target"). Team instability - start with just one, can grow to hundreds, staff stick around for a few years, you'll make bad hires. Security vulnerabilities discovered, urgent/important bugs found, need to respond to competition, want to seize opportunities, and even general expectations of customers. Debt accrues over time, and needs to be reduced whenever possible, lest it kills the product entirely.
  3. I was going to do a slide on other deployment strategies, but   unlike development strategies (waterfall/agile/extreme etc.), "deployment strategies" is barely a recognised term, let alone a researched one. Waterfall - the "when it's done" release methodology, which revolves around the (delusional) idea that "releases have 0 bugs". Agile - releases every two weeks or so, likely to be a reasonably well thought out and somewhat automated process. BAU - "weekly" is pretty standard here, again the process is generally "stable". Hotfixing/firefighting - required on every project. Some projects have a separate path to production for this. Marketing Release - "The new features go live on this day - we took out ads". 5am release - or indeed any time after hours - done because your releases need scheduled downtime. Friday Afternoon release - phenomenally stupid idea :) Scheduled Downtime - many projects need this to do releases (restarting services, applying upgrades etc). Unexpected Downtime - when releasing goes wrong :) Merge Hell - trying to get features merged before a release, and the inevitable conflicts this entails. String Freeze - the language team's attempt to get some kind of stability before a release. QA Approval - some team of humans between the devs and production. Management signoff - some team of people ill-qualified to make development decisions between the devs and production.
  4. So what's wrong with most strategies today? They ignore realities of development - for example that vulnerabilities don't care what your release schedule is. They prevent any possibility of instant gratification for a customer, no matter how easy the fix is. Worse, when something really needs to be fixed, process will often be subverted. "We are losing millions" does not get "fixed in the next release". It certainly doesn't get proper considered signoff. It gets hacked, often in production, to the protest of sysadmins, and in some cases in violation of legislation. In effect, your "stable" release process contributes to you being out of control when you need control most. Some get around this by having a separate "hotfix" path to production. This feels like a hack to me. Firstly, if you're not running your test suite in that path, it's instantly dangerous. And if you rely on QA to check things, it's even more dangerous, because it's easy to skip QA entirely. They have other insidious effects. The more you delay, the more inefficiency you introduce. When people branch, they do it in the name of stability (so others won't have to deal with a broken codebase), but all they're really doing is kicking the problem to touch. Merge hell is a stability problem on its own. Worse, people are discouraged from doing refactoring that pays down technical debt, because they know that incoming branches will cause horrible merge hell. There's also the problem of wasted code. The longer it takes to release, the more likely you'll develop code that's never used/fix bugs that were never a problem/waste brain cycles on something irrelevant. This is Waste, to be eliminated.
  5. I think these problems can be summed up in two observations. One: releases are a source of friction. They could be low friction, or high. As the friction grows larger, you will struggle to react, have more stability problems, build more technical debt, and so on.
  6. Two: releases are feared. They straddle the boundaries of dev and ops, they're a point of high risk of spectacular failure. The less you confront this problem, the scarier they'll seem, the harder they'll be, the slower you'll go... Slower is an important point. At the point where teams have problems with the release process, they often make the decision to go slower. Against the development landscape, and with the risk of waste increasing, this is a flawed strategy.
  7. I've outlined a raft of problems with the way releases are done currently. Now it's time to look at why CD is worth doing. Here's a reminder of the development landscape. These are the requirements we are trying to fulfill. Let's have a look at the CD strategy, and see how it fits.
  8. CD is centred around the idea of being able to deploy to production at any time; reducing the release friction. So already, assuming you can implement it, you can see how in theory it will help with the challenges issued by the development landscape. At a high level, there's only two requirements that need to be fulfilled for this to be a reality. 1. As much of the deployment process needs to be automated as possible. It pretty much has to be at the level of one command, one button push or suchlike. Having said that, I personally don't - this is simply due the dev team just being me. It's a two command deploy. 2. Given the last requirement is optional in certain cases, the only hard rule of CD (that I've come across) is that one branch should always be deployable. If it's going to be possible to deploy at any time, something always has to be deployable, right? The general mechanics of how CD works in practice is: A commit makes it to mainline, this triggers an automated test run (CI), and if the run passes, the code is deployed straight to production. Let's look at this in more detail.
  9. As all commits need to be deployable, it helps to keep them small. This is something you should be doing already where possible. If you're using a newer VCS, pushing a small series of commits is fine too. This process applies to all commits - from small bug fixes up to major feature development. How do you hide new feature developments from end users? There's a couple of ways. One is by using feature branches and another is by using feature flags/flippers.
  10. Feature branches are a well understood concept, and an easy way to hide code that isn't ready yet. The trouble is, they make you vulnerable to the Merge Hell we talked about previously. Recapping: merging with master can cause conflicts (even if the patch applies OK), and feature branches can prevent people from refactoring. This problem can be managed -and the Github team do things this way just fine. People merge master into their branches often - they're responsible for maintaining the branch so they are responsible for any merge headaches, and should have them resolved before they merge back to master.
  11. Feature flags are essentially implementing feature branches in code. Think of it as an extra subsystem in your code, like the logging subsystem. A simple implementation would be a config file which says what features are enabled, and if statements in the code. It can be as complex as you like. Flickr built a dashboard to manage their feature flags. And it can give you dark launch, split testing, seperation of marketing release from deployment, and built-in kill switches.
  12. Our goal is that a commit triggers a deployment. But you don't deploy without testing, so a commit triggers a test run first. This is Continuous Integration - not new. The tests should run quickly because we want to deploy once they're done. To put this in perspective, IMVU deploys up to 60 times a day at last count. The tests take 9 minutes, code push takes 6 minutes, and they pipeline, so they can deploy every 9 minutes. Amazon deploys every 11.6 seconds, with a peak of 1,079 deploys/hour. That's how fast your tests have to run if you want this to work. Mechanics: CI server, or hook into your VCS, or just do it manually. Naturally, test failure prevents deployment. Flickr goes one step further - commit is reverted.
  13. Once the tests have passed, a deployment should happen - preferably, triggered automatically. Should be as automatic as possible, and should cause as little downtime as possible. Scripting languages make this easier, but even in others, you can use various tricks to ensure 0 downtime. People should not be afraid to do a deployment. It should be so simple that even a manager could do a deployment! Or at least, a designer/copywriter. This is a key point: You should be happy that, even under conditions of high load or intense public interest, anyone in the dev team can trigger a deployment. Thought experiment: let's pretend a release has no changes. Could your most junior developer do a deployment safely? This can go to extremes for large sites: "Cluster Immune" systems.
  14. It should always be possible to roll back to the previous commit. Made easier because you are making small changes. Database changes: make forward/back patch, test before committing. Data munging: you can keep old data/columns around, even for weeks after the initial change. Write to both locations. Then later, you can drop the old stuff. If it's minor/tolerable/not worth rolling back for/just spotted: write a test and deploy again! You can see how problems will be fixed much faster than "waiting for the next deployment". Key assumption of CD: in contrast to "0 defects", you have "every defect once". However, you're also contracting to write tests to cover breaks. (You can be lazy, sometimes this is useful). This means your test suite contains basic sanity tests, and tests for things that actually break - a powerful combination. If you think you can prevent failure with "0 defects", you're not developing your ability to respond when you get one. Better to expect and embrace failure, and develop systems to limit its effects, than run from the idea and be bitten worse.
  15. I hope you can see by now how CD is actually a strategy for reducing risk. Smaller changes are less risky, and you're always running the tests, which will only get better as time goes on. If you think it's risky, you may be assuming that what you do now doesn't have the same risk! So before pointing out a risk, consider if you don't already have the problem. "Avalanche model" - would you rather have many small avalanches, or a few large ones? Slower release cycles are risky! Negative feedback loop: "it's so risky we only do it four times a year", and corresponding positive feedback loop: the more you do it, the easier and safer they become.
  16. Maybe you can see why CD isn't insane - now let's have a look at why it's better. It improves your responsiveness. Urgent/important bugs can be fixed right away - you'll look good with your customers. No gatekeeper - devs can work at their own schedule. Breaks down the barriers between devs and customers. When production breaks days or weeks after the code is written, this is bad! You have to break flow to investigate, and since it was a while ago, it's harder to work out what is wrong. CD improves your testing habits by giving you a good incentive to write them. Tests are no longer "possibly" useful - they actually "are" useful as they're in the way! Less pressure: separating marketing schedule from release schedule is a win all by itself. You already deployed it, tests already pass, you know it will work. No need to schedule deployments - no need for being at work after hours, and less need to involve ops (some release processes require ops, and some require ops when they break). No need to worry about "missing the next release". There's always a next release! There's less waste. People have to deal with merge conflicts immediately, because they can't check in broken stuff. And you're able to run quick experiments to see if a feature is really wanted. Improved dev attitude: Developers will take an interest in a feature beyond checkin, because they can push it live instantly. Then they can see how users interact with the feature. It's a death blow to the "it works for me" attitude.
  17. CD lets you go fast with confidence. This ends the Cowboys vs Astronauts fight.
  18. Financial Institution: "Every defect once might be sensible for you, but..." If you started with CD, and had years of tests (as you should do anyway), wouldn't you be a little more confident? And if not, I assert that this is the fault of your test suite. Outsourcing QA: You can still involve QA: feature flags, or simultaneous staging deploy (where flags are turned on). QA people can test on production. What harm could they do that you couldn't recover from? What damage could they do that you wouldn't want to know about? Batching changes is safer: It is  not  true that waiting longer means you're more likely to find bugs. The best way to find bugs is with other eyes. You can do this without batching. Even the threat of more eyes can improve quality: psychological effect of knowing your changes are going straight to production. Batching means bigger changes, which mean more risk.
  19. "We'd never get signoff for this": Well, "we're losing millions" never goes through signoff either. Get management to sign off on the process, perhaps conceed "freeze periods", they'll soon come around. "Legislation forbids us from..." Devs hack stuff on production all the time! In violation of legislation! Some dev always has root access. They get it during a disaster, and keep it until passwords are changed. Or it's sanctioned. Wouldn't it be better if your firefighting process was the same as your normal one? "GST goes up to 15% on XXX..." As in, we have times when we need to run certain code before and different code after. Use a time based feature flag! Related: "we have an external dependency". Your test system should be mocking this. Related: "external system changes on...". Time based feature flag. "Our tests now take hours to run!": Yes, your tests will grow large. You need to keep the runtime down, so parallelise. IMVU: 4.5 wallclock hours of tests run in 9 minutes. "That's all good for you SaaS guys, but..." Google chrome - great example of a client app doing something like this. Moodle: download version "2.1+". IOS/Testflightapp
  20. This concept is only a few years old. Has origins with Toyota's Manufacturing, and popularised by Eric Ries/IMVU. Already heavily adopted by some of the smartest companies in tech, and people are working on how to get it into the enterprise/hardware development, etc. Major traction (although no wikipedia page yet) Flickr/Amazon/Etsy/Netflix are examples - Amazon deploys once every 11.6 seconds, Etsy 25 times/day and reported it improved morale.