Getting the Most from DocumentDB
An Introduction to Azure DocumentDB
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 firstname.lastname@example.org.
Welcome to Cloud Academy's course, an Introduction to Azure DocumentDB. The Geo-Scale NoSQL Database Service in the Cloud. This is an intermediate level course that assumes some prior knowledge for the student. In order to get the most out of it, you should have a basic familiarity with cloud computing and Azure. Some prior exposure to the Azure management portal is helpful though not strictly necessary. Although DocumentDB is not a relational database, some familiarity with basic relational concepts like tables, rows, columns, and sequel syntax like tables, rows, columns, and sequel syntax will help orient you in the world of NoSQL and .DB. And finally, a basic understanding of programming against databases from technologies like .NET or Node.js will serve as a good foundation for doing the same with .DB. We'll include a few such examples throughout the course. Upon completion of the course, you should be comfortable with the following topics: identifying the core management and developer features of DocumentDB. Creating a DocumentDB instance in the Azure portal. Performing programmatic import and query using SQL and LINQ syntax. Using DocumentDB's protocol support for MongoDB. And finally understanding the pricing model of DocumentDB and its Total Cost of Ownership or TCO compared to other similar alternatives. A brief note about your instructor, I'm Josh Lane, a Cloud Academy researcher and instructor. I've been a software developer focused on cloud and data technologies for several years, and I've worked around the world for clients in industries such as energy, finance, and more. I was awarded Microsoft's Azure MVP designation for both my development work and my activities promoting cloud and Azure technologies in the larger technology community. Thanks for attending the course. Azure and .DB are great technologies. I hope you enjoy them as much as I do. Before we start, let's review the course agenda. First we'll do a brief overview of the DocumentDB service and its main features. We'll then dive straight into the Azure portal and demonstrate how to set up a DocumentDB account and database and do some basic configuration. After that we'll jump at the code and demonstrate how to read and write JSON documents against the DocumentDB collection. Next we'll explore some of the use cases, in which no SQL and DocumentDB are especially useful. We'll touch on pricing and total cost of ownership as this can be a confusing topic for those unfamiliar with consumption of managed cloud services in comparisons with unmanaged self hosted alternatives. And finally a key benefit of DocumentDB is the ease with which you can integrate it with other Azure services. So we'll wrap up with a brief discussion of what those scenarios look like.
About the Author
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.