Challenges in upgrading hosted technology platform
One of the key challenges in web facing software development is rolling out upgrades for better and enhanced version of applications to customers and be fortified 24/7 to restore the system immediately in case of any crisis to minimize business impact.
I worked with many enterprise clients last year. With every major release such as product upgrades, the key challenge was always a smooth release that required minimum maintenance. It is comparatively easier when your clients operate from a specific country or zone and has a website with manageable traffic, compared to large enterprise clients with offices around the globe and millions of visitors to the website. This type of big release required significant effort, time and cost. The travel business being mostly seasonal, we preferred utilizing the ‘off time’ of our respective clients for any major system upgrades.
Blue green deployment, was always the best solution to manage this situation, but honestly speaking we never used it effectively in the past. The reason being, setting up two parallel physical environments, bore a heavy cost in terms of money and time for the client.
A year back, when I started working for Tavisca’s hosted platform (TravelNxt) offered as a SaaS model, change management became even more critical due to two major situations we were dealing with:
- While operating in a SaaS model, we have clients from all around the globe. Every time zone is peak time for one or more of our clients. There is no ‘Off time’ as such that can be utilized for system upgrades.
- Multiple clients mean multiple markets and number of upgrades, required for better and enhanced experience, is more.
Strategic decision of migrating technology platform to cloud hosting
Given the challenges in having zero downtime releases with physical deployment environment, we decided to migrate our hosted offering to cloud as a first step. With recent migration of our platform to Amazon web services we now have everything to implement blue green deployment technology effectively in terms of cost and time.
Fundamental idea is to build two easily switchable environments, online and offline and to switch from one to another seamlessly. We use single deployment for transactional data between blue (online) and green (offline) deployments. To use same databases for both the servers, we follow database development with backward compatibility. For transactional data on file system, we use simple storage service (S3) of AWS.
How AWS helps us to implement this strategy effectively in terms of cost and money?
- You don’t have to manage and bear the cost for two deployments. Initialize the new deployment, release it, test it and bring it online. Keep the offline deployment as a backup for specific period and delete it post that.
- Switching load balancer to swap offline and online deployments is the critical task. AWS offers it as a service, so switching is automated using scripts.
- Using Simple storage service (S3) for storage, allows us to write and retrieve same transactional data stored on file system from both API clusters.
As I mentioned earlier, the technique has been there for years, but having effective infrastructure to implement it is a critical part of the story which AWS has solved.
N.B: This post has been written by Sanjay Ghare. Sanjay serves as a team lead for the SaaS team at Tavisca.He has managed and migrated many online travel businesses successfully through the years to a cloud platform. You can directly reach Sanjay at – firstname.lastname@example.org