Microsoft has announced the general availability of Azure Database for MySQL and Azure Database for PostgreSQL. Both these open source database engines are now available in their community version as a managed service, with 99.99% SLA, elastic scaling for performance, and "industry-leading" security and compliance via Azure.
More and more open source applications are leveraging Azure, and Microsoft is embracing them with support on their Azure platform. Sunil Kamath, from the Azure database engineering team, said in a Microsoft Mechanics episode about the GA of Azure Database for MySQL and PostgreSQL:
Bringing the open source community database engines of PostgreSQL and MySQL to Azure allows us to now continue to support your application needs, but now as a secure and a fully managed service in the cloud.
With the support for MySQL and PostgreSQL, Microsoft expands their Azure platform for relational databases. Both the Azure Database for MySQL and the Azure Database for PostgreSQL use the same foundation as for the SQL Azure Database, which has been available for many years on the Azure platform.
Source (screenshot): https://youtu.be/ElKfEurMi9E
Previews of MySQL and PostgreSQL were launched in May 2017 on Azure. Since then, Microsoft has made progress with scalability, flexibility in backup storage options, security, and compliance with industry standards like ISO, SOC, and HIPAA. Furthermore, the service will be compliant with the upcoming General Data Protection Regulation (GDPR) in May of this year. It should be noted that even though the underlying cloud infrastructure is compliant with various regulations and legislation, it is still the responsibility of the engineers to ensure that the applications they build are compliant — this is commonly referred to as the shared responsibility model.
A typical Azure for MySQL or PostgreSQL database can be set up from the Azure Portal by searching for either one of them. A user specifies the details for the database, hits create, and once the database is initialised a user can then configure the IP addresses of the clients who need to communicate with the database. Furthermore, the database can easily be accessed by other Azure services without setting any IP addresses explicitly.
Besides having a single instance of either MySQL or PostgreSQL in Azure, users can set up a Web App including these databases. Moreover, the deployments of these databases or Web App plus databases can be automated with ARM templates. Both Azure Database for MySQL and PostgreSQL can be managed directly via Cloud Shell, the Azure CLI or the Azure Portal. With Cloud Shell, the MySQL and PostgreSQL client tools are already integrated to provide smooth interaction with the databases. Finally, the built-in backups in the service have retention of up to 35 days for point-in-time restore, and can also be geographically stored in other regions to recover from disasters.
Customers running either MySQL or PostgreSQL on-premise can migrate them to Azure Database for MySQL or PostgreSQL. They can use tools like mysqldump or pg_dumps to restore their instances into the Azure variant or use the Azure Database Migration Service (DMS), which performs migrations with minimum application downtime. This service allows the source database to remain fully operational during the migration. Note, however, this service is still in a preview for migrations from MySQL to Azure Database for MySQL and for PostgreSQL migrations the support will follow soon.
By supporting MySQL and PostgreSQL, Microsoft is now competing alongside other cloud providers offering fully managed, MySQL- and PostgreSQL-compatible relational database engines. For example, AWS offers Amazon RDS and Aurora, and GCP offer Google Cloud SQL.
Azure Database for MySQL and PostgreSQL are globally available in 22 regions, with more to come. Microsoft is pushing to have both available in 40+ Azure regions. For pricing details see the Azure Database for MySQL pricing or the Azure Database for PostgreSQL pricing. Furthermore, features of both services are available in the Azure Database for MySQL documentation and the Azure Database for PostgreSQL documentation.