SlideShare a Scribd company logo
1 of 66
Download to read offline
releaseflow
A healthy build, release and deploy process
releaseflow.org@ChrisCundill
#nogitflow#releaseflow
About me
● Programmer @DiligentSoft
○ Currently @DVLAgovuk with @notbinary_
● Husband, father, gym-goer, musician.
● Volunteer @CodeClub, @Cornerstone_CS
● Member of @SwanseaSDC and #hackthecity communities
● Enjoy Football, Running, Scuba Diving
When engineers agree
@rawpixel
to disagree
“Arguing with an engineer is like wrestling in the
mud with a pig. After a couple of hours you realize
the pig likes it.”
gineersnow.com/engineering/engineers-love-argue
Linux vs Windows vs MacOSLinux vs MacOS
Vi vs Emacs
vs
“Developers Who Use Spaces Make More Money
Than Those Who Use Tabs”
stackoverflow.blog/2017/06/15/developers-use-spaces-make-money-use-tabs/
“Choose tabs, choose spaces… It doesn't actually matter which coding styles
you pick. What does matter is that you, and everyone else on your team, sticks
with those conventions and uses them consistently...
Jeff Atwood
blog.codinghorror.com/death-to-the-space-infidels/
That said, only a moron would use tabs to format their code.”
Static vs Dynamic
OOP vs FP
Gitflow vs <Another>flow
Contents
● Separation of build, release and deploy concerns
● Branching strategy
● Releases & release notes
● Acceptance tests
● Deployment
● Pipeline
● Recommended resources
● Q&A
Presentation Milestones
0.1
----
releaseflow.org site finished
0.2
----
Presentation slides
1.0
----
Example app deployed with Jenkins to staging and prod environments
1.1
----
Automated acceptance tests to pipeline
1.2
----
Re-use of pipeline steps for deploy
1.3
----
Automated release to pipeline
1.4
----
Automated release notes in pipeline
Build, release and deploy
Build, release and deploy
● Build steps include compile, test, package and publish
○ Publish artifact ready for deployment
● Release is a special build to publish an immutable version of software
○ Tag repository with version and publish release version of artifact ready for deployment
● Deploy steps deliver published artifact to an environment
○ Delivers a certain version to a specific environment
○ No environment-specific builds: the artifact should not be built again.
Branching strategy
So why not Gitflow?
master/develop split is pointless
somehow
Wokenoun
The development community is woke
GitHub Flow scottchacon.com/2011/08/31/github-flow.html
GitFlow considered harmful endoflineblog.com/gitflow-considered-harmful
Follow-up to 'GitFlow considered harmful'
endoflineblog.com/follow-up-to-gitflow-considered-harmful
Still using GitFlow? What about a simpler alternative?
hackernoon.com/still-using-gitflow-what-about-a-simpler-alternative-74aa9a46b9a3
Branching Is Easy. So? Git-flow Is Not Agile.
www.elidedbranches.com/2013/02/branching-is-easy-so.html
A real-life git workflow. Why git flow does not work for us
luci.criosweb.ro/a-real-life-git-workflow-why-git-flow-does-not-work-for-us/
Release Branching Strategy
Recommended approach to branching in the book "Continuous Delivery: Reliable
Software Releases through Build, Test, and Deployment Automation" by Jez
Humble and David Farley (2010).
Let’s call it releaseflow.org
Development branching
Release branching
Tagging
A release tag should use a three segment number as defined in Semantic Versioning 2.0.0:
● MAJOR version when you make incompatible API changes,
● MINOR version when you add functionality in a backwards-compatible manner, and
● PATCH version when you make backwards-compatible bug fixes.
How do I find the code running in production?
How do I fix a defect?
How do I add a new feature?
How do I … ?
The idea of a stable trunk is unstable
Why an unstable trunk is stable
Releases & release notes
release note?
Automate release notes
● Enforce ticket reference in commit messages
○ Start with regex
○ Finish up with lookup to validate ticket exists in ALM tool
● Generate release notes
○ Create release notes during release steps in Jenkins
○ Use ticket references from commit messages
○ Enrich with story data using ALM tool API
Acceptance tests
Acceptance Tests
● Do automate your acceptance tests
○ Critical to continuous delivery pipeline
○ Unless automated tests can run in your pipeline they’re not valuable enough
● Make tests configurable for any environment
● Definition of done for stories must include acceptance tests
● Do include smoke tests
● Group acceptance test suites for fast feedback
Deployment
Deployment
● Automate, duh!
● Use acceptance tests of upstream deployments as gate for deployments to
downstream environments
● Prefer environment variables to configure applications
○ 12 factor app anyone?
○ Inject environment-specifics into application packages during deployment where necessary
Pipeline
Pipeline as code
Pipeline as code. Standard.
Pipeline v1.1 demo
Recommended resources
trunkbaseddevelopment.com
Q&A

More Related Content

What's hot

