Upgrade to Pro — share decks privately, control downloads, hide ads and more …

App: Release Gently, Feature Gates & A/B

App: Release Gently, Feature Gates & A/B

The presentation basically covers the use cases of how to follow a safer path when rolling out new features to the users. How Firebase as a tool, helped Hotstar to provide the safer approach and release the app gently to millions.

Ashwini Kumar

June 30, 2018
Tweet

More Decks by Ashwini Kumar

Other Decks in Programming

Transcript

  1. App: Release Gently - Feature Gates & A/B
    Ashwini Kumar
    Hotstar
    @ashwinikumar089

    View Slide

  2. Background
    ▸ Rewrite the complete app from scratch. Why?
    ▸ Old codebase maintenance
    ▸ Handle the huge scale of 100+ million users.
    ▸ New features on old screens. e.g. Game on Old Watch Page
    ▸ Time crunch - IPL was coming!!
    ▸ Big Bang vs Progressive. Refer our blog: Rearchitecting apps for Scale
    ▸ Tech stack

    View Slide

  3. ▸ Feature Gate: Ability to turn ON/OFF a feature without requiring an app update
    ▸ Modular approach. But how to test both screens? Say New vs Old Search
    ▸ A/B Testing
    ▸ Users Targeting - Rolling out exclusive features only to certain audiences
    ▸ Support two Backends at the same time and switch depending upon the
    performance.
    ▸ Service which would scale for millions having all the necessary infra already
    available. 10+ million peak concurrency.
    ▸ Refer our blog here: App : Release Gently — Feature Gates & A:B
    Goals

    View Slide

  4. If the Path Be Beautiful, Let Us Now Ask
    Where It Leads
    Anatole France

    View Slide

  5. Firebase

    View Slide

  6. HUNT FOR A SAFER PATH
    ▸ Changes behaviour of app at runtime
    ▸ Handles the caching by its own. Stores the config in FirebaseRemoteConfig
    object when activateFetched is called.
    ▸ Release Gently and Feature Gating
    ▸ Quirks: Cache Expiration Time!!
    Firebase Remote Config

    View Slide

  7. Live Scenarios

    View Slide

  8. STAGED ROLLOUT
    New Watch Page
    ▸ Tons of features: ADs, Game, KeyMoments, Live etc.
    ▸ Old Watch vs New Watch Page
    ▸ Firebase Remote Config: Fail-safe approach
    ▸ Feature-Gate using Users in Random Percentile
    ▸ More than just a knob. Audiences, Events and A/B
    ▸ A/B Experiments based on Remote Config
    ▸ Optimisation Metric
    ▸ Roll out the leader

    View Slide

  9. KHEL DEKH. GAME DIKHA.
    Emoji
    ▸ Gamification on live streaming
    ▸ Supporting Android Jellybean & above
    ▸ Issue with Emoji on the day of IPL launch
    ▸ Firebase Audience to the rescue
    ▸ Users in Random Percentile

    View Slide

  10. ITS ALL ABOUT THE PEOPLE
    Firebase Audience
    ▸ Audiences help in creating a segment of users
    ▸ Segment can be created based on Event or User Properties
    ▸ We created the segment of users where Emoji was not working as expected
    ▸ We rolled out the Emoji to all except the affected ones thus preventing
    unwanted behaviour on Watch Page

    View Slide

  11. Firebase Audience Creation

    View Slide

  12. EVENTS & USER PROPERTIES
    Firebase Analytics
    ▸ Firebase Events help in getting the insights of user actions
    ▸ User Properties are attributes which typically describe the segments of the user
    base.
    ▸ Firebase logs some properties and events automatically like App Version,
    Country, Device Brand, Model etc.
    ▸ Log your own custom property as we did at Hotstar like build_flavor
    ▸ Log Custom Event to measure your optimisation metric for A/B

    View Slide

  13. Firebase Remote Config - Creating Condition

    View Slide

  14. BONUSES
    Other Perks
    ▸ Firebase Performance SDK
    ▸ Provides the insights of how your app is performing.
    ▸ Logs all the HTTP/S network requests automatically along with app start up time(traces)
    ▸ Breaks down the perf data based on Device Model, Carrier, OS Level, Country and App
    Version
    ▸ Provides the functionality to customise the traces for perf capturing like checking app
    load time when new screen is created
    ▸ DebugView to view the logged events

    View Slide

  15. THANK YOU
    @ashwinikumar089 @kumarashwini
    We are Hiring.

    Find more about openings, tech stack and key people here:

    https://tech.hotstar.com/

    @ashwini009

    View Slide