Guest Commentary: Amazon Web Services this morning announced a new service called DynamoDB — rolling out, in public form, a cloud database technology already used by several of Amazon’s internal teams. So what problem does it aim to solve? And is it worth a look?
GeekWire wrote about the offering earlier today, but after listening to the Webinar about the new service this morning, I wanted to share a few of my own thoughts.
First, some background: As many developers can attest, the job of configuring, provisioning and managing traditional (SQL-based) relational databases can be complex and fraught with numerous challenges. Whether it’s MySQL, Microsoft SQL Server, Oracle or PostgreSQL, developers are often required to learn a great deal about database architecture if they’re to successfully configure a solution that’s efficient and scalable. They also have to worry about things like backups and replication.
The goal of Amazon’s DynamoDB is to make database storage and retrieval not only extremely fast but, perhaps more importantly, maintenance-free. They’re able to do this by dramatically simplifying the storage model and automatically handling things like replication and scaling. Amazon revealed that DynamoDB achieves much of its speed through the service’s extensive use of solid-state drives (SSD) which are much faster than mechanical, spinning hard drives.
Whereas more traditional relational SQL (Structured Query Language) database solutions require detailed knowledge of table design and index structure, the NoSQL movement, which DynamoDB is a part of, embraces the notion of a key-value storage model. Programmers new to NoSQL/DynamoDB concepts can quickly wrap their heads around this concept by equating it with a simple hash table or Dictionary. Instead of thinking in terms of columns and indexes, NoSQL/DynamoDB reads look more like requests for data associated with simple keys. Writes behave in a similar manner.
In DynamoDB, data are stored in tables that are quickly created through Amazon’s AWS dashboard or programmatically using their AWS SDK which supports Java, .NET and PHP. Unlike traditional relational databases, DynamoDB’s tables simply have names and a description of how their keys will behave. Developers don’t have to create columns or commit to a particular design schema at the outset of their project.
My takeaway: Developers should be excited about Amazon’s entry into the NoSQL space because it offers, perhaps for the first time, a maintenance-free database solution that’s capable of scaling to support almost any sized application. While there are rabid supporters of both NoSQL and the more traditional relational SQL-based database models, Amazon’s DynamoDB product makes it easy to work with both, simultaneously.
With Amazon handling all of the storage, backup and replication, there’s no reason why developers wouldn’t want to explore and, eventually, embrace the solution.
During a 30-minute webinar, Amazon CTO Werner Vogels and DynamoDB GM Swami Sivasubramanian discussed the new service, which is available starting today in beta form through the Amazon AWS platform. The entire webinar is now available online.
SmugMug CEO Don MacAskill, one of Amazon’s largest AWS customers, was on-hand from the Bay Area to describe his company’s early experiences using Amazon’s new service. SmugMug currently stores billions of photos and video objects using a variety of Amazon AWS services including S3 for storage and EC2 for compute resources. MacAskill said that they “absolutely love how simple the [DynamoDB] model is and the API” and are “thrilled with the performance.”
Vogels wrote about DynamoDB in a post on his blog “All Things Distributed” earlier today where he described the genesis of the product and some of its more important attributes tied to predicted performance and scalability. Vogels is also fielding questions on the related Hacker News thread.