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

Detailed Course Outline

Introduction to Cloud Native Applications
  • What are Cloud Native Applications
  • App Monolith vs Microservices
  • Domain Driven Design (DDD) and Bounded Context Pattern
  • Microservices Communication Patterns (Sync, Async, Event Driven)
  • Api Gateway Pattern, Frontend Aggregation Pattern
  • What are Event Driven Applications
  • What are Cloud Architecture Design Patterns
  • Creating Software Architecture Diagrams
Recap: Building Blocks & Architecture Overview
  • Hosting: Containers, Kubernetes and Functions (Serverless / Containers)
  • Storage: Azure Cosmos DB, Azure SQL, Blob Storage
  • Configuration Management, Secrets: Key Vault, App Config Service
  • Messaging Brokers: Service Bus, Event Hub, Event Grid
  • Real Time: Azure SignalR Service, Azure Web PubSub
  • Access & Management: API Management & Application Gateway
  • Authentication & Authorization: Microsoft Identity & Managed Identities
Container Essentials & Patterns
  • Container Recap (Multistage Build, Run, Debug, Publish to ACR)
  • Configuration Management Options (Env Variables, ConfigMaps, Azure App Config Service)
  • Docker Development Workflow and Debugging
  • Using docker-compose.yaml to locally test multiple containers
  • Stateful Containers using Azure Blob Storage and Volume Mounts
  • Understanding and using Sidecar Pattern
  • Azure Container Hosts: Azure Container Apps vs Kubernetes
Schemaless and Event Optimized Data storage using Cosmos DB
  • Cosmos DB Partitioning Strategies
  • From Relational to Schemaless: Does and Don'ts
  • Implementing Domain Driven Design for microservices
  • Cosmos DB Change Feed and Event Sourcing
  • Understanding and implementing the CQRS Pattern
Implementing Microservices using Durable Azure Functions
  • Serverless and Azure Functions Recap
  • Hosting: Serverless vs Containers
  • Implementing OData and Open API Support
  • Hosting and Scaling Function Apps in Containers
  • Durable Functions and Patterns
  • Using Azure Durable Entities for Long running processes and background Tasks
  • Monitoring Durable Functions
  • Implementing a Microservice using Azure Durable Functions
  • Implementing a Saga Pattern using Durable Functions
  • Changing Storage Providers in Azure Durable Functions
Introduction to Azure Container Apps (ACA)
  • What is Azure Container Apps
  • Deploying a muliti-container App (Ingress, Exgress)
  • Working with Secrets
  • Introduction to KEDA (Kubernetes Event Driven Auto-Scaling)
  • Working with Revisions
  • Container Apps Authentication and Authorization using Managed Identities
  • Container Apps Monitoring and Logging (Observability)
Designing & Implementing Event Driven Apps
  • Introduction to Event Driven Architecture
  • Common Message Broker Types in Azure
  • Messages vs Events
  • Message Patterns: Queues vs Topics (Pub/Sub)
  • What to choose when: Service Bus vs Event Hub vs Event Grid
  • Choosing the Messaging Broker: Features and Use-Cases
  • Common Cloud Design Patterns used with Even Driven Architecture
  • Event Sourcing and Integration Events
  • Publishing & Subscribing Event in Microservices
  • Implementing Transactions using the Saga Pattern
  • Orchestration vs Choreography
  • Refactor Microservices to support Event Based Communication
  • Debugging Event Driven Applications
Connecting Microservices using Distributed Application Runtime - Dapr
  • Introduction to Dapr
  • Dapr Environment Setup & Tooling
  • Understanding Dapr Architecture
  • Understanding Dapr Pub/Sub
  • Using Dapr Components to interact with Azure Services
  • Enhance Performance using Dapr State Management
Optimizing and Securing API Access using Api Management
  • API Management (APIM) Recap
  • APIM Policies Recap (Quotas, Throttling, Mock Response, Retry, ...)
  • Understanding Gateway Pattern and Backends for Frontends Pattern
  • API Versions and Revisions
  • Securing API Access using Authentication & Managed Identities-
  • Using Redis Cache in API Management
  • Intro to GraphQL and Use Cases
  • Introduction to APIM Synthetic GraphQL
Implementing Real Time Micro-Frontends & User Interfaces
  • Event Grid Recap
  • Real Time Options: SignalR vs Azure Web PubSub
  • Introduction to Micro Frontends
  • Implementing Reactive Real Time Frontends using Event Grid & Azure Web PubSub
  • Implementing a Micro Frontend as Teams App.