Azure provides multiple SKUs for virtual machines. There are high-compute, high-throughput (IOPS) machines that are also available along with general-usage virtual machines. Instead of hosting a SQL Server, MySQL or any other database on on-premises servers, it is possible to deploy these databases on these virtual machines. The deployment and configuration of these databases is no different than that done for on-premises deployments. The only difference is that the database is hosted on the cloud instead of on on-premises servers. Administrators must perform the same activities and steps that they normally would for on-premises deployment. Although this option is great when customers want full control over their deployment, there are models that can be more cost effective, scalable, and highly available compared to this option.
The steps to deploy any database on Azure virtual machines are as follows:
- Create a virtual machine with a size that caters to the performance requirements of the application
- Deploy database on top of it
- Configure the virtual machine and database configuration
This option does not provide any out-of-the-box high availability unless multiple servers are provisioned, and SQL Server is configured with an AlwaysOn configuration. It also does not provide any features for automatic scaling unless custom automation supports it.
Disaster recovery is also the responsibility of the customer, and they should deploy servers on multiple regions connected using global peering or network VPN gateways. It is possible for these virtual machines to be connected to an on-premises data center through site-to-site VPNs or ExpressRoute without having any exposure to the outside world.
These databases are also known as unmanaged databases.