In my last blog, I discussed the big push Microsoft is making toward PaaS solutions that they offer, such as Web Apps, Logic Apps, Databases, and other types of solutions. In this article, I will explore Database as a Service, or DaaS.
Currently Microsoft offers 2 different types of DaaS; the classic Microsoft SQL Server run in a Platform as a Service offering, and the new no-sql DaaS called Cosmos DB. Obviously, there are huge differences between these offerings and in this article; we will give an overview of what Azure is offering and the differences between the two.
SQL Azure Database is Microsoft’s flagship database, everyone knows SQL, and everyone has a love/hate relationship with SQL. So what does putting it in the cloud as a service do for you? Firstly, you do not have to worry about setting up the underlying infrastructure of a SQL server, such as physical or virtual servers. Another positive is the fact that you don’t need a storage backend, so no internal storage, network attached storage, or direct attached storage. You no longer have to worry about what SAN you should use or what protocol to iSCSI, FC, or FcoE. So, you don’t have to setup some infrastructure, but what does it do for me?
The 5-main thing that SQL Azure Database offers are:
I won’t go over the cons of SQL Azure Database, because if you know SQL then you know its limitations. The one thing I will touch on is, there are no reporting services available for SQL Azure Database; therefore, you have to run a separate VM with SQL reporting services on it.
Azure Cosmos DB is Azure’s no-sql platform offering, previously known as Document DB. This is Microsoft’s ground-up built Database service; it carries no Schema and is NoSQL. Cosmos DB is a globally distributed and multi-model. It is accessed through different sets of API’s based on what you are using in your application, these include MongoDB, DocumentDB, Table API, and Graph API. The developers at Azure are also constantly working to add more API’s to access Cosmos DB.
Another great addition to Cosmos DB is its ability to be dynamically tuned across three different dimensions, Throughput, Space, and Consistence. This allows you to get the best performance possible while not compromising on data redundancy and consistency.
Probably the biggest feature for Cosmos DB is its global distribution, no longer do your users have to access data in Dublin while being physical located in Perth. Being globally distributed, your data is stored in all of the Azure regions for low latency access, which is configurable to as many Azure regions as you need to support your user base. This includes the ability to failover from region to region with zero data loss.
As with most things cloud, Cosmos DB is incredibly scalable and can all be done on the fly with no downtime. This includes increasing throughput to the database as well as scaling to your size needs. Below is the info graphic from Microsoft that shows the extensibility of Cosmos DB.
In my next instalment, I will look into another PaaS that Azure is offering, and how it compares to the “old” way of doing things.