This article is contributed. See the original author and article here.

With over two years since general availability of Azure Database for MySQL , we’ve listened and learned a lot from you who use our MySQL managed database service on Azure. As a developer, you appreciate the ease of provisioning, built-in high availability, and manageability of fully managed service. But for some of you, moving to a managed service can be seen as loss of database level control and flexibility when it comes to configuring your MySQL servers—which has prevented you from taking advantage of the benefits of a managed service but hopefully, not anymore.

We in Azure OSS Database engineering team feel extremely excited about our big announcement at Microsoft Ignite where we introduced the preview release of our new Flexible server deployment option for Azure Database for MySQL. We started on this journey more than a year back to re-imagine and design a service architecture that strikes a better balance between the control and flexibility for a managed service.


 


Azure-MySQL-database-icon-with-magnifying-glass.png


 


Now in preview: Introducing Azure Database for MySQL – Flexible Server


 


We designed the new Flexible server deployment option for MySQL with these goals in mind:


 



  • Simplify developer experiences – Make it easier for you to quickly onboard, connect, and get started.

  • Maximize Database Controls – Provide maximum control on your server configurations to provide experiences at par with running your own MySQL deployments.

  • More Cost Optimization Controls – Provide more options for you to optimize and save costs.

  • Enable Zone Resilient & Aware Applications – Allow you to build highly available, zone resilient and performant applications, with your MySQL database co-located in the same zone, so you can tolerate zone level failures.


Let us now dive into what you can expect from the new Flexible server deployment option on Azure Database for MySQL—as well as a bit about what your experience will be like.


 


Create a Flexible server with single Azure CLI command


As a developer, you are probably familiar with  Azure CLI commands in Azure Cloud Shell. Now, you can create a new Flexible server deployment option for MySQL using a single Azure CLI command, as shown below:


 


 


 

az mysql flexible-server create -l location

 


 


 


Create a secure flexible server in virtual network using a single Azure CLI commandCreate a secure flexible server in virtual network using a single Azure CLI command


 


The output of the command, shows the connection string which you can use in mysql cli client and get started. 


 


As of today, Flexible Servers offering for Azure Database for MySQL is live in following Azure regions:


 



  • East US 2

  • West US 2

  • North Europe

  • Southeast Asia


We plan to release flexible server deployment in 8 new regions in upcoming weeks. You can check our documentation for most up to date information. 


 


Use familiar tools to connect to your server & it just works!


With Flexible Server deployment option for MySQL, you can use familiar tools like MySQL Workbench and drivers to connect and it just works !!!. 


 


Mysqlworkbench3.gif


 


If you would like to get a guided quick start, I recommend you start here. Here is the detailed list of commands you can expect.


 


Screenshot showing output of -- help parameter command in Azure Cloud shell to enumerate list of all the commands supported by az mysql flexible-server cliScreenshot showing output of — help parameter command in Azure Cloud shell to enumerate list of all the commands supported by az mysql flexible-server cli


 


You can expect the same level of simplicity and easy of use while provisioning the server using Azure Portal, ARM or Terraform.


 


More Server Parameter Control with Flexible Server


With Flexible Server, we have exposed 30% more parameters compared to Single server which you can now modify and customize based on the needs and dependencies of your application.


 


Screenshot showing Server parameter blade in Azure portal for Azure Database for MySQL – Flexible ServerScreenshot showing Server parameter blade in Azure portal for Azure Database for MySQL – Flexible Server


 


Network Isolation Control


With Flexible Server on Azure Database for MySQL, you can run and select your server to be in either be in public access mode or secure it in private access mode.


 


With Private access, you can deploy your Flexible server into your Azure Virtual Network. Azure virtual networks provide private and secure network communication. Resources in a virtual network can communicate through private IP addresses only. Flexible server in private access mode has no public endpoints and cannot be reached from outside the virtual network. In addition, you can create a flexible server in virtual network using a single command show below. The subne t should not have any other resource deployed in it and this subnet will be delegated to Microsoft.DBforMySQL/flexibleServers, if not already delegated. See Networking concepts for more details. 


 


az mysql flexible-server create –subnet /subscriptions/{SubID}/resourceGroups/{ResourceGroup}/providers/Microsoft.Network/virtualNetworks/{VNetName}/subnets/{SubnetName}


 


