SlideShare a Scribd company logo
_HANOI
A PYTHON LIBRARY FOR FEATURE TOGGLING
@JUANDEBRAVO
#TEFCONF2016
WHAT IS THIS ABOUT?
“ENABLE FUNCTIONALITIES TO A
SUBSET OF USERS”
WHAT IS THIS ABOUT?
• A/B TESTING
• FEATURE TOGGLES
• CONTROLLED ROLLOUT
A/B TESTING
A/B TESTING
• DEFINE THE HYPOTHESIS
• WHICH USERS WILL BE PART OF THE EXPERIMENT?
• HOW WILL YOU MEASURE?
• FOR HOW LONG DO YOU NEED TO RUN THE
EXPERIMENT?
QUESTIONS BEFORE YOU START
FEATURE TOGGLES
FEATURE TOGGLES
• DO YOU NEED IT?
• DO YOU KNOW THAT A FEATURE TOGGLE COULD
BE CONSIDERED TECHNICAL DEBT?
(HTTPS://DZONE.COM/ARTICLES/FEATURE-
TOGGLES-ARE-ONE-WORST)
• IT INCREASES TESTING MATRIX
QUESTIONS BEFORE YOU START
CONTROLLED ROLLOUT
CONTROLLED ROLLOUT
• DEPLOY TWO VERSIONS IN PARALLEL
• HOW TO ROUTE TRAFFIC TO THE RELEVANT
BRANCH
• ENSURE EVERY USER IS HANDLED IN ONE
BRANCH ONLY
QUESTIONS BEFORE YOU START
HANOI
• “PYTHON LIBRARY TO TOGGLE ON/OFF FEATURES USING A BACKEND AS DATA STORE”
• WHY THIS FUNCTIONALITY? PORT OF ROLLOUT GEM (RUBY) BY JAMES GOLICK (R.I.P.)
• HTTPS://GITHUB.COM/JUANDEBRAVO/HANOI
• 5 STARS (THANKS EDU AND GUIDO!)
• 3 PYTHON INTERPRETERS (2.X, 3.X, PYPY)
• 4 RELEASES
• 2 WATCHERS
HANOI
HANOI
HANOI

More Related Content

Similar to Hanoi. A python library for Feature toggles

神戸ITフェスティバル|進化したウェブとの向き合い方〜ビジネス・社会・そして個人〜
神戸ITフェスティバル|進化したウェブとの向き合い方〜ビジネス・社会・そして個人〜神戸ITフェスティバル|進化したウェブとの向き合い方〜ビジネス・社会・そして個人〜
神戸ITフェスティバル|進化したウェブとの向き合い方〜ビジネス・社会・そして個人〜
Rikkyo University
 
Tips for Writing Better Charters for Exploratory Testing Sessions by Michael...
 Tips for Writing Better Charters for Exploratory Testing Sessions by Michael... Tips for Writing Better Charters for Exploratory Testing Sessions by Michael...
Tips for Writing Better Charters for Exploratory Testing Sessions by Michael...
TEST Huddle
 
Movable Type 5.1 : MTDDC July 31st
Movable Type 5.1 : MTDDC July 31stMovable Type 5.1 : MTDDC July 31st
Movable Type 5.1 : MTDDC July 31st
Six Apart KK
 
Release the Monkeys ! Testing in the Wild at Netflix
Release the Monkeys !  Testing in the Wild at NetflixRelease the Monkeys !  Testing in the Wild at Netflix
Release the Monkeys ! Testing in the Wild at Netflix
Gareth Bowles
 
Into the Land of lambda, One Programmer's Journey Into Functional Programming
Into the Land of lambda, One Programmer's Journey Into Functional ProgrammingInto the Land of lambda, One Programmer's Journey Into Functional Programming
Into the Land of lambda, One Programmer's Journey Into Functional Programming
Mike Pence
 
TS/NOFORN
TS/NOFORNTS/NOFORN
TS/NOFORN
pinkflawd
 
Writing Well Abstracted Automation on Foundations of Jello
Writing Well Abstracted Automation on Foundations of JelloWriting Well Abstracted Automation on Foundations of Jello
Writing Well Abstracted Automation on Foundations of Jello
Dan Cuellar
 
Data Driven DevOps
Data Driven DevOpsData Driven DevOps
Data Driven DevOps
Leon Stigter
 
DevOps @Scale (Greek Tragedy in 3 Acts) as it was presented at The Pittsburgh...
DevOps @Scale (Greek Tragedy in 3 Acts) as it was presented at The Pittsburgh...DevOps @Scale (Greek Tragedy in 3 Acts) as it was presented at The Pittsburgh...
DevOps @Scale (Greek Tragedy in 3 Acts) as it was presented at The Pittsburgh...
Baruch Sadogursky
 
