O slideshow foi denunciado.
Utilizamos seu perfil e dados de atividades no LinkedIn para personalizar e exibir anúncios mais relevantes. Altere suas preferências de anúncios quando desejar.
pen4education
FEATURE FLAGS AND
CONTROLLED RELEASES
Eduardo Colabardini
Chapter Leader @ Moip
eduardocolabardini@gmail.com...
pen4education
Agenda
• What are feature-flags?
• Common practices
• Types
• Longevity versus dynamism
• Release flags
• Re...
pen4education
What are feature-flags?
• Flags = Toggles = Bits = Flippers = Switches
• Variables used in conditional state...
pen4education
Common practices
• Compiled / hardcoded
users = ['user1', 'user2']
• Command-line arguments
$ java MyApp use...
pen4education
Source: https://www.theverge.com/2016/1/4/10708590/facebook-google-android-app-crash-tests
pen4education
• Release
• Decouple deployment from releasing
• Canary releases - can be unstable, bleeding edge
• Alternat...
pen4education
Source: https://martinfowler.com/articles/feature-toggles.html
pen4education
Release flags
• Trunk-based development
• Continuous integration, delivery and
deployment
• Small commits / ...
pen4education
Real cases from Moip
• Contestation central
• Third party transfers
• Two factor authentication
• Checkout
•...
pen4education
Not a silver bullet
• Feature flag hell
• More test scenarios
• Keep track of feature-flags' states
• Harder...
pen4education
"Your first choice should be to break the feature
down so you can safely introduce parts of the
feature into...
pen4education
The Superhero
https://github.com/moip
pen4education
RCurtain
pen4education
RCurtain
pen4education
JCurtain
pen4education
JCurtain
pen4education
The Superhero
pen4education
https://github.com/moip
Eduardo Colabardini
Chapter Leader @ Moip
eduardocolabardini@gmail.com
@ecolabardini...
Próximos SlideShares
Carregando em…5
×

TDC2018SP | Trilha UX - Feature flags e Releases controlados

74 visualizações

Publicada em

TDC2018SP | Trilha UX - Feature flags e Releases controlados

Publicada em: Educação
  • Seja o primeiro a comentar

TDC2018SP | Trilha UX - Feature flags e Releases controlados

  1. 1. pen4education FEATURE FLAGS AND CONTROLLED RELEASES Eduardo Colabardini Chapter Leader @ Moip eduardocolabardini@gmail.com @ecolabardini Lucas Queiroz Software Engineer @ Moip lucascqueiroz97@gmail.com @lucascqueiroz97
  2. 2. pen4education Agenda • What are feature-flags? • Common practices • Types • Longevity versus dynamism • Release flags • Real cases from Moip • Not a silver bullet • The superhero: IFMAN DEMO!
  3. 3. pen4education What are feature-flags? • Flags = Toggles = Bits = Flippers = Switches • Variables used in conditional statements / strategy pattern • A way to modify system behavior • Enable/disable features
  4. 4. pen4education Common practices • Compiled / hardcoded users = ['user1', 'user2'] • Command-line arguments $ java MyApp user1,user2 • Property files users = user1,user2 • Relational databases > update user set role='admin' where id=1; • Key-value stores > sadd users user1
  5. 5. pen4education Source: https://www.theverge.com/2016/1/4/10708590/facebook-google-android-app-crash-tests
  6. 6. pen4education • Release • Decouple deployment from releasing • Canary releases - can be unstable, bleeding edge • Alternative to feature branches • Ops • Operational aspects of a system • Circuit-breaker • Experiment • A/B testing • Permission • Users permission, freemium model Types
  7. 7. pen4education Source: https://martinfowler.com/articles/feature-toggles.html
  8. 8. pen4education Release flags • Trunk-based development • Continuous integration, delivery and deployment • Small commits / testing culture • Reduce deployment risks • Reduce costs of long lived branches • Escape from merge hell
  9. 9. pen4education Real cases from Moip • Contestation central • Third party transfers • Two factor authentication • Checkout • OAuth 2.0 • Registered "boleto"
  10. 10. pen4education Not a silver bullet • Feature flag hell • More test scenarios • Keep track of feature-flags' states • Harder to support, debug and replicate problems • Technical debt - "Toggle removal task" onto the team's backlog • Expiration dates (TTL) / fail a test • Limit on the number of dynamic feature flags in a system
  11. 11. pen4education "Your first choice should be to break the feature down so you can safely introduce parts of the feature into the product. The advantages of doing this are the same ones as any strategy based on small, frequent releases." - Martin Fowler
  12. 12. pen4education The Superhero https://github.com/moip
  13. 13. pen4education RCurtain
  14. 14. pen4education RCurtain
  15. 15. pen4education JCurtain
  16. 16. pen4education JCurtain
  17. 17. pen4education The Superhero
  18. 18. pen4education https://github.com/moip Eduardo Colabardini Chapter Leader @ Moip eduardocolabardini@gmail.com @ecolabardini Lucas Queiroz Software Engineer @ Moip lucascqueiroz97@gmail.com @lucascqueiroz97 Eduardo Colabardini Chapter Leader @ Moip eduardocolabardini@gmail.com @ecolabardini Lucas Queiroz Software Engineer @ Moip lucascqueiroz97@gmail.com @lucascqueiroz97 Dúvidas?

×