In a previous column, I discussed a few key considerations you should remember when thinking about migrating databases to the cloud. Now, it’s time to talk about managing them once they are in the cloud.
What’s that you say? “But I thought not having to manage my database is the whole reason for moving it to the cloud!”
True, in addition to a number of other benefits previously discussed, hosting your databases in the cloud does mean much of the demand and pressure associated with the day-to-day database infrastructure management upon you is relieved. However, that doesn’t mean you are completely off the hook.
With that in mind, here are a few things to consider:
- You are ultimately responsible for performance. While giving the cloud provider control of your database infrastructure may take some of the burden off of you for administrative and configuration tasks, you are still responsible for overall database performance. You need to pay attention to resource contention, bottlenecks, query tuning, indexes, execution plans, etc. You may need new performance analysis tools, as many do not work properly on the cloud, but some work great.
- You are ultimately responsible for security. There are both real and perceived security risks associated with databases in the cloud, and you can’t expect the cloud service provider to take care of security for you. You need to think of security as a shared model in which you are responsible for access and governance, encryption, security monitoring, backups, and disaster recovery. The cloud can be You just need to have a plan.
So, what exactly is your role in managing your cloud-based database? Here are some ideas:
- Understand and manage data transfers and latency. You will need to determine where your data actually is – region and data center – as well as plans for using multiple availability zones, active and passive disaster recovery, or high-availability sites. It will be important to take into account data transfer and latency for backups and to have all your databases in sync, especially if your application needs to integrate with another one that is not in the same cloud deployment. Some cloud providers allow you to ship them hard drives, some have dedicated high-speed connections, and some will provide architectural guidance to help you through the decision process.
- Know your service provider’s cloud and stay on top of changes. It’s imperative that you take the extra time to understand your service provider as cloud service providers tend to be evolving quickly. You should stay on top of new services and capabilities, understand your provider’s SLAs, review its recommended architecture, and be very aware of scheduled maintenance that may impact you. The cloud is a partnership, and you and the service provider need to be in sync.
- Be aware of the cost structure. It’s easy to get started in the cloud, but that simplicity can quickly lead to an expensive habit. You should seek to understand all the elements that make up the cost of running your database in the cloud – such as instance class, running time, primary and backup storage, I/O requests per month, and data transfer – and their growth expectations over time. Doing so can help you avoid overprovisioning and utilize cloud resources more efficiently.
- Avoid putting all your eggs in one basket. Think through, plan, and manage the requirements you need for backup and recovery to ensure you don’t lose important data in the event of a vendor failure or outage. Do this by keeping a copy of your data with a different vendor that is in a different location, so it’s safe and can easily be recovered in case of a catastrophe.
- Stay on top of security. What are your organization’s security requirements and what regulations do you need to follow for compliance? Encryption is only the tip of the iceberg. There are considerations like which keys will you use, who has access to them, what algorithm will be used to do the encryption, how will data be protected at rest, in transit, and backups. Also, who will monitor database access for malicious or unauthorized access? Remember, most security threats come from inside. Last, plan for the worst and have a documented course of action ready in case of a security breach or data loss.
- Monitor and optimize your cloud environment. If it is important to monitor and optimize on-premises deployments, it’s even more important in the cloud, given its dynamic nature. Database performance optimization tools can do complex wait-time analysis and resource correlation to speed database operations significantly and lower costs. These tools also can issue alerts based on baseline performance to identify issues before they become big problems. Database administrators, developers, and operations teams can benefit from a shared view of the performance of production systems that allows them to see the impact of their code and pinpoint the root cause of whatever could be slowing down the database, whether it’s queries, storage systems, blockers, etc.
Running your database in the cloud can lead to greater flexibility and agility, and it also can mean less of your time being spent in the administration of the database. However, don’t fall into the trap of thinking that it means you can check out of your database management responsibilities. Really, you should look at it as an opportunity to spend more time managing the next level – honing and optimizing database and application performance.
Gerardo Dada is Vice President of Product Marketing and Strategy for SolarWinds’ database, applications and cloud businesses globally, including SolarWinds Database Performance Analyzer and SolarWinds Cloud. Gerardo is a technologist who has been at the center of the Web, mobile, social, and cloud revolutions at companies like Rackspace, Microsoft, Motorola, Vignette, and Bazaarvoice. He has been involved with database technologies from dBase and BTrieve to SQL Server, NoSQL, and DBaaS in the cloud.
Subscribe to Data Informed for the latest information and news on big data and analytics for the enterprise.