Kubernetes IN Docker: Next level inception - Paris Container Day 2019
Kubernetes IN Docker: Next level inception - Paris Container Day 2019Kubernetes IN Docker: Next level inception - Paris Container Day 2019
Kubernetes IN Docker: Next level inception - Paris Container Day 2019Horgix
 
Continuous Delivery at Snyk
Continuous Delivery at SnykContinuous Delivery at Snyk
Continuous Delivery at SnykAnton Drukh
 
TDD with Python and App Engine
TDD with Python and App EngineTDD with Python and App Engine
TDD with Python and App EngineRicardo Bánffy
 
Cloud Native CI/CD with Spring Cloud Pipelines
Cloud Native CI/CD with Spring Cloud PipelinesCloud Native CI/CD with Spring Cloud Pipelines
Cloud Native CI/CD with Spring Cloud PipelinesLars Rosenquist
 
How to เสร็จเร็ว (Use Agile for your project with team)
How to เสร็จเร็ว (Use Agile for your project with team)How to เสร็จเร็ว (Use Agile for your project with team)
How to เสร็จเร็ว (Use Agile for your project with team)Jirayut Nimsaeng
 
Continuous integration & Continuous Delivery @DeVz
Continuous integration & Continuous Delivery @DeVzContinuous integration & Continuous Delivery @DeVz
Continuous integration & Continuous Delivery @DeVzDenis Ristic
 
Docs or it didn’t happen
Docs or it didn’t happenDocs or it didn’t happen
Docs or it didn’t happenAll Things Open
 
Continuous Delivery: 5 years later (Incontro DevOps 2018)
Continuous Delivery: 5 years later (Incontro DevOps 2018)Continuous Delivery: 5 years later (Incontro DevOps 2018)
Continuous Delivery: 5 years later (Incontro DevOps 2018)Giovanni Toraldo
 
GitHub Pull Request Builder for Drupal
GitHub Pull Request Builder for DrupalGitHub Pull Request Builder for Drupal
GitHub Pull Request Builder for DrupalJuampy NR
 
Why You Should Start Using Docker
Why You Should Start Using DockerWhy You Should Start Using Docker
Why You Should Start Using DockerAlexandru Bolboaca
 
Flash Camp Chennai - Build automation of Flex and AIR applications
Flash Camp Chennai - Build automation of Flex and AIR applicationsFlash Camp Chennai - Build automation of Flex and AIR applications
Flash Camp Chennai - Build automation of Flex and AIR applicationsRIA RUI Society
 
Buildbot: The Continuous Integration Python framework
Buildbot: The Continuous Integration Python frameworkBuildbot: The Continuous Integration Python framework
Buildbot: The Continuous Integration Python frameworkCarles San Agustin
 
WTF is GitOps and Why You Should Care?
WTF is GitOps and Why You Should Care?WTF is GitOps and Why You Should Care?
WTF is GitOps and Why You Should Care?Weaveworks
 
Sprachsteuerung mit dem Google Assistant – Add a new User Interface to your P...
Sprachsteuerung mit dem Google Assistant – Add a new User Interface to your P...Sprachsteuerung mit dem Google Assistant – Add a new User Interface to your P...
Sprachsteuerung mit dem Google Assistant – Add a new User Interface to your P...inovex GmbH
 
Refine your ci:cd pipeline with automated test
Refine your ci:cd pipeline with automated testRefine your ci:cd pipeline with automated test
Refine your ci:cd pipeline with automated testMalang QA Community
 

What's hot (20)

Kubernetes IN Docker: Next level inception - Paris Container Day 2019
Kubernetes IN Docker: Next level inception - Paris Container Day 2019Kubernetes IN Docker: Next level inception - Paris Container Day 2019
Kubernetes IN Docker: Next level inception - Paris Container Day 2019
 
Continuous Delivery at Snyk
Continuous Delivery at SnykContinuous Delivery at Snyk
Continuous Delivery at Snyk
 
TDD with Python and App Engine
TDD with Python and App EngineTDD with Python and App Engine
TDD with Python and App Engine
 
Cloud Native CI/CD with Spring Cloud Pipelines
Cloud Native CI/CD with Spring Cloud PipelinesCloud Native CI/CD with Spring Cloud Pipelines
Cloud Native CI/CD with Spring Cloud Pipelines
 
Henge
HengeHenge
Henge
 
How to เสร็จเร็ว (Use Agile for your project with team)
How to เสร็จเร็ว (Use Agile for your project with team)How to เสร็จเร็ว (Use Agile for your project with team)
How to เสร็จเร็ว (Use Agile for your project with team)
 
Continuous integration & Continuous Delivery @DeVz
Continuous integration & Continuous Delivery @DeVzContinuous integration & Continuous Delivery @DeVz
Continuous integration & Continuous Delivery @DeVz
 
Docs or it didn’t happen
Docs or it didn’t happenDocs or it didn’t happen
Docs or it didn’t happen
 
Continuous Delivery: 5 years later (Incontro DevOps 2018)
Continuous Delivery: 5 years later (Incontro DevOps 2018)Continuous Delivery: 5 years later (Incontro DevOps 2018)
Continuous Delivery: 5 years later (Incontro DevOps 2018)
 
Let's Contribute
Let's ContributeLet's Contribute
Let's Contribute
 
GitHub Pull Request Builder for Drupal
GitHub Pull Request Builder for DrupalGitHub Pull Request Builder for Drupal
GitHub Pull Request Builder for Drupal
 
Why You Should Start Using Docker
Why You Should Start Using DockerWhy You Should Start Using Docker
Why You Should Start Using Docker
 
Flash Camp Chennai - Build automation of Flex and AIR applications
Flash Camp Chennai - Build automation of Flex and AIR applicationsFlash Camp Chennai - Build automation of Flex and AIR applications
Flash Camp Chennai - Build automation of Flex and AIR applications
 
Buildbot
BuildbotBuildbot
Buildbot
 
Magento, beginning to end
Magento, beginning to endMagento, beginning to end
Magento, beginning to end
 
Buildbot: The Continuous Integration Python framework
Buildbot: The Continuous Integration Python frameworkBuildbot: The Continuous Integration Python framework
Buildbot: The Continuous Integration Python framework
 
WTF is GitOps and Why You Should Care?
WTF is GitOps and Why You Should Care?WTF is GitOps and Why You Should Care?
WTF is GitOps and Why You Should Care?
 
Introduction to hacktoberfest
Introduction to  hacktoberfestIntroduction to  hacktoberfest
Introduction to hacktoberfest
 
Sprachsteuerung mit dem Google Assistant – Add a new User Interface to your P...
Sprachsteuerung mit dem Google Assistant – Add a new User Interface to your P...Sprachsteuerung mit dem Google Assistant – Add a new User Interface to your P...
Sprachsteuerung mit dem Google Assistant – Add a new User Interface to your P...
 
Refine your ci:cd pipeline with automated test
Refine your ci:cd pipeline with automated testRefine your ci:cd pipeline with automated test
Refine your ci:cd pipeline with automated test
 

Similar to Releaseflow: a healthy build and deploy process

Microservices Development Process at Predix.io
Microservices Development Process at Predix.ioMicroservices Development Process at Predix.io
Microservices Development Process at Predix.ioConstantine Grigel
 
Ice breaker with dev ops
Ice breaker with dev opsIce breaker with dev ops
Ice breaker with dev opsMukta Aphale
 
Cloud Native CI/CD with Spring Cloud Pipelines
Cloud Native CI/CD with Spring Cloud PipelinesCloud Native CI/CD with Spring Cloud Pipelines
Cloud Native CI/CD with Spring Cloud PipelinesLars Rosenquist
 
Source Control with Domino Designer 8.5.3 and Git (DanNotes, November 28, 2012)
Source Control with Domino Designer 8.5.3 and Git (DanNotes, November 28, 2012)Source Control with Domino Designer 8.5.3 and Git (DanNotes, November 28, 2012)
Source Control with Domino Designer 8.5.3 and Git (DanNotes, November 28, 2012)Per Henrik Lausten
 
CI/CD: Lessons from LinkedIn and Mockito
CI/CD: Lessons from LinkedIn and MockitoCI/CD: Lessons from LinkedIn and Mockito
CI/CD: Lessons from LinkedIn and MockitoC4Media
 
DevOps presentation
DevOps presentationDevOps presentation
DevOps presentationAxsh Co. LTD
 
Release Engineering
Release EngineeringRelease Engineering
Release EngineeringGDG Odessa
 
Eric tucker - Eliminating "Over the Fence"
Eric tucker - Eliminating "Over the Fence"Eric tucker - Eliminating "Over the Fence"
Eric tucker - Eliminating "Over the Fence"Maritime DevCon
 
Making software development processes to work for you
Making software development processes to work for youMaking software development processes to work for you
Making software development processes to work for youAmbientia
 
Understanding the GitOps Workflow and CICD Pipeline - What It Is, Why It Matt...
Understanding the GitOps Workflow and CICD Pipeline - What It Is, Why It Matt...Understanding the GitOps Workflow and CICD Pipeline - What It Is, Why It Matt...
Understanding the GitOps Workflow and CICD Pipeline - What It Is, Why It Matt...Gibran Badrulzaman
 
Weave GitOps 2022.09 Release: A Fast & Reliable Path to Production with Progr...
Weave GitOps 2022.09 Release: A Fast & Reliable Path to Production with Progr...Weave GitOps 2022.09 Release: A Fast & Reliable Path to Production with Progr...
Weave GitOps 2022.09 Release: A Fast & Reliable Path to Production with Progr...Weaveworks
 
The Evolving Role of Build Engineering in Managing Open Source
The Evolving Role of Build Engineering in Managing Open SourceThe Evolving Role of Build Engineering in Managing Open Source
The Evolving Role of Build Engineering in Managing Open SourceDevOps.com
 