By default, SSL is enabled with TLS 1.2 encryption enforced. At this point, you have no control over SSL/TLS configuration, and you cannot change this by yourself in portal. We had a lot of debate over this within the product team and in the end, we chose that as your trusted cloud provider, we would like to enforce right behavior when it comes to security. However, we welcome your feedback on this and if you have concerns or requirements for you to support SSL disabled or TLS < 1.2, I would encourage you to open or vote on this feedback item for Azure Database for MySQL, on the Azure Feedback forum.  


 


Screenshot showing Networking blade in Azure portal for Azure Database for MySQL – Flexible ServerScreenshot showing Networking blade in Azure portal for Azure Database for MySQL – Flexible Server


 


Control your Planned Maintenance schedule


The service performs automated patching of the underlying hardware, OS, and database engine. The patching includes security and software updates. For MySQL engine, minor version upgrades are also included as part of the planned maintenance release. When managing and running mission critical business application, it is critical for you to be able to control the maintenance schedule as it directly impacts the availability of the database server and application for your business. You may also want to test the impact of the patch on your application behavior and performance. This is where you may want to apply and release the patch on pre-production and test environments first as soon as service releases it to test it and plan to roll out in production at a later schedule. With the new Flexible Server option for Azure Database for MySQL, you can now schedule your maintenance at a time which works best for you. From the Maintenance blade in Azure portal, you can specify the day of the week and 1 hour time window in a month, which works best for you to perform server patching which may involve restarts. For more details, refer Scheduled Maintenance concepts.


 


Screenshot showing Maintenance blade in Azure portal for Azure Database for MySQL – Flexible Server to schedule planned maintenanceScreenshot showing Maintenance blade in Azure portal for Azure Database for MySQL – Flexible Server to schedule planned maintenance


 


Start with burstable SKUs starting at $13 per month


This has been one of the long standing asks from many of you looking to use MySQL server for personal projects or development purposes. With Flexible Server on Azure Database for MySQL, you can now start with a burstable SKU if your workload doesn’t need 100% of CPU time all the time. Burstable SKUs are generally preferred for dev/test scenarios. The lowest available burstable compute tier B1S starts at $13 per month. See Compute and Storage sizes in documentation for more details.


 


Burstable SKU choices available in Flexible Server on Azure Database for MySQL serverBurstable SKU choices available in Flexible Server on Azure Database for MySQL server


 


Stop your server when not in use to save cost!


This is again one of the highly requesting asks from many of you who are looking to save compute cost when not in use by simply stopping the server. See Server concepts for more details.  


 


Stop your Flexible Server from the Overview blade in Azure portalStop your Flexible Server from the Overview blade in Azure portal


 


Build Zone resilient applications with Flexible Server


With Azure Kubernetes Services (AKS) or Virtual Machine Scale sets, you can build and deploy zone resilient application that can tolerate zonal failures. With Flexible server on Azure Database for MySQL, you can now enable zone redundancy for your MySQL database server as well.


When you enable zone redundant high availability for your MySQL server with Flexible server, the service provisions a hot standby server on the secondary availability zone with synchronous replication of data. In case of zonal failures, the MySQL database server will automatically failover to bring the standby server on secondary availability zone online to ensure your applications and database is highly available and fault tolerant to Availability zone level failures. See high availability concepts for more details. 


 


Zone Redundant HA using synchronous replication for data durability and high availabilityZone Redundant HA using synchronous replication for data durability and high availability


 


Getting Started


You can quickly get started by creating your first server using the quickstarts in our documentation on docs.microsoft.com:


 



To learn more, you can read our Flexible server documentation for MySQL.


 


For any questions or suggestions you might have about working with Azure Database for MySQL, you can send an email to the (Ask Azure DB for MySQL. To provide feedback or request new features, we would appreciate it if you could make an entry via UserVoice which can help us to prioritize.


 


Flexible server is available in preview on Azure Database for MySQL, with no SLAs and hence is not meant for production deployments yet. Single Server deployment option continues to be our enterprise-ready platform, supporting mission critical application and services as I shared in my last service update.


 


To help you compare Single server and Flexible server for Azure Database for MySQL so you can figure out which deployment option is right for you, we’ve created a handy feature comparison matrix for you in our documentation.


 

Brought to you by Dr. Ware, Microsoft Office 365 Silver Partner, Charleston SC.