
Explore how Azure Container Apps enables microservices with a fully managed cloud native serverless container platform, and learn to deploy, scale with the Keda scaler, secure, and monitor apps.
Designed for cloud architects and developers with Azure experience, this course enables building microservices in the cloud with Azure container apps, and is not for beginners.
Deploy your first Azure container app through the Azure portal by creating a resource group and selecting a region; then open the app URL to see a quickstart container app.
Outline of this course agenda covers microservices basics, containers and Azure container services, container apps, deployment, KEDA scaling, service connectors, Dapper, container app jobs, security, resiliency, and monitoring.
Offer a brief overview of microservices as the industry’s popular architectural style, highlighting Azure container apps and the shift from monoliths, noting this course provides a high-level view.
Explore microservices as an architectural style that breaks an application into independently deployable, autonomous services that communicate over networks using Rest, GraphQL, or gRPC, and scale and fail independently.
Explore the advantages of microservices, including a short deployment lifecycle, polyglot development across languages, independent scaling, and independent failures where other services remain unaffected.
Explore the drawbacks of microservices, including upfront design and clear service responsibilities, and the challenges of many moving parts, network traffic, tracing, and difficult monitoring.
Explore the concept of containers as the essential building block of Azure container apps. Learn why containers are used and how they support Azure container apps.
Explore containers as a lightweight packaging model that bundles software, dependencies, and configuration for predictable deployments. Compare containers with virtual machines and note performance, density, and isolation for microservices.
Explore how Docker orchestrates containers with a daemon, images, registries, and the client, and learn to customize images using a Dockerfile to build containers.
See how container management tools handle deployment, scalability, monitoring, routing, and high availability for container-based systems, using a six-container example and introducing the most popular container management tool.
Kubernetes dominates container management with routing, scaling, high availability, automated deployment, and configuration management; a pod is the atomic unit, usually hosting one container exposed by a service.
Explore how Azure Container Apps sits with Azure container services and compare Azure Red Hat OpenShift, Azure Kubernetes Services, App Services, Azure Container Instance, and Azure Function App—focusing on control.
Deploy Azure functions as Linux containers by containerizing code, pushing it to a registry, and enabling the function to pull and run the image with serverless, auto scaling, and authentication.
Discover Azure Container Instance, a simple and effective container runtime in Azure that lets you upload a container and it runs with no complex configuration or auto scaling.
Explore App Services' web app for containers capability, which pulls a container from the registry and runs it as an app service, enabling auto scaling, load balancing, authentication, and more.
Explore Azure Kubernetes services, a fully managed cloud Kubernetes platform with no need to manage virtual machines, while supporting all Kubernetes capabilities and automatic upgrades.
Discover Azure Red Hat OpenShift, a fully managed platform built on Kubernetes with high availability and over-the-air upgrades, backed by a Microsoft and Red Hat engineering partnership for reliability.
Explore Azure container registry, a fully managed, geo-replicated Docker image registry used by all Azure container services that can build images, scan vulnerabilities, and deploy to Azure container apps.
Azure container apps sit between AKS and App Service, offering strong configuration, deployment control, and settings management while delivering high productivity and ease of use.
Explore Azure Container Apps for building and deploying fully managed serverless microservices. Learn automatic scaling, secure ingress, and interservice communication with dapper for api endpoints and event-driven processing.
Explore the architecture of Azure Container Apps, detailing how environments contain container apps, which include revisions and replicas, each housing a container.
Explore the Azure container apps environment, covering VNet options (generated vs existing), unified logging and monitoring, scaling and failover, and when to use single or multiple environments.
Explore how the container app runs within the container apps architecture, leveraging networking, logging, and security, and manage the environment, revisions, and replicas from the Azure portal.
Explore revision in container apps, showing how each immutable revision records deployments, enables automatically provisioned traffic splitting, rolling deployments, zero-downtime deployment, and direct revision access.
Azure container apps auto scales out by creating replicas, each an instance of a revision that provides compute and memory, with up to 300 replicas per revision and managed infrastructure.
Explore the underlying, optional open source components of Azure Container Apps, including Keda for autoscaling, Envoy as a cloud-native proxy, and Dapper for interservice communication and state management.
Explore pricing for Azure container apps by comparing consumption and dedicated plans, including serverless scale-to-zero, free tier thresholds, and predictable per-instance costs.
Introduce the World Trip Trip Planner architecture built with Azure container apps. Explore the front-end client, Trip Info API, Trip Pricing API, and Trends Analyzer with simulated data.
Download and install the dotnet 8 sdk to run the world trip application, ensuring you download the sdk—not the runtime—with Windows 64-bit setup demonstrated in the lecture.
Download and install Visual Studio Code on your Windows 64-bit system, accept the agreement, keep the defaults, and launch the editor to begin using this popular development environment.
Install the C# extension (or C# dev kit) and Azure Tools in VSCode, sign in to Azure, and explore container apps, environments, and logs.
Set up the world trip client, configure the trip info api, run the app locally to display destinations with prices and photos, and prepare for deployment to Azure Container Apps.
Deploy container apps to Azure by linking to registries such as Azure Container Registry, ECR, or Docker Hub, and explore deployment approaches: registry-based code deployment, direct-to-container-app code, or existing image.
Create an Azure container registry in a new world trip resource group, enable admin access for image pulls, and grant a role for pulling images.
Deploy the world trip client to the Azure container registry using a dockerfile with nginx, building and pushing the image from VS Code with the Docker extension.
deploy the world trip client container by creating a new container app, configuring it to pull the image from the container registry, and enabling public ingress.
Create a docker file for the trip info api in VS Code. Push to Azure container registry using Azure CLI to deploy a container app with ingress.
Update the client to call the cloud World Trip Info API, fix the course policy, and deploy a new container app revision to serve live trip data.
Learn to split traffic between revisions in Azure Container Apps by switching to multiple revision mode, activating revisions, and assigning equal 50% traffic to old and new versions.
Learn how container apps auto scale per revision using http, tcp, and keda-based custom triggers, with scaling limits, rules, and behaviors; scale to zero on the consumption-only plan.
Configure http scaling for a world trip client in Azure container apps by setting min and max replicas and a concurrent requests threshold of 50 to autoscale with new revisions.
Discover the Kubernetes Event Driven Autoscaler (Keda) and how to use it with container apps through custom scale rules, event sources, and triggers to scale deployments.
Configure two keda scalars in the trip info container app: a cpu scalar triggers scaling at 60% utilization, and a storage queue scalar scales when the queue exceeds five messages.
Discover how service connectors let container apps connect to external Azure services like Key Vault, Azure SQL, and Cosmos DB via environment variables.
Create an Azure SQL database for the pricing API, configure a new West Europe server, enable public access, and load a Trip Pricing table with three rows.
Run the pricing api locally by configuring an Azure SQL connection string environment variable and connecting to SQL Server, then test with the trip pricing endpoint.
Create a World Trip pricing container app, deploy using the same approach as the info API, adjust the docker file, and use a service connector to supply the connection string.
Configure service connector to link your container app to Azure SQL using SQL authentication, the connection string from a secret, and firewall rules, producing a new revision and environment variable.
Explore Dapper, a cloud-agnostic service mesh integrated into container apps that manages service-to-service communication and offers additional capabilities for developing microservices.
Explore how a service mesh eases inter-service communication by handling timeouts, retries, security, monitoring, and circuit breaking, so developers focus on business logic.
Explore the data plane and the control plane as building blocks of a service mesh; the data plane handles protocol conversion, security, and timeouts, with the control plane configuring them.
Compare in-process and sidecar service meshes, and examine their architectures and performance trade-offs. Sidecar offers platform-agnostic and code-agnostic flexibility, and is more popular, unless strict performance needs favor in-process.
Explore Dapr components that extend service mesh with modular capabilities like state store, secret store, and workflow, switchable via component schemas without changing the service API.
Discover how Dapr integrates with container apps to enable service invocation with minimal code changes. Learn about environment-level Dapr components, optional app-id scopes, and the leaner schema that simplifies attachment.
Connect the info API to the pricing API with dapper, enabling the info service to fetch pricing data from the pricing API.
Enable dapper for container apps, configure app IDs, ports, and api logging, then route requests through the dapper sidecar at localhost:3500 and validate via the Dapper App ID header.
Unlock the full potential of microservices in Azure with Azure Container Apps.
Building microservices in the cloud is always a challenge. Managing infrastructure, inter-service communication, containers, monitoring - there is a lot to do in order to make it run.
But now, with the new Azure Container Apps service, it becomes a much easier task.
With this new service you can quickly build and configure microservices and other types of apps in the cloud, utilizing containers and open source engines such as Keda and Dapr to scale and configure your system.
And with this course - you'll learn everything there's to know about Azure Container Apps, from the absolute beginning to the most advanced topics.
By the end of this course you'll be a real expert in Azure Container Apps, and be able to use it to design and build secure, reliable and fast microservices systems.
Here is a partial list of what we'll talk about in this course:
- Introduction to microservices
- Introduction to containers
- Basic use of Container Apps
- Configuring scaling with Keda
- Configuring communication with Dapr
- Connecting to other services using Service Connectors
- Securing Container Apps
- Running jobs with Container Apps
- Logging and monitoring
And lots and lots more...
Now, to make sure that this course is as valuable as possible, I made it extremely practical.
Instead of just going through the various features of Container Apps, talking about each one and perhaps even doing a demo - this course takes a different approach.
We're going to build, together, a full blown microservices system on Container Apps.
Together, we're going to build the WorldTrip website, a fictional trip planner that's based on Container Apps.
We're going to begin with the very basics - take a code and deploy it to container, and then publish it to the cloud as Container App.
And then we're going to add more capabilities, such as scaling, communication, security, monitoring and more.
And when we're done - you'll be able to say that you've built a microservices system on Container Apps!
Now, don't worry about the code. Everything it going to be provided to you.
The system is built using .NET, but you don't have to be familiar with this platform, you just better have some development knowledge.
There is no other course like this!
This is the only Container Apps course that takes you step-by-step towards a complete, full blown system in the cloud. At the end of it - you can definitely call yourself Azure Container Apps Expert.
This course takes you from the absolute basics of Azure Container Apps to the most advanced topics, known only to few. Completing this course will give you all the knowledge required for designing modern, robust, secure and reliable microservices cloud systems, and, as a bonus, will put you in a great position when looking for your next job.
No other course covers this topic in such a comprehensive and thorough way. I've put all my 20+ years of experience with hundreds of clients in this course, and I'm sure you will greatly benefit from it.
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
What do my students have to say about my cloud courses?
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
"This is the best course I have encountered on Udemy or anywhere. And I say this after buying 8 different Udemy courses before" - Arbaaz
"One of the best classes in the world" - Kkvi1357
"One of the best courses I've done at Udemy - top among maybe 50-100" - Russ
"Memi is a true architect willing to get his hands dirty!" - Kevon
"Excellent" - Ashwani
"Highly recommended" - Shashank
"I am loving it <3 the best part is the project based learning !" - Juhi
"The best course I have taken on Udemy" - Eslam
And lots more...
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
Who is this course for?
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
Any person who is involved in Software Architecture & development can benefit from this course.
That includes:
- Software Architects
- Junior developers
- Senior developers
- Architects
- Anyone who is interested in the cloud and microservices
If you're not sure if this course is for you - drop me a note!
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
What are the prerequisites for this course?
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
This course assumes a basic knowledge of Azure and the Azure portal. Note that this is NOT an Azure beginner course.
It's a good idea to have some experience with software development.
In any case, you don't have to have any prior knowledge of Container Apps!
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
About Me
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
I've been working with clouds for more than 12 years, spanning dozens of customers from various fields - Fortune 100 enterprises, start-ups, govt. entities, defense, telco, banking, and lots more.
In addition, I am a certified Azure Architect.
I've been in the software industry for more than 20 years, and a Software Architect for more than 17 years, working with a variety of clients on their microservices systems.
I'm an avid speaker and trainer, having trained thousands of students in various courses.
I love what I do, and my greatest passion (well, besides my family...) is designing modern, practical, and reliable cloud systems for my clients, using the best possible architecture patterns and services.