SlideShare una empresa de Scribd logo
1 de 142
Descargar para leer sin conexión
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

Más contenido relacionado

La actualidad más candente

Scrum workshop
Scrum workshopScrum workshop
Scrum workshop
Delta-N
 
훌륭한 개발자로 성장하기
훌륭한 개발자로 성장하기훌륭한 개발자로 성장하기
훌륭한 개발자로 성장하기
Changyol BAEK
 

La actualidad más candente (20)

두 번째 startlink.live: 오현석 (algoshipda) - 초심자를 위한 알고리즘 공부 전략
두 번째 startlink.live: 오현석 (algoshipda) - 초심자를 위한 알고리즘 공부 전략두 번째 startlink.live: 오현석 (algoshipda) - 초심자를 위한 알고리즘 공부 전략
두 번째 startlink.live: 오현석 (algoshipda) - 초심자를 위한 알고리즘 공부 전략
 
청강대 특강 - 프로젝트 제대로 해보기
청강대 특강 - 프로젝트 제대로 해보기청강대 특강 - 프로젝트 제대로 해보기
청강대 특강 - 프로젝트 제대로 해보기
 
마비노기듀얼 이야기-넥슨 김동건
마비노기듀얼 이야기-넥슨 김동건마비노기듀얼 이야기-넥슨 김동건
마비노기듀얼 이야기-넥슨 김동건
 
개발자를 위한 (블로그) 글쓰기 intro
개발자를 위한 (블로그) 글쓰기 intro개발자를 위한 (블로그) 글쓰기 intro
개발자를 위한 (블로그) 글쓰기 intro
 
인프런 - 스타트업 인프랩 시작 사례
인프런 - 스타트업 인프랩 시작 사례인프런 - 스타트업 인프랩 시작 사례
인프런 - 스타트업 인프랩 시작 사례
 
안정적인 서비스 운영 2014.03
안정적인 서비스 운영   2014.03안정적인 서비스 운영   2014.03
안정적인 서비스 운영 2014.03
 
그로스해킹 기초
그로스해킹 기초그로스해킹 기초
그로스해킹 기초
 
서버 아키텍처 이해를 위한 프로세스와 쓰레드
서버 아키텍처 이해를 위한 프로세스와 쓰레드서버 아키텍처 이해를 위한 프로세스와 쓰레드
서버 아키텍처 이해를 위한 프로세스와 쓰레드
 
PRESENTATION_CHAABA_AYOUB_ING5_ISI.pptx
PRESENTATION_CHAABA_AYOUB_ING5_ISI.pptxPRESENTATION_CHAABA_AYOUB_ING5_ISI.pptx
PRESENTATION_CHAABA_AYOUB_ING5_ISI.pptx
 
Scrum workshop
Scrum workshopScrum workshop
Scrum workshop
 
Dependency Injection with the Force DI Framework
Dependency Injection with the Force DI FrameworkDependency Injection with the Force DI Framework
Dependency Injection with the Force DI Framework
 
Testing In Django
Testing In DjangoTesting In Django
Testing In Django
 
Postman과 Newman을 이용한 RestAPI 테스트 자동화 가이드
Postman과 Newman을 이용한 RestAPI 테스트 자동화 가이드 Postman과 Newman을 이용한 RestAPI 테스트 자동화 가이드
Postman과 Newman을 이용한 RestAPI 테스트 자동화 가이드
 
Testing In Java
Testing In JavaTesting In Java
Testing In Java
 
슬라이드쉐어
슬라이드쉐어슬라이드쉐어
슬라이드쉐어
 
간단한 블로그를 만들며 Django 이해하기
간단한 블로그를 만들며 Django 이해하기간단한 블로그를 만들며 Django 이해하기
간단한 블로그를 만들며 Django 이해하기
 
2018 종합선물세트 for 취준생
2018 종합선물세트 for 취준생2018 종합선물세트 for 취준생
2018 종합선물세트 for 취준생
 
LockFree Algorithm
LockFree AlgorithmLockFree Algorithm
LockFree Algorithm
 
훌륭한 개발자로 성장하기
훌륭한 개발자로 성장하기훌륭한 개발자로 성장하기
훌륭한 개발자로 성장하기
 
