Designing and Implementing Cloud-Native Applications Using Microsoft Azure Cosmos DB (DP-420) Practice Exam
description
Designing and Implementing Cloud-Native Applications Using Microsoft Azure Cosmos DB (DP-420) Practice Exam
The Microsoft Azure Cosmos DB is a globally distributed NoSQL database service designed for high availability, performance, and scalability. The Designing and Implementing Cloud-Native Applications Using Microsoft Azure Cosmos DB (DP-420) exam validates your skills in utilizing Azure Cosmos DB for developing cloud-native applications.
Who should take the exam?
- Software engineers tasked with building applications using the Azure Cosmos DB NoSQL API and SDKs.
- Individuals with experience in C#, Python, Java, or JavaScript who want to leverage Azure Cosmos DB for their applications.
- Those with a basic understanding of SQL or NoSQL database platforms and some experience with Azure PowerShell.
Roles and Responsibilities
- Cloud Software Engineer: Designing, developing, and maintaining cloud-native applications that utilize Azure Cosmos DB for data storage and retrieval.
- Full-Stack Developer (Cloud Focus): Developing both front-end and back-end components of cloud applications, potentially leveraging Azure Cosmos DB for data persistence.
- DevOps Engineer (Cloud Specialization): Working within DevOps teams to deploy and manage cloud applications that use Azure Cosmos DB.
Exam Details
- Provider: Microsoft
- Format: Computer-based exam with multiple-choice questions (no simulations)
- Number of Questions: Typically 80 questions (subject to change) - Refer to the official exam blueprint for the latest information.
- Duration: 90 minutes
- Passing Score: Minimum score not publicly disclosed by Microsoft (generally around 70%)
Course Outline
Domain 1 - Understand to Design and implement data models (35–40%)
1.1 Design and implement a non-relational data model for Azure Cosmos DB for NoSQL
- Learning to Develop a design by storing multiple entity types in the same container
- Learning to Develop a design by storing multiple related entities in the same document
- Learning to Develop a model that denormalizes data across documents
- Learning to Develop a design by referencing between documents
- Learning to Identify primary and unique keys
- Learning to Identify data and associated access patterns
- Learning to Specify a default TTL on a container for a transactional store
1.2 Design a data partitioning strategy for Azure Cosmos DB for NoSQL
- Learning to Choose a partitioning strategy based on a specific workload
- Learning to Choose a partition key
- Learning to Plan for transactions when choosing a partition key
- Learning to Evaluate the cost of using a cross-partition query
- Learning to Calculate and evaluate data distribution based on partition key selection
- Learning to Calculate and evaluate throughput distribution based on partition key selection
- Learning to Construct and implement a synthetic partition key
- Learning to Design and implement a hierarchical partition key
- Learning to Design partitioning for workloads that require multiple partition keys
1.3 Plan and implement sizing and scaling for a database created with Azure Cosmos DB
- Learning to Evaluate the throughput and data storage requirements for a specific workload
- Learning to Choose between serverless and provisioned models
- Learning to Choose when to use database-level provisioned throughput
- Learning to Design for granular scale units and resource governance
- Learning to Evaluate the cost of the global distribution of data
- Learning to Configure throughput for Azure Cosmos DB by using the Azure portal
1.4 Implement client connectivity options in the Azure Cosmos DB SDK
- Learning to Choose a connectivity mode (gateway versus direct)
- Learning to Implement a connectivity mode
- Learning to Create a connection to a database
- Learning to Enable offline development by using the Azure Cosmos DB emulator
- Learning to Handle connection errors
- Learning to Implement a singleton for the client
- Learning to Specify a region for global distribution
- Learning to Configure client-side threading and parallelism options
- Learning to Enable SDK logging
1.5 Implement data access by using the SQL language for Azure Cosmos DB for NoSQL
- Learning to Implement queries that use arrays, nested objects, aggregation, and ordering
- Learning to Implement a correlated subquery
- Learning to Implement queries that use array and type-checking functions
- Learning to Implement queries that use mathematical, string, and date functions
- Learning to Implement queries based on variable data
1.6 Implement data access by using Azure Cosmos DB for NoSQL SDKs
- Learning to Choose when to use a point operation versus a query operation
- Learning to Implement a point operation that creates, updates, and deletes documents
- Learning to Implement an update by using a patch operation
- Learning to Manage multi-document transactions using SDK Transactional Batch
- Learning to Perform a multi-document load using Bulk Support in the SDK
- Learning to Implement optimistic concurrency control using ETags
- Learning to Override default consistency by using query request options
- Learning to Implement session consistency by using session tokens
- Learning to Implement a query operation that includes pagination
- Learning to Implement a query operation by using a continuation token
- Learning to Handle transient errors and 429s
- Learning to Specify TTL for a document
- Learning to Retrieve and use query metrics
1.7 Implement server-side programming in Azure Cosmos DB for NoSQL by using JavaScript
- Learning to Write, deploy, and call a stored procedure
- Learning to Design stored procedures to work with multiple documents transactionally
- Learning to Implement and call triggers
- Learning to Implement a user-defined function
Domain 2 - Understand to Design and implement data distribution (5–10%)
2.1 Design and implement a replication strategy for Azure Cosmos DB
- Learning to Choose when to distribute data
- Learning to Define automatic failover policies for regional failure for Azure Cosmos DB for NoSQL
- Learning to Perform manual failovers to move single master write regions
- Learning to Choose a consistency model
- Learning to Identify use cases for different consistency models
- Learning to Evaluate the impact of consistency model choices on availability and associated RU cost
- Learning to Evaluate the impact of consistency model choices on performance and latency
- Learning to Specify application connections to replicated data
2.2 Design and implement multi-region write
- Learning to Choose when to use multi-region write
- Learning to Implement multi-region write
- Learning to Implement a custom conflict resolution policy for Azure Cosmos DB for NoSQL
Domain 3 - Integrate an Azure Cosmos DB solution (5–10%)
3.1 Enable Azure Cosmos DB analytical workloads
- Learning to Enable Azure Synapse Link
- Learning to Choose between Azure Synapse Link and Spark Connector
- Learning to Enable the analytical store on a container
- Learning to Enable a connection to an analytical store and query from Azure Synapse Spark or Azure Synapse SQL
- Learning to Perform a query against the transactional store from Spark
- Learning to Write data back to the transactional store from Spark
3.2 Implement solutions across services
- Learning to Integrate events with other applications by using Azure Functions and Azure Event Hubs
- Learning to Denormalize data by using Change Feed and Azure Functions
- Learning to Enforce referential integrity by using Change Feed and Azure Functions
- Learning to Aggregate data by using Change Feed and Azure Functions, including reporting
- Learning to Archive data by using Change Feed and Azure Functions
- Learning to Implement Azure Cognitive Search for an Azure Cosmos DB solution
Domain 4 - Understand to Optimize an Azure Cosmos DB solution (15–20%)
4.1 Optimize query performance when using the API for Azure Cosmos DB for NoSQL
- Learning to Adjust indexes on the database
- Learning to Calculate the cost of the query
- Learning to Retrieve request unit cost of a point operation or query
- Learning to Implement Azure Cosmos DB integrated cache
4.2 Design and implement change feeds for Azure Cosmos DB for NoSQL
- Learning to Develop an Azure Functions trigger to process a change feed
- Learning to Consume a change feed from within an application by using the SDK
- Learning to Manage the number of change feed instances by using the change feed estimator
- Learning to Implement denormalization by using a change feed
- Learning to Implement referential enforcement by using a change feed
- Learning to Implement aggregation persistence by using a change feed
- Learning to Implement data archiving by using a change feed
4.3 Define and implement an indexing strategy for Azure Cosmos DB for NoSQL
- Learning to Choose when to use a read-heavy versus write-heavy index strategy
- Learning to Choose an appropriate index type
- Learning to Configure a custom indexing policy by using the Azure portal
- Learning to Implement a composite index
- Learning to Optimize index performance
Domain 5 - Understand to Maintain an Azure Cosmos DB solution (25–30%)
5.1 Monitor and troubleshoot an Azure Cosmos DB solution
- Learning to Evaluate response status code and failure metrics
- Learning to Monitor metrics for normalized throughput usage by using Azure Monitor
- Learning to Monitor server-side latency metrics by using Azure Monitor
- Learning to Monitor data replication in relation to latency and availability
- Learning to Configure Azure Monitor alerts for Azure Cosmos DB
- Learning to Implement and query Azure Cosmos DB logs
- Learning to Monitor throughput across partitions
- Learning to Monitor distribution of data across partitions
- Learning to Monitor security by using logging and auditing
5.2 Implement backup and restore for an Azure Cosmos DB solution
- Learning to Choose between periodic and continuous backup
- Learning to Configure periodic backup
- Learning to Configure continuous backup and recovery
- Learning to Locate a recovery point for a point-in-time recovery
- Learning to Recover a database or container from a recovery point
5.3 Implement security for an Azure Cosmos DB solution
- Learning to Choose between service-managed and customer-managed encryption keys
- Learning to Configure network-level access control for Azure Cosmos DB
- Learning to Configure data encryption for Azure Cosmos DB
- Learning to Manage control plane access to Azure Cosmos DB by using Azure role-based access control (RBAC)
- Learning to Manage data plane access to Azure Cosmos DB by using keys
- Learning to Manage data plane access to Azure Cosmos DB by using Microsoft Azure Active Directory (Azure AD)
- Learning to Configure Cross-Origin Resource Sharing (CORS) settings
- Learning to Manage account keys by using Azure Key Vault
- Learning to Implement customer-managed keys for encryption
- Learning to Implement Always Encrypted
5.4 Implement data movement for an Azure Cosmos DB solution
- Learning to Choose a data movement strategy
- Learning to Move data by using client SDK bulk operations
- Learning to Move data by using Azure Data Factory and Azure Synapse pipelines
- Learning to Move data by using a Kafka connector
- Learning to Move data by using Azure Stream Analytics
- Learning to Move data by using the Azure Cosmos DB Spark Connector
5.5 Implement a DevOps process for an Azure Cosmos DB solution
- Learning to Choose when to use declarative versus imperative operations
- Learning to Provision and manage Azure Cosmos DB resources by using Azure Resource Manager templates (ARM templates)
- Learning to Migrate between standard and autoscale throughput by using PowerShell or Azure CLI
- Learning to Initiate a regional failover by using PowerShell or Azure CLI
- Learning to Maintain indexing policies in production by using ARM templates