March 03, 2018
In 2016 Web3Box started developing an EHR solution for E7Charts (formerly Vaccine Center).
The software's success inevitably led to huge traffic for which the Azure Linux VM the app was deployed on was not enough. Tons of files were uploaded daily, thousands of reports were generated each hour and on the top of these, the user base increased very fast. That was the point where our superheroes team started doing its job.
The key features of the new server infrastructure were:
We chose to use Azure App Service and deploy a custom Docker container based on the Centos 7 Linux distribution with special, optimized settings for Laravel. This architecture is easy to manage and efficient once set-up and it provides the scalability our client needed in the first place. With an automated system of horizontal scaling, based on custom rules and up to ten servers ready to feed the hunger for raw power of our client's application, the system is now ready for a massive increase in users, requests and more power intensive App modules.
For the huge databases our client's application uses, we needed a high availability MySQL setup that could ensure the apps run fast and stable. We chose the Azure Database for MySQL, so we can provision in minutes, and flexibly scale compute or storage independently within seconds. Azure Database for MySQL makes our life easier when it comes to backups which happen seamlessly on the Azure network. E7Charts now runs on a world-class infrastructure with unparalleled security and reach.
As the number of app files increases constantly we needed a storage system to handle the changes and to ensure data consistency. The Azure Blob Storage was the answer to that: rarely accessed data in the cool and archive storage tier and frequently accessed data in the hot storage tier. E7Charts storage now uses proven technology at exabyte scale and integrates perfectly with the app through "League\Flysystem" by the php league.
Load tests revealed a huge increase in scalability and speed - the system is now able to serve hundreds of thousands of requests per minute while keeping costs at a minimum.
Moving E7Charts to a secure, fast, scalable and more reliable cloud setup was hard work for our team, hundreds of hours spent on deployment, optimizing and testing each module of the App, more than 10k lines of code and tens of Docker container revisions, led to what we believe is a big step forward for our client.
Together we are prepared for the future!