Microsoft SQL Data Services – Database as a Service
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.
