Azure MySQL

The Client

The client has developed a web-based platform to support families in case of emergencies. The platform provides solutions to increase the safety of family members during an emergency. The platform allows family members and care givers to connect and ensure the safety of each other during an emergency.

The Business Need

The client has deployed its web-based application using an on-premise infrastructure with the help of a private service provider. This solution led to limited direct access to production environment. The application is developed using a 2-tier client server architecture model. The database is hosted using an on-premise SQL server. The database has a primary site as well as a back-up site. The back-up site is setup for failover purposes. In practice, the primary site’s server acts as a master and secondary site’s server acts as a read-only replica. This setup defeats the purpose of having a failover site to address any disaster recovery scenario.

The client wanted help with replacing the secondary SQL database with Microsoft’s cloud based database for MySQL. The objective was to allow the Azure MySQL database to act as a true back-up site for the primary on-premise SQL server database. This allows the client to run the web based application on the secondary cloud based SQL database in case of a disaster recovery scenario.

The Challenge

Optimus addressed the following challenges during the proof of concept phase:
(a) Setting up an on-premise MySQL database to replicate client’s on-premise primary database.
(b) Replication of data between UNIX based OS platform and Windows based Azure MySQL.
(c) Manage database downtime while setting up the replication.

The Optimus Solution

Optimus completed a proof of concept after defining the requirements and acceptance criteria.

Optimus started the requirements and planning phase by meeting with the client partners. Requirements elicitation process revealed that the client’s SQL server was setup on UNIX based machines. This required Optimus to build the same environment for the proof of concept phase. Replication strategy was chosen based on the binary log file position based strategy, which was native to MySQL.

Optimus started the proof of concept phase by setting up Azure subscription. The cloud based MySQL was setup with on-premise compatible version 5.6 and utilizing a general purpose pricing tier. Optimus setup the on-premise SQL server mimicking the client’s production database. The master configuration was completed on the on-premise server. This was followed by setting up the Azure MySQL for database replication. The proof of concept process checked whether the replication strategy worked with zero downtime while copying the data into Azure MySQL.

The Result

Azure MySQL is a relational database as a service platform, which handles mission critical workloads with predictable performance and dynamic scalability. The client was assured a 99.9% SLA (service level agreement) with financial penalties in case of SLA breaches. The solution also offered guaranteed high availability. In addition, the client gained cost savings by eliminating the need for maintaining read only replicas of data.

Optimus followed its project management process by sharing the requirements, sign-off criteria, estimate and schedule, before starting the work. Optimus team conducted bi-weekly status meetings. The team demonstrated the work to the client on regular intervals. Optimus team made sure that they documented their observations during the project and utilized slack channel for communication. The team used bit-bucket for code sharing. The project falls under Azure migration and integration category.