In 2007, Amazon.com published a paper on its distributed datastore Dynamo, which the company uses to power its e-commerce site. The paper inspired several open source NoSQL projects, including Apache Cassandra, BigCouch (soon to be merged into Apache CouchDB) and Riak. But for years Dynamo has remained an internal tool.
That changed today with the introduction of Amazon DynamoDB, a hosted service on Amazon Web Services. You can finding pricing and details here, or read AWS CTO Werner Vogels long blog post about the project.
Here’s a highlight that helps explain why Amazon.com decided to offer a hosted Dynamo service:
With Dynamo we had taken great care to build a system that met the requirements of our engineers. After evaluations, it was often obvious that Dynamo was ideal for many database use cases. But … we learned that engineers found the prospect of running a large software system daunting and instead looked for less ideal design alternatives that freed them from the burden of managing databases and allowed them to focus on their applications.
1. Last November I reported that Amazon Web Services is building a big data streaming service. I can’t help but wonder if that project is related to the DynamoDB service.
2. Vogels plays up the services oriented nature of Amazon.com’s infrastructure, which played a big role in Ex-Amazon.com engineer and current Google engineer tk’s infamous memo:
While a service-oriented architecture addressed the problems of a centralized database architecture, each service was still using traditional data management systems. The growth of Amazon’s business meant that many of these services needed more scalable database solutions.
Dynamo might have been the best technology in the world at the time but it was still software you had to run yourself. And nobody wanted to learn how to do that if they didn’t have to. Ultimately, developers wanted a service.
DynamoDB vs. The Rest
Amazon Web Services remains one of the most popular cloud hosting solutions, especially among developers and startups. Access to Dynamo could be a compelling proposition.
The big drawback to DynamoDB as it stands is that it remains a proprietary Amazon.com technology. If users ever want to move to a different cloud provider, or run private or hybrid cloud they are out of luck. Open source alternatives like Redis, Couchbase and the Dynamo-inspired applications mentioned before can be run both in the cloud or as a service. Cloudant is already offering BigCouch as a service, and several platform-as-a-service providers are offering support for Redis and other NoSQL databases. Meanwhile, those that prefer a document database have a range of options for MongoDB hosting, including MongoLab and MongoHQ.