In this article, we will discuss several points that should be considered when planning to migrate the on-premises SQL workload to Microsoft Azure cloud services. This article is the first step in a series of articles that discuss how to perform the SQL and No-SQL workload migration smoothly to the cloud.
Data is one of the most precious “assets” in each company that drives business success. And as a proactive Data Engineer in an international company, you will always think how to secure your data at rest and in transit, and use the most optimal data platform technologies to serve the data to the application clients from any point in the earth as fast as possible with the minimum downtime or data loss possibilities.
With the growth of the company business, it is your responsibility to keep track of the data storage and retrieval speed in order not to lose your clients. Put yourself in the shoes of a client who is trying to submit an online order to buy from your online store, but the site is taking a long time to refresh the content and submit the order. For me, I will close the site and buy it from the nearest store!
If the Infrastructure administrator starts complaining about the limitation in the remaining resources in the current hosting machine, or the delay in receiving the new purchased resources, it is the suitable time to discuss with the management the choice to move your SQL workload to Microsoft Azure.
Before you think to send a meeting request to your management to discuss your idea about migrating the current SQL workload to Microsoft Azure, you need to take into consideration that it is not only one word that you need to mention to the management or a step by step tutorial that you can follow to perform the migration process. You should be prepared and ready for any question by preparing a comprehensive study that includes the current site problems and limitations, a plan for the design and implementation phases of the migration process, and the benefits that the company will gain from moving that workload to Azure from all performance, business growth handling and cost.
The initial study for the migration process should include, but may extend:
- The current SQL and No-SQL workload types in your company, such as OLTP and OLAP workloads
- The database administration and monitoring tools that you are using in the on-prems site
- The list of on-prems database engine types, versions, and locations
- The current database resources size and the expected resources growth ratio for each database
- The dependencies between the databases. This helps in selecting the list of candidate databases that will participate in the first migration wave and the database consolidation possibilities to reduce the cloud hosting cost
- The dependencies between the databases and the applications and how these applications interact with the databases. This will end up grouping the databases based on its dependencies. It is better to have a discussion with the development team to identify the criticality of each database for the business and see if it is possible to migrate the database applications to Microsoft Azure
- The different security and encryption requirements for each database
- The backup strategy and tools used for each database
- The list of all additional components that are involved in the data models, such as SSIS, SSAS, and SSRS that should be migrated
- The list of issues that you are facing in the current site, such as performance or availability
- The limitations in the current site, such as hardware upgrade limitation or unsupported features
- The Availability requirements for your databases
- The confirmed Restore Time Objective (RTO) and Restore Point Objective (RPO) for your databases and how they are met in the current site
After checking the current situation, you should have a look at the cloud solutions that can be used to replace the current on-premises site. This includes learning the features available in each service and the pros and cons of each service in order to identify which service meets your requirements. With the different available cloud providers, I will concentrate on the Microsoft Azure database services in my articles, such as SQL on Azure VM, Azure SQL Database, Azure SQL Managed Instance, and Azure SQL Data Warehouse, and how to use it as a replacement for the on-premises ones.
Once you review the Microsoft Azure database-related services, your need to take into consideration the following points in your migration plan that may extend:
- Choose the suitable target data platform in the cloud, Infrastructure as a Services (IaaS) or Platform as a Service (PaaS), based on your technical requirements, and cost plan. This choice specifies what Azure services can be used and the control level on these services
- The Microsoft Azure services that can be used as a replacement for every single feature, component, or functionality in the on-prems site to serve your workloads
- The proper size for the Microsoft Azure services to fit the current site growth ratio with the minimal possible cost. Scaling up/down plans or scaling out/in plans at that stage will be a great step ahead
- The suitable region(s) to host each database that provides the lowest latency, based on the applications and client’s locations
- The Availability solution that should be used in Microsoft Azure, based on the selected Azure service, to meet your database availability requirements
- The cloud services configurations and features that can be used to meet the confirmed Restore Time Objective (RTO) and Restore Point Objective (RPO)
- The ability to achieve the security and privacy compliance and regulatory requirements of your organization using the cloud services
- The changes that should be performed on the current workload to be compatible with the target data platform technologies in Microsoft Azure and what transformation tools can be used to achieve that
- The new features in the cloud that can be used to optimize the current workload
- The administration and monitoring tools that can be used to replace the on-prems tools
- The ability to perform the security and encryption requirements for each database
- The backup and recovery cloud solutions can be used to design and automate the database backup strategy
- Any potential blockers for the migration process
- The tools that will be used to migrate the current workload to the cloud with minimal possible downtime and data loss
- Validation test strategy by migrating sample workload and how to measure the gains and compare it with the on-premises site
- The breaking fixes that should be performed after the migration process
- The rollback plan in case of any single possible failure
Now you can send the invitation to your management and discuss with them if migrating the current on-premises workload to the cloud is feasible, or you need to move with upgrading the current on-premises data center to handle the workload growth, serving the clients with highest possible availability and minimal data loss, without losing the company clients or having them frustrated from the company services.
In this overview, I have tried to make the first step of migrating the on-premises SQL workloads to Microsoft Azure clear and simple as possible, so that you can be ready for the next technical migration steps. In the next article, we will discuss the list of Azure data services and the differences between these services so that it will be easy for you to choose the database service that meets your requirements. Stay tuned!