Over the last three months I have taken a look at 4 of the major cloud providers who offer DBaaS. I was hoping to review a couple additional ones but didn't get the opportunity (I'll explain more in a bit), so for now I thought we should sum up what I've learned into a single article so for those following along you can get my personal thoughts on the services and where they are heading (in my opinion).
In the kick off article I said I would like to look at several different service offerings to compare them, they included the following: (Note that each of the vendor links will take you to the respective review article on Thwack!)
- Azure - Azure and I have a love hate relationship overall. I've always been a VMware guy... So I inherently HATE that HyperV is the underlying hypervisor lol. Yet at the same time, Azure has the best Cloud Control panel, in my opinion, that's out there. Azure is also the only service that I tried MS SQL DBaaS from... and it worked create, no major bumps or bruses after the fact. Overall if you need a MS SQL DB and want it delivered as a service ... Then I don't think you can really beat Azure, and I would definetly recommend it to the people I help.
- Google - Google is one of the newer players in the Cloud Computing area at least from a public service offering. Yet their interface is pretty refined and the service works as advertised... in fact it worked so well that I really didn't have much to write about, which is why you see the minimal performance testing in the article as well... It was simply because without it the article would have been about 2 paragraphs. Overall I would say that if you are using Google's cloud for services already, then their are no reason that I can think of as to why you would not want to use their DBaaS offering. I think that the biggest thing Google will fight in the DBaaS world as well as the cloud computing world as a whole is their competitors Amazon and Azure.
- Amazon - Speaking of Amazon ... Amazon is easily the most mature of the DBaaS offerings that I reviewed. It works as advertised and didn't give me any problems at all. Probably the biggest reason that I can think of as to why you would pick Amazon over the others is because you already have other stuff there... If you can keep your database local to your cloud apps then why wouldn't you? Plus Amazon probably has the most complete offering in terms of geographies... It's not all roses over at Amazon though... but more on that below.
- HP Helion - I've been using the Helion service since before it was called Helion... I started off in July 2013 with their DNS service for my blog, and had only played a little with the actual compute services. I also favor HP a little just because they are using the purest form of OpenStack of any big service provider that I know of. But with that said they are also newest into the DBaaS market... and unfortunetly the service does reflect that... Their support is very responsive and was able to get things going for me, but only to have it break by the time I was able to get back in and test some more. Overall they were the only service that I would NOT recommend at this time. I would certainly keep them on the radar, but they have a little work to do to smooth things out before I would bet my pay check on their service.
- OpenStack Trove - This is the only solution that I wasn't able to test... and probably the one I was really looking forward to testing the most! Why? Well because I'm a server hugger at heart... I like having hardware where I can see it, and care for it... I guess I'm old school. But Trove is basically a framework that allows you to deploy SQL DBaaS instances to your OpenStack cloud.... The problem? I don't have an OpenStack cloud setup, and when I looked into how much work it would have taken to do it properly... plus the complexity of Trove on top... I just gave up before I even started. And if you read my normal blog, http://jpaul.me, you will know that I don't give up easily. With that said, I think the biggest thing going against Trove at least for now and maybe in the near future is complexity. Once more of the OpenStack vendors integrate it with their distro's I think you will start to see it become more common,.
So do they work or what ?
The simple answer is heck yea they do! And they do it with pretty amazing uptime too. That isn't to say that there isn't downtime though, and it seems as though the old saying is true too, "The bigger they are the harder they fall."
I hate to say it, but the timing on the latest Amazon explosion couldn't have been better for this series of blog posts... but I'm sure the folks trying to find a hook-up or the ones trying to watch some Netflix this past saturday night would disagree with me. (BTW if you had not heard, Amazon had some issues with their database services this past Sunday morning...). Luckily however, the disruption only impacted one region of AWS... so if you had been a DBaaS customer you could have failed over to the west region or one of the many others.
The real lesson here is that services fail just like servers do, so if you are thinking about using DBaaS to avoid downtime, just remember that its still a server to somebody and there is still going to be downtime. The only difference is that it isn't your problem to fix it when there is a problem.
What would I do?
Please do not let me opinion point you in any one particular direction... You really need to test them for yourself to see what works best for you. But! If i had to pick one today I would pick Azure if I needed a MS SQL platform and Amazon if i needed MySQL. I base this on the thought that if I did need a database I would probably also have other servers I would need too. And if i Needed linux based stuff I would put it on Amazon... and if I needed Windows stuff I would put it on HyperV. Also keep in mind that I consider myself a server hugger... So before I would pick either one I would do a really good job to keep it on hardware I maintain and control... because I'm like that!
One other thing to keep in mind is that the cloud space is by no means done. VMware for example does not have a DBaaS offering today... but I do know it's in beta, which means it will be production ready before too long. I also expect Openstack to catch up as adoption rates continue to increase. So my advise is to test often, and when a project does require a DBaaS ... make sure to re-review at that time so you know your working with the best that is out there at that time.