QCon'17 talk: CI/CD at scale - lessons from LinkedIn and Mockito
QCon'17 talk: CI/CD at scale - lessons from LinkedIn and MockitoQCon'17 talk: CI/CD at scale - lessons from LinkedIn and Mockito
QCon'17 talk: CI/CD at scale - lessons from LinkedIn and MockitoSzczepan Faber
 
apidays LIVE New York - Navigating the Sea of Javascript Tools to Discover Sc...
apidays LIVE New York - Navigating the Sea of Javascript Tools to Discover Sc...apidays LIVE New York - Navigating the Sea of Javascript Tools to Discover Sc...
apidays LIVE New York - Navigating the Sea of Javascript Tools to Discover Sc...apidays
 
GitOps Testing in Kubernetes with Flux and Testkube.pdf
GitOps Testing in Kubernetes with Flux and Testkube.pdfGitOps Testing in Kubernetes with Flux and Testkube.pdf
GitOps Testing in Kubernetes with Flux and Testkube.pdfWeaveworks
 
Continuous Integration
Continuous IntegrationContinuous Integration
Continuous IntegrationXPDays
 
OSDC 2015: Kris Buytaert | From ConfigManagementSucks to ConfigManagementLove
OSDC 2015: Kris Buytaert | From ConfigManagementSucks to ConfigManagementLoveOSDC 2015: Kris Buytaert | From ConfigManagementSucks to ConfigManagementLove
OSDC 2015: Kris Buytaert | From ConfigManagementSucks to ConfigManagementLoveNETWAYS
 
Cinder Project On-Boarding - OpenInfra Summit Denver 2019
Cinder Project On-Boarding - OpenInfra Summit Denver 2019Cinder Project On-Boarding - OpenInfra Summit Denver 2019
Cinder Project On-Boarding - OpenInfra Summit Denver 2019Jay Bryant
 
Achieving Full Stack DevOps at Colonial Life
Achieving Full Stack DevOps at Colonial Life Achieving Full Stack DevOps at Colonial Life
Achieving Full Stack DevOps at Colonial Life DevOps.com
 

Similar to Releaseflow: a healthy build and deploy process (20)

Microservices Development Process at Predix.io
Microservices Development Process at Predix.ioMicroservices Development Process at Predix.io
Microservices Development Process at Predix.io
 
What is dev ops?
What is dev ops?What is dev ops?
What is dev ops?
 
Ice breaker with dev ops
Ice breaker with dev opsIce breaker with dev ops
Ice breaker with dev ops
 
Cloud Native CI/CD with Spring Cloud Pipelines
Cloud Native CI/CD with Spring Cloud PipelinesCloud Native CI/CD with Spring Cloud Pipelines
Cloud Native CI/CD with Spring Cloud Pipelines
 
Source Control with Domino Designer 8.5.3 and Git (DanNotes, November 28, 2012)
Source Control with Domino Designer 8.5.3 and Git (DanNotes, November 28, 2012)Source Control with Domino Designer 8.5.3 and Git (DanNotes, November 28, 2012)
Source Control with Domino Designer 8.5.3 and Git (DanNotes, November 28, 2012)
 
CI/CD: Lessons from LinkedIn and Mockito
CI/CD: Lessons from LinkedIn and MockitoCI/CD: Lessons from LinkedIn and Mockito
CI/CD: Lessons from LinkedIn and Mockito
 
DevOps presentation
DevOps presentationDevOps presentation
DevOps presentation
 
Release Engineering
Release EngineeringRelease Engineering
Release Engineering
 
Eric tucker - Eliminating "Over the Fence"
Eric tucker - Eliminating "Over the Fence"Eric tucker - Eliminating "Over the Fence"
Eric tucker - Eliminating "Over the Fence"
 
Making software development processes to work for you
Making software development processes to work for youMaking software development processes to work for you
Making software development processes to work for you
 
Understanding the GitOps Workflow and CICD Pipeline - What It Is, Why It Matt...
Understanding the GitOps Workflow and CICD Pipeline - What It Is, Why It Matt...Understanding the GitOps Workflow and CICD Pipeline - What It Is, Why It Matt...
Understanding the GitOps Workflow and CICD Pipeline - What It Is, Why It Matt...
 
Weave GitOps 2022.09 Release: A Fast & Reliable Path to Production with Progr...
Weave GitOps 2022.09 Release: A Fast & Reliable Path to Production with Progr...Weave GitOps 2022.09 Release: A Fast & Reliable Path to Production with Progr...
Weave GitOps 2022.09 Release: A Fast & Reliable Path to Production with Progr...
 
The Evolving Role of Build Engineering in Managing Open Source
The Evolving Role of Build Engineering in Managing Open SourceThe Evolving Role of Build Engineering in Managing Open Source
The Evolving Role of Build Engineering in Managing Open Source
 
QCon'17 talk: CI/CD at scale - lessons from LinkedIn and Mockito
QCon'17 talk: CI/CD at scale - lessons from LinkedIn and MockitoQCon'17 talk: CI/CD at scale - lessons from LinkedIn and Mockito
QCon'17 talk: CI/CD at scale - lessons from LinkedIn and Mockito
 