XFLTReaT: A New Dimension In Tunnelling (DeepSec 2017)
XFLTReaT: A New Dimension In Tunnelling (DeepSec 2017)XFLTReaT: A New Dimension In Tunnelling (DeepSec 2017)
XFLTReaT: A New Dimension In Tunnelling (DeepSec 2017)
Balazs Bucsay
 
The XPages Mobile Controls: What's New In Notes 9.0.1
The XPages Mobile Controls: What's New In Notes 9.0.1The XPages Mobile Controls: What's New In Notes 9.0.1
The XPages Mobile Controls: What's New In Notes 9.0.1
Graham Acres
 
Information architecture 101
Information architecture 101Information architecture 101
Information architecture 101
Francis Zablocki
 
OSDC 2016 - Automating a R&D lab with Foreman: What can be hard? by Julien Pi...
OSDC 2016 - Automating a R&D lab with Foreman: What can be hard? by Julien Pi...OSDC 2016 - Automating a R&D lab with Foreman: What can be hard? by Julien Pi...
OSDC 2016 - Automating a R&D lab with Foreman: What can be hard? by Julien Pi...
NETWAYS
 
Apache deep learning 202 Washington DC - DWS 2019
Apache deep learning 202   Washington DC - DWS 2019Apache deep learning 202   Washington DC - DWS 2019
Apache deep learning 202 Washington DC - DWS 2019
Timothy Spann
 

Similar to Hanoi. A python library for Feature toggles (15)

神戸ITフェスティバル|進化したウェブとの向き合い方〜ビジネス・社会・そして個人〜
神戸ITフェスティバル|進化したウェブとの向き合い方〜ビジネス・社会・そして個人〜神戸ITフェスティバル|進化したウェブとの向き合い方〜ビジネス・社会・そして個人〜
神戸ITフェスティバル|進化したウェブとの向き合い方〜ビジネス・社会・そして個人〜
 
Tips for Writing Better Charters for Exploratory Testing Sessions by Michael...
 Tips for Writing Better Charters for Exploratory Testing Sessions by Michael... Tips for Writing Better Charters for Exploratory Testing Sessions by Michael...
Tips for Writing Better Charters for Exploratory Testing Sessions by Michael...
 
Movable Type 5.1 : MTDDC July 31st
Movable Type 5.1 : MTDDC July 31stMovable Type 5.1 : MTDDC July 31st
Movable Type 5.1 : MTDDC July 31st
 
Release the Monkeys ! Testing in the Wild at Netflix
Release the Monkeys !  Testing in the Wild at NetflixRelease the Monkeys !  Testing in the Wild at Netflix
Release the Monkeys ! Testing in the Wild at Netflix
 
Into the Land of lambda, One Programmer's Journey Into Functional Programming
Into the Land of lambda, One Programmer's Journey Into Functional ProgrammingInto the Land of lambda, One Programmer's Journey Into Functional Programming
Into the Land of lambda, One Programmer's Journey Into Functional Programming
 
TS/NOFORN
TS/NOFORNTS/NOFORN
TS/NOFORN
 
Writing Well Abstracted Automation on Foundations of Jello
Writing Well Abstracted Automation on Foundations of JelloWriting Well Abstracted Automation on Foundations of Jello
Writing Well Abstracted Automation on Foundations of Jello
 
Data Driven DevOps
Data Driven DevOpsData Driven DevOps
Data Driven DevOps
 
DevOps @Scale (Greek Tragedy in 3 Acts) as it was presented at The Pittsburgh...
DevOps @Scale (Greek Tragedy in 3 Acts) as it was presented at The Pittsburgh...DevOps @Scale (Greek Tragedy in 3 Acts) as it was presented at The Pittsburgh...
DevOps @Scale (Greek Tragedy in 3 Acts) as it was presented at The Pittsburgh...
 
XFLTReaT: A New Dimension In Tunnelling (DeepSec 2017)
XFLTReaT: A New Dimension In Tunnelling (DeepSec 2017)XFLTReaT: A New Dimension In Tunnelling (DeepSec 2017)
XFLTReaT: A New Dimension In Tunnelling (DeepSec 2017)
 
The XPages Mobile Controls: What's New In Notes 9.0.1
The XPages Mobile Controls: What's New In Notes 9.0.1The XPages Mobile Controls: What's New In Notes 9.0.1
The XPages Mobile Controls: What's New In Notes 9.0.1
 
Information architecture 101
Information architecture 101Information architecture 101
Information architecture 101
 