C#을 사용한 빠른 툴 개발
C#을 사용한 빠른 툴 개발C#을 사용한 빠른 툴 개발
C#을 사용한 빠른 툴 개발
 

Similar a 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 Budget
Will Kesling
 
Flowofproductqualityleanux15 150419180701-conversion-gate01
Flowofproductqualityleanux15 150419180701-conversion-gate01Flowofproductqualityleanux15 150419180701-conversion-gate01
Flowofproductqualityleanux15 150419180701-conversion-gate01
Dale Sternberg
 
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
 

Similar a 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?"
 

Más de Sam Newman

Principles of microservices velocity
Principles of microservices   velocityPrinciples of microservices   velocity
Principles of microservices velocity
Sam 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 2014
Sam Newman
 

Más de 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
 

Último

The title is not connected to what is inside
The title is not connected to what is insideThe title is not connected to what is inside
The title is not connected to what is inside
shinachiaurasa2
 
%+27788225528 love spells in Atlanta Psychic Readings, Attraction spells,Brin...
%+27788225528 love spells in Atlanta Psychic Readings, Attraction spells,Brin...%+27788225528 love spells in Atlanta Psychic Readings, Attraction spells,Brin...
%+27788225528 love spells in Atlanta Psychic Readings, Attraction spells,Brin...
masabamasaba
 
%+27788225528 love spells in Boston Psychic Readings, Attraction spells,Bring...
%+27788225528 love spells in Boston Psychic Readings, Attraction spells,Bring...%+27788225528 love spells in Boston Psychic Readings, Attraction spells,Bring...
%+27788225528 love spells in Boston Psychic Readings, Attraction spells,Bring...
masabamasaba
 
Large-scale Logging Made Easy: Meetup at Deutsche Bank 2024
Large-scale Logging Made Easy: Meetup at Deutsche Bank 2024Large-scale Logging Made Easy: Meetup at Deutsche Bank 2024
Large-scale Logging Made Easy: Meetup at Deutsche Bank 2024
VictoriaMetrics
 
Love witchcraft +27768521739 Binding love spell in Sandy Springs, GA |psychic...
Love witchcraft +27768521739 Binding love spell in Sandy Springs, GA |psychic...Love witchcraft +27768521739 Binding love spell in Sandy Springs, GA |psychic...
Love witchcraft +27768521739 Binding love spell in Sandy Springs, GA |psychic...
chiefasafspells
 

Último (20)

WSO2CON 2024 - Building the API First Enterprise – Running an API Program, fr...
WSO2CON 2024 - Building the API First Enterprise – Running an API Program, fr...WSO2CON 2024 - Building the API First Enterprise – Running an API Program, fr...
WSO2CON 2024 - Building the API First Enterprise – Running an API Program, fr...
 
OpenChain - The Ramifications of ISO/IEC 5230 and ISO/IEC 18974 for Legal Pro...
OpenChain - The Ramifications of ISO/IEC 5230 and ISO/IEC 18974 for Legal Pro...OpenChain - The Ramifications of ISO/IEC 5230 and ISO/IEC 18974 for Legal Pro...
OpenChain - The Ramifications of ISO/IEC 5230 and ISO/IEC 18974 for Legal Pro...
 
The title is not connected to what is inside
The title is not connected to what is insideThe title is not connected to what is inside
The title is not connected to what is inside
 
Crypto Cloud Review - How To Earn Up To $500 Per DAY Of Bitcoin 100% On AutoP...
Crypto Cloud Review - How To Earn Up To $500 Per DAY Of Bitcoin 100% On AutoP...Crypto Cloud Review - How To Earn Up To $500 Per DAY Of Bitcoin 100% On AutoP...
Crypto Cloud Review - How To Earn Up To $500 Per DAY Of Bitcoin 100% On AutoP...
 
WSO2CON 2024 - Cloud Native Middleware: Domain-Driven Design, Cell-Based Arch...
WSO2CON 2024 - Cloud Native Middleware: Domain-Driven Design, Cell-Based Arch...WSO2CON 2024 - Cloud Native Middleware: Domain-Driven Design, Cell-Based Arch...
WSO2CON 2024 - Cloud Native Middleware: Domain-Driven Design, Cell-Based Arch...
 
