Monthly Archives: October 2009

Amazon RDS vs. SQL Azure: The birth of the DBMS Utility

Back in July I wrote my post about databases in the cloud.  The big surprise that I discovered at the time was that the only “Native” RDBMS offering in the cloud came from Microsoft. Microsoft SQL Azure (launching formally at the PDC in a few weeks) is a mostly-compatible SQL Server as a Service release complete with support for Transact SQL/TDS.  SQL Azure is a multitenanted DBMS with several customers running databases up to 10GB in size on a single server.  Their target is the 95% of business applications running in the enterprise that have databases with less than 5GB of data (based on their research).  Well, Microsoft is alone no more.

Today, Amazon’s Werner Vogels announced the Amazon Relational Database Service (RDS), which is a fully MySQL 5.1-compatible database as a service offering.  Sure, Joyent launched their MySQL Accelerator in August, but nobody seemed to notice.  Today’s RDS announcement from Amazon, combined with SQL Azure, heralds a new era in production scale RDBMS-as-a-Service (RDBaaS).  By answering SQL Azure and fully validating the RDBaaS opportunity, Amazon has jump-started a fundamental transition in the $18B market for database systems.

DBMSs are now part of the utility model of cloud computing.

Historically, DBMSs have been something that you licensed (CapEx), installed, and physically managed and administered.  Going forward, DBMSs will be something you use and perform logical administration and tuning on top of — but you won’t install, configure them, or worry about your log files jamming your disks and crashing your Web site.  The RDBMS will just be there, ready for your applications, automatically backed up and replicated, and operated flawlessly as part of the fabric of your cloud.

The DBMS Market Dynamic

By providing MySQL, Amazon is catering to the Web and SaaS crowd, and less so to the enterprise.  Conversely, Microsoft is well-positioned to compete in the far larger and more lucrative enterprise RDBMS market.  Yes, there is MySQL in the enterprise, but it’s a side-show to Oracle, SQL Server and IBM’s DB2 (with a sprinkling of Sybase and others).

Speaking of which, how will Oracle, IBM and Sybase respond?  IBM has their cloud offerings and will support DB2 fully – but will they be as innovative?  Oracle’s stalled acquisition of Sun may eventually lead to an Oracle cloud where they would be able to offer a similar service.  And frankly, out of all of the DBMSs out there, Oracle’s users have the most to gain from not having to hassle with that big and hard to manage system.  Sybase?  They seem to be dateless at this point.  They don’t offer a cloud (and likely won’t), can’t get a leading cloud to back them with their small market share, and tend to only be used in really intense applications like trading and risk analytics on Wall Street – which are less likely to migrate to the cloud soon.

I don’t see a scenario where MySQL-based DBaaS offerings aren’t dominating the Web/SaaS market (MySQL the software dominates it today).  Nor do I see a market for enterprise DBaaS that doesn’t have SQL Azure in the lead.   There will be crossover (more with MySQL in the enterprise than SQL Azure in the Web/SaaS environment).  Oracle may be able to craft a solution that enterprise-focused cloud providers (Terremark, Unisys, etc.) can use, but I wouldn’t bet on it soon.

Amazon RDS and Microsoft SQL Azure Compared

This is not intended to be a rigorous review, but there are some fairly significant differences in the approach taken by these vendors that are worth exploring.

Deployment Model

SQL Azure is a multi-tenant service with multiple DBs on the same machine in a shared infrastructure environment.  In some ways this is similar to how I believe Rackspace manages MySQL in their Cloud Sites business.  You don’t manage the types of instance you run other than to select from two pricing tiers.  The pros of this model is that they can offer SQL Server for as low as $10/month up to 1GB (or $99/month for 10G — nothing in the middle).  If there’s a downside, it’s that some users might want to feel more like they can kick the dbms more directly.  Also, by having a 10GB limit they force design decisions on applications with larger databases. They recommend partitioning (sharding) your data set across  multiple DBMS instances to manage more than 10GB.

RDS is a bit different in that they provision individual special-purpose EC2 instances into your AWS account with a larger range of databases — from 5GB to 1 terabyte!  They also let you control the type of instance, from Small (1.7GB RAM, 1 virtual core, etc) to Quadruple Extra Large – no foam – (68GB RAM, 8 souped up virtual cores, etc.).  This gives you more control, but also makes you have to think more about your database — but then that’s how AWS works overall.  You can get pretty large (1TB) without sharding due to size, though you may have to shard your DBMS for performance as this is not a “scale out” solution.  My friends at Akiba Technologies in Boston are building a killer engine that eliminates sharding and radically improves performance for most MySQL applications. They’re a couple months from alpha, but this stuff is seriously kickin’ and should be considered by any other cloud provider feeling the need to compete in the RDBaaS space (disclosure, I am an advisor to Akiba).

One note is that, unlike SQL Azure, your bill can get pretty large for RDS.  The smallest instance, is $0.11/hour, which is $80.30 per month (they are planning “reserved instance” pricing in the future – which will reduce that price).  For their largest server, the bill is $2,270/month – plus you pay for the DBMS storage separately at $0.10/GB).

Database Support

SQL Azure is mostly compatible with SQL Server, but not 100%.  SQL Azure supports a reasonably large subset of T-SQL.  Here is their FAQ on compatibility:

SQL Azure is built on SQL Server database technologies that are used for running mission-critical applications in the enterprise as well as on the Web. Since SQL Server is a broad data platform that can handle all data types from birth to archival, there are many associated capabilities that the data platform provides. SQL Azure is exposing a large subset of these relational capabilities and extending them as services in the cloud.

These services feature built-in high scale, availability, and self-management, and are provided in a way that makes it easy for customers and partners to consume over the Internet. SQL Azure, in its first iteration, exposes only the core RDBMS capabilities of what is in the full SQL Server data platform.

RDS, conversely, is 100% compatible with MySQL 5.1.  This is pretty sweet!

There are many more things to cover, and perhaps I’ll continue this post at another time.  The bottom line is that the market now has two credible, robust and innovative RDBaaS solutions, and it won’t be long before there are more.  Welcome to the era of the DBMS Utility.

Cloud Computing in the Enterprise – Private (Internal) Clouds

I’ve been doing a lot of work on private (internal) clouds lately – it’s a result of my new job with Unisys.  Part of that work has been spending time with customers on their plans for cloud computing — internal and external.  There’s some very interesting work going on in the private cloud space, and the solutions available to enterprises to build their clouds are many.

Note – I make the (internal) distinction for a reason.  The term “private cloud” is now starting to morph from purely internal, to internal and external clouds controlled closely by IT.  Amazon’s Virtual Private Cloud is an example of a private cloud in an external provider setting.

I have seen charts from Gartner that show how private (internal) clouds will get more money from IT over the next few years than public clouds.  I’ve also seen the benefits of a private cloud in the development/test workload scenario here at Unisys.  The numbers are pretty staggering (we are publishing a paper on this).

I can imagine that IT folks are just a wee bit confused by all the cloud noise lately, especially when it comes to private clouds.  You can choose from a wide range of approaches.  These start with open source cloud projects from Eucalyptus or OpenNebula providing a good base level cloud framework.  Then there’s the guys who have been out there a bit but are not really all that big — like Enomaly or 3tera (both of whom seem to see greener fields selling cloud solutions to hosting and telco providers than to entperprises).

In the 800-lb gorilla category you have VMware with their vCloud initiative.  Not that most VMware customers aren’t already locked in until Armageddon, but vCloud is just one more way to remove any possibility in the future of getting out from under VMware’s thumb.  vCloud=vLock! (note – as always on these pages, this is me talking, not my employer)

There’s also the big iron guys like IBM with CloudBurst and HP CloudAssure (is that even a product?).  In this collection you can go from free (open source) to over $200,000 (HP, IBM) just to open the box. Oh, and it normally comes in a box, as in appliance (or appliance with cloud capacity in a rack).

So, what does a private internal cloud solution look like from an IT perspective anyway?

Well, it looks a bit like how Amazon’s EC2 and S3 look  to Amazon’s internal tech crew.  It starts with a bunch of hardware that can run the workloads.  To this you add a level of virtualization and/or grid control to enable multiple workloads to run on the same box.  This can be Xen (as in Amazon), or it can be VMware ESXi or Hyper-V, etc.  Then you add layers of automation that allow you to manage tens, hundreds, thousands or even tens of thousands of boxes with relatively few people.  My friend John Willis (e.g. @botchagalupe) calls this “zero touch” infrastructure (note, John is working with the Canonical folks on the Ubuntu Cloud bundle with Eucalyptus).   “Zero touch” covers server repurposing, virtualization, image remediation (patch and release level management), provisioning, metering (for chargebacks) and more.  Then you add self-service interfaces (portal, API, etc.) and voila!   Private cloud.  Note – I’m pretty sure that Eucalyptus and OpenNebula fall far short of this level of automation out of the box.

As you might imagine, this is bloody difficult to pull off.  Amazon, Google and others worked their keisters off to get to where they are, and they are still building.  Basically, the primary activity of the data center folks at Amazon is swapping servers (and that’s a big job).  One fails, another is swapped in, and the system grabs the new box and joins it to the cloud.  In most IT organizations, a lot of people get involved in installing the image on the machine, virtualizing it, and joining it to the network.  For obvious reasons, that wouldn’t scale at Amazon.

One of the first things IT needs to let go of, to get a cloud running to its full potential, is the concept of manually approving anything.  All of the rules for approvals need to exist in advance and the system just needs to follow them.  Having a person “OK” the creation of a VM is just crazy, yet that’s what happens in many IT organizations.  Someone requests a virtual machine instance for a project and it goes into a queue for manual approval, and then manual implementation.  Yikes!!  This isn’t to say that nothing is approved – as I said, you have to set up the rules in advance.  How many instances of X can a department get?  What do we charge them (IT is now really a business, no?)?  Are there time limits on the VMs or servers we provide (e.g. maximum lease terms)?  All of this needs to be there and ready to go.

Then you need to give people the portal. That’s the magic pixie dust that makes it all come together.  Rather than “requesting” a server, you provision one.  It might take a few minutes for the automati0n to do its work, but that’s a lot better than the hours, days, or even weeks (yes weeks for a single VM!!) it used to take.

So, to net it out — a private (internal) cloud = hardware + virtualization + automation + chargeback + self-service portal. It also = the promised land for enterprise IT modernization.

Sounds easy?  As if!

%d bloggers like this: