SlideShare ist ein Scribd-Unternehmen logo
1 von 142
Downloaden Sie, um offline zu lesen
Feature branches and toggles
in a post-GitHub world
Devoxx Poland 2017
Sam Newman
@samnewman@devoxxpl
Sam Newman &
Associates
@samnewman@devoxxpl
Sam Newman
Building
Microservices
DESIGNING FINE-GRAINED SYSTEMS
@samnewman@devoxxpl
2004
@samnewman@devoxxpl
@samnewman@devoxxpl
to
Banbury
Oxford
Reading
High Wycombe
London Marylebone
to
Luton
St Albans
London St Pancras
Rugby
Milton Keynes
Central
Watford Junction
London Euston
Bedford
Wolverton
Fenny Stratford
Bow Brickhill
Woburn Sands
Aspley Guise
Ridgmont
Lidlington
Watford North
Garston
Bricket Wood
How Wood
Park Street
St Albans Abbey
Millbrook
Stewartby
Kempston Hardwick
Bedford St Johns
Bletchley
Leighton Buzzard
Cheddington
Tring
Berkhamsted
Hemel Hempstead
Apsley
Kings Langley
Bushey
Harrow & Wealdstone
Wembley Central
wick
Coventry
Leamington
Spa
Northampton
Long Buckby
Coventry
Arena
@samnewman@devoxxpl
to
Banbury
Oxford
Reading
High Wycombe
London Marylebone
to
Luton
St Albans
London St Pancras
Rugby
Milton Keynes
Central
Watford Junction
London Euston
Bedford
Wolverton
Fenny Stratford
Bow Brickhill
Woburn Sands
Aspley Guise
Ridgmont
Lidlington
Watford North
Garston
Bricket Wood
How Wood
Park Street
St Albans Abbey
Millbrook
Stewartby
Kempston Hardwick
Bedford St Johns
Bletchley
Leighton Buzzard
Cheddington
Tring
Berkhamsted
Hemel Hempstead
Apsley
Kings Langley
Bushey
Harrow & Wealdstone
Wembley Central
wick
Coventry
Leamington
Spa
Northampton
Long Buckby
Coventry
Arena
@samnewman@devoxxpl
to
Banbury
Oxford
Reading
High Wycombe
London Marylebone
to
Luton
St Albans
London St Pancras
Rugby
Milton Keynes
Central
Watford Junction
London Euston
Bedford
Wolverton
Fenny Stratford
Bow Brickhill
Woburn Sands
Aspley Guise
Ridgmont
Lidlington
Watford North
Garston
Bricket Wood
How Wood
Park Street
St Albans Abbey
Millbrook
Stewartby
Kempston Hardwick
Bedford St Johns
Bletchley
Leighton Buzzard
Cheddington
Tring
Berkhamsted
Hemel Hempstead
Apsley
Kings Langley
Bushey
Harrow & Wealdstone
Wembley Central
wick
Coventry
Leamington
Spa
Northampton
Long Buckby
Coventry
Arena
@samnewman@devoxxpl
to
Banbury
Oxford
Reading
High Wycombe
London Marylebone
to
Luton
St Albans
London St Pancras
Rugby
Milton Keynes
Central
Watford Junction
London Euston
Bedford
Wolverton
Fenny Stratford
Bow Brickhill
Woburn Sands
Aspley Guise
Ridgmont
Lidlington
Watford North
Garston
Bricket Wood
How Wood
Park Street
St Albans Abbey
Millbrook
Stewartby
Kempston Hardwick
Bedford St Johns
Bletchley
Leighton Buzzard
Cheddington
Tring
Berkhamsted
Hemel Hempstead
Apsley
Kings Langley
Bushey
Harrow & Wealdstone
Wembley Central
wick
Coventry
Leamington
Spa
Northampton
Long Buckby
Coventry
Arena
@samnewman@devoxxpl
R3
@samnewman@devoxxpl
R3
@samnewman@devoxxpl
R3
R4
@samnewman@devoxxpl
R3
R4
@samnewman@devoxxpl
R3
R4
@samnewman@devoxxpl
R3
R4
@samnewman@devoxxpl
R3
R4
@samnewman@devoxxpl https://www.flickr.com/photos/jubilo/6965626176/
@samnewman@devoxxpl
R3-R4 Merge Bug Fix Team
@samnewman@devoxxpl
R3-R4 Merge Bug Fix Team
yay
@samnewman@devoxxpl
Continuous Integration
@samnewman@devoxxpl
@samnewman@devoxxpl
@samnewman@devoxxpl
CI Tool
@samnewman@devoxxpl
CI Tool
!
@samnewman@devoxxpl
CI Tool
! "
@samnewman@devoxxpl
@samnewman@devoxxpl
@samnewman@devoxxpl
!
@samnewman@devoxxpl
! !
@samnewman@devoxxpl
! !
1. Validate the integration
@samnewman@devoxxpl
! ! "
1. Validate the integration
@samnewman@devoxxpl
! ! "
2. When the build breaks, fix it!
1. Validate the integration
@samnewman@devoxxpl
! ! " !
2. When the build breaks, fix it!
1. Validate the integration
@samnewman@devoxxpl
! ! " !
2. When the build breaks, fix it!
1. Validate the integration
…
@samnewman@devoxxpl
! ! " !
2. When the build breaks, fix it!
1. Validate the integration
…
@samnewman@devoxxpl
! ! " !
2. When the build breaks, fix it!
1. Validate the integration
…
"
"
"
"
@samnewman@devoxxpl
! ! " !
2. When the build breaks, fix it!
3. Integrate daily
1. Validate the integration
…
"
"
"
"
@samnewman@devoxxpl
R3
R4
@samnewman@devoxxpl
R3
R4
! ! !
@samnewman@devoxxpl
R3
R4
! ! !
! ! !
@samnewman@devoxxpl
R3
R4
! ! !
! ! !
@samnewman@devoxxpl
Integrate Once A Day
@samnewman@devoxxpl
How can you deal with
half-finished work?
@samnewman@devoxxpl
Option 1:
@samnewman@devoxxpl
Option 1:
Wait to check in
@samnewman@devoxxpl
Option 2:
@samnewman@devoxxpl
Option 2:
Make a branch!
@samnewman@devoxxpl
Trunk
@samnewman@devoxxpl
Trunk
@samnewman@devoxxpl
Trunk
F1
@samnewman@devoxxpl
Trunk
F1
@samnewman@devoxxpl
Trunk
F1
@samnewman@devoxxpl
Trunk
F1
F2
@samnewman@devoxxpl
Trunk
F1
F2
@samnewman@devoxxpl
Trunk
F1
F2
@samnewman@devoxxpl
Trunk
F1
F2
@samnewman@devoxxpl
Trunk
F1
F2
@samnewman@devoxxpl
we are deferring integration!
Trunk
F1
F2
@samnewman@devoxxpl
Pain of merge = fn (
size_of_merge,
duration_since_last_merge)
@samnewman@devoxxpl
Big merges = commit race!
@samnewman@devoxxpl
Merging refactoring is
*really* hard
@samnewman@devoxxpl
Option 3:
@samnewman@devoxxpl
Option 3:
Check in anyway
@samnewman@devoxxpl
Option 3:
Check in anyway
err…wat?
@samnewman@devoxxpl
Trunk-based development
@samnewman@devoxxpl
Everyone integrates into trunk
@samnewman@devoxxpl
Trunk
@samnewman@devoxxpl
Trunk
@samnewman@devoxxpl
integrate often…
Trunk
@samnewman@devoxxpl
integrate often…
Trunk
…fast feedback…
@samnewman@devoxxpl
integrate often…
Trunk
…fast feedback…
…break up merge pain
@samnewman@devoxxpl
integrate often…
Trunk
…fast feedback…
…break up merge pain
err…but what about half-finished features?
@samnewman@devoxxpl
Feature Toggles
@samnewman@devoxxpl
Feature Toggles
Hide the partially
implemented feature in
the running system
@samnewman@devoxxpl
…
super_widget = off
…
@samnewman@devoxxpl
…
super_widget = off
…
…
super_widget = on
…
@samnewman@devoxxpl
…
super_widget = off
…
…
super_widget = on
…
super widget!
@samnewman@devoxxpl
…
super_widget = off
…
…
super_widget = on
…
$. run -Dsuper_widget=on
super widget!
@samnewman@devoxxpl
…
super_widget = off
…
…
super_widget = on
…
$. run -Dsuper_widget=on
super widget!
@samnewman@devoxxpl
But what about changes to existing
functionality?
@samnewman@devoxxpl
@samnewman@devoxxpl
iBatis
Persistence
@samnewman@devoxxpl
iBatis
Persistence
@samnewman@devoxxpl
iBatis
Persistence
shipping every two
weeks…
@samnewman@devoxxpl
iBatis
Persistence
Hibernate
shipping every two
weeks…
@samnewman@devoxxpl
iBatis
Persistence
Abstraction
Hibernate
shipping every two
weeks…
@samnewman@devoxxpl
iBatis
Persistence
Abstraction
Hibernate
shipping every two
weeks…
@samnewman@devoxxpl
iBatis
Persistence
Abstraction
Hibernate
shipping every two
weeks…
@samnewman@devoxxpl
iBatis
Persistence
Abstraction
Hibernate
shipping every two
weeks…
@samnewman@devoxxpl
iBatis
Persistence
Abstraction
Hibernate
shipping every two
weeks…
@samnewman@devoxxpl
Abstraction
Hibernate
shipping every two
weeks…
@samnewman@devoxxpl
Branch by abstraction
@samnewman@devoxxpl
Important Rules:
@samnewman@devoxxpl
Important Rules:
Use a flag in as few places as possible
@samnewman@devoxxpl
Important Rules:
Use a flag in as few places as possible
Remove them once you’re done
@samnewman@devoxxpl
Side Benefits:
@samnewman@devoxxpl
Side Benefits:
Can be used for A/B testing
@samnewman@devoxxpl
Side Benefits:
Can be used for A/B testing
And with some work, canary releasing
@samnewman@devoxxpl
split.io, launch darkly
@samnewman@devoxxpl
@samnewman@devoxxpl
@samnewman@devoxxpl
https://trunkbaseddevelopment.com
@samnewman@devoxxpl
Continuous Delivery Book…
@samnewman@devoxxpl
Published in 2011
@samnewman@devoxxpl
Treat every check-in as
a release candidate
@samnewman@devoxxpl
https://www.slideshare.net/jallspaw/ops-metametrics-the-currency-you-pay-for-change-4608108
@samnewman@devoxxpl
Ops Meta-Metrics - John Allspaw
@samnewman@devoxxpl
Ops Meta-Metrics - John Allspaw
@samnewman@devoxxpl
Keep batch size small
@samnewman@devoxxpl
Integrate often
Keep batch size small
@samnewman@devoxxpl
Integrate often
Keep batch size small
Ship often
@samnewman@devoxxpl
And there there was Git
@samnewman@devoxxpl
@samnewman@devoxxpl
Goal
@samnewman@devoxxpl
Goal
Merge a patch in less than 3 seconds
@samnewman@devoxxpl
Branches much more lightweight
@samnewman@devoxxpl
Merging of text is better but…
@samnewman@devoxxpl
https://www.semanticmerge.com
@samnewman@devoxxpl
And then there was GitHub…
@samnewman@devoxxpl
2008
@samnewman@devoxxpl
https://github.com/blog/3-oh-yeah-there-s-pull-requests-now
@samnewman@devoxxpl
https://vimeo.com/2979844
@samnewman@devoxxpl
https://vimeo.com/2979844
@samnewman@devoxxpl
http://readwrite.com/2011/06/02/github-has-passed-sourceforge/
@samnewman@devoxxpl
But PRs use branching!
@samnewman@devoxxpl
Open Source
@samnewman@devoxxpl
Open Source
“Untrusted” Committers
@samnewman@devoxxpl
And then there was gitflow…
@samnewman@devoxxpl
@samnewman@devoxxpl https://www.flickr.com/photos/hackny/8675049276/
@samnewman@devoxxpl
Ops Meta-Metrics - John Allspaw
@samnewman@devoxxpl
But if I merge in frequently,
why do I need GitFlow?
@samnewman@devoxxpl
@samnewman@devoxxpl
“Trunk-based development is likely the most controversial
practice discussed in this book
@samnewman@devoxxpl
“Trunk-based development is likely the most controversial
practice discussed in this book
- Gene Kim, Jez Humble, Patrick Debois & John Willis
[…]
However, the data from Puppet Labs’ 2015 State of DevOps
Report is clear: trunk-based development predicts higher
throughput and better stability, and even higher job
satisfaction and lower rates of burnout.“
@samnewman@devoxxpl
@samnewman@devoxxpl
“We found that having branches or forks with very short
lifetimes (less than a day) before being merged into trunk, and
less than three active branches in total, are important aspects
of continuous delivery, and all contribute to higher
performance. So does merging code into trunk or master on a
daily basis. “
- State Of Devops Report, 2016
@samnewman@devoxxpl
So are branches evil?
@samnewman@devoxxpl
Keep batch size small
@samnewman@devoxxpl
Integrate often
Keep batch size small
@samnewman@devoxxpl
Integrate often
Keep batch size small
Ship often
@samnewman@devoxxpl
http://samnewman.io
@samnewman
Thank You!
Also thanks to Don Clark for the people icons
https://commons.wikimedia.org/wiki/File:Gender_neutral.svg CC BY-SA 4.0

