How to plan a software rollout of your user base
How do you seamlessly roll out your platform for a 25+ Million user base (hopefully) without causing service disruption?
There is no easy and canned solution for this. Based on the type of application and the criticality you have to do what works best for you.
Once your platform is ready to be rolled out, based on our experience I would suggest you follow the guidelines given below-
- Design multiple Beta’s to scale up to final numbers, features, and geographies.
- Even after making the platform, robust, secure, and scalable – Identify the things that could go wrong. Like- servers, DB, overload, network congestion, never-seen-before load profiles, network attacks, etc. Start to build contingencies (in the platform and the clients), fallbacks for such situations, robust update mechanism, monitors, switches to fallback to existing solution.
- In a very controlled environment, perform drills for certain situations, by simulating certain situations.
- Now with all the contingencies, monitors, tools, etc ready – Start rolling out the designed Beta,s carefully and monitor them diligently. It will take some time to stabilize, tweak, scale, secure, and occasionally fix the components and environments when subjected to the live data loads. This is normal.
This entire exercise will give you confidence and help you roll out to the entire user base. It will also give you the following invaluable information and experience in the earlier stages of the rollouts.
- Different load profiles, vis-à-vis the time, geographies
- Live Benchmarking & Capacity planning of individual components and the system
- Identifying average-peak loads, avg-peak performance
- Tweak & strengthen the environment, system, and application
- Arrive at acceptable thresholds
What would you like to add more to the benefits of a seamless rollout?