Designing and Implementing Cloud-Native Applications Using Microsoft Azure Cosmos DB
This course teaches developers how to create application using the SQL API and SDK for Azure Cosmos DB. Students will learn how to write efficient queries, create indexing policies, manage and provisioned resources, and perform common operations with the SDK.
Prerequisites
Please review the prerequisites listed for each module in the course content and click on the provided links for more information.
Skills Covered
- Evaluate whether Azure Cosmos DB for NoSQL is the right database for your application.
- Describe how the features of the Azure Cosmos DB for NoSQL are appropriate for modern applications.
- Create a new Azure Cosmos DB for NoSQL account
- Create database, container, and item resources for an Azure Cosmos DB for NoSQL account
- Evaluate various requirements of your application
- Compare the various service and throughput offerings for Azure Cosmos DB
- Migrate between standard and autoscale throughput
- Migrate data using Azure services
- Migrate data using Spark or Kafka
- Integrate the Microsoft.Azure.Cosmos SDK library from NuGet
- Connect to an Azure Cosmos DB for NoSQL account using the SDK and .NET
- Configure the SDK for offline development
- Troubleshoot common connection errors
- Implement parallelism in the SDK
- Configure logging using the SDK
- Perform CRUD operations using the SDK
- Configure TTL for a specific item
- Create a transactional batch and review results
- Implement optimistic concurrency control for an operation
- Use C# task asynchronous programming model and "bulk" support in the Azure Cosmos DB for NoSQL .NET SDK
- Create and execute a SQL query
- Project query results
- Use built-in functions in a query
- Implement a correlated subquery
- Create a cross-product query
- Create and execute a SQL query
- Project query results
- Use built-in functions in a query
- Implement a correlated subquery
- Create a cross-product query
- Create a change feed processor in the .NET SDK
- Author a delegate to handle a batch of changes in a client-side application
- Create an Azure Function using the Azure Cosmos DB trigger
- Create an indexer to migrate data from Azure Cosmos DB for NoSQL to an Azure Cognitive Search index
- Determine access patterns for data.
- Apply data model and partitioning strategies to support an efficient and scalable NoSQL database.
- Manage relationships between data entities by using advanced modeling and partitioning strategies.
- Maintain the referential integrity of your data by using change feed.
- Implement pre-aggregating and denormalizing data strategies to improve data-model performance and scaling.
- Optimizing storage and compute by mixing entity types in a single container
- Distribute data across global data centers
- Configure automatic failover and perform a manual failover
- Configure the Azure Cosmos DB for NoSQL .NET SDK to use a specific region
- Configure default consistency level for an Azure Cosmos DB account
- Change the consistency level on a per-request basis
- Configure Azure Cosmos DB for multi-region write
- Use the .NET SDK to select a write region for operations.
- Customize an indexing policy for read-heavy workloads
- Customize an indexing policy for write-heavy workloads
- Tune an indexing policy for specific queries
- Measure the cost for a query or operation
- Implement the integrated cache
- Configure integrated cache options
- Understand how Azure Cosmos DB uses Azure Monitor to monitor server-side metrics.
- Measure Cosmos DB's throughput
- Observe rate-limiting events.
- Query telemetry logs
- Measure cross-partition storage distribution throughput
- Review common response codes
- Understand transit errors
- Review rate-limiting errors
- Configure Alerts
- Audit Security
- Understand the different backup and restore options Azure Cosmos DB provides.
- Evaluate periodic backups.
- Configure continuous backups.
- Do point in time recovery.
- Implement network level access control
- Review data encryption options
- Use role-based access control (RBAC)
- Access Account Resources using Microsoft Entra ID
- Understand Always Encrypted
- View arguments, groups, and subgroups for a specific CLI command
- Create Azure Cosmos DB accounts, databases, and containers using the CLI
- Manage an indexing policy using the CLI
- Configure database or container throughput using the CLI
- Initiate failovers and manage failover regions using the CLI
- Identify the three most common resource types for Azure Cosmos DB for NoSQL accounts
- Create and deploy a JSON Azure Resource Manager template for an Azure Cosmos DB for NoSQL account, database, or container
- Create and deploy a Bicep template for an Azure Cosmos DB for NoSQL account, database, or container
- Manage throughput and index policies using JSON or Bicep templates
- Author stored procedure
- Rollback stored procedure transactions
- Create user-defined
1. Introduction to Azure Cosmos DB for NoSQL
Learn about the Azure Cosmos DB for NoSQL and determine if it is a good fit for your application.
2. Try Azure Cosmos DB for NoSQL
Learn how to use the Azure Cosmos DB for NoSQL to create an account, and then use the account to create Cosmos DB resources.
3. Plan Resource Requirements
Familiarize yourself with the various configuration options for a new Azure Cosmos DB for NoSQL account.
4. Configure Azure Cosmos DB for NoSQL database and containers
Select between the various throughput offerings in Azure Cosmos DB for NoSQL.
5. Move data into and out of Azure Cosmos DB for NoSQL
Migrate data into and out of Azure Cosmos DB for NoSQL using Azure services and open-source solutions.
6. Use the Azure Cosmos DB for NoSQL SDK
Learn about the Microsoft.Azure.Cosmos library, and then download the library to use in a .NET application.
7. Configure the Azure Cosmos DB for NoSQL SDK
Learn how to configure the Azure Cosmos DB for NoSQL SDK in various ways including how to integrate with the emulator, implement parallelism, and create a custom logger.
8. Implement Azure Cosmos DB for NoSQL point operations
Write code to create, read, update, and delete items in Azure Cosmos DB for NoSQL.
9. Perform cross-document transactional operations with the Azure Cosmos DB for NoSQL
Perform operations on multiple items in single logical units of work.
10. Process bulk data in Azure Cosmos DB for NoSQL
Perform bulk operations on Azure Cosmos DB in bulk from code using the SDK.
11. Query the Azure Cosmos DB for NoSQL
Author queries for Azure Cosmos DB for NoSQL using the SQL query language.
12. Author complex queries with the Azure Cosmos DB for NoSQL
Create SQL queries for Azure Cosmos DB for NoSQL that uses subqueries or cross-products.
13. Define indexes in Azure Cosmos DB for NoSQL
Discover indexes and indexing policies in Azure Cosmos DB for NoSQL.
14. Customize indexes in Azure Cosmos DB for NoSQL
Customize indexing policies for a container in Azure Cosmos DB for NoSQL.
15. Consume an Azure Cosmos DB for NoSQL change feed using the SDK
Process change feed events using the change feed processor in the Azure Cosmos DB for NoSQL .NET SDK.
16. Handle events with Azure Functions and Azure Cosmos DB for NoSQL change feed
Use Azure Functions bindings to integrate a function with Azure Cosmos DB for NoSQL.
17. Search Azure Cosmos DB for NoSQL data with Azure Cognitive Search
Index Azure Cosmos DB for NoSQL data with Azure Cognitive Search.
18. Implement a non-relational data model
Identify an application’s key access patterns. Define the entities’ data model, along with containers to store the data with a partition key that will result in an efficient and scalable data store for the application.
19. Design a data partitioning strategy
Identify strategies for managing relationships between data entities, such as customers and sales data. Improve data-model performance and scaling by pre-aggregating and denormalizing your data. Use change-feed to maintain your data's referential integrity.
20. Configure replication and manage failovers in Azure Cosmos DB
Replicate data across the globe and manage automatic or manual failovers in Azure Cosmos DB.
21. Use consistency models in Azure Cosmos DB for NoSQL
Configure consistency on a sliding scale for Azure Cosmos DB for NoSQL.
22. Configure multi-region write in Azure Cosmos DB for NoSQL
Write data to multiple regions using Azure Cosmos DB for NoSQL.
23. Customize an indexing policy in Azure Cosmos DB for NoSQL
Tune the indexing policy based on your SQL queries in Azure Cosmos DB for NoSQL.
24. Measure index performance in Azure Cosmos DB for NoSQL
Measure the performance of an indexing policy in Azure Cosmos DB for NoSQL.
25. Implement integrated cache in Azure Cosmos DB for NoSQL
Implement, configure, and monitor integrated cache in Azure Cosmos DB for NoSQL.
26. Measure performance in Azure Cosmos DB for NoSQL
We learn to use Azure Monitor to create and analyze monitoring data for Azure Cosmos DB.
27. Monitor responses and events in Azure Cosmos DB for NoSQL
We will learn to use a rich set of REST response codes returned by Azure Cosmos DB request to help you analyze potential issues.
28. Implement backup and restore for Azure Cosmos DB for NoSQL
We'll learn to use the two backup models Azure Cosmos DB provides.
29. Implement security in Azure Cosmos DB for NoSQL
We will learn the different security models that Azure Cosmos DB uses.
30. Write management scripts for Azure Cosmos DB for NoSQL
Learn how to manage Azure Cosmos DB for NoSQL accounts, databases, and containers using the Azure CLI.
31. Create resource template for Azure Cosmos DB for NoSQL
Learn about automated Azure Cosmos DB for NoSQL resource deployments using the Azure Resource Manager with JSON and Bicep templates.
32. Build multi-item transactions with the Azure Cosmos DB for NoSQL
Author stored procedures using JavaScript in Azure Cosmos DB for NoSQL.
33. Expand query and transaction functionality in Azure Cosmos DB for NoSQL
Author user-defined functions and triggers using JavaScript in Azure Cosmos DB for NoSQL.
Software engineers tasked with authoring cloud-native solutions that leverage Azure Cosmos DB SQL API and its various SDKs. They are familiar with C#, Python, Java, or JavaScript. They also have experience writing code that interacts with a SQL or NoSQL database platform.