Posts Tagged RDS
When Amazon announced RDS for SQL Server and .NET support for Elastic Beanstalk, the response over the next few hours and days was a gushy ‘AWS cosies up to .NET developers’ or something similar. My first thought upon reading the news was “Man, some people on the Azure team must be really, really pissed at the SQL Server team for letting SQL Server on to AWS”. It’s not that AWS is not a good place for .NET people to cosy up to, and some AWS people are very cosy indeed (except for one, who’s been avoiding me for a year), but .NET people getting friendly with AWS people is bad for Azure. While it is great for .NET developers, the problem for Microsoft is that SQL RDS erodes the primary competitive advantage of Windows Azure.
AWS has been a long time supporter of the Windows and .NET ecosystem but the missing part was the lack of a good story around SQL Server. Sure, you have always been able to roll your own SQL instance, but keeping it available and running is a pain. What was lacking, until this week, was a SQL Server database service that negated the need to muck around by yourself. What was needed was a service provided by AWS that you could just click on to enable. Not only does AWS now support SQL (although not 2012 yet) it seems to superficially offer a better SQL than Microsoft does on SQL Azure. I personally think that SQL Azure is a better product and has been developed, from the ground up, specifically for a cloud environment, but that process has left it somewhat incompatible with on-premise SQL Server. AWSs RDS SQL is plain ‘ol SQL Server that everyone is familiar with, with databases bigger than 150GB, backups, performance counters and other things that are lacking in SQL Azure. While the discerning engineer may understand the subtle edge that SQL Azure has over RDS SQL, it will be completely lost on the decision makers.
AWS has recently been making feints into the enterprise market, a stalwart of more established vendors, including Microsoft. And, if AWS want to present a serious proposition to enterprise customers, they have to present a good Windows/.NET story without gaps — and it seems that they are beginning to fill in those gaps. It is particularly interesting and compelling for larger enterprises where there is a mish-mash of varied platforms, as there inevitably are in large organisations, where one cloud provider is able to take care of them all.
Windows Azure has Windows/.NET customer support at the core of its value proposition and SQL Azure is a big part of that. If you have a need for SQL Server functionality, why go to anyone other than a big brand that offers it as part of their core services (and I mean ‘service’, not just ‘ability to host or run’)? Windows Azure was that big brand offering that service, where the customer would choose it by default because of SQL support. Well, now there is another big brand with a compelling offering.
Microsoft obviously can’t go around refusing licenses for their software, and for a business that for decades has had ‘sell as many licenses as possible’ as their most basic cheerleader chant, it is virtually impossible to not sell licenses. The models for the new world of cloud computing clash right here with the old business models that Microsoft is struggling to adapt. For an organisation that is ‘all in’ on the cloud, the only ‘all in’ part of the messages that I am getting is that Microsoft wants to sell as many licenses of their products to cloud providers as possible — putting Windows Azure in a very awkward position. If it was me in the big Microsoft chair, I would have fought SQL RDS as long as possible — but hey, I’m not a highly influential sweaty billionaire, so my opinion doesn’t count and won’t make me a sweaty billionaire either.
The competitor to Windows Azure is not AWS, or AppEngine or any other cloud provider — the competitor is Windows Server, SQL Server and all the on-premise technologies that their customers are familiar with. I’m sure that Microsoft desperately wanted to get SQL onto RDS and helped as much as they could because that is what their customers were asking for (Microsoft is apparently quite big on listening to customers). I can’t help thinking that every time Microsofties went over for a meeting at the Amazon office to hammer out the details, the Azure team was left clueless in Redmond and the Amazon staff were chuckling behind their backs.
How does Microsoft reconcile their support for Windows Azure and their support for their existing customers and business models? How do they work with AWS as one of their biggest partners and competitors? While Microsoft struggles with these sorts of questions and tries to decide where to point the ship, Amazon will take whatever money it can off the table, thank you very much.
We know that Oracle databases power enterprises. An RDBMS market share of 41% means that a lot of data is gettting stored in and processed by Oracle databases. I have also seen my fair share of Oracle biased data centres to know that these databases run on really big tin. Multiprocessor RAM loaded beasts with sophisticated storage and fancy networking to backup data across data centres on the fly is the nature of real world Oracle installations. And these installations support massive ERP systems upon which enterprises stand and are at the core of finance and trading.
So what then of Amazon Oracle RDS? Does this mean that all of the great things that the enterprise gets out of Oracle can be provisioned on demand via a simple web console? Can we get the kind of performance that enterprises are familiar with out of an RDS ‘High-Memory Quadruple Extra Large DB Instance’? A 64GB, 8 core, ‘High I/O Capacity’ machine should be able to do a lot of work.
I’m not so sure.
I have some hands on Oracle experience, but only from a developer perspective. I never did break into the Oracle DBA
cabal society and they never taught me their secret handshake. But one thing I do know is that those hardcore Oracle DBAs know some serious shit. They drill down to a really low level, look at mountains of monitoring data, talk to each other with secret acronyms and are able to configure, build, tune and beat into submission their Oracle databases to get the most out of them.
I would love to know what they think about Oracle RDS. Does it give them the power to use Oracle properly? Does the database engine abstract things like IO tuning away enough for it not to matter? Or is the underlying Oracle RDS configuration a ‘good enough’ configuration that works in a lot of cases but is suboptimal when the going gets tough.
The Oracle feature set on RDS is incomplete, but I’m not qualified to say if that is such a big deal or not. Although the lack of RAC is a clue that it’s not for really big databases.
- Oracle database features not currently supported include:
- Real Application Clusters (RAC)
- Data Guard / Active Data Guard
- Oracle Enterprise Manager
- Automated Storage Management
- Data Pump
It also seems that there are some security restrictions too – which is expected on multi-tenant infrastructure. But are the restrictions too much for real Oracle DBAs?
Again with AWS we are stuck with a lack of detailed documentation so it will be difficult to understand what the limitations are. If I had to ask a serious Oracle DBA to help me with a database where he or she was given no information about the underlying network and storage architecture, I’m sure I wouldn’t get that much help. So without detailed documentation it is left up to a first mover to put the effort in to see how well it stands up, and I’m glad it won’t be me.
With MySQL I can understand. MySQL was always the ginger child of the database world and has never been taken seriously in high load database environments. So it is easy to use RDS MySQL, it can’t be that bad.
We’ll have to wait and see what happens with Oracle. I’d be very interested to see what the hardcore DBAs think of Oracle on RDS. Not the evil plans and bring your own licensing issues, but the real world performance and ability to process and store data.
Until then, I think most architects will hold off recommending RDS Oracle as a core part of any solution. For now it will simply be safer to keep your big Oracle databases on premise. At the very least it will keep your DBA happy and lets be honest, you never want to piss off your Oracle DBAs.