Protractor survival guide
Protractor survival guideProtractor survival guide
Protractor survival guide
 
OSDC 2016 - Automating a R&D lab with Foreman: What can be hard? by Julien Pi...
OSDC 2016 - Automating a R&D lab with Foreman: What can be hard? by Julien Pi...OSDC 2016 - Automating a R&D lab with Foreman: What can be hard? by Julien Pi...
OSDC 2016 - Automating a R&D lab with Foreman: What can be hard? by Julien Pi...
 
Apache deep learning 202 Washington DC - DWS 2019
Apache deep learning 202   Washington DC - DWS 2019Apache deep learning 202   Washington DC - DWS 2019
Apache deep learning 202 Washington DC - DWS 2019
 

Recently uploaded

AI Pilot Review: The World’s First Virtual Assistant Marketing Suite
AI Pilot Review: The World’s First Virtual Assistant Marketing SuiteAI Pilot Review: The World’s First Virtual Assistant Marketing Suite
AI Pilot Review: The World’s First Virtual Assistant Marketing Suite
Google
 
Empowering Growth with Best Software Development Company in Noida - Deuglo
Empowering Growth with Best Software  Development Company in Noida - DeugloEmpowering Growth with Best Software  Development Company in Noida - Deuglo
Empowering Growth with Best Software Development Company in Noida - Deuglo
Deuglo Infosystem Pvt Ltd
 
Automated software refactoring with OpenRewrite and Generative AI.pptx.pdf
Automated software refactoring with OpenRewrite and Generative AI.pptx.pdfAutomated software refactoring with OpenRewrite and Generative AI.pptx.pdf
Automated software refactoring with OpenRewrite and Generative AI.pptx.pdf
timtebeek1
 
Orion Context Broker introduction 20240604
Orion Context Broker introduction 20240604Orion Context Broker introduction 20240604
Orion Context Broker introduction 20240604
Fermin Galan
 
A Sighting of filterA in Typelevel Rite of Passage
A Sighting of filterA in Typelevel Rite of PassageA Sighting of filterA in Typelevel Rite of Passage
A Sighting of filterA in Typelevel Rite of Passage
Philip Schwarz
 
Navigating the Metaverse: A Journey into Virtual Evolution"
Navigating the Metaverse: A Journey into Virtual Evolution"Navigating the Metaverse: A Journey into Virtual Evolution"
Navigating the Metaverse: A Journey into Virtual Evolution"
Donna Lenk
 
GOING AOT WITH GRAALVM FOR SPRING BOOT (SPRING IO)
GOING AOT WITH GRAALVM FOR  SPRING BOOT (SPRING IO)GOING AOT WITH GRAALVM FOR  SPRING BOOT (SPRING IO)
GOING AOT WITH GRAALVM FOR SPRING BOOT (SPRING IO)
Alina Yurenko
 
Cracking the code review at SpringIO 2024
Cracking the code review at SpringIO 2024Cracking the code review at SpringIO 2024
Cracking the code review at SpringIO 2024
Paco van Beckhoven
 
E-commerce Application Development Company.pdf
E-commerce Application Development Company.pdfE-commerce Application Development Company.pdf
E-commerce Application Development Company.pdf
Hornet Dynamics
 
Atelier - Innover avec l’IA Générative et les graphes de connaissances
Atelier - Innover avec l’IA Générative et les graphes de connaissancesAtelier - Innover avec l’IA Générative et les graphes de connaissances
Atelier - Innover avec l’IA Générative et les graphes de connaissances
Neo4j
 
AI Genie Review: World’s First Open AI WordPress Website Creator
AI Genie Review: World’s First Open AI WordPress Website CreatorAI Genie Review: World’s First Open AI WordPress Website Creator
AI Genie Review: World’s First Open AI WordPress Website Creator
Google
 
APIs for Browser Automation (MoT Meetup 2024)
APIs for Browser Automation (MoT Meetup 2024)APIs for Browser Automation (MoT Meetup 2024)
APIs for Browser Automation (MoT Meetup 2024)
Boni García
 
2024 eCommerceDays Toulouse - Sylius 2.0.pdf
2024 eCommerceDays Toulouse - Sylius 2.0.pdf2024 eCommerceDays Toulouse - Sylius 2.0.pdf
2024 eCommerceDays Toulouse - Sylius 2.0.pdf
Łukasz Chruściel
 
Transform Your Communication with Cloud-Based IVR Solutions
Transform Your Communication with Cloud-Based IVR SolutionsTransform Your Communication with Cloud-Based IVR Solutions
Transform Your Communication with Cloud-Based IVR Solutions
TheSMSPoint
 
