It was a pretty amazing year for Azure Cosmos DB, highlighted by the launch of the service, the preview and general availability of Graph, Table APIs, Azure Cosmos DB for MongoDB API, native Spark connector and many other awesome capabilities. There were breakthroughs in making our SLAs truly industry-leading, adding native integration with Azure Functions and launching Try Cosmos DB for free to empower anyone to experience and play with our service without having an Azure account or having to specify a credit card. Below is a look back at 2017 and some of the memorable milestones.
The Launch of Azure Cosmos DB
In May, we were super excited to announce the general availability of Azure Cosmos DB – Microsoft’s globally distributed, massively scalable, multi-model database service. It is the first globally-distributed data service that lets you elastically scale throughput and store across any number of geographical regions while guaranteeing low latency, high availability and consistency. While also backed by the most comprehensive SLAs in the industry. It is the first cloud database to natively support a multitude of data models and popular query APIs. It is built on a novel database engine capable of ingesting sustained volumes of data and provides blazing fast queries. All this without having to deal with schema or index management. And it is the first cloud database to offer five well-defined consistency models so you can choose just the right one for your app. Read more about Azure Cosmos: The Industry’s first globally-distributed, multi-model database service and relive the launch by watching the #MSBuild Day 1 Keynote video.
Technical rigor behind Azure Cosmos DB
The work of Dr. Leslie Lamport, Turing Award Winner and a world-renowned computer scientist has profoundly influenced many large-scale distributed systems. Azure Cosmos DB is no exception. Over the course of the seven years building Azure Cosmos DB, Leslie’s work has been a constant source of our inspiration and a solid foundation for our platform. Since its inception, Azure Cosmos DB has offered developers a choice between five well-defined consistency models along the consistency spectrum – strong, bounded staleness, session, consistent prefix, and eventual. You can configure the default consistency level on your Azure Cosmos DB account and later override the consistency on a specific read request. You can read all about the consistency levels in Azure Cosmos DB in the article Tunable data consistency levels in Azure Cosmos DB. To create these five consistency levels and build many of the capabilities within Azure Cosmos DB, we married decades-worth of distributed systems and database research with world-class engineering rigor. In this interview with Leslie shares his thoughts on the foundations of Azure Cosmos DB, his influence in the design of Azure Cosmos DB and in particular on the modelling of consistency choices.
Native Spark Connector for Azure Cosmos DB
In June, we announced the preview of the native Spark connector for Azure Cosmos DB that provides seamless interaction with globally-distributed, multi-model data and empowers customers to easily run analytics, machine learning and data science on top of globally-distributed operational data. Spark connector for Azure Cosmos DB enables real-time data science, machine learning, advanced analytics and exploration over globally distributed data in Azure Cosmos DB by connecting it to Apache Spark. The connector efficiently exploits the native Azure Cosmos DB managed indexes and enables updateable columns when performing analytics. It also utilizes push-down predicate filtering against fast-changing globally-distributed data addressing a diverse set of IoT, data science, and analytics scenarios. Our goal is to help developers write globally distributed apps more easily using the tools and APIs they are already familiar with. Azure Cosmos DB’s database engine natively supports SQL API, Azure Cosmos DB for MongoDB API, Gremlin (graph) API, and Azure Table API. With the updated Spark connector for Azure Cosmos DB, Apache Spark can now interact with all Azure Cosmos DB data models: Documents, Tables, and Graphs. Read more about Spark Connector for #CosmosDB seamless interaction with globally-distributed, multi-model data and Azure #CosmosDB announcements.
Azure Cosmos DB Change Feed
Azure Cosmos DB is extremely well-suited for IoT, gaming, retail, and operational logging applications. A common design pattern in these applications is to use changes to the data to trigger additional actions. To help you build powerful applications on top of Azure Cosmos DB we built change feed support, which provides a sorted list of documents within a collection in the order in which they were modified. To address scalability while preserving simplicity of use, we introduced the Azure Cosmos DB Change Feed Processor Library. Read more to learn when and how you should use Change Feed Processor Library.
We are now entering the era of serverless. With serverless architecture, there is a whole new range of applications emerging, in particular serverless event-driven apps. When the event is triggered your application pops into action, does what it needs to do and disappears again. That’s why we start calling it “severless” because in essence, your server does not exist until it is needed. In September, we announced the availability of native integration between Azure Cosmos DB and Azure Functions. With this native integration, you can create database triggers, input bindings, and output bindings directly from your Azure Cosmos DB account. Using Azure Functions and Azure Cosmos DB, you can create and deploy event-driven serverless apps with low-latency access to rich data for a global user base. Watch this demo on Serverless Apps with Azure Cosmos DB & Azure Functions at Microsoft Ignite.
Try Azure Cosmos DB for free
This year we launched Try Azure Cosmos DB for Free, an experience that allows anyone to play and build with Azure Cosmos DB without signing up for Azure or requiring a credit card, all absolutely free for a limited time. Why did we launch Try Cosmos DB for free? It’s simple. We want to make it easy for developers to evaluate Azure Cosmos DB, build and test their app against Azure Cosmos DB, do a hands-on-lab, a tutorial, create a demo or perform unit testing without incurring any costs. Our goal is to enable any developer to easily experience Azure Cosmos DB and what it has to offer, become more comfortable with our database service and build the expertise with our stack at zero cost. With Try Cosmos DB for free, you can go from nothing to a fully running planet-scale Azure Cosmos DB app in less than a minute. Read more on how to Try Azure #CosmosDB for free.
In September, Azure announced Azure free account which gives you $200 in Azure credits for the first 30 days and a limited quantity of free services for 12 months. For more information, see Azure free account. Azure Cosmos DB is one of the popular products that are a part of Azure free account and is accessible to you for 12 months for free. To start, create your Azure free account today.
20 days of Azure Cosmos DB Tips Series
In September, we ran the series called The 20 days of Azure Cosmos DB tips by Simona Cotin on twitter to share our tips on using Azure Cosmos DB. You may wish they were all available in one place. Well, they are in 20 days of Azure Cosmos DB Tips!
Transparency is an important virtue of any cloud service. Azure Cosmos DB is the only cloud service that offers 99.990% SLAs on read availability, throughput, consistency, and <10ms latency, and we transparently show you metrics on how we perform against this promise. This year, we have made a number of investments to help developers monitor and troubleshoot their Azure Cosmos DB workloads. In September, we announced several metrics we had added to the service, as well as integration of our metrics with popular Azure Monitor, OMS, and a preview of Diagnostics logs. Get insights into your Azure #CosmosDB: partition heatmaps, OMS, and more.
Azure Cosmos DB Cassandra API Preview
At Connect, we launched the preview of native support for Apache Cassandra API – offering you Cassandra as-a-service powered by Azure Cosmos DB. You can now experience the power of Azure Cosmos DB platform as a managed service with the familiarity of your favorite Cassandra SDKs and toolchain. Sign up today and access the Azure Cosmos DB Cassandra API to easily build planet-scale Cassandra apps. You can now experience the power of Azure Cosmos DB platform as a managed service with the familiarity of your favorite Cassandra SDKs and tools—without any app code changes.
We continuously improve our stack and in November we were really excited to announce even stronger SLAs for Azure Cosmos DB - now databases spanning multiple regions will have 99.999 percent read availability. Learn more by reading Azure Cosmos DB SLA page.
Azure Cosmos DB Table API became generally available this year. With the Azure Cosmos DB Table API your applications written for Azure Table storage can now leverage premium capabilities of Azure Cosmos DB, such as turnkey global distribution, low latency reads/writes, automatic secondary indexing, dedicated throughput, and much more. Read more about the general availability of Azure #CosmoDB Table API.
Azure Cosmos DB Gremlin (Graph API) has also just become generally available. With general availability, we’ve delivered critical improvements to the performance of graph operations, improved import and backup scenarios through new tooling, and enhanced support for open-source frameworks recommended by Apache Tinkerpop, including Python client support. With GA, we will also simplify migration from popular database engines like TitanDB, Neo4j and others. Read more about the general availability of Azure #CosmosDB Gremlin (Graph) API.
General availability of Azure Cosmos DB for MongoDB API and extended capabilities
This year, Azure Cosmos DB for MongoDB API became generally available as well as in November we’ve announced the public preview of unique indexes and aggregation pipeline support which allows Azure Cosmos DB developers using Azure Cosmos DB for MongoDB API to perform data manipulation in multi-stage pipelines even within a single query, enabling streamlining development of more sophisticated aggregations. Unique index capability is now generally available and allows to introduce the uniqueness constraint on any document fields that are already auto-indexed in Azure Cosmos DB. Azure Cosmos DB now also implements MongoDB 3.4 wire protocol, allowing the use of tools and applications relying on it. Learn more about Azure #CosmosDB support for MongoDB.
Azure Cosmos DB in Azure Storage Explorer
We announced the public preview of support for Azure Cosmos DB in the Azure Storage Explorer (ASE). With this release Azure Cosmos DB databases can be explored and managed with the same consistent user experiences that make ASE a powerful developer tool for managing Azure storage. The extension allows you to manage Azure Cosmos DB entities, manipulate data, create and update stored procedures, triggers, as well as User Defined Functions. Azure Storage Explorer not only offers unified developer experiences for inserting, querying, and managing your Azure Cosmos DB data, but also provides an editor with syntax highlighting and suggestions for authoring your Cosmos DB stored procedures. With this extension you are now able to browse Cosmos DB resources across both SQL (DocumentDB) and MongoDB interfaces along-side existing experiences for Azure Blobs, tables, files, and queues in ASE.
Last February, we lowered entry point for unlimited containers making them 75% cheaper. We continue making improvements in our service and in December announced that unlimited containers have now an entry point that is 60% cheaper than before. Instead of provisioning 2,500 RU/sec as a minimum, you can now provision an unlimited collection at 1,000 RU/sec and scale in increments of 100 RU/sec. Unlimited containers (collections) enable you to dynamically scale your provisioning from as low as 1,000 RU/sec to millions of RU/sec with no limit on storage consumption.
Azure Cosmos DB is in Azure France now
Azure Cosmos DB is a foundational service in Azure powering mission-critical applications, services and customer workloads around the world. Azure Cosmos DB is now a part of the preview of Microsoft Azure in France, which is now open to all customers, partners and ISVs worldwide giving them the opportunity to deploy services and test workloads against Azure Cosmos DB in these latest Azure regions. Azure Cosmos DB in the new regions will offer the same enterprise-grade reliability and performance with the industry-leading comprehensive SLAs to support the mission-critical applications and workloads of businesses and organizations in France. Sign up for Azure France preview.
2018 is going to be truly Cosmic!
Most of the above mentioned happened thanks to you - our customers, MVPs, developers, partners and organically, as we worked hard to add value to our customers and empower anyone to build globally-distributed applications with ease. It took us years to operationalize the capabilities we currently offer. We were fortunate to have Internet scale Microsoft applications to learn from which allowed us to identify, validate, and operationalize the five consistency models, the industry-leading comprehensive SLAs, the guaranteed single-digit millisecond latency for reads and writes and robust partition management for independent scaleout of storage and throughput. We have been constantly working on optimizing the propagation delays across various workloads by dynamic replication topologies, made our software stack across a variety of failure modes and interconnectivity issues for both within and across, various Azure regions. We have constantly optimized the core replication protocol (we are not done yet) to bring all of this to you, our customers. Azure Cosmos DB is the database of the future - it is what we believe is the next big thing in the world of massively scalable databases! It makes your data available close to where your users are, worldwide and makes building planet scale apps super-easy using the API and data model of your choice.
Happy New Year!