Microsoft Challenges AWS with Azure Database Services
Microsoft announced a raft of new cloud-based database offerings at this week's Build developer conference, pitting them directly against similar solutions from Amazon Web Services (AWS).
Previews of new Azure database services for PostgreSQL and MySQL were announced by Microsoft at Build. On the AWS side, the Amazon Relational Database Service (Amazon RDS) features PostgreSQL and MySQL as database engine options, while Amazon Aurora is a fully managed MySQL-compatible relational database.
It's another new Azure offering, though, that may see even AWS playing catch-up: Azure Cosmos DB.
"Today, we announced Azure Cosmos DB, the first globally distributed, multi-model database service delivering turnkey global distribution with guaranteed uptime and millisecond latency at the 99th percentile," Microsoft exec Scott Guthrie said in a blog post Wednesday. "While most database services force you to choose between strong or eventual consistency, Azure Cosmos DB is the only globally distributed database service which offers five well-defined, intuitive consistency choices -- so you can select just the right one for your app."
Some seven years in the making, the game-changing data solution was based on "foundational work" conducted by Microsoft Researcher Leslie Lamport, a winner of the prestigious Turing Award, Guthrie said.
In a technical overview of Azure Cosmos DB, Microsoft listed eight design goals:
- Enable customers to elastically scale throughput and storage based on demand, globally. The system should deliver the configured throughput within 5 seconds at the 99th percentile, from the time of the request to scale.
- Enable customers to build highly responsive, mission-critical applications. The system must deliver predictable and guaranteed end-to-end low read and write latencies at the 99th percentile.
- Ensure that the system is "always on". The system must provide 99.99 percent availability regardless of the number of regions associated with their database. To enable customers to test the end-to-end availability properties of the applications, (in steady state) the service must also allow customers to simulate regional failures or mark regions associated with their database offline. This helps validate the end-to-end availability properties of applications.
- Enable developers to write correct globally distributed applications. The system must offer an intuitive and predictable programming model around data consistency. While strong consistency comes with a price, writing large globally distributed applications against an "eventually consistent" database results in an application code which is hard to reason about, is brittle, and rife with correctness bugs.
- Offer stringent financially-backed comprehensive SLAs [service-level agreements] for 1, 2, 3 and 4 above.
- Relieve the developers from the burden of database schema/index management and versioning. Keeping database schema and indexes in-sync with an application's schema is especially painful for globally distributed applications.
- Natively support multiple data models and popular APIs for accessing data. The translation between the externally exposed APIs and internal data representation needed to be efficient.
- Operate at a very low cost to pass on the savings to customers.
Guthrie indicated Azure Cosmos DB met those design goals.
"Azure Cosmos DB allows you to elastically scale across any number of geographical regions while delivering the industry's only financially-backed database SLA across availability, latency, throughput, and consistency," he said. "As the first and only schema-agnostic database, Azure Cosmos DB automatically indexes data so you can perform blazing fast queries without having to deal with complexities of schema and index management or schema migration in a globally distributed setup.
"Customers including Jet.com are using Azure Cosmos DB to scale to 100 trillion transactions per day and growing, spanning multiple regions. Tapping into Azure Cosmos DB gives them planet scale, so they can keep focused on growing their business."
Meanwhile, the PostgreSQL and MySQL previews look more like Azure catching up to AWS.
"MySQL and PostgreSQL databases are popular choices amongst open source developers to build and deploy applications be it -- Web, mobile, content management system (CMS), customer relationship management (CRM), business, or analytical applications," Microsoft data exec Rohan Kumar said in a blog post. "These developers can now choose their favorite database engines delivered as a managed service on Azure that seamlessly integrate with most common open source programming languages such as PHP, Python, Node.js, and application development frameworks such as Wordpress, Magento, Drupal, Django, Ruby on Rails.
"Therefore, whether you want to build a Web site using MySQL database or want to quickly build and deploy a geospatial Web or mobile app with PostgreSQL, you can now quickly get setup using the managed service capabilities offered by Azure. In addition, app developers can continue to use the familiar community tools to manage their MySQL or PostgreSQL databases."
Microsoft also announced a limited preview of the Azure Database Migration Service. It lets developers migrate existing on-premises SQL Server, Oracle and MySQL databases to the Azure cloud, where destination target databases include Azure SQL Database, Azure SQL Database Managed Instance or Microsoft SQL Server in an Azure virtual machine.
Meanwhile, the AWS cloud has had its own AWS Database Migration Service since October 2015.
Industry media outlets were quick to characterize Microsoft's Azure-based data offerings in comparison to AWS. For example, Fortune discussed the moves in an article titled "Microsoft Doubles Down on Cloud Databases to Fend Off Amazon and Google." And over at InfoWorld, an article titled "Why Microsoft's Cosmos DB represents the future of cloud databases" compared Azure Cosmos DB with AWS offerings, saying: "Amazon has multiple offerings, but each provides only part of the picture: managed conventional databases (Amazon RDS), NoSQL (Amazon DynamoDB), and a data warehouse (Amazon Redshift)."
As AWS is widely recognized as the undisputed cloud computing market leader -- with Azure often seen as catching up and challenging its older rival in many areas -- the war of competing cloud databases is likely to continue with new offerings from both sides.
David Ramel is the editor of Visual Studio Magazine.