If yours is a SQL Server shop, you might already be using Windows Azure SQL Database (formerly SQL Azure) to augment your in-house systems. For some of you, however, SQL Database might not be the best fit. You might, for example, be looking for a non-relational service or a service based on a platform other than SQL Server. In this article, we look at five providers that offer SQL Azure alternatives and how those services differ from one another.
Amazon Web Services
Amazon Relational Database Service (RDS) is one of the oldest cloud-based database services out there, and was the first database service offered through Amazon Web Services (AWS). With RDS, you can deploy an Oracle, MySQL or SQL Server database instance, using either standard storage or Provisional IOPS storage, which is optimized for I/O-intensive workloads. RDS also gives you the option to use Amazon's Virtual Private Cloud service to isolate your database instance. In addition, you can take advantage of Amazon's CloudWatch Service to view key operational metrics about that instance.
The other AWS database products -- DynamoDB, Redshift and SimpleDB -- are currently offered as public beta services. DynamoDB is a NoSQL database service in which all data is stored on solid-state drives and replicated across three availability zones, making it a fast and highly available system. Redshift, a data warehouse service, uses columnar storage technologies along with distributed, parallelized queries to support data sets, ranging from hundreds of gigabytes to a petabyte or more. The SimpleDB service provides a non-relational, schema-less data store built for small sets of string data that can be accessed by simple queries.
In addition to the four database services, AWS also offers the Data Pipeline workflow service for moving and processing data, as well as the ElastiCache service for maintaining data in the cache.
Google Cloud Platform
Like Amazon, Google provides multiple data-related services. The first is Cloud SQL, a relational database service based on MySQL that could serve as an SQL Azure alternative. Cloud SQL is fully managed and tightly integrated with App Engine and other Google services. Cloud SQL also supports synchronous replication across multiple geographic regions. In addition, Google offers the BigQuery service, a real-time big data analytics tool that lets you run ad hoc queries against data sets containing billions of rows. The service utilizes Google's massive computing power to let you analyze data from multi-terabyte data sets.
A recent addition to Google's offerings is Cloud Datastore, a schema-less, non-relational database service that supports ACID transactions, similar to those supported in more traditional relational database management systems (RDBMS). ACID refers to the four properties that ensure predictable and safe transactions: atomicity, consistency, isolation and durability. The Cloud Datastore service is currently offered as a preview release and is the same Datastore storage used by the App Engine service. Datastore acts as an interface to Google's internal storage system, BigTable. Datastore data is replicated across multiple data centers and automatically scales as traffic increases.
Rackspace Cloud Databases
Among the many cloud-based services offered by Rackspace, database hosting is among them. Companies such as MongoLab and Cloudant act as gateway services that house their products with Rackspace (as well as with other cloud-hosting services). In addition, Rackspace provides managed database services for MySQL, Oracle and SQL Server. Dedicated database administrators and engineers can design your cloud-based database systems and manage the hardware and software while providing full-time support. As such, it can be considered one of the many SQL Azure alternatives.
Rackspace now also offers the Cloud Databases service, a fully managed MySQL hosting service built on the OpenStack platform. OpenStack, developed by Rackspace and NASA, is an operating system based on open standards and used to build public and private clouds. Cloud Databases also uses SAN storage with built-in data replication, and is implemented within a container-based virtualization structure, which performs better than traditional hardware virtualization. With Cloud Databases, deployment, configuration and patching are all automated.
MongoLab provides a database service based on the MongoDB NoSQL database, an open source, document-oriented database system that stores data in a binary form. Unlike relational databases with their rigid schemas, MongoDB schemas can vary across documents and change as applications evolve. However, MongoDB still provides some of the features available in a relational database, such as secondary indexes and a full query language, so it could be considered one of the SQL Azure alternatives.
MongoLab offers MongoDB as a gateway service that can be hosted on a variety of cloud platforms, including AWS, Joyent, Rackspace, Windows Azure and Google Cloud Platform. The database service lets you schedule automated backups, which you can store on your own network or with a cloud storage provider. MongoDB also provides a set of Web-based management tools that let you perform such tasks as running common searches, controlling databases, or optimizing queries. In addition, MongoLab continuously monitors the health and performance of your database servers.
Salesforce.com now offers its own database service in the cloud. Database.com uses the same technology that powers the Salesforce customer relationship management system, which processes over 500 million transactions daily. Database.com is based on a multi-tenancy architecture, in which resources such as the cache, system catalog and query optimizer are shared.
Although Database.com provides relational database services, its architecture differs from the typical RDBMS. Database.com uses a custom-designed schema built for multi-tenancy and cloud environments, with no virtualization required, as is often the case with hosted systems. In addition, the service uses a runtime engine that materializes all application data from metadata, while keeping the engine, metadata and tenant data completely separate from one another.
The full range of services
There is no shortage of options from which to choose when looking for Azure alternatives to SQL Database, and the available services are by no means limited to the ones we've covered here. Companies such as Cloudant, Couchbase and Garantia Data are just a few of the many other providers out there, and more services are being added every day. But what we've covered here should provide you with an idea of the type of services available. Not surprisingly, Amazon and Google lead the pack in terms of variety, but that doesn't mean their services are right for your organization. Rackspace Cloud Database, MongoLab and Database.com are all worth serious consideration, as are a number of other database services.
About the author
Robert Sheldon is a technical consultant and the author of numerous books, articles, and training material related to Microsoft Windows, various relational database management systems, and business intelligence design and implementation.