apidays LIVE New York - Navigating the Sea of Javascript Tools to Discover Sc...
apidays LIVE New York - Navigating the Sea of Javascript Tools to Discover Sc...apidays LIVE New York - Navigating the Sea of Javascript Tools to Discover Sc...
apidays LIVE New York - Navigating the Sea of Javascript Tools to Discover Sc...
 
GitOps Testing in Kubernetes with Flux and Testkube.pdf
GitOps Testing in Kubernetes with Flux and Testkube.pdfGitOps Testing in Kubernetes with Flux and Testkube.pdf
GitOps Testing in Kubernetes with Flux and Testkube.pdf
 
Continuous Integration
Continuous IntegrationContinuous Integration
Continuous Integration
 
OSDC 2015: Kris Buytaert | From ConfigManagementSucks to ConfigManagementLove
OSDC 2015: Kris Buytaert | From ConfigManagementSucks to ConfigManagementLoveOSDC 2015: Kris Buytaert | From ConfigManagementSucks to ConfigManagementLove
OSDC 2015: Kris Buytaert | From ConfigManagementSucks to ConfigManagementLove
 
Cinder Project On-Boarding - OpenInfra Summit Denver 2019
Cinder Project On-Boarding - OpenInfra Summit Denver 2019Cinder Project On-Boarding - OpenInfra Summit Denver 2019
Cinder Project On-Boarding - OpenInfra Summit Denver 2019
 
Achieving Full Stack DevOps at Colonial Life
Achieving Full Stack DevOps at Colonial Life Achieving Full Stack DevOps at Colonial Life
Achieving Full Stack DevOps at Colonial Life
 

Recently uploaded

(RIA) Call Girls Bhosari ( 7001035870 ) HI-Fi Pune Escorts Service
(RIA) Call Girls Bhosari ( 7001035870 ) HI-Fi Pune Escorts Service(RIA) Call Girls Bhosari ( 7001035870 ) HI-Fi Pune Escorts Service
(RIA) Call Girls Bhosari ( 7001035870 ) HI-Fi Pune Escorts Serviceranjana rawat
 
MANUFACTURING PROCESS-II UNIT-2 LATHE MACHINE
MANUFACTURING PROCESS-II UNIT-2 LATHE MACHINEMANUFACTURING PROCESS-II UNIT-2 LATHE MACHINE
MANUFACTURING PROCESS-II UNIT-2 LATHE MACHINESIVASHANKAR N
 
Software Development Life Cycle By Team Orange (Dept. of Pharmacy)
Software Development Life Cycle By  Team Orange (Dept. of Pharmacy)Software Development Life Cycle By  Team Orange (Dept. of Pharmacy)
Software Development Life Cycle By Team Orange (Dept. of Pharmacy)Suman Mia
 
What are the advantages and disadvantages of membrane structures.pptx
What are the advantages and disadvantages of membrane structures.pptxWhat are the advantages and disadvantages of membrane structures.pptx
What are the advantages and disadvantages of membrane structures.pptxwendy cai
 
Gfe Mayur Vihar Call Girls Service WhatsApp -> 9999965857 Available 24x7 ^ De...
Gfe Mayur Vihar Call Girls Service WhatsApp -> 9999965857 Available 24x7 ^ De...Gfe Mayur Vihar Call Girls Service WhatsApp -> 9999965857 Available 24x7 ^ De...
Gfe Mayur Vihar Call Girls Service WhatsApp -> 9999965857 Available 24x7 ^ De...srsj9000
 
The Most Attractive Pune Call Girls Budhwar Peth 8250192130 Will You Miss Thi...
The Most Attractive Pune Call Girls Budhwar Peth 8250192130 Will You Miss Thi...The Most Attractive Pune Call Girls Budhwar Peth 8250192130 Will You Miss Thi...
The Most Attractive Pune Call Girls Budhwar Peth 8250192130 Will You Miss Thi...ranjana rawat
 
High Profile Call Girls Nagpur Isha Call 7001035870 Meet With Nagpur Escorts
High Profile Call Girls Nagpur Isha Call 7001035870 Meet With Nagpur EscortsHigh Profile Call Girls Nagpur Isha Call 7001035870 Meet With Nagpur Escorts
High Profile Call Girls Nagpur Isha Call 7001035870 Meet With Nagpur Escortsranjana rawat
 
(ANJALI) Dange Chowk Call Girls Just Call 7001035870 [ Cash on Delivery ] Pun...
(ANJALI) Dange Chowk Call Girls Just Call 7001035870 [ Cash on Delivery ] Pun...(ANJALI) Dange Chowk Call Girls Just Call 7001035870 [ Cash on Delivery ] Pun...
(ANJALI) Dange Chowk Call Girls Just Call 7001035870 [ Cash on Delivery ] Pun...ranjana rawat
 
APPLICATIONS-AC/DC DRIVES-OPERATING CHARACTERISTICS
APPLICATIONS-AC/DC DRIVES-OPERATING CHARACTERISTICSAPPLICATIONS-AC/DC DRIVES-OPERATING CHARACTERISTICS
APPLICATIONS-AC/DC DRIVES-OPERATING CHARACTERISTICSKurinjimalarL3
 