Weitere ähnliche Inhalte

Was ist angesagt?

iOS Modular Architecture with Tuist
iOS Modular Architecture with TuistiOS Modular Architecture with Tuist
iOS Modular Architecture with Tuist정민 안
 
Bamboo - an introduction
Bamboo - an introductionBamboo - an introduction
Bamboo - an introductionSven Peters
 
Git 더하기 GitHub(구름IDE 환경)
Git 더하기 GitHub(구름IDE 환경)Git 더하기 GitHub(구름IDE 환경)
Git 더하기 GitHub(구름IDE 환경)Junyoung Lee
 
토스 이직기 & 적응기 (99Con)
토스 이직기 & 적응기 (99Con)토스 이직기 & 적응기 (99Con)
토스 이직기 & 적응기 (99Con)HyunSeob Lee
 
[Devil's camp 2019] 혹시 Elixir 아십니까? 정.말.갓.언.어.입.니.다
[Devil's camp 2019] 혹시 Elixir 아십니까? 정.말.갓.언.어.입.니.다[Devil's camp 2019] 혹시 Elixir 아십니까? 정.말.갓.언.어.입.니.다
[Devil's camp 2019] 혹시 Elixir 아십니까? 정.말.갓.언.어.입.니.다KWON JUNHYEOK
 
Understanding Branching and Merging in Git
Understanding Branching and Merging in GitUnderstanding Branching and Merging in Git
Understanding Branching and Merging in Gitgittower
 
A Deep Dive into Kafka Controller
A Deep Dive into Kafka ControllerA Deep Dive into Kafka Controller
A Deep Dive into Kafka Controllerconfluent
 
Git slides
Git slidesGit slides
Git slidesNanyak S
 
[부스트캠퍼세미나]육진혁_(대충 도커 쓰자는 이야기)
[부스트캠퍼세미나]육진혁_(대충 도커 쓰자는 이야기)[부스트캠퍼세미나]육진혁_(대충 도커 쓰자는 이야기)
[부스트캠퍼세미나]육진혁_(대충 도커 쓰자는 이야기)CONNECT FOUNDATION
 
Git branching strategies
Git branching strategiesGit branching strategies
Git branching strategiesjstack
 
[부스트캠퍼세미나]조성동_야_너두_TDD_할_수_있어
[부스트캠퍼세미나]조성동_야_너두_TDD_할_수_있어[부스트캠퍼세미나]조성동_야_너두_TDD_할_수_있어
[부스트캠퍼세미나]조성동_야_너두_TDD_할_수_있어CONNECT FOUNDATION
 
Trunk based development for Beginners
Trunk based development for BeginnersTrunk based development for Beginners
Trunk based development for BeginnersNebulaworks
 
Real Time analytics with Druid, Apache Spark and Kafka
Real Time analytics with Druid, Apache Spark and KafkaReal Time analytics with Druid, Apache Spark and Kafka
Real Time analytics with Druid, Apache Spark and KafkaDaria Litvinov
 
Scrum vs Kanban | What are the differences between Scrum and Kanban | Edureka
Scrum vs Kanban | What are the differences between Scrum and Kanban | EdurekaScrum vs Kanban | What are the differences between Scrum and Kanban | Edureka
Scrum vs Kanban | What are the differences between Scrum and Kanban | EdurekaEdureka!
 
C# Game Server
C# Game ServerC# Game Server
C# Game Serverlactrious
 
Git Series. Episode 3. Git Flow and Github-Flow
Git Series. Episode 3. Git Flow and Github-FlowGit Series. Episode 3. Git Flow and Github-Flow
Git Series. Episode 3. Git Flow and Github-FlowMikhail Melnik
 
Developing Kafka Streams Applications with Upgradability in Mind with Neil Bu...
Developing Kafka Streams Applications with Upgradability in Mind with Neil Bu...Developing Kafka Streams Applications with Upgradability in Mind with Neil Bu...
Developing Kafka Streams Applications with Upgradability in Mind with Neil Bu...HostedbyConfluent
 
Unity Auto Build iOS
Unity Auto Build iOSUnity Auto Build iOS
Unity Auto Build iOSGiseok Lee
 

Was ist angesagt? (20)

iOS Modular Architecture with Tuist
iOS Modular Architecture with TuistiOS Modular Architecture with Tuist
iOS Modular Architecture with Tuist
 
Bamboo - an introduction
Bamboo - an introductionBamboo - an introduction
Bamboo - an introduction
 
Git 더하기 GitHub(구름IDE 환경)
Git 더하기 GitHub(구름IDE 환경)Git 더하기 GitHub(구름IDE 환경)
Git 더하기 GitHub(구름IDE 환경)
 
토스 이직기 & 적응기 (99Con)
토스 이직기 & 적응기 (99Con)토스 이직기 & 적응기 (99Con)
토스 이직기 & 적응기 (99Con)
 
[Devil's camp 2019] 혹시 Elixir 아십니까? 정.말.갓.언.어.입.니.다
[Devil's camp 2019] 혹시 Elixir 아십니까? 정.말.갓.언.어.입.니.다[Devil's camp 2019] 혹시 Elixir 아십니까? 정.말.갓.언.어.입.니.다
[Devil's camp 2019] 혹시 Elixir 아십니까? 정.말.갓.언.어.입.니.다
 
Git and git flow
Git and git flowGit and git flow
Git and git flow
 
Understanding Branching and Merging in Git
Understanding Branching and Merging in GitUnderstanding Branching and Merging in Git
Understanding Branching and Merging in Git
 
A Deep Dive into Kafka Controller
A Deep Dive into Kafka ControllerA Deep Dive into Kafka Controller
A Deep Dive into Kafka Controller
 
Git slides
Git slidesGit slides
Git slides
 
[부스트캠퍼세미나]육진혁_(대충 도커 쓰자는 이야기)
[부스트캠퍼세미나]육진혁_(대충 도커 쓰자는 이야기)[부스트캠퍼세미나]육진혁_(대충 도커 쓰자는 이야기)
[부스트캠퍼세미나]육진혁_(대충 도커 쓰자는 이야기)
 
Git branching strategies
Git branching strategiesGit branching strategies
Git branching strategies
 
[부스트캠퍼세미나]조성동_야_너두_TDD_할_수_있어
[부스트캠퍼세미나]조성동_야_너두_TDD_할_수_있어[부스트캠퍼세미나]조성동_야_너두_TDD_할_수_있어
[부스트캠퍼세미나]조성동_야_너두_TDD_할_수_있어
 
Trunk based development for Beginners
Trunk based development for BeginnersTrunk based development for Beginners
Trunk based development for Beginners
 
Real Time analytics with Druid, Apache Spark and Kafka
Real Time analytics with Druid, Apache Spark and KafkaReal Time analytics with Druid, Apache Spark and Kafka
Real Time analytics with Druid, Apache Spark and Kafka
 
Scrum vs Kanban | What are the differences between Scrum and Kanban | Edureka
Scrum vs Kanban | What are the differences between Scrum and Kanban | EdurekaScrum vs Kanban | What are the differences between Scrum and Kanban | Edureka
Scrum vs Kanban | What are the differences between Scrum and Kanban | Edureka
 
C# Game Server
C# Game ServerC# Game Server
C# Game Server
 
Git Series. Episode 3. Git Flow and Github-Flow
Git Series. Episode 3. Git Flow and Github-FlowGit Series. Episode 3. Git Flow and Github-Flow
Git Series. Episode 3. Git Flow and Github-Flow
 
Git advanced
Git advancedGit advanced
Git advanced
 
Developing Kafka Streams Applications with Upgradability in Mind with Neil Bu...
Developing Kafka Streams Applications with Upgradability in Mind with Neil Bu...Developing Kafka Streams Applications with Upgradability in Mind with Neil Bu...
Developing Kafka Streams Applications with Upgradability in Mind with Neil Bu...
 
Unity Auto Build iOS
Unity Auto Build iOSUnity Auto Build iOS
Unity Auto Build iOS
 

Ähnlich wie Feature Branches And Toggles In A Post-GitHub World

Creating A Great Book Trailer On A Budget
Creating A Great Book Trailer On A BudgetCreating A Great Book Trailer On A Budget
Creating A Great Book Trailer On A BudgetWill Kesling
 
The Inbounder London 2. May - Kelvin Newman
The Inbounder London 2. May - Kelvin NewmanThe Inbounder London 2. May - Kelvin Newman
The Inbounder London 2. May - Kelvin NewmanWe Are Marketing
 
Why Podcasting Is the Missing Piece In Your Inbound Strategy & How to Excel i...
Why Podcasting Is the Missing Piece In Your Inbound Strategy & How to Excel i...Why Podcasting Is the Missing Piece In Your Inbound Strategy & How to Excel i...
Why Podcasting Is the Missing Piece In Your Inbound Strategy & How to Excel i...Kelvin Newman
 
Understanding & Facilitating Semantic Search - #SearchFest 2016
Understanding & Facilitating Semantic Search - #SearchFest 2016Understanding & Facilitating Semantic Search - #SearchFest 2016
Understanding & Facilitating Semantic Search - #SearchFest 2016Mike Arnesen
 
Flowofproductqualityleanux15 150419180701-conversion-gate01
Flowofproductqualityleanux15 150419180701-conversion-gate01Flowofproductqualityleanux15 150419180701-conversion-gate01
Flowofproductqualityleanux15 150419180701-conversion-gate01Dale Sternberg
 
Flow of Product Quality
Flow of Product QualityFlow of Product Quality
Flow of Product QualityMatt Barcomb
 
Design Basics for Non-Designers
Design Basics for Non-DesignersDesign Basics for Non-Designers
Design Basics for Non-DesignersMel Choyce
 
New business models - social change for @SPARKdotme
New business models - social change for @SPARKdotme New business models - social change for @SPARKdotme
New business models - social change for @SPARKdotme Dragana Djermanovic
 
Practical microservices - NDC 2014
Practical microservices  - NDC 2014Practical microservices  - NDC 2014
Practical microservices - NDC 2014Sam Newman
 
[Unwebinar] How to Write Killer Landing Page Copy
[Unwebinar] How to Write Killer Landing Page Copy[Unwebinar] How to Write Killer Landing Page Copy
[Unwebinar] How to Write Killer Landing Page CopyUnbounce
 
The Facts & Fairytales of Conversion-Driven Content
The Facts & Fairytales of Conversion-Driven ContentThe Facts & Fairytales of Conversion-Driven Content
The Facts & Fairytales of Conversion-Driven ContentUnbounce
 
Learning How to Build Event Streaming Applications with Pac-Man
Learning How to Build Event Streaming Applications with Pac-ManLearning How to Build Event Streaming Applications with Pac-Man
Learning How to Build Event Streaming Applications with Pac-Manconfluent
 
CQRS and EventSourcing with Spring & Axon
CQRS and EventSourcing with Spring & AxonCQRS and EventSourcing with Spring & Axon
CQRS and EventSourcing with Spring & Axonnklmish
 
Lessons from Link Building in 2009 that Apply Today by @staceycav at #brighto...
Lessons from Link Building in 2009 that Apply Today by @staceycav at #brighto...Lessons from Link Building in 2009 that Apply Today by @staceycav at #brighto...
Lessons from Link Building in 2009 that Apply Today by @staceycav at #brighto...Stacey MacNaught
 
Interview like a journalist heweb17
Interview like a journalist   heweb17Interview like a journalist   heweb17
Interview like a journalist heweb17Donna Talarico
 
Deploying & operating microservices
Deploying & operating microservicesDeploying & operating microservices
Deploying & operating microservicesThoughtworks
 
Chat Ops - social and technical
Chat Ops - social and technicalChat Ops - social and technical
Chat Ops - social and technicalSean Walberg
 
Moving to a DevOps mode - easy, hard or just plain terrifying? - Daniel Bryan...
Moving to a DevOps mode - easy, hard or just plain terrifying? - Daniel Bryan...Moving to a DevOps mode - easy, hard or just plain terrifying? - Daniel Bryan...
Moving to a DevOps mode - easy, hard or just plain terrifying? - Daniel Bryan...JAXLondon2014
 
JAX London 2014 "Moving to DevOps Mode: easy, hard or just plain terrifying?"
JAX London 2014 "Moving to DevOps Mode: easy, hard or just plain terrifying?"JAX London 2014 "Moving to DevOps Mode: easy, hard or just plain terrifying?"
JAX London 2014 "Moving to DevOps Mode: easy, hard or just plain terrifying?"Daniel Bryant
 

Ähnlich wie Feature Branches And Toggles In A Post-GitHub World (20)

Creating A Great Book Trailer On A Budget
Creating A Great Book Trailer On A BudgetCreating A Great Book Trailer On A Budget
Creating A Great Book Trailer On A Budget
 
The Inbounder London 2. May - Kelvin Newman
The Inbounder London 2. May - Kelvin NewmanThe Inbounder London 2. May - Kelvin Newman
The Inbounder London 2. May - Kelvin Newman
 
Why Podcasting Is the Missing Piece In Your Inbound Strategy & How to Excel i...
Why Podcasting Is the Missing Piece In Your Inbound Strategy & How to Excel i...Why Podcasting Is the Missing Piece In Your Inbound Strategy & How to Excel i...
Why Podcasting Is the Missing Piece In Your Inbound Strategy & How to Excel i...
 
Understanding & Facilitating Semantic Search - #SearchFest 2016
Understanding & Facilitating Semantic Search - #SearchFest 2016Understanding & Facilitating Semantic Search - #SearchFest 2016
Understanding & Facilitating Semantic Search - #SearchFest 2016
 
Flowofproductqualityleanux15 150419180701-conversion-gate01
Flowofproductqualityleanux15 150419180701-conversion-gate01Flowofproductqualityleanux15 150419180701-conversion-gate01
Flowofproductqualityleanux15 150419180701-conversion-gate01
 
Flow of Product Quality
Flow of Product QualityFlow of Product Quality
Flow of Product Quality
 
Intro to Graph Databases
Intro to Graph DatabasesIntro to Graph Databases
Intro to Graph Databases
 
Design Basics for Non-Designers
Design Basics for Non-DesignersDesign Basics for Non-Designers
Design Basics for Non-Designers
 
New business models - social change for @SPARKdotme
New business models - social change for @SPARKdotme New business models - social change for @SPARKdotme
New business models - social change for @SPARKdotme
 
Practical microservices - NDC 2014
Practical microservices  - NDC 2014Practical microservices  - NDC 2014
Practical microservices - NDC 2014
 
[Unwebinar] How to Write Killer Landing Page Copy
[Unwebinar] How to Write Killer Landing Page Copy[Unwebinar] How to Write Killer Landing Page Copy
[Unwebinar] How to Write Killer Landing Page Copy
 
The Facts & Fairytales of Conversion-Driven Content
The Facts & Fairytales of Conversion-Driven ContentThe Facts & Fairytales of Conversion-Driven Content
The Facts & Fairytales of Conversion-Driven Content
 
Learning How to Build Event Streaming Applications with Pac-Man
Learning How to Build Event Streaming Applications with Pac-ManLearning How to Build Event Streaming Applications with Pac-Man
Learning How to Build Event Streaming Applications with Pac-Man
 
CQRS and EventSourcing with Spring & Axon
CQRS and EventSourcing with Spring & AxonCQRS and EventSourcing with Spring & Axon
CQRS and EventSourcing with Spring & Axon
 
Lessons from Link Building in 2009 that Apply Today by @staceycav at #brighto...
Lessons from Link Building in 2009 that Apply Today by @staceycav at #brighto...Lessons from Link Building in 2009 that Apply Today by @staceycav at #brighto...
Lessons from Link Building in 2009 that Apply Today by @staceycav at #brighto...
 
Interview like a journalist heweb17
Interview like a journalist   heweb17Interview like a journalist   heweb17
Interview like a journalist heweb17
 
Deploying & operating microservices
Deploying & operating microservicesDeploying & operating microservices
Deploying & operating microservices
 
Chat Ops - social and technical
Chat Ops - social and technicalChat Ops - social and technical
Chat Ops - social and technical
 
Moving to a DevOps mode - easy, hard or just plain terrifying? - Daniel Bryan...
Moving to a DevOps mode - easy, hard or just plain terrifying? - Daniel Bryan...Moving to a DevOps mode - easy, hard or just plain terrifying? - Daniel Bryan...
Moving to a DevOps mode - easy, hard or just plain terrifying? - Daniel Bryan...
 
JAX London 2014 "Moving to DevOps Mode: easy, hard or just plain terrifying?"
JAX London 2014 "Moving to DevOps Mode: easy, hard or just plain terrifying?"JAX London 2014 "Moving to DevOps Mode: easy, hard or just plain terrifying?"
JAX London 2014 "Moving to DevOps Mode: easy, hard or just plain terrifying?"
 

Mehr von Sam Newman

Hiding The Lead: Coupling, cohesion and microservices
Hiding The Lead: Coupling, cohesion and microservicesHiding The Lead: Coupling, cohesion and microservices
Hiding The Lead: Coupling, cohesion and microservicesSam Newman
 
Rip It Up - The Microservice Organisation
Rip It Up  - The Microservice OrganisationRip It Up  - The Microservice Organisation
Rip It Up - The Microservice OrganisationSam Newman
 
What Is This Cloud Native Thing Anyway?
What Is This Cloud Native Thing Anyway?What Is This Cloud Native Thing Anyway?
What Is This Cloud Native Thing Anyway?Sam Newman
 
Confusion In The Land Of The Serverless - 90min Version
Confusion In The Land Of The Serverless - 90min VersionConfusion In The Land Of The Serverless - 90min Version
Confusion In The Land Of The Serverless - 90min VersionSam Newman
 
AppSec and Microservices
AppSec and MicroservicesAppSec and Microservices
AppSec and MicroservicesSam Newman
 
Confusion In The Land Of The Serverless
Confusion In The Land Of The ServerlessConfusion In The Land Of The Serverless
Confusion In The Land Of The ServerlessSam Newman
 
AppSec & Microservices - Velocity 2016
AppSec & Microservices - Velocity 2016AppSec & Microservices - Velocity 2016
AppSec & Microservices - Velocity 2016Sam Newman
 
AppSec And Microservices
AppSec And MicroservicesAppSec And Microservices
AppSec And MicroservicesSam Newman
 
Deploying and Scaling Microservices
Deploying and Scaling MicroservicesDeploying and Scaling Microservices
Deploying and Scaling MicroservicesSam Newman
 
BETA - Securing microservices
BETA - Securing microservicesBETA - Securing microservices
BETA - Securing microservicesSam Newman
 
Principles of microservices ndc oslo
Principles of microservices   ndc osloPrinciples of microservices   ndc oslo
Principles of microservices ndc osloSam Newman
 
Principles of microservices velocity
Principles of microservices   velocityPrinciples of microservices   velocity
Principles of microservices velocitySam Newman
 
QCon Sao Paulo Keynote - Microservices, an Unexpected Journey
QCon Sao Paulo Keynote - Microservices, an Unexpected JourneyQCon Sao Paulo Keynote - Microservices, an Unexpected Journey
QCon Sao Paulo Keynote - Microservices, an Unexpected JourneySam Newman
 
Principles of microservices XP Days Ukraine
Principles of microservices   XP Days UkrainePrinciples of microservices   XP Days Ukraine
Principles of microservices XP Days UkraineSam Newman
 
Testing & deploying microservices - XP Days Ukraine 2014
Testing & deploying microservices  - XP Days Ukraine 2014Testing & deploying microservices  - XP Days Ukraine 2014
Testing & deploying microservices - XP Days Ukraine 2014Sam Newman
 
Principles of Microservices - NDC 2014
Principles of Microservices  - NDC 2014Principles of Microservices  - NDC 2014
Principles of Microservices - NDC 2014Sam Newman
 
Practical microservices - javazone 2014
Practical microservices -  javazone 2014Practical microservices -  javazone 2014
Practical microservices - javazone 2014Sam Newman
 
Testing & deploying Microservices GeeCon 2014
Testing & deploying Microservices   GeeCon 2014Testing & deploying Microservices   GeeCon 2014
Testing & deploying Microservices GeeCon 2014Sam Newman
 
Practical microservices - YOW 2013
Practical microservices  - YOW 2013Practical microservices  - YOW 2013
Practical microservices - YOW 2013Sam Newman
 

Mehr von Sam Newman (20)

Hiding The Lead: Coupling, cohesion and microservices
Hiding The Lead: Coupling, cohesion and microservicesHiding The Lead: Coupling, cohesion and microservices
Hiding The Lead: Coupling, cohesion and microservices
 
It's a trap!
It's a trap!It's a trap!
It's a trap!
 
Rip It Up - The Microservice Organisation
Rip It Up  - The Microservice OrganisationRip It Up  - The Microservice Organisation
Rip It Up - The Microservice Organisation
 
What Is This Cloud Native Thing Anyway?
What Is This Cloud Native Thing Anyway?What Is This Cloud Native Thing Anyway?
What Is This Cloud Native Thing Anyway?
 
Confusion In The Land Of The Serverless - 90min Version
Confusion In The Land Of The Serverless - 90min VersionConfusion In The Land Of The Serverless - 90min Version
Confusion In The Land Of The Serverless - 90min Version
 
AppSec and Microservices
AppSec and MicroservicesAppSec and Microservices
AppSec and Microservices
 
Confusion In The Land Of The Serverless
Confusion In The Land Of The ServerlessConfusion In The Land Of The Serverless
Confusion In The Land Of The Serverless
 
AppSec & Microservices - Velocity 2016
AppSec & Microservices - Velocity 2016AppSec & Microservices - Velocity 2016
AppSec & Microservices - Velocity 2016
 
AppSec And Microservices
AppSec And MicroservicesAppSec And Microservices
AppSec And Microservices
 
Deploying and Scaling Microservices
Deploying and Scaling MicroservicesDeploying and Scaling Microservices
Deploying and Scaling Microservices
 
BETA - Securing microservices
BETA - Securing microservicesBETA - Securing microservices
BETA - Securing microservices
 
Principles of microservices ndc oslo
Principles of microservices   ndc osloPrinciples of microservices   ndc oslo
Principles of microservices ndc oslo
 
Principles of microservices velocity
Principles of microservices   velocityPrinciples of microservices   velocity
Principles of microservices velocity
 
QCon Sao Paulo Keynote - Microservices, an Unexpected Journey
QCon Sao Paulo Keynote - Microservices, an Unexpected JourneyQCon Sao Paulo Keynote - Microservices, an Unexpected Journey
QCon Sao Paulo Keynote - Microservices, an Unexpected Journey
 
Principles of microservices XP Days Ukraine
Principles of microservices   XP Days UkrainePrinciples of microservices   XP Days Ukraine
Principles of microservices XP Days Ukraine
 
Testing & deploying microservices - XP Days Ukraine 2014
Testing & deploying microservices  - XP Days Ukraine 2014Testing & deploying microservices  - XP Days Ukraine 2014
Testing & deploying microservices - XP Days Ukraine 2014
 
Principles of Microservices - NDC 2014
Principles of Microservices  - NDC 2014Principles of Microservices  - NDC 2014
Principles of Microservices - NDC 2014
 
Practical microservices - javazone 2014
Practical microservices -  javazone 2014Practical microservices -  javazone 2014
Practical microservices - javazone 2014
 
Testing & deploying Microservices GeeCon 2014
Testing & deploying Microservices   GeeCon 2014Testing & deploying Microservices   GeeCon 2014
Testing & deploying Microservices GeeCon 2014
 
Practical microservices - YOW 2013
Practical microservices  - YOW 2013Practical microservices  - YOW 2013
Practical microservices - YOW 2013
 

Kürzlich hochgeladen

Steps To Getting Up And Running Quickly With MyTimeClock Employee Scheduling ...
Steps To Getting Up And Running Quickly With MyTimeClock Employee Scheduling ...Steps To Getting Up And Running Quickly With MyTimeClock Employee Scheduling ...
Steps To Getting Up And Running Quickly With MyTimeClock Employee Scheduling ...MyIntelliSource, Inc.
 
HR Software Buyers Guide in 2024 - HRSoftware.com
HR Software Buyers Guide in 2024 - HRSoftware.comHR Software Buyers Guide in 2024 - HRSoftware.com
HR Software Buyers Guide in 2024 - HRSoftware.comFatema Valibhai
 
CALL ON ➥8923113531 🔝Call Girls Kakori Lucknow best sexual service Online ☂️
CALL ON ➥8923113531 🔝Call Girls Kakori Lucknow best sexual service Online  ☂️CALL ON ➥8923113531 🔝Call Girls Kakori Lucknow best sexual service Online  ☂️
CALL ON ➥8923113531 🔝Call Girls Kakori Lucknow best sexual service Online ☂️anilsa9823
 
Unlocking the Future of AI Agents with Large Language Models
Unlocking the Future of AI Agents with Large Language ModelsUnlocking the Future of AI Agents with Large Language Models
Unlocking the Future of AI Agents with Large Language Modelsaagamshah0812
 
5 Signs You Need a Fashion PLM Software.pdf
5 Signs You Need a Fashion PLM Software.pdf5 Signs You Need a Fashion PLM Software.pdf
5 Signs You Need a Fashion PLM Software.pdfWave PLM
 
Building Real-Time Data Pipelines: Stream & Batch Processing workshop Slide
Building Real-Time Data Pipelines: Stream & Batch Processing workshop SlideBuilding Real-Time Data Pipelines: Stream & Batch Processing workshop Slide
Building Real-Time Data Pipelines: Stream & Batch Processing workshop SlideChristina Lin
 
why an Opensea Clone Script might be your perfect match.pdf
why an Opensea Clone Script might be your perfect match.pdfwhy an Opensea Clone Script might be your perfect match.pdf
why an Opensea Clone Script might be your perfect match.pdfjoe51371421
 
Tech Tuesday-Harness the Power of Effective Resource Planning with OnePlan’s ...
Tech Tuesday-Harness the Power of Effective Resource Planning with OnePlan’s ...Tech Tuesday-Harness the Power of Effective Resource Planning with OnePlan’s ...
Tech Tuesday-Harness the Power of Effective Resource Planning with OnePlan’s ...OnePlan Solutions
 
Active Directory Penetration Testing, cionsystems.com.pdf
Active Directory Penetration Testing, cionsystems.com.pdfActive Directory Penetration Testing, cionsystems.com.pdf
Active Directory Penetration Testing, cionsystems.com.pdfCionsystems
 
Test Automation Strategy for Frontend and Backend
Test Automation Strategy for Frontend and BackendTest Automation Strategy for Frontend and Backend
Test Automation Strategy for Frontend and BackendArshad QA
 
Optimizing AI for immediate response in Smart CCTV
Optimizing AI for immediate response in Smart CCTVOptimizing AI for immediate response in Smart CCTV
Optimizing AI for immediate response in Smart CCTVshikhaohhpro
 
Diamond Application Development Crafting Solutions with Precision
Diamond Application Development Crafting Solutions with PrecisionDiamond Application Development Crafting Solutions with Precision
Diamond Application Development Crafting Solutions with PrecisionSolGuruz
 
Right Money Management App For Your Financial Goals
Right Money Management App For Your Financial GoalsRight Money Management App For Your Financial Goals
Right Money Management App For Your Financial GoalsJhone kinadey
 
Unveiling the Tech Salsa of LAMs with Janus in Real-Time Applications
Unveiling the Tech Salsa of LAMs with Janus in Real-Time ApplicationsUnveiling the Tech Salsa of LAMs with Janus in Real-Time Applications
Unveiling the Tech Salsa of LAMs with Janus in Real-Time ApplicationsAlberto González Trastoy
 
How To Troubleshoot Collaboration Apps for the Modern Connected Worker
How To Troubleshoot Collaboration Apps for the Modern Connected WorkerHow To Troubleshoot Collaboration Apps for the Modern Connected Worker
How To Troubleshoot Collaboration Apps for the Modern Connected WorkerThousandEyes
 
How To Use Server-Side Rendering with Nuxt.js
How To Use Server-Side Rendering with Nuxt.jsHow To Use Server-Side Rendering with Nuxt.js
How To Use Server-Side Rendering with Nuxt.jsAndolasoft Inc
 
The Real-World Challenges of Medical Device Cybersecurity- Mitigating Vulnera...
The Real-World Challenges of Medical Device Cybersecurity- Mitigating Vulnera...The Real-World Challenges of Medical Device Cybersecurity- Mitigating Vulnera...
The Real-World Challenges of Medical Device Cybersecurity- Mitigating Vulnera...ICS
 
Short Story: Unveiling the Reasoning Abilities of Large Language Models by Ke...
Short Story: Unveiling the Reasoning Abilities of Large Language Models by Ke...Short Story: Unveiling the Reasoning Abilities of Large Language Models by Ke...
Short Story: Unveiling the Reasoning Abilities of Large Language Models by Ke...kellynguyen01
 
Project Based Learning (A.I).pptx detail explanation
Project Based Learning (A.I).pptx detail explanationProject Based Learning (A.I).pptx detail explanation
Project Based Learning (A.I).pptx detail explanationkaushalgiri8080
 

Kürzlich hochgeladen (20)

Steps To Getting Up And Running Quickly With MyTimeClock Employee Scheduling ...
Steps To Getting Up And Running Quickly With MyTimeClock Employee Scheduling ...Steps To Getting Up And Running Quickly With MyTimeClock Employee Scheduling ...
Steps To Getting Up And Running Quickly With MyTimeClock Employee Scheduling ...
 
HR Software Buyers Guide in 2024 - HRSoftware.com
HR Software Buyers Guide in 2024 - HRSoftware.comHR Software Buyers Guide in 2024 - HRSoftware.com
HR Software Buyers Guide in 2024 - HRSoftware.com
 
CALL ON ➥8923113531 🔝Call Girls Kakori Lucknow best sexual service Online ☂️
CALL ON ➥8923113531 🔝Call Girls Kakori Lucknow best sexual service Online  ☂️CALL ON ➥8923113531 🔝Call Girls Kakori Lucknow best sexual service Online  ☂️
CALL ON ➥8923113531 🔝Call Girls Kakori Lucknow best sexual service Online ☂️
 
Unlocking the Future of AI Agents with Large Language Models
Unlocking the Future of AI Agents with Large Language ModelsUnlocking the Future of AI Agents with Large Language Models
Unlocking the Future of AI Agents with Large Language Models
 
5 Signs You Need a Fashion PLM Software.pdf
5 Signs You Need a Fashion PLM Software.pdf5 Signs You Need a Fashion PLM Software.pdf
5 Signs You Need a Fashion PLM Software.pdf
 
Building Real-Time Data Pipelines: Stream & Batch Processing workshop Slide
Building Real-Time Data Pipelines: Stream & Batch Processing workshop SlideBuilding Real-Time Data Pipelines: Stream & Batch Processing workshop Slide
Building Real-Time Data Pipelines: Stream & Batch Processing workshop Slide
 
why an Opensea Clone Script might be your perfect match.pdf
why an Opensea Clone Script might be your perfect match.pdfwhy an Opensea Clone Script might be your perfect match.pdf
why an Opensea Clone Script might be your perfect match.pdf
 
Call Girls In Mukherjee Nagar 📱 9999965857 🤩 Delhi 🫦 HOT AND SEXY VVIP 🍎 SE...
Call Girls In Mukherjee Nagar 📱  9999965857  🤩 Delhi 🫦 HOT AND SEXY VVIP 🍎 SE...Call Girls In Mukherjee Nagar 📱  9999965857  🤩 Delhi 🫦 HOT AND SEXY VVIP 🍎 SE...
Call Girls In Mukherjee Nagar 📱 9999965857 🤩 Delhi 🫦 HOT AND SEXY VVIP 🍎 SE...
 
Tech Tuesday-Harness the Power of Effective Resource Planning with OnePlan’s ...
Tech Tuesday-Harness the Power of Effective Resource Planning with OnePlan’s ...Tech Tuesday-Harness the Power of Effective Resource Planning with OnePlan’s ...
Tech Tuesday-Harness the Power of Effective Resource Planning with OnePlan’s ...
 
Active Directory Penetration Testing, cionsystems.com.pdf
Active Directory Penetration Testing, cionsystems.com.pdfActive Directory Penetration Testing, cionsystems.com.pdf
Active Directory Penetration Testing, cionsystems.com.pdf
 
Test Automation Strategy for Frontend and Backend
Test Automation Strategy for Frontend and BackendTest Automation Strategy for Frontend and Backend
Test Automation Strategy for Frontend and Backend
 
Optimizing AI for immediate response in Smart CCTV
Optimizing AI for immediate response in Smart CCTVOptimizing AI for immediate response in Smart CCTV
Optimizing AI for immediate response in Smart CCTV
 
Diamond Application Development Crafting Solutions with Precision
Diamond Application Development Crafting Solutions with PrecisionDiamond Application Development Crafting Solutions with Precision
Diamond Application Development Crafting Solutions with Precision
 
Right Money Management App For Your Financial Goals
Right Money Management App For Your Financial GoalsRight Money Management App For Your Financial Goals
Right Money Management App For Your Financial Goals
 
Unveiling the Tech Salsa of LAMs with Janus in Real-Time Applications
Unveiling the Tech Salsa of LAMs with Janus in Real-Time ApplicationsUnveiling the Tech Salsa of LAMs with Janus in Real-Time Applications
Unveiling the Tech Salsa of LAMs with Janus in Real-Time Applications
 
How To Troubleshoot Collaboration Apps for the Modern Connected Worker
How To Troubleshoot Collaboration Apps for the Modern Connected WorkerHow To Troubleshoot Collaboration Apps for the Modern Connected Worker
How To Troubleshoot Collaboration Apps for the Modern Connected Worker
 
How To Use Server-Side Rendering with Nuxt.js
How To Use Server-Side Rendering with Nuxt.jsHow To Use Server-Side Rendering with Nuxt.js
How To Use Server-Side Rendering with Nuxt.js
 
The Real-World Challenges of Medical Device Cybersecurity- Mitigating Vulnera...
The Real-World Challenges of Medical Device Cybersecurity- Mitigating Vulnera...The Real-World Challenges of Medical Device Cybersecurity- Mitigating Vulnera...
The Real-World Challenges of Medical Device Cybersecurity- Mitigating Vulnera...
 
Short Story: Unveiling the Reasoning Abilities of Large Language Models by Ke...
Short Story: Unveiling the Reasoning Abilities of Large Language Models by Ke...Short Story: Unveiling the Reasoning Abilities of Large Language Models by Ke...
Short Story: Unveiling the Reasoning Abilities of Large Language Models by Ke...
 
Project Based Learning (A.I).pptx detail explanation
Project Based Learning (A.I).pptx detail explanationProject Based Learning (A.I).pptx detail explanation
Project Based Learning (A.I).pptx detail explanation
 

Feature Branches And Toggles In A Post-GitHub World