%+27788225528 love spells in Atlanta Psychic Readings, Attraction spells,Brin...
%+27788225528 love spells in Atlanta Psychic Readings, Attraction spells,Brin...%+27788225528 love spells in Atlanta Psychic Readings, Attraction spells,Brin...
%+27788225528 love spells in Atlanta Psychic Readings, Attraction spells,Brin...
 
AI & Machine Learning Presentation Template
AI & Machine Learning Presentation TemplateAI & Machine Learning Presentation Template
AI & Machine Learning Presentation Template
 
Announcing Codolex 2.0 from GDK Software
Announcing Codolex 2.0 from GDK SoftwareAnnouncing Codolex 2.0 from GDK Software
Announcing Codolex 2.0 from GDK Software
 
Architecture decision records - How not to get lost in the past
Architecture decision records - How not to get lost in the pastArchitecture decision records - How not to get lost in the past
Architecture decision records - How not to get lost in the past
 
WSO2CON2024 - It's time to go Platformless
WSO2CON2024 - It's time to go PlatformlessWSO2CON2024 - It's time to go Platformless
WSO2CON2024 - It's time to go Platformless
 
%in Midrand+277-882-255-28 abortion pills for sale in midrand
%in Midrand+277-882-255-28 abortion pills for sale in midrand%in Midrand+277-882-255-28 abortion pills for sale in midrand
%in Midrand+277-882-255-28 abortion pills for sale in midrand
 
%in ivory park+277-882-255-28 abortion pills for sale in ivory park
%in ivory park+277-882-255-28 abortion pills for sale in ivory park %in ivory park+277-882-255-28 abortion pills for sale in ivory park
%in ivory park+277-882-255-28 abortion pills for sale in ivory park
 
%+27788225528 love spells in Boston Psychic Readings, Attraction spells,Bring...
%+27788225528 love spells in Boston Psychic Readings, Attraction spells,Bring...%+27788225528 love spells in Boston Psychic Readings, Attraction spells,Bring...
%+27788225528 love spells in Boston Psychic Readings, Attraction spells,Bring...
 
Large-scale Logging Made Easy: Meetup at Deutsche Bank 2024
Large-scale Logging Made Easy: Meetup at Deutsche Bank 2024Large-scale Logging Made Easy: Meetup at Deutsche Bank 2024
Large-scale Logging Made Easy: Meetup at Deutsche Bank 2024
 
Devoxx UK 2024 - Going serverless with Quarkus, GraalVM native images and AWS...
Devoxx UK 2024 - Going serverless with Quarkus, GraalVM native images and AWS...Devoxx UK 2024 - Going serverless with Quarkus, GraalVM native images and AWS...
Devoxx UK 2024 - Going serverless with Quarkus, GraalVM native images and AWS...
 
WSO2CON 2024 - Does Open Source Still Matter?
WSO2CON 2024 - Does Open Source Still Matter?WSO2CON 2024 - Does Open Source Still Matter?
WSO2CON 2024 - Does Open Source Still Matter?
 
%in kempton park+277-882-255-28 abortion pills for sale in kempton park
%in kempton park+277-882-255-28 abortion pills for sale in kempton park %in kempton park+277-882-255-28 abortion pills for sale in kempton park
%in kempton park+277-882-255-28 abortion pills for sale in kempton park
 
%in kaalfontein+277-882-255-28 abortion pills for sale in kaalfontein
%in kaalfontein+277-882-255-28 abortion pills for sale in kaalfontein%in kaalfontein+277-882-255-28 abortion pills for sale in kaalfontein
%in kaalfontein+277-882-255-28 abortion pills for sale in kaalfontein
 
tonesoftg
tonesoftgtonesoftg
tonesoftg
 
Love witchcraft +27768521739 Binding love spell in Sandy Springs, GA |psychic...
Love witchcraft +27768521739 Binding love spell in Sandy Springs, GA |psychic...Love witchcraft +27768521739 Binding love spell in Sandy Springs, GA |psychic...
Love witchcraft +27768521739 Binding love spell in Sandy Springs, GA |psychic...
 

Feature Branches And Toggles In A Post-GitHub World