Diese Präsentation wurde erfolgreich gemeldet.
Wir verwenden Ihre LinkedIn Profilangaben und Informationen zu Ihren Aktivitäten, um Anzeigen zu personalisieren und Ihnen relevantere Inhalte anzuzeigen. Sie können Ihre Anzeigeneinstellungen jederzeit ändern.

TDC2018SP | Trilha UX - Feature flags e Releases controlados

78 Aufrufe

Veröffentlicht am

TDC2018SP | Trilha UX - Feature flags e Releases controlados

Veröffentlicht in: Bildung
  • Als Erste(r) kommentieren

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?

×