1. Home
  2. Training Library
  3. Microsoft Azure
  4. Courses
  5. Introduction to Azure DocumentDB

Final thoughts


Course Intro
Getting the Most from DocumentDB
Use Cases
3m 12s
5m 20s
Start course
1h 36m

It's been common, if inconsistently applied, knowledge for many years that relational databases are a less-than-ideal fit for some types of software problems. Indeed, entire categories of software development tooling, such as object-relational mappers (ORMs), exists to bridge the gap between highly normalized relational data and in-memory, object-oriented representations. In practice, ORMs can create as much complexity as they alleviate, so developers began looking at the relational database itself as ripe for potential disruption.

Thus came the rise of NoSQL and databases that eschew the traditional rows/columns/tables/foreign keys metaphor for other choices like JSON document stores, graph databases that represent data and relationships as nodes with connecting edges, key/value stores that act as a glorified hashtable, and others. The wide range of options meant you could choose the right tool for your particular needs, instead of trying to squeeze a relational database square peg into your application's round hole. Solutions like MongoDB, Cassandra, Redis, and Neo4j rose to prominence and became de facto industry standards for developers interested in leveraging the power and flexibility NoSQL.

While NoSQL was a boon to software developer productivity, the initial product offerings did little to alleviate the administrative burden of managing your database. Server provisioning, backups, data security at-rest and in-transit... all these challenges (and many more) remained as developers adopted NoSQL in greater numbers. Fortunately for them and all of us, the rise of the cloud and managed database service offerings like Azure DocumentDB brought us the best of both worlds: fast, flexible, infinitely-scalable NoSQL with most of the administrative headaches assumed by a dedicated team of experts from Microsoft. You focus on your data and your application, and rely on a 99.99% SLA for the rest!

In this "Introduction to Azure DocumentDB" course, you’ll learn how to use Azure DocumentDB (DocDB) in your applications. You'll create DocDB accounts, databases, and collections. You'll perform ad-hoc and application-based queries, and see how features like stored procedures and MongoDB protocol support can help you. You'll also learn about ideal DocDB use cases and the pricing model. By the end of this course, you’ll have a solid foundation to continue exploring NoSQL and DocumentDB.

An Introduction to Azure DocumentDB: What You'll Learn

Lecture What you'll learn
Intro What to expect from this course
DocumentDB Overview A high-level overview of the DocumentDB feature set
Overview of Managing DocumentDB A discussion of DocumentDB features for managing resources, data, scalability, configuration, and so on
Creating an Account Creating a top-level DocDB account in the Azure portal
Creating a Collection Creating and configuring a DocDB collection in the Azure portal
Importing Data Discussion and demonstration of moving data into a DocDB collection
Overview of Developing with DocumentDB A discussion of DocumentDB features from a development point of view
SQL Queries How to author queries in the Azure portal
Programming with DocumentDB Reading and writing data in code, using the .NET SDK
Stored Procedures Authoring DocDB stored procedures and executing them using the DocDB REST API
MongoDB Protocol Support Configuring and using DocDB's MongoDB protocol support
Use Cases A brief discussion of scenarios well-suited for DocDB use
Pricing A review of the DocDB pricing model, and discussion of cost estimation and Total Cost of Ownership
Ecosystem Integration A short review of DocDB integration with other Azure services
Summary Course wrap up

If you have thoughts or suggestions for this course, please contact Cloud Academy at support@cloudacademy.com.


Let's briefly summarize what we've covered. We started with a brief overview of the core capabilities of DocumentDB as a geo-scaled, NoSQL database service. We talked about the four configurable consistency levels, and the auto-partitioning and indexing behavior used to optimize performance. We discussed that the developer-centric features of DocDB, including support for SQL and LINQ syntax, JavaScript-based stored procedures, triggers, and UDFs, and support for the MongoDB application protocol. We demonstrated how to create a DocumentDB account, database, and collection in the Azure portal as well as importing query data inside a collection. We then ended with a brief discussion on likely use cases, pricing, and cloud ecosystem integration for the DocDB service.

I'd like to close with some advice on learning DocumentDB and using it within your production applications. DocDB is a fantastic service and, in my opinion, is one of the hidden gems of the Microsoft Azure cloud. But maximizing your investment in DocDB requires careful consideration of your resource needs and a good understanding of the data read and write patterns of your application. It's my experience that some application developers don't take the time to do this. Instead, they blindly swap out a relational store for DocumentDB and, when they encounter poor performance or high costs, they blame the service rather than their own misuse and lack of preparation. Trust me, properly used and configured, DocumentDB will perform and scale in ways that few other cloud services are capable of. But it's no silver bullet either. By all means, consider using it, but take the time to understand how best to do so.

One final thought, it may sound strange to mention in a course focused on NoSQL, but don't forget about relational databases either. SQL Server, MySQL, Postgres, they all still have their place in the enterprise. Relational engines have evolved over the course of several decades and are excellent tools for use cases like reporting and some analytics and transactional workloads. Again, by all means, be excited about NoSQL and learn all you can about that. Just think carefully about which tool works best for a given data problem, and don't be afraid to use different tools for different jobs. This concludes our introduction to Azure DocumentDB course. We love feedback. Let us know how we can improve, other topics we should focus on, and ways we can help you master the cloud. Reach out to us in the course comments or in Cloud Academy's online community forums. You can also drop us a line to Twitter @CloudRank. Thanks for watching.

About the Author
Josh Lane
Azure Researcher and Trainer

Josh Lane is a Microsoft Azure MVP and Azure Trainer and Researcher at Cloud Academy. He’s spent almost twenty years architecting and building enterprise software for companies around the world, in industries as diverse as financial services, insurance, energy, education, and telecom. He loves the challenges that come with designing, building, and running software at scale. Away from the keyboard you'll find him crashing his mountain bike, drumming quasi-rythmically, spending time outdoors with his wife and daughters, or drinking good beer with good friends.