Databases underlie most other applications, so it's no surprise that database-as-a-service options are becoming more common. But if you're thinking of rolling out databases in a cloud environment or consuming them as a service, there are some important caveats to bear in mind.
Server picture from Shutterstock
In a session today at Linux.conf.au, which I'm attending as part of our World Of Servers series, Stewart Smith discussed some of the challenges involved with creating and managing cloud database systems. Smith's own experience largely derives from MySQL (now owned by Oracle) and its open-source fork MariaDB, but the same core principles would apply with any database platform.
Choose your approach. There are two potential ways of implementing cloud databases. The first is to run a virtual machine on an existing cloud provider and then install database software on top of it. The second is to access a true database-as-a-server system, where you directly connect into a database service via a port rather than using SSH or other means. (The two approaches aren't mutually exclusive; Windows Azure, for example, lets you do both.)
Don't underestimate performance requirements. "Database servers are resource hogs," Smith said. Monitor your usage closely; in a pay-as-you-go model, you can easily end up spending more than you expected.
You'll rarely get everything when you want. "There is not one magic solution," Smith said. "It's a lot of small tweaks and a whole bunch of things you need to moderate and configure, and some things aren't going to happen and it's a pipe dream to think otherwise."
Competition for disk iis always an issue. If you have to wait for a disk to sync, that latency can spike.
Lifehacker's World Of Servers sees me travelling to conferences around Australia and around the globe in search of fresh insights into how server and infrastructure deployment is changing in the cloud era. This week, I'm in Canberra for Linux.conf.au, paying particular attention to the systems administration mini-conference and sessions on virtualisation and best practice.