| Subscribe via RSS

Microsoft SQL Data Services – Database as a Service

November 5th, 2008 | Comments Off | Posted in SDS

sqlservices

SQL Data Services is one of the handful of new data storage technologies to come out of last months PDC conference and differs significantly from the ‘Core OS’ storage mechanisms offered by the central Azure platform in that it approaches a traditional relational model.

The service is built on top of a modified SQL Server 2008 platform and essentially extends SQL to the cloud at scale with additional advances made to reduce provisioning times and TCO. It’s been tweaked to scale over thousands of servers and the current beta level distribution stands at around 1200 servers geographically spread over 5 data centres; enough provision to cope with the CTP process!

One of the really interesting facets of the service is it’s health and performance monitoring systems. Individual servers can re-start failing processes, be rebooted or even be re-imaged  all by the health monitoring system without any human intervention. If an entire machine fails for some reason it is marked as failed and it’s workload re-distributed elsewhere in the cloud. An engineer turns up a couple of weeks later, pulls the machine, powders the harddrive and replaces it with a new server that automatically starts taking it’s share of the workload. Pretty snazzy I’m sure you agree.

Another interesting point is that the system has been designed to scale both ways; up and down. An important feature in regard to TCO and means you don’t have unused resource lying around when demand decreases.

The API is accessible via REST and currently follows a schema-free approach; it doesn’t follow traditional SQL structures like tables. Instead it follows a model of Authorities, Containers and Entities. These can be loosely mapped to the concepts of servers, databases and rows. Entities have no type checking built in right now and act more like a property bag style container. Different ‘kinds’ of entities of the same type can even have entirely different properties and property types.

This kind of abstraction allows the SDS team to slowly leak functionality from the underlying SQL Server 2008 platform in a controlled and considered manner. Right now the API is missing basics like support for stored procedures and %LIKE% based queries, something that Google App Engine is also missing ( I wonder why this is so difficult to pull off. There must be a reason why it’s not available on both platforms ).

There are still plenty of unanswered questions right now concerning security, pricing and data distribution but from a purely developer orientated point of view the API is as easy to use and manage as you would like. If SDS continues down the same path as laid out at PDC we can expect seamless scalability for data-centric solutions to be achieved with much less investment in time, resource and commitment.

Microsoft Azure Vs Google App Engine

November 3rd, 2008 | 14 Comments | Posted in ASP.NET, Cloud

cloud 
As you all know by now, Windows Azure is Microsoft’s brand new platform as a service offering and I thought it would be an interesting exercise to compare it side by side with the Google’s popular PAAS product – Google App Engine.

Language Support:
Straight out of the gate Azure allows you to leverage the power of C# and VB, and there is no reason why the other .Net savvy languages can’t join the party too. Look forward to IronPython, F# and Iron Ruby being a consideration in the not too distant future. Meanwhile GAE only gives Python as an option and further language support is not on the roadmap. .Net services is being designed from the ground up as language agnostic with Java & Ruby SDKs being readily available http://jdotnetservices.com/ http://www.dotnetservicesruby.com/
Result: SUPER BODY SLAM BY AZURE!!

Application Types
Azure offers two different kinds of application model; Web Roles and Worker Roles. Both can be utilised in your Azure applications. Web roles are your typical request/response HTTP paradigm similar to GAE’s request based model. More interesting is the Worker role that adds processing and logic that does not need to be triggered via a web request. Think Windows Service and you are on the right track. This gives you the ability to run background tasks and opens up a whole raft of application possibilities that GAE just cant offer right now. Looking at the roadmap, it’s not going to arrive any time soon either. There’s no chance of chron-like capability or long running processes with GAE.
Result: CHOKE HOLD BY AZURE!

Scalability
Microsoft Azure is as yet unproven in this area but there are plenty of indicators around the web that GAE would not hold up against traffic of a serious or sustained nature. Concerns with CPU and storage limitations, caching, database immutability plus one way in and out ( via the Google API ). App Engine’s 1MB file limit would seriously hinder the kind of audio-heavy enterprise applications we write at Qire. Of course we will have to wait and see how Azure stacks up in this regard, so it’s pretty impossible to compare both technologies at this time.
Result: Break!

Storage
Azure offers a few different storage options including Table Storage that leverages the killer ADO.NET Data Services Framework to get the job done. Add to this the more familiar SQL Data Services platform and you have more than enough flexibility to achieve all you need. GAE follows the ‘one big table’ approach and there is nothing wrong with that but the range of storage options provided by Azure gives it more of an edge.
Result: Knockout!

It’s plain to me that the Microsoft offering is way more advanced than anything else out there, an opinion that is echoed on many GAE forums and messageboards too.

  • Cloud

    Ajax AmpliFeeder ASP.NET Blabnote C# Cloud Design EntityFramework Framework JavaScript JQuery LINQ Live Mesh MicroBlog Mix07 Mobile Productivity Rails Remix08 SDS Silverlight2 SQL SSDS TDD Telecommunications Uncategorized VOIP WCF Web 2.0 Webcast


  • @jonpauldavies