GraphSummit Paris - The art of the possible with Graph Technology
GraphSummit Paris - The art of the possible with Graph TechnologyGraphSummit Paris - The art of the possible with Graph Technology
GraphSummit Paris - The art of the possible with Graph Technology
Neo4j
 
Essentials of Automations: The Art of Triggers and Actions in FME
Essentials of Automations: The Art of Triggers and Actions in FMEEssentials of Automations: The Art of Triggers and Actions in FME
Essentials of Automations: The Art of Triggers and Actions in FME
Safe Software
 
Launch Your Streaming Platforms in Minutes
Launch Your Streaming Platforms in MinutesLaunch Your Streaming Platforms in Minutes
Launch Your Streaming Platforms in Minutes
Roshan Dwivedi
 
Custom Healthcare Software for Managing Chronic Conditions and Remote Patient...
Custom Healthcare Software for Managing Chronic Conditions and Remote Patient...Custom Healthcare Software for Managing Chronic Conditions and Remote Patient...
Custom Healthcare Software for Managing Chronic Conditions and Remote Patient...
Mind IT Systems
 
Quarkus Hidden and Forbidden Extensions
Quarkus Hidden and Forbidden ExtensionsQuarkus Hidden and Forbidden Extensions
Quarkus Hidden and Forbidden Extensions
Max Andersen
 
May Marketo Masterclass, London MUG May 22 2024.pdf
May Marketo Masterclass, London MUG May 22 2024.pdfMay Marketo Masterclass, London MUG May 22 2024.pdf
May Marketo Masterclass, London MUG May 22 2024.pdf
Adele Miller
 

Recently uploaded (20)

AI Pilot Review: The World’s First Virtual Assistant Marketing Suite
AI Pilot Review: The World’s First Virtual Assistant Marketing SuiteAI Pilot Review: The World’s First Virtual Assistant Marketing Suite
AI Pilot Review: The World’s First Virtual Assistant Marketing Suite
 
Empowering Growth with Best Software Development Company in Noida - Deuglo
Empowering Growth with Best Software  Development Company in Noida - DeugloEmpowering Growth with Best Software  Development Company in Noida - Deuglo
Empowering Growth with Best Software Development Company in Noida - Deuglo
 
Automated software refactoring with OpenRewrite and Generative AI.pptx.pdf
Automated software refactoring with OpenRewrite and Generative AI.pptx.pdfAutomated software refactoring with OpenRewrite and Generative AI.pptx.pdf
Automated software refactoring with OpenRewrite and Generative AI.pptx.pdf
 
Orion Context Broker introduction 20240604
Orion Context Broker introduction 20240604Orion Context Broker introduction 20240604
Orion Context Broker introduction 20240604
 
A Sighting of filterA in Typelevel Rite of Passage
A Sighting of filterA in Typelevel Rite of PassageA Sighting of filterA in Typelevel Rite of Passage
A Sighting of filterA in Typelevel Rite of Passage
 
Navigating the Metaverse: A Journey into Virtual Evolution"
Navigating the Metaverse: A Journey into Virtual Evolution"Navigating the Metaverse: A Journey into Virtual Evolution"
Navigating the Metaverse: A Journey into Virtual Evolution"
 
GOING AOT WITH GRAALVM FOR SPRING BOOT (SPRING IO)
GOING AOT WITH GRAALVM FOR  SPRING BOOT (SPRING IO)GOING AOT WITH GRAALVM FOR  SPRING BOOT (SPRING IO)
GOING AOT WITH GRAALVM FOR SPRING BOOT (SPRING IO)
 
Cracking the code review at SpringIO 2024
Cracking the code review at SpringIO 2024Cracking the code review at SpringIO 2024
Cracking the code review at SpringIO 2024
 
E-commerce Application Development Company.pdf
E-commerce Application Development Company.pdfE-commerce Application Development Company.pdf
E-commerce Application Development Company.pdf
 
Atelier - Innover avec l’IA Générative et les graphes de connaissances
Atelier - Innover avec l’IA Générative et les graphes de connaissancesAtelier - Innover avec l’IA Générative et les graphes de connaissances
Atelier - Innover avec l’IA Générative et les graphes de connaissances
 
AI Genie Review: World’s First Open AI WordPress Website Creator
AI Genie Review: World’s First Open AI WordPress Website CreatorAI Genie Review: World’s First Open AI WordPress Website Creator
AI Genie Review: World’s First Open AI WordPress Website Creator
 
APIs for Browser Automation (MoT Meetup 2024)
APIs for Browser Automation (MoT Meetup 2024)APIs for Browser Automation (MoT Meetup 2024)
APIs for Browser Automation (MoT Meetup 2024)
 
