When re-designing the Web application architecture for one of our customers, we had to pay extra attention to availability. Since the project—an interactive community for childcare providers—was already a popular site, the uptime was crucial for the customer. The Web application had to be up and running throughout the whole development and integration process. Even more, the outdated code structure made adding new modules, integration, and testing quite a challenge.
Step-by-step code updates
To minimize the downtime when applying the changes, we decided to perform the integration and code updates in stages. Replacing the whole working modules step by step could help avoid affecting the performance of the entire application.
First, each unit of the existing code was carefully tested to find out how it behaves. This gave us the necessary information on what actions and results we should re-produce.
Second, all the updates and the new code were also completely covered with tests. When a new piece of the code was created, we wrote new tests for it. As soon as all the tests had been passed, the new code was uploaded to staging, where real users and QA engineers tested it in the environment close to the production server. The new module was moved to production after we made sure everything was OK. These step-by-step code updates guaranteed that each new unit functioned properly and would not damage the system.