PHP Tour Clermont-Ferrand 2016 - Be gentle with your production @odolbeau & @genes0r Benjamin de Bernardi & Olivier Dolbeau Benjamin de Bernardi & Olivier Dolbeau
PHP Tour Clermont-Ferrand 2016 - Be gentle with your production @odolbeau & @genes0r 15M 20M 10M 5M 1M 2015 2014 2013 2012 2011 2010 2009 25M members worldwide Over 25 million members and growing 1.5 million+ joining each month
PHP Tour Clermont-Ferrand 2016 - Be gentle with your production @odolbeau & @genes0r Deploying big features is too risky. It can’t be done for everyone at the same time anymore.
PHP Tour Clermont-Ferrand 2016 - Be gentle with your production @odolbeau & @genes0r An angry ops is too dangerous! We need to find a solution to maintain the website up even when the traffic is high.
PHP Tour Clermont-Ferrand 2016 - Be gentle with your production @odolbeau & @genes0r Feature Y is only for 10% of the Italian users... Feature Y is only for 10% of the Italian users... Feature X is for France and maybe Belgium Feature X is for France and maybe Belgium ✓ ? 10% 10%
PHP Tour Clermont-Ferrand 2016 - Be gentle with your production @odolbeau & @genes0r Feature flags Feature flags Feature flags Feature flags Feature flags
PHP Tour Clermont-Ferrand 2016 - Be gentle with your production @odolbeau & @genes0r A 'Feature Flag' (or Feature Toggle) is the ability to turn features (sub- sections) of your application on/off at a moments notice. Wikipedia
PHP Tour Clermont-Ferrand 2016 - Be gentle with your production @odolbeau & @genes0r What do we need? ● a storage to store all feature flags and their rules ● a admin interface to create / update / delete features flags ● a PHP library to use in our application
PHP Tour Clermont-Ferrand 2016 - Be gentle with your production @odolbeau & @genes0r Existing solutions ● etsy / features ● joshuaestes / feature-toggle ● opensoft / rollout ● qandidate / toggle deprecated no storage logic
PHP Tour Clermont-Ferrand 2016 - Be gentle with your production @odolbeau & @genes0r Existing solutions ● etsy / features ● joshuaestes / feature-toggle ● opensoft / rollout ● qandidate / toggle deprecated no storage logic Good choice!
PHP Tour Clermont-Ferrand 2016 - Be gentle with your production @odolbeau & @genes0r Existing solutions ● etsy / features ● joshuaestes / feature-toggle ● opensoft / rollout ● qandidate / toggle deprecated no storage logic Good choice! Even better!
PHP Tour Clermont-Ferrand 2016 - Be gentle with your production @odolbeau & @genes0r http://labs.qandidate. com/blog/2014/08/18/a-new-feature- toggling-library-for-php/
PHP Tour Clermont-Ferrand 2016 - Be gentle with your production @odolbeau & @genes0r http://labs.qandidate.com/blog/2014/08/19/ open-sourcing-our-feature-toggle-api-and-ui/ API UI
PHP Tour Clermont-Ferrand 2016 - Be gentle with your production @odolbeau & @genes0r What will we explain? Storages Operators & Context Strategies Devices Administration
PHP Tour Clermont-Ferrand 2016 - Be gentle with your production @odolbeau & @genes0r ● Primary data store ● 1 key containing all toggles ● 1 key / toggle containing its configuration (encoded JSON)
PHP Tour Clermont-Ferrand 2016 - Be gentle with your production @odolbeau & @genes0r ● Cache layer (60 seconds) ● Encapsulation FTW ● Encoded JSON APCu
PHP Tour Clermont-Ferrand 2016 - Be gentle with your production @odolbeau & @genes0r Flaggr Open Source Android : blablacar/flaggr-android iOS : blablacar/flaggr-ios (soon)
PHP Tour Clermont-Ferrand 2016 - Be gentle with your production @odolbeau & @genes0r Rules : 1. Displayed in France only a. Will be activated for other countries later (BE, PL, NL) 2. Two kinds of results a. Beginners only b. Cheapest rides 3. Only for logged users 4. Activate for 50% of the users to control the impact