The move to the cloud has brought many changes to software development, but few shifts have been as radical as those occurring in the database market right now. So different is the cloud for software architects that the first response from developers was to build entirely new databases to solve these new problems.Thus, 2010 was the year of the NoSQL database. But as time has moved on and NoSQLs have become more mature, developers are figuring out that the old relational ways of doing things shouldn’t be thrown out with the metaphorical bathwater.While relational databases were considered old world just a year ago, a new crop of options for in-cloud development has brought them racing back to the forefront. A combination of new relational databases aimed at the cloud, coupled with more mature in-cloud relational offerings, such as Microsoft’s SQL Azure database and Amazon’s SimpleDB, have presented some compelling reasons to ditch the new-fangled NoSQLs.
Amazon’s SimpleDB, for example, is a cloud-based relational data storage system focused on simplicity, as the name implies. Rather than cram caching, transformations and compromise solutions to the CAP problem (Consistency, Availability, Partitions: You can only choose two) into a new-world database, SimpleDB eschews futuristic ideas in favor of a clean, easy-to-use data store that can form the backbone of scalable applications while providing the 20% of functionality needed by 80% of users.
Adam Selipsky, vice president of product management and developer relations for Amazon Web Services, said that SimpleDB is about choice and ease of use. “Running a relational database, irrespective of where you do it, takes a certain amount of work and administration,” he said.
“There are a lot of use cases where people don’t need that full functionality of a relational database. SimpleDB is really meant to be the Swiss Army knife of databases. You’re not going to do joins, you’re not going to do complex math procedures. If you want to do data indexing and querying, then it can take all the scaling hassles away from you, and you don’t have to worry about schemas.”
Selipsky said that SimpleDB evolved out of the needs Amazon saw in its users. Databases were a hassle to maintain within the cloud, and yet most developers were only using a fraction of the functionality of those databases, he said.
“Where we started was to provide all the building blocks,” he said. “There’s an incredible variety of needs in our customer base. We have all the separable fundamental Web services with fundamental calls. That’s been one of the principal reasons these services have been so popular. We do think it’s important to make our services easier to use. There are a lot of examples where we will start to make the services easier to use.”
Look before you leap
Stephen O’Grady, analyst with research firm RedMonk, said that every in-cloud database offering is different, and that developers need to know what they’re getting into before they design an architecture around those data stores. He pointed out that Microsoft’s initial offering of SQL Server for Azure did not meet developer expectations, and thus caused some strife for both users and Microsoft itself.
“When Azure came out, the data store was basically a hierarchical database, not a relational one,” he said. “It was not your typical SQL Server. A lot of the initial users chafed at that requirement, and as a result the subsequent iteration [of the software from Microsoft was a] re-badged SQL Server. That’s one of the data stores available on Azure now and it looks a lot like your regular relational now.”