Moving a database to the cloud is a complex undertaking. Many migrations encounter problems due to assumptions that were made, or questions that were never asked, about the database upfront.
The shared responsibility models adopted by AWS and Azure mean that cloud-based hosting and management of a database is quite unlike traditional methods. It requires specialist techniques, technologies and skills. Some organisations only discover this during or after migration, and it can result in compatibility or performance issues as well as unexpected costs.
Consider these five questions before migration to avoid anguish later:
1. What does your database look like?
Firstly, figure out the size and functionality of your existing database, and how it interacts with applications.
Key stats to pin down include the number of CPU cores on the existing server and its memory size. It’s also good to know the number of instances in scope and the estimated number of databases per instance.
From a usage perspective, find out the average number of connections to the database as well as the average and maximum transaction logs generated per hour. You also need to think about the business logic that’s currently used for creation, storage and management of data as this process could be impacted by the move to a cloud-based environment.
Don’t forget to factor in any compliance, regulatory or auditing requirements. Thinking about how these will be upheld during and after the move is essential.
2. What database skills do you have?
Talk to the people who are responsible for database management and find out what their daily tasks involve. Smaller organisations may not have a dedicated employee or team to perform this role, in which case it’s even more important to understand who is responsible for what. Otherwise, it’s all too easy for vital tasks to get missed when the migration occurs.
Even larger businesses with a formal database administration function may not have any team members that are experienced in migrations. If this is the case, identify any knowledge gaps and think about how to fill them.
To operate effectively in the cloud, database managers are likely to need a new set of skills. The core principles of database management remain the same, but the administration process is entirely different. Upskilling team members should be a priority and expert third party support can be hugely beneficial.
3. How do you maintain your database?
If your database is in good shape with indexes rebuilt regularly and statistics kept up to date, it bodes well for a smooth migration. However, organisations without dedicated database administration support are likely to have some maintenance issues to resolve beforehand.
Additional points to note include the retention period for transaction logs and back-ups as well as the schedule and storage of back-ups. Naturally, there should be a disaster recovery plan in place. But don’t make any assumptions about the quality of back-ups. It’s a really good idea to run disaster recovery testing and ensure any back-up files are not corrupt.
4. What visibility do you have of your database?
When a database experiences a performance issue, it’s important to act before it escalates into a major event. This is where monitoring and alerts come into play, and any existing solutions must be assessed to ensure they will offer adequate protection in the cloud.
First off, look at the benefits associated with the existing database monitoring solution and identify any additional functionality that you’d like to add. Consider what currently triggers alerts and any server specific alerts that have been set up.
Finally, think about how frequently issues arise and whether you’d describe the database as ‘problematic’. Moving to the cloud can make existing problems worse if they are left unchecked, but it also presents an opportunity to resolve them. Improving database visibility as part of the migration process helps get things off to a good start in the new environment.
5. How do you access the database?
Another crucial piece of insight to gain ahead of migration is the number of users who access the database, as well as their permissions and frequency of use. If users have direct access, what tooling do they use, and what method was configured during the installation? If a sysadmin system is used, you need to know who has access to this.
Cloud migration is a good time to tidy up database user management and establish new protocols, so think carefully about the precedent you want to set and start as you mean to go on.
The million-dollar question
Finally, you have to ask how much database downtime you can tolerate during the migration. In many cases, keeping this to a minimum requires rework of the database upfront, so it’s a case of balancing risks, timescales and budgets. This is an integral element of the ‘migrate and modernise’ philosophy which enables organisations to enjoy a more streamlined migration and unlock the benefits of the cloud sooner.
There are many ways to migrate a database, depending on the cloud provider and database management system. Asking the above questions helps determine which approach is best for your circumstances, whether that’s a database migration service from AWS or Azure, or something more bespoke.
Database migrations are regularly earmarked for a ‘lift and shift’ approach. While this is a quick and easy route to the cloud, it can lead to a whole host of problems down the line. If your database team hasn’t conducted a migration before, it’s best to get expert guidance. And DevOpsGroup is here to help.