Master Class: Designing and Implementing Cloud Native Applications using Microsoft Azure (DICNMA) – Outline

Detailed Course Outline

Introduction to Cloud Native Applications & Cloud Maturity Model
  • What are Cloud Native Applications
  • Cloud Maturity Model: Monolith vs Microservices Architecture
  • Clean Architecture
  • Introduction to .NET Aspire: Orchestration, Components, Tooling
  • Microservices Communication Patterns
  • Architecture Overview of the Sample App & Services
  • Cloud Architecture Design Patterns
  • Container Hosting & DevOps
  • Provisioning of Azure Resources using Azure CLI & Bicep
  • Introduction to Azure Cost Management
Container Essentials & Configuration Management
  • Docker Development Workflow: Multistage Build, Run & Debug Recap
  • Container builds using Azure Container Registry
  • Using docker-compose.yaml to run multiple containers for local development
  • Kubernetes Developer Essentials
  • Container Configuration Management (Env Variables, Key Vault & Azure App Config Service)
  • Understanding the Sidecar Pattern
  • Optimizing .NET 8 Container Size using chiseled, trim and aot
  • Container Security Patching
Developing & Publishing Microservices using Azure Container Apps (ACA)
  • Azure Container Apps Introduction
  • Azure Container Apps vs Kubernetes
  • Publish Microservices (Ingress, Egress) and manage Revisions
  • Secrets, Managed Identities & Service Connectors
  • Using Azure App Configuration in Azure Container Apps
  • Task Automation using Jobs
  • Scaling & KEDA (Kubernetes Event Driven Auto-Scaling)
  • Stateful Apps using Volume Mounts & Persistent Storage
  • Microsoft Entra ID Easy Authentication
  • Health Probes, Monitoring, Logging & Observability
Stateful Microservices using Azure Functions
  • OData, Open API Support and Dependency Injection
  • Hosting: Serverless vs Containers
  • Environment Variables, Key Vault, and App Configuration
  • Using Managed Identities and Service Connector to access Azure Resources
  • Implementing and monitoring Durable Functions to implement long running processes
  • Azure Durable Entities, Aggregation & Virtual Actors
  • Publishing Azure Functions to Azure Container Apps
NoSQL Data & Event storage using Cosmos DB
  • From Relational to NoSQL: Do's and Don’ts
  • Partitioning Strategies & Performance Optimization
  • Domain Driven Design (DDD) Basics & Bounded Context Pattern
  • Using SDKs to interact with Cosmos DB
  • Using Data Api Builder to expose Cosmos DB
  • Implementing an Event Store using Event Sourcing
  • Creating Materialized Views using Materialized Views Builder
  • Optimizing Read/Write Performance with Change Feed & CQRS
Designing and Implementing Message- & Event Driven Apps
  • Introduction to Messaging
  • Message Types and Channels
  • Introduction to Event Driven Architecture (EDA)
  • Event Types: Domain-, Integration-, Cloud Events
  • Publishing & Subscribing Events using an Event Bus
  • Distributed Transactions
  • Saga: Orchestration, Choreography
  • Common Message Brokers in Azure
Using Distributed Application Runtime - Dapr
  • Introduction to Dapr
  • Understanding Dapr Architecture & Building Blocks
  • Developer Environment Setup, Debugging & State Management
  • Using Dapr Components in Azure Container Apps
  • Service Invocation & Bindings
  • Pub/Sub Messaging
  • Secrets and Configuration
  • Azure Functions & Dapr Bindings
  • Dapr Actors & Saga
  • Observability and Distributed Tracing
Optimizing and Securing Access using Api Management & Application Gateway
  • API Management (APIM) Recap
  • API Versions and Revisions using Azure Container Apps
  • Authenticating to Backend Services
  • Understanding Gateway Pattern and Backends for Frontend Pattern (BFF)
  • Implement BFF using APIM and GraphQL
Connecting Real Time Micro Frontends using Event Grid
  • Micro Frontends: Introduction & Benefits
  • Publish the Shop Micro Frontend to Azure Container Apps
  • Real-time connected Micro Frontend using Azure Event Grid and SignalR
  • Connect the Real Time Kitchen Dashboard
  • Connect the Order Status Micro Frontend