2024 eCommerceDays Toulouse - Sylius 2.0.pdf
2024 eCommerceDays Toulouse - Sylius 2.0.pdf2024 eCommerceDays Toulouse - Sylius 2.0.pdf
2024 eCommerceDays Toulouse - Sylius 2.0.pdf
 
Transform Your Communication with Cloud-Based IVR Solutions
Transform Your Communication with Cloud-Based IVR SolutionsTransform Your Communication with Cloud-Based IVR Solutions
Transform Your Communication with Cloud-Based IVR Solutions
 
GraphSummit Paris - The art of the possible with Graph Technology
GraphSummit Paris - The art of the possible with Graph TechnologyGraphSummit Paris - The art of the possible with Graph Technology
GraphSummit Paris - The art of the possible with Graph Technology
 
Essentials of Automations: The Art of Triggers and Actions in FME
Essentials of Automations: The Art of Triggers and Actions in FMEEssentials of Automations: The Art of Triggers and Actions in FME
Essentials of Automations: The Art of Triggers and Actions in FME
 
Launch Your Streaming Platforms in Minutes
Launch Your Streaming Platforms in MinutesLaunch Your Streaming Platforms in Minutes
Launch Your Streaming Platforms in Minutes
 
Custom Healthcare Software for Managing Chronic Conditions and Remote Patient...
Custom Healthcare Software for Managing Chronic Conditions and Remote Patient...Custom Healthcare Software for Managing Chronic Conditions and Remote Patient...
Custom Healthcare Software for Managing Chronic Conditions and Remote Patient...
 
Quarkus Hidden and Forbidden Extensions
Quarkus Hidden and Forbidden ExtensionsQuarkus Hidden and Forbidden Extensions
Quarkus Hidden and Forbidden Extensions
 
May Marketo Masterclass, London MUG May 22 2024.pdf
May Marketo Masterclass, London MUG May 22 2024.pdfMay Marketo Masterclass, London MUG May 22 2024.pdf
May Marketo Masterclass, London MUG May 22 2024.pdf
 

Hanoi. A python library for Feature toggles

  • 1. _HANOI A PYTHON LIBRARY FOR FEATURE TOGGLING @JUANDEBRAVO #TEFCONF2016
  • 2. WHAT IS THIS ABOUT? “ENABLE FUNCTIONALITIES TO A SUBSET OF USERS”
  • 3. WHAT IS THIS ABOUT? • A/B TESTING • FEATURE TOGGLES • CONTROLLED ROLLOUT
  • 5. A/B TESTING • DEFINE THE HYPOTHESIS • WHICH USERS WILL BE PART OF THE EXPERIMENT? • HOW WILL YOU MEASURE? • FOR HOW LONG DO YOU NEED TO RUN THE EXPERIMENT? QUESTIONS BEFORE YOU START
  • 7. FEATURE TOGGLES • DO YOU NEED IT? • DO YOU KNOW THAT A FEATURE TOGGLE COULD BE CONSIDERED TECHNICAL DEBT? (HTTPS://DZONE.COM/ARTICLES/FEATURE- TOGGLES-ARE-ONE-WORST) • IT INCREASES TESTING MATRIX QUESTIONS BEFORE YOU START
  • 9. CONTROLLED ROLLOUT • DEPLOY TWO VERSIONS IN PARALLEL • HOW TO ROUTE TRAFFIC TO THE RELEVANT BRANCH • ENSURE EVERY USER IS HANDLED IN ONE BRANCH ONLY QUESTIONS BEFORE YOU START
  • 10. HANOI • “PYTHON LIBRARY TO TOGGLE ON/OFF FEATURES USING A BACKEND AS DATA STORE” • WHY THIS FUNCTIONALITY? PORT OF ROLLOUT GEM (RUBY) BY JAMES GOLICK (R.I.P.) • HTTPS://GITHUB.COM/JUANDEBRAVO/HANOI • 5 STARS (THANKS EDU AND GUIDO!) • 3 PYTHON INTERPRETERS (2.X, 3.X, PYPY) • 4 RELEASES • 2 WATCHERS
  • 11. HANOI
  • 12. HANOI
  • 13. HANOI

Editor's Notes

  1. Capability for business to test two different behaviors of your product. e.g. Audio codec: OPUS, AMR, G.711 Timers in incoming calls
  2. Hyphotesis
  3. Capability for DevOps to decouple the development and deployment pipeline e.g. Prevent dependencies Avoid deploying a new version only when business decide to expose the new functionality Ease rollback: behave as the previous version
  4. Hyphotesis