SPICE PARK APR2024 ( 6,793 SPICE Models )
SPICE PARK APR2024 ( 6,793 SPICE Models )SPICE PARK APR2024 ( 6,793 SPICE Models )
SPICE PARK APR2024 ( 6,793 SPICE Models )Tsuyoshi Horigome
 
Processing & Properties of Floor and Wall Tiles.pptx
Processing & Properties of Floor and Wall Tiles.pptxProcessing & Properties of Floor and Wall Tiles.pptx
Processing & Properties of Floor and Wall Tiles.pptxpranjaldaimarysona
 
Introduction to Multiple Access Protocol.pptx
Introduction to Multiple Access Protocol.pptxIntroduction to Multiple Access Protocol.pptx
Introduction to Multiple Access Protocol.pptxupamatechverse
 
Decoding Kotlin - Your guide to solving the mysterious in Kotlin.pptx
Decoding Kotlin - Your guide to solving the mysterious in Kotlin.pptxDecoding Kotlin - Your guide to solving the mysterious in Kotlin.pptx
Decoding Kotlin - Your guide to solving the mysterious in Kotlin.pptxJoão Esperancinha
 
(ANVI) Koregaon Park Call Girls Just Call 7001035870 [ Cash on Delivery ] Pun...
(ANVI) Koregaon Park Call Girls Just Call 7001035870 [ Cash on Delivery ] Pun...(ANVI) Koregaon Park Call Girls Just Call 7001035870 [ Cash on Delivery ] Pun...
(ANVI) Koregaon Park Call Girls Just Call 7001035870 [ Cash on Delivery ] Pun...ranjana rawat
 
Call Girls Service Nagpur Tanvi Call 7001035870 Meet With Nagpur Escorts
Call Girls Service Nagpur Tanvi Call 7001035870 Meet With Nagpur EscortsCall Girls Service Nagpur Tanvi Call 7001035870 Meet With Nagpur Escorts
Call Girls Service Nagpur Tanvi Call 7001035870 Meet With Nagpur EscortsCall Girls in Nagpur High Profile
 
the ladakh protest in leh ladakh 2024 sonam wangchuk.pptx
the ladakh protest in leh ladakh 2024 sonam wangchuk.pptxthe ladakh protest in leh ladakh 2024 sonam wangchuk.pptx
the ladakh protest in leh ladakh 2024 sonam wangchuk.pptxhumanexperienceaaa
 
Call Girls in Nagpur Suman Call 7001035870 Meet With Nagpur Escorts
Call Girls in Nagpur Suman Call 7001035870 Meet With Nagpur EscortsCall Girls in Nagpur Suman Call 7001035870 Meet With Nagpur Escorts
Call Girls in Nagpur Suman Call 7001035870 Meet With Nagpur EscortsCall Girls in Nagpur High Profile
 

Recently uploaded (20)

9953056974 Call Girls In South Ex, Escorts (Delhi) NCR.pdf
9953056974 Call Girls In South Ex, Escorts (Delhi) NCR.pdf9953056974 Call Girls In South Ex, Escorts (Delhi) NCR.pdf
9953056974 Call Girls In South Ex, Escorts (Delhi) NCR.pdf
 
(RIA) Call Girls Bhosari ( 7001035870 ) HI-Fi Pune Escorts Service
(RIA) Call Girls Bhosari ( 7001035870 ) HI-Fi Pune Escorts Service(RIA) Call Girls Bhosari ( 7001035870 ) HI-Fi Pune Escorts Service
(RIA) Call Girls Bhosari ( 7001035870 ) HI-Fi Pune Escorts Service
 
MANUFACTURING PROCESS-II UNIT-2 LATHE MACHINE
MANUFACTURING PROCESS-II UNIT-2 LATHE MACHINEMANUFACTURING PROCESS-II UNIT-2 LATHE MACHINE
MANUFACTURING PROCESS-II UNIT-2 LATHE MACHINE
 
DJARUM4D - SLOT GACOR ONLINE | SLOT DEMO ONLINE
DJARUM4D - SLOT GACOR ONLINE | SLOT DEMO ONLINEDJARUM4D - SLOT GACOR ONLINE | SLOT DEMO ONLINE
DJARUM4D - SLOT GACOR ONLINE | SLOT DEMO ONLINE
 
Software Development Life Cycle By Team Orange (Dept. of Pharmacy)
Software Development Life Cycle By  Team Orange (Dept. of Pharmacy)Software Development Life Cycle By  Team Orange (Dept. of Pharmacy)
Software Development Life Cycle By Team Orange (Dept. of Pharmacy)
 
What are the advantages and disadvantages of membrane structures.pptx
What are the advantages and disadvantages of membrane structures.pptxWhat are the advantages and disadvantages of membrane structures.pptx
What are the advantages and disadvantages of membrane structures.pptx
 
★ CALL US 9953330565 ( HOT Young Call Girls In Badarpur delhi NCR
★ CALL US 9953330565 ( HOT Young Call Girls In Badarpur delhi NCR★ CALL US 9953330565 ( HOT Young Call Girls In Badarpur delhi NCR
★ CALL US 9953330565 ( HOT Young Call Girls In Badarpur delhi NCR
 
Gfe Mayur Vihar Call Girls Service WhatsApp -> 9999965857 Available 24x7 ^ De...
Gfe Mayur Vihar Call Girls Service WhatsApp -> 9999965857 Available 24x7 ^ De...Gfe Mayur Vihar Call Girls Service WhatsApp -> 9999965857 Available 24x7 ^ De...
Gfe Mayur Vihar Call Girls Service WhatsApp -> 9999965857 Available 24x7 ^ De...
 
The Most Attractive Pune Call Girls Budhwar Peth 8250192130 Will You Miss Thi...
The Most Attractive Pune Call Girls Budhwar Peth 8250192130 Will You Miss Thi...The Most Attractive Pune Call Girls Budhwar Peth 8250192130 Will You Miss Thi...
The Most Attractive Pune Call Girls Budhwar Peth 8250192130 Will You Miss Thi...
 
High Profile Call Girls Nagpur Isha Call 7001035870 Meet With Nagpur Escorts
High Profile Call Girls Nagpur Isha Call 7001035870 Meet With Nagpur EscortsHigh Profile Call Girls Nagpur Isha Call 7001035870 Meet With Nagpur Escorts
High Profile Call Girls Nagpur Isha Call 7001035870 Meet With Nagpur Escorts
 
(ANJALI) Dange Chowk Call Girls Just Call 7001035870 [ Cash on Delivery ] Pun...
(ANJALI) Dange Chowk Call Girls Just Call 7001035870 [ Cash on Delivery ] Pun...(ANJALI) Dange Chowk Call Girls Just Call 7001035870 [ Cash on Delivery ] Pun...
(ANJALI) Dange Chowk Call Girls Just Call 7001035870 [ Cash on Delivery ] Pun...
 
APPLICATIONS-AC/DC DRIVES-OPERATING CHARACTERISTICS
APPLICATIONS-AC/DC DRIVES-OPERATING CHARACTERISTICSAPPLICATIONS-AC/DC DRIVES-OPERATING CHARACTERISTICS
APPLICATIONS-AC/DC DRIVES-OPERATING CHARACTERISTICS
 
SPICE PARK APR2024 ( 6,793 SPICE Models )
SPICE PARK APR2024 ( 6,793 SPICE Models )SPICE PARK APR2024 ( 6,793 SPICE Models )
SPICE PARK APR2024 ( 6,793 SPICE Models )
 
Processing & Properties of Floor and Wall Tiles.pptx
Processing & Properties of Floor and Wall Tiles.pptxProcessing & Properties of Floor and Wall Tiles.pptx
Processing & Properties of Floor and Wall Tiles.pptx
 
Introduction to Multiple Access Protocol.pptx
Introduction to Multiple Access Protocol.pptxIntroduction to Multiple Access Protocol.pptx
Introduction to Multiple Access Protocol.pptx
 
Decoding Kotlin - Your guide to solving the mysterious in Kotlin.pptx
Decoding Kotlin - Your guide to solving the mysterious in Kotlin.pptxDecoding Kotlin - Your guide to solving the mysterious in Kotlin.pptx
Decoding Kotlin - Your guide to solving the mysterious in Kotlin.pptx
 
(ANVI) Koregaon Park Call Girls Just Call 7001035870 [ Cash on Delivery ] Pun...
(ANVI) Koregaon Park Call Girls Just Call 7001035870 [ Cash on Delivery ] Pun...(ANVI) Koregaon Park Call Girls Just Call 7001035870 [ Cash on Delivery ] Pun...
(ANVI) Koregaon Park Call Girls Just Call 7001035870 [ Cash on Delivery ] Pun...
 
Call Girls Service Nagpur Tanvi Call 7001035870 Meet With Nagpur Escorts
Call Girls Service Nagpur Tanvi Call 7001035870 Meet With Nagpur EscortsCall Girls Service Nagpur Tanvi Call 7001035870 Meet With Nagpur Escorts
Call Girls Service Nagpur Tanvi Call 7001035870 Meet With Nagpur Escorts
 
the ladakh protest in leh ladakh 2024 sonam wangchuk.pptx
the ladakh protest in leh ladakh 2024 sonam wangchuk.pptxthe ladakh protest in leh ladakh 2024 sonam wangchuk.pptx
the ladakh protest in leh ladakh 2024 sonam wangchuk.pptx
 
Call Girls in Nagpur Suman Call 7001035870 Meet With Nagpur Escorts
Call Girls in Nagpur Suman Call 7001035870 Meet With Nagpur EscortsCall Girls in Nagpur Suman Call 7001035870 Meet With Nagpur Escorts
Call Girls in Nagpur Suman Call 7001035870 Meet With Nagpur Escorts
 

Releaseflow: a healthy build and deploy process

  • 1. releaseflow A healthy build, release and deploy process releaseflow.org@ChrisCundill #nogitflow#releaseflow
  • 2. About me ● Programmer @DiligentSoft ○ Currently @DVLAgovuk with @notbinary_ ● Husband, father, gym-goer, musician. ● Volunteer @CodeClub, @Cornerstone_CS ● Member of @SwanseaSDC and #hackthecity communities ● Enjoy Football, Running, Scuba Diving
  • 3.
  • 5. “Arguing with an engineer is like wrestling in the mud with a pig. After a couple of hours you realize the pig likes it.” gineersnow.com/engineering/engineers-love-argue
  • 6. Linux vs Windows vs MacOSLinux vs MacOS
  • 8. vs
  • 9. “Developers Who Use Spaces Make More Money Than Those Who Use Tabs” stackoverflow.blog/2017/06/15/developers-use-spaces-make-money-use-tabs/
  • 10. “Choose tabs, choose spaces… It doesn't actually matter which coding styles you pick. What does matter is that you, and everyone else on your team, sticks with those conventions and uses them consistently... Jeff Atwood blog.codinghorror.com/death-to-the-space-infidels/ That said, only a moron would use tabs to format their code.”
  • 14. Contents ● Separation of build, release and deploy concerns ● Branching strategy ● Releases & release notes ● Acceptance tests ● Deployment ● Pipeline ● Recommended resources ● Q&A
  • 15. Presentation Milestones 0.1 ---- releaseflow.org site finished 0.2 ---- Presentation slides 1.0 ---- Example app deployed with Jenkins to staging and prod environments
  • 16. 1.1 ---- Automated acceptance tests to pipeline 1.2 ---- Re-use of pipeline steps for deploy 1.3 ---- Automated release to pipeline 1.4 ---- Automated release notes in pipeline
  • 18. Build, release and deploy ● Build steps include compile, test, package and publish ○ Publish artifact ready for deployment ● Release is a special build to publish an immutable version of software ○ Tag repository with version and publish release version of artifact ready for deployment ● Deploy steps deliver published artifact to an environment ○ Delivers a certain version to a specific environment ○ No environment-specific builds: the artifact should not be built again.
  • 20.
  • 21.
  • 22.
  • 23.
  • 24.
  • 25.
  • 26. So why not Gitflow?
  • 30. The development community is woke GitHub Flow scottchacon.com/2011/08/31/github-flow.html GitFlow considered harmful endoflineblog.com/gitflow-considered-harmful Follow-up to 'GitFlow considered harmful' endoflineblog.com/follow-up-to-gitflow-considered-harmful Still using GitFlow? What about a simpler alternative? hackernoon.com/still-using-gitflow-what-about-a-simpler-alternative-74aa9a46b9a3 Branching Is Easy. So? Git-flow Is Not Agile. www.elidedbranches.com/2013/02/branching-is-easy-so.html A real-life git workflow. Why git flow does not work for us luci.criosweb.ro/a-real-life-git-workflow-why-git-flow-does-not-work-for-us/
  • 31. Release Branching Strategy Recommended approach to branching in the book "Continuous Delivery: Reliable Software Releases through Build, Test, and Deployment Automation" by Jez Humble and David Farley (2010).
  • 32.
  • 33. Let’s call it releaseflow.org
  • 35.
  • 36.
  • 38.
  • 39.
  • 40.
  • 41. Tagging A release tag should use a three segment number as defined in Semantic Versioning 2.0.0: ● MAJOR version when you make incompatible API changes, ● MINOR version when you add functionality in a backwards-compatible manner, and ● PATCH version when you make backwards-compatible bug fixes.
  • 42. How do I find the code running in production?
  • 43. How do I fix a defect?
  • 44. How do I add a new feature?
  • 45. How do I … ?
  • 46.
  • 47. The idea of a stable trunk is unstable
  • 48.
  • 49. Why an unstable trunk is stable
  • 51.
  • 53. Automate release notes ● Enforce ticket reference in commit messages ○ Start with regex ○ Finish up with lookup to validate ticket exists in ALM tool ● Generate release notes ○ Create release notes during release steps in Jenkins ○ Use ticket references from commit messages ○ Enrich with story data using ALM tool API
  • 55. Acceptance Tests ● Do automate your acceptance tests ○ Critical to continuous delivery pipeline ○ Unless automated tests can run in your pipeline they’re not valuable enough ● Make tests configurable for any environment ● Definition of done for stories must include acceptance tests ● Do include smoke tests ● Group acceptance test suites for fast feedback
  • 57. Deployment ● Automate, duh! ● Use acceptance tests of upstream deployments as gate for deployments to downstream environments ● Prefer environment variables to configure applications ○ 12 factor app anyone? ○ Inject environment-specifics into application packages during deployment where necessary
  • 60. Pipeline as code. Standard.
  • 63.
  • 65.
  • 66. Q&A