Article by IT journalist David Williams
Global software vendor Microsoft is well-known for its SQL Server database.
Yet, it’s the Redmond giant’s Azure Cosmos DB that guarantees single-digit-millisecond reads and writes on planet-scale databases with minimum fuss.
SQL Server is a relational database built upon sound mathematical concepts devised by IBM in the 1970s; these concepts are also the pillar for Oracle, MySQL, and the bulk of databases in the nearly five decades since.
Yet, a modern Internet age with globally-distributed applications that must be fault-tolerant and scalable demands a high-concurrency, low-latency database model.
Enter Cosmos DB, officially a NoSQL database model where items are stored in containers, and containers are grouped together to make the database.
This is akin to MongoDB’s documents and collections, and so on for other NoSQL database products.
An important distinction of this NoSQL database type is containers are schema-agnostic, unlike the very strongly structured nature of a relational database.
Available on Microsoft’s Azure platform, Cosmos DB databases can be configured to be available in any of the Azure regions, letting developers place their data where their users are.
Each container’s data is transparently replicated across all configured regions, and adding or removing regions is performed without any downtime and, significantly, without any impact on performance.
Cosmos DB’s API automatically routes requests to the closest available region meaning applications don’t need any update or reconfiguration when regions are added or removed.
It’s a highly compelling product for global-scale apps with Microsoft guaranteeing the single-digit-millisecond transaction speeds mentioned earlier, as well as 99.999% high availability, elastic scaling that matches capacity with demands to control costs and ensure high performance during peak traffic and automatic indexing.
Actually, it need not be reserved for an organisation’s biggest apps.
While Cosmos DB scales naturally and seamlessly for the biggest possible workloads the cloud can deliver, it offers elegant and straightforward tools to build microservices in the developer’s choice of programming language.
Fitting into other Azure features, Azure Cosmos DB enables developers to work with Azure IoT Hub to ingest and query diverse IoT - Internet of Things - data easily through its global presence, and tower with Azure Databricks to perform real-time analytics on data of any size or type from any location, to mention two.
Azure Cosmos DB aids developers by eliminating the extreme trade-offs between consistency, availability, latency and programmability, allowing time and attention to be focused on building great apps while Microsoft Azure handles all the infrastructure and database management and optimisation.
For example, an automotive organisation might collect vehicle telemetry and needs to rapidly ingest and store the vast amount of data it collects, along with processing that detects anomalies in near real-time as the data comes in.
The business might even wish to visualise these anomalies in dashboards and have many other requirements.
A key component of success is a solid basis and here is where Azure Cosmos DB forms the entry point to near real-time analytics in a way a relational database cannot.
Selecting Cosmos DB does not prevent later data lake enterprise-wide aggregation and processing of your data; SQL Server 2019 introduces data virtualisation allowing Cosmos DB containers to participate in SQL Server databases as if they were native tables.