Five years ago, I spoke often about the drawbacks and challenges of cloud databases. Back then, the price-to-performance ratio was poor relative to the physical hardware in most companies’ server closets, and the weaknesses of the cloud made application architectures inefficient. Yet, because of the potential for efficiency, cost-effectiveness, and manageability — and because applications were already moving to the cloud — I also said databases eventually must move to the cloud.
Fast-forward to the present, and I’ve founded a company that’s running entirely in the cloud, including its databases. We’re able to run data-intensive applications (a large time-series back end with unique scaling requirements) at low cost and with high efficiency in Amazon’s EC2 servers.
So what has changed?
The benefits of using a cloud-computing database as a service now outweigh the drawbacks for many usage scenarios. Not only is the price-to-performance ratio of cloud software much better than a decade ago, but there’s also an incredible array of additional services and solutions now available via the cloud.
Why Move Your Database to the Cloud?
Here are a few advantages that have emerged recently for cloud databases:
1. Scalability
Compared to a few years ago, cloud-hosted databases can be scaled quickly, cheaply, and efficiently. Scaling along any dimension generally requires adding or subtracting nodes from a cluster to change the storage capacity, I/O operations per second (IOPS), or total compute available to bring to bear upon queries. That operation, of course, requires redistributing copies of the data and sending it between nodes.
Although this was once one of the hardest problems in building scalable, distributed databases, the new breed of cloud-native databases can take care of these issues efficiently.
2. Reduced Administrative Burden
A database with fewer features is less flexible — but it’s far more manageable. A cloud-hosted, mostly self-managed database doesn’t eliminate a database administrator, but it can eliminate unnecessary features that typically consume much of a DBA’s time and efforts. That allows a DBA to focus his or her time on more important issues. It can even allow a company to get started without a dedicated or full-time DBA, avoiding specialization that can cause team bottlenecks.
3. Improved Security
If you’re running your databases on in-house servers, it’s your job to think seriously about security. You’ll need to ensure your database has an updated kernel and other critical software, and you’ll need to keep up with the newest digital threats. This is perfectly possible to do, but the reality is that most companies either don’t do it or do it poorly. Leave databases to the cloud company, and you’ll buy yourself some peace of mind.
What Are the Drawbacks of the Cloud?
Although cloud computing has improved by leaps and bounds in recent years, it does still have some snags you should be aware of:
1. Inflexibility
Many database scalability and performance issues can only be solved with a software patch, an upgrade, or a configuration setting. The locked-down nature of a cloud database, however, may bar you from using these solutions.
Solution: Unless you have truly unique database requirements — and most people who think they do really don’t — you probably have much more flexibility than you need. Get advice from others, whether it’s from your peers or an expert consultancy firm.
2. Cost
Cloud pricing can be expensive, especially at scale. It can mean sacrificing some OpEx efficiency at scale, which is, unfortunately, where it may matter most.
Solution: Forget about cost until you know you have a problem worth solving. Even if your cloud-computing bill seems high, it could still pale in comparison to many of your operational expenses.
3. Downtime
Although it’s not as concerning as it used to be, cloud computing has a reputation for occasional large-scale outages.
Solution: Build across multiple regions, availability zones, providers, and data centers to dilute your risk. The days of building on a single point of failure should be over — even for very young startups.
Five years ago, I would have been worried about advising companies — whether they were startups or much further along — to adopt cloud computing for their databases. But these days, even with the disadvantages that present themselves, I feel confident recommending it in many cases. Just know what you’re getting yourself into; with the right tools and knowledge, adopting cloud computing for your databases can pay real dividends.
Image Credit: Flickr/photosteve101