With the allure of cost savings, greater flexibility, and more agility, many organizations are eyeing the cloud as an alternative to deploying new applications, including those with high database performance requirements. Just a few years ago this may have struck fear in the heart of the average database administrator. But today it is a much more viable option. Consider that technology research firm TechNavio predicts a 62 percent annual aggregate growth rate for the global cloud-based database market through 2018.
However, this doesn’t mean there aren’t still new complexities and challenges associated with cloud-based databases that must be accounted for. Thus, when it comes time to actually migrate their applications and the databases that support them, many organizations are still somewhat unsure of where to start. Perhaps you fall into this category. To help, here are some key considerations you should remember when thinking about migrating databases to the cloud.
Let Go of Your Fear
I still hear too many people say the cloud is too slow for their database needs. A couple years back, shared storage systems in the cloud delivered very unpredictable performance, which sometimes slowed to a crawl.
However, the architecture of today’s cloud storage systems, often based on solid state drives (SSD), storage-optimized instances and guaranteed performance options, offer up to 48,000 Input/Output Operations Per Second (IOPS), more than enough performance to meeting the requirements of most organizations. In fact, in some cases it’s even easier to get higher performance from the cloud, as pre-configured options are sometimes faster than many on-premises systems.
Know What You Need
Perhaps the best way to arrive at the point that you can let go of these performance fears is to truly understand what your cloud database performance requirements are. That knowledge, combined with insight into how the available cloud options might be able not only to meet those needs but exceed them will go a long way. But how do you really know what you need? The best way to figure this out is to look at what the database resource requirements of your applications currently are, including the following:
- CPU, storage, memory, latency, and storage throughput (IOPS can be deceiving)
- Detailed performance information from wait-time analysis
- Planned storage growth and backup requirements
- Expected resource fluctuation based on peak application usage or batch processes
- Security requirements, including encryption, access, etc.
- Availability and resiliency requirements, such as backups, geographic dispersion, and mirroring
- Data connection dependencies, especially from systems not in the cloud
One of the advantages of the cloud is the ability to dynamically scale resources up and down. So, rather than being the source of performance uncertainty concerns, it actually can give you peace of mind that the right amount of resources can be allocated to your applications to ensure adequate performance. The risk here, however, is that without clear knowledge of where the bottlenecks are from proper wait-time analysis, it is easy to overprovision and spend too much money on cloud resources, sometimes even without the expected performance benefit.
Failing to Plan is Planning to Fail
The old proverb still rings true, especially when it comes to picking your cloud deployment model. For example, Database as a Service (DBaaS) provides simplicity in deployment, automation, and a managed service. Leveraging Infrastructure as a Service (IaaS) is an alternative for running database instances on cloud servers that provides more control and that looks and feels like a traditional on-premises deployment. There are also various storage options, including block storage, SSD drives, guaranteed IOPS, dedicated connections, and database-optimized instances. As the cloud is mostly a shared environment, it is also important to understand and test for performance consistency and variability, not just peak theoretical performance.
Try Before You Buy
With new options and capabilities available for you in minutes and at low cost, take advantage of the cloud and experiment! Just like you would take a car for a test drive before buying it, do the same with the cloud. In just an hour, you can set up a proof-of-concept database for very minimal cost. If you want, it only takes a little more time and money to create a sandboxed copy of an actual database from your organization to test out specific functions and deployment options to see how your specific database will operate in the cloud.
Don’t Be Afraid to Ask Questions
As much as you might like one, there is no plan that can account for every possible cloud migration use case or issue that might come up. Most cloud service providers offer migration and architecture guidance. Don’t be afraid to ask for help. It’s also a good idea to run a mirror of your on-premises system in the cloud for some time before fully transitioning.
These planning and migration best practices might not make you an expert (just yet), but taking them into account should help you get started. Not taking advantage of the cloud could be a missed opportunity. Experience in the cloud is good for every professional, and soon will be necessary for your career.
Gerardo Dada is Vice President of Product Marketing and Strategy for SolarWinds’ database, applications cloud businesses globally, including SolarWinds Database Performance Analyzer. 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.