K3 Professional: cloud, quality, DevOps
Run an application securely in Azure: infrastructure as code, CI/CD, observability, messaging and tests that hold up.
Who it is for
For developers with .NET experience who want to deliver and run their applications in Azure themselves.
Prerequisites
K2, or a year of professional experience with .NET and the placement test.
Afterward, you can
- Keep Azure resources, permissions and costs under control
- Describe and roll out infrastructure with Bicep and azd
- Run applications without keys in the code, with managed identity and Key Vault
- Observe applications with OpenTelemetry, Application Insights and KQL
- Integrate reliably with Service Bus and Event Grid
- Build pipelines that test, version and deliver only after approval
- Write tests that hold up, also for time, ports and load
- Use timeouts, retries, caching and rate limiting the right way
- Understand Linux, networking, DNS, TLS and mail well enough to clear up incidents
- Write concurrent and parallel code without race conditions and deadlocks
- Measure performance and improve it deliberately, up to Native AOT
- Build serverless flows with Azure Functions and Durable Functions
- Steer reliability with SLOs, error budgets, runbooks and postmortems
Contents
- 3.0
25 h
Infrastructure from the ground up
Linux and the shell in a container, TCP/IP and ports, DNS, TLS and PKI, proxies and load balancers, firewalls and NSGs, SSH, mail with SMTP, SPF, DKIM and DMARC
- 3.1
20 h
Azure fundamentals
subscriptions, resource groups, RBAC, regions and the EU data boundary, costs and budgets
- 3.2
25 h
Infrastructure as code
Bicep, azd, environments, what-if and its limits
- 3.3
28 h
Security in operation
managed identity, Key Vault, no keys in code or parameters, Front Door and WAF basics, never printing secrets, cryptography (hashing, encryption, signing, keys and PKI in operation), the supply chain with an SBOM and package audits
- 3.4
25 h
Observability
OpenTelemetry, Application Insights, KQL, alerts, health checks
- 3.5
25 h
Messaging and events
Service Bus, queues, Event Grid, idempotency, dead letters
- 3.6
20 h
Data in the cloud
Azure SQL, Blob Storage, an overview of Cosmos DB and PostgreSQL with vectors, backup and restore
- 3.7
30 h
CI/CD
Azure Pipelines and GitHub Actions, tests in the build, NuGet feeds and versions, approvals before a deployment
- 3.8
25 h
Advanced testing
integration against real dependencies, test data, flaky tests (time, FakeTimeProvider), free ports, load tests
- 3.9
20 h
Resilience and performance
timeouts, retries with care, caching, profiling, rate limiting
- 3.11
25 h
Concurrency and parallelism
threads and the thread pool, the Task Parallel Library, Parallel.ForEach and PLINQ, async versus parallel, lock, SemaphoreSlim, Interlocked, concurrent collections, channels, race conditions and deadlocks, the memory model, the actor model as the way out
- 3.12
15 h
Performance in .NET
BenchmarkDotNet, Span<T> and memory, the garbage collector, allocations, source generators, Native AOT
- 3.13
15 h
Serverless with Azure Functions
the isolated worker model, triggers and bindings, Durable Functions, delivery, observability and costs
- 3.14
15 h
Aspire in depth
the app model, integrations, the dashboard and service defaults, testing with Aspire, delivery
- 3.15
20 h
Operations and reliability (SRE)
SLIs, SLOs and error budgets, on-call and the incident process, postmortems, runbooks, chaos engineering with Azure Chaos Studio
- 3.10
50 h
Final project
the Kladde in Azure, delivered fully automatically
About 383 hours in all (indicative).
Lessons
You see the text and video of every lesson here on the site after buying the course; the titles and goals are already shown. A self-study course: you work through the lessons in order and check your exercises yourself against the solutions.
You can read the first module (3.0) for free, with text and video, without signing in: so you see how the course works before you buy.
The lessons stand under their modules, in the order of the course. Click a module to open or close its lessons.
3.0 Infrastructure from the ground up
Indicative: 25 hours · 7 lessonsfree to read
Lesson 1 · about 240 minutes
Linux and the shell in a container
Lesson 2 · about 240 minutes
TCP/IP, ports and what a connection is
Lesson 3 · about 180 minutes
DNS
Lesson 4 · about 240 minutes
TLS and the chain of trust
Lesson 5 · about 180 minutes
Proxies and load balancers
Lesson 6 · about 180 minutes
Firewalls, NSGs and SSH
Lesson 7 · about 120 minutes
Mail: SMTP, SPF, DKIM and DMARC
3.1 Azure fundamentals
Indicative: 20 hours · 6 lessons
Lesson 8 · about 180 minutes
Azure at a glance
Lesson 9 · about 180 minutes
Costs first: subscription and budget
Lesson 10 · about 180 minutes
Order: management groups, resource groups, names, tags, locks
Lesson 11 · about 240 minutes
Who may do what: Entra ID and Azure RBAC
Lesson 12 · about 180 minutes
Rules for everyone: Azure Policy, regions and the EU data boundary
Lesson 13 · about 120 minutes
Azure from the command line: CLI, PowerShell and Resource Graph
3.2 Infrastructure as code
Indicative: 25 hours · 6 lessons
Lesson 14 · about 180 minutes
Why infrastructure as code
Lesson 15 · about 240 minutes
The Bicep language
Lesson 16 · about 240 minutes
Modules and reuse
Lesson 17 · about 240 minutes
What-if and its limits
Lesson 18 · about 240 minutes
azd: the application and its infrastructure
Lesson 19 · about 240 minutes
Environments
3.3 Security in operation
Indicative: 28 hours · 8 lessons
Lesson 20 · about 240 minutes
No keys: managed identity
Lesson 21 · about 240 minutes
Key Vault
Lesson 22 · about 240 minutes
Never print secrets
Lesson 23 · about 240 minutes
Public endpoints: Front Door and WAF in outline
Lesson 24 · about 120 minutes
Least privilege and Defender for Cloud
Lesson 25 · about 180 minutes
Hashing, encrypting, signing
Lesson 26 · about 180 minutes
Keys and PKI in operation
Lesson 27 · about 120 minutes
Securing the supply chain
3.7 CI/CD
Indicative: 30 hours · 7 lessons
Lesson 28 · about 240 minutes
Continuous integration with GitHub Actions
Lesson 29 · about 240 minutes
Azure Pipelines
Lesson 30 · about 240 minutes
Tests in the build
Lesson 31 · about 300 minutes
Versions and NuGet feeds
Lesson 32 · about 240 minutes
Delivering without a secret
Lesson 33 · about 240 minutes
Approvals before the deploy
Lesson 34 · about 180 minutes
Secure and fast pipelines
3.4 Observability
Indicative: 25 hours · 6 lessons
Lesson 35 · about 240 minutes
Logs, metrics, traces
Lesson 36 · about 240 minutes
Application Insights with OpenTelemetry
Lesson 37 · about 240 minutes
Custom traces and metrics
Lesson 38 · about 300 minutes
KQL: asking the telemetry questions
Lesson 39 · about 240 minutes
Health checks and alerts
Lesson 40 · about 120 minutes
Clearing up an incident
3.6 Data in the cloud
Indicative: 20 hours · 5 lessons
Lesson 41 · about 240 minutes
Azure SQL
Lesson 42 · about 120 minutes
Changing the schema while the old version runs
Lesson 43 · about 240 minutes
Blob Storage
Lesson 44 · about 240 minutes
Cosmos DB and PostgreSQL with vectors at a glance
Lesson 45 · about 240 minutes
Backup and restore
3.5 Messaging and events
Indicative: 25 hours · 7 lessons
Lesson 46 · about 180 minutes
Why messages
Lesson 47 · about 300 minutes
Service Bus: queues
Lesson 48 · about 180 minutes
Topics, subscriptions and sessions
Lesson 49 · about 240 minutes
Idempotency
Lesson 50 · about 180 minutes
Dead letters and errors
Lesson 51 · about 180 minutes
Event Grid
Lesson 52 · about 120 minutes
Background work in Container Apps
3.8 Advanced testing
Indicative: 25 hours · 6 lessons
Lesson 53 · about 300 minutes
Integration against real dependencies
Lesson 54 · about 180 minutes
Test data
Lesson 55 · about 180 minutes
What unit tests don't see: registration and configuration
Lesson 56 · about 240 minutes
Flaky tests: time and concurrency
Lesson 57 · about 180 minutes
Free ports and parallel tests
Lesson 58 · about 300 minutes
Load tests
3.9 Resilience and performance
Indicative: 20 hours · 5 lessons
Lesson 59 · about 180 minutes
Timeouts and honest errors
Lesson 60 · about 240 minutes
Retrying with care
Lesson 61 · about 240 minutes
Caching
Lesson 62 · about 180 minutes
Rate limiting
Lesson 63 · about 240 minutes
Measuring instead of guessing: profiling
3.11 Concurrency and parallelism
Indicative: 25 hours · 8 lessons
Lesson 64 · about 180 minutes
Threads and the thread pool
Lesson 65 · about 180 minutes
Async is not parallel
Lesson 66 · about 180 minutes
Task Parallel Library, Parallel and PLINQ
Lesson 67 · about 180 minutes
Synchronizing: lock, SemaphoreSlim, Interlocked
Lesson 68 · about 180 minutes
Concurrent collections and channels
Lesson 69 · about 240 minutes
Finding and fixing race conditions and deadlocks
Lesson 70 · about 120 minutes
The .NET memory model in plain words
Lesson 71 · about 120 minutes
The way out: the actor model
3.12 Performance in .NET
Indicative: 15 hours · 5 lessons
Lesson 72 · about 180 minutes
Measuring right with BenchmarkDotNet
Lesson 73 · about 180 minutes
Span<T>, Memory<T> and fewer allocations
Lesson 74 · about 180 minutes
The garbage collector
Lesson 75 · about 180 minutes
Source generators instead of reflection
Lesson 76 · about 120 minutes
Native AOT
3.13 Serverless with Azure Functions
Indicative: 15 hours · 4 lessons
Lesson 77 · about 180 minutes
Serverless and the isolated worker model
Lesson 78 · about 240 minutes
Triggers and bindings
Lesson 79 · about 240 minutes
Durable Functions
Lesson 80 · about 120 minutes
Delivering, observing and costing Functions
3.14 Aspire in depth
Indicative: 15 hours · 5 lessons
Lesson 81 · about 180 minutes
The app model
Lesson 82 · about 180 minutes
Integrations: hosting and client
Lesson 83 · about 180 minutes
Dashboard and service defaults
Lesson 84 · about 180 minutes
Testing with Aspire
Lesson 85 · about 120 minutes
Delivering: azd, aspire publish, aspire deploy
3.15 Operations and reliability (SRE)
Indicative: 20 hours · 6 lessons
Lesson 86 · about 240 minutes
SLIs and SLOs
Lesson 87 · about 180 minutes
Error budgets
Lesson 88 · about 180 minutes
On-call and the course of an incident
Lesson 89 · about 180 minutes
Blameless postmortems
Lesson 90 · about 180 minutes
Runbooks
Lesson 91 · about 180 minutes
Chaos engineering with Azure Chaos Studio
3.10 Final project
Indicative: 50 hours · 12 lessons
Lesson 92 · about 180 minutes
Planning and estimating
Lesson 93 · about 300 minutes
The empty subscription
Lesson 94 · about 300 minutes
The pipeline from scratch
Lesson 95 · about 300 minutes
The application without keys
Lesson 96 · about 300 minutes
The import via Service Bus
Lesson 97 · about 300 minutes
Observation and alerts
Lesson 98 · about 300 minutes
Resilient under load
Lesson 99 · about 180 minutes
Recovery rehearsed
Lesson 100 · about 240 minutes
Teardown and rebuild
Lesson 101 · about 240 minutes
Review and operations manual
Lesson 102 · about 180 minutes
Incident drill
Lesson 103 · about 180 minutes
Wrapping up
Final project: the Kladde
What the Kladde can do after this course
In Azure, delivered fully automatically: Bicep and azd, a pipeline with tests, Key Vault and managed identity, OpenTelemetry, an import through Service Bus and a rehearsed restore.
The pipeline and the infrastructure run from an empty subscription. At the end you clear up an incident from the logs and write it up in a postmortem that you check yourself against a checklist.
Certifications
An offer, never a requirement: these Microsoft exams fit this stage. You take them at Microsoft; we are not a Microsoft training partner.
The entry point to the Azure certifications.
AZ-104 Azure Administrator Associate
A prerequisite for AZ-305 and one of the routes to AZ-400.
AI-200 Azure AI Cloud Developer Associate
Containers, databases with vectors, messaging, Functions, Key Vault and observability; expects Python skills.
Requires an associate certification, such as AZ-104.
Keep learning with Microsoft Learn
Microsoft's learning paths and documentation that go with this course.
- Microsoft Azure Fundamentals: Describe cloud concepts
- Microsoft Azure Fundamentals: Describe Azure architecture and services
- Microsoft Azure Fundamentals: Describe Azure management and governance
- AZ-104: Prerequisites for Azure administrators
- .NET on Azure Container Apps overview
- Introduction to Bash
- Introduction to Azure Virtual Networks
- Managed threading basics
- Guide for running C# Azure Functions in the isolated worker model
- Architecture strategies for defining reliability targets