
Explore building cloud-native apps with ASP.NET Core by containerizing with Docker, publishing images, and orchestrating with Docker Compose and Kubernetes, using dotnet eight and Nginx reverse proxy.
Discover cloud native development, where containers package apps and dependencies for cloud agnostic, scalable microservices that deploy across AWS, GCP, or Azure with automated, rapid updates.
Outline a cloud-native architecture for practical implementation. Containerize the SQL server database, the API, and the client UI; route traffic with a reverse proxy; orchestrate with Docker Compose and Kubernetes.
Explore containers as portable, lightweight units that package code and dependencies for consistent runs across environments, with docker engine and images enabling immutable, secure deployment.
Compare containers and virtual machines to evaluate when to use each, highlighting Docker, containers' repeatability and immutability, easier hosting, and the management challenges of monitoring, storage, and security.
Explore Docker as a containerization platform that enables developing, shipping, and running applications without a hypervisor, across desktop to production on Linux, Windows, and Azure.
Install and configure docker desktop on Windows with WSL, then explore docker hub and local images to run containers for Redis, MongoDB, SQL Server, and RabbitMQ in a microservices setup.
Pull and run the Microsoft SQL Server docker image, configure the SA password and port mapping, then connect with SQL Server Management Studio or Azure Data Studio.
Compare Docker CLI and UI to manage containers, configure environment variables, ports, and volumes, and learn how scripting the CLI complements the interactive UI for cross-platform automation.
Compare the benefits and tradeoffs of containers versus virtual machines, learn what Docker is, install and configure it, and create and run your first container.
Explore how docker and dotnet work together by building a dotnet project, examining docker support, and shipping a docker image reusable across multiple containers.
Explore .NET containerization support for cloud-native apps by using official Docker images and Microsoft Artifact Registry, with regular updates for the latest runtimes and SDKs to ensure consistent deployments.
Create a .NET api project with Visual Studio or Visual Studio Code, scaffolding a blank solution named conference attendees and an api project, then explore Docker support.
Set up a sample ASP.NET Core project with EF Core data context and entities for attendees, genders, job roles, and referral sources, plus SQL Server configuration and migrations.
Connect your dotnet core API to a containerized sql server, verify the server runs with Azure Data Studio, run migrations to create the conference attendee db, and scaffold API controllers.
Test application demonstrates API communication with a database container via Swagger endpoints, performing get and post operations, and highlights container uptime and the path to containerize the app.
Learn how to create and configure a Dockerfile for a dotnet core ASP.NET app, including base images, ports, and environment variables, and deploy using Visual Studio and Visual Studio Code.
Run Docker containers by ensuring Docker Desktop is up, build images from the Dockerfile, launch containers with Visual Studio or Visual Studio Code, and test via Swagger while debugging.
Containerize a dotnet core app with dotnet publish, set a container repository tag, target linux x64, and produce a release image, then run and test it with docker.
Learn how docker's internal network affects container connectivity, replace localhost with host.docker.internal to connect to the database, and re-publish containers to ensure portable, running images.
Master containerizing an ASP.NET core app with Docker by building images via Dockerfile and dotnet publish, then run containers and connect to a database using Docker internal network.
Explore Docker Compose for cloud-native ASP.NET core apps by adding services and a dotnet core mvc UI, connecting the API with Nsok studio, and implementing logging with seek via YAML.
Configure logging in an asp.net core api using serial log sinks for console and file, with debug level, enriched context, and plan to send logs to the seek central service.
Learn to containerize the seek log aggregator, configure a serial log sink, and connect a containerized API to a containerized seek for modular, portable logging.
Create a new mvc client app, enable docker container support, use Nsok Studio to generate a csharp client from the swagger open api, and register http client services.
Modify the ASP.NET Core MVC UI to sign up conference attendees, scaffold a create form from the attendee model with dropdowns populated by the service client, and display a confirmation.
Explore docker compose as a tool to run multiple containers from a single yaml file. Define containers in the compose file to spin up all required services with one command.
Configure docker compose to orchestrate the api and ui projects, define services and ports, and set dependencies so the api starts before the ui.
Orchestrate a multi-container asp.net core app by adding mysql and seq to docker compose, ensure startup order with depends on, and update appsettings for container names.
Explore how we added logging with Siri Log, used an application called seek, connected an ASP.NET Core MVC client to an API, and orchestrated startup with Docker Compose and YAML.
Explore docker compose and networking by setting up a reverse proxy with nginx, enabling SSL termination, and DNS names to route traffic to containerized services for cloud-native apps.
Explore how a reverse proxy sits in front of web servers to forward requests, balance load, handle ssl, and enable caching and compression with nginx for fast, efficient microservices.
Learn how nginx acts as a high-performance reverse proxy, load balancer, and http cache to route requests to your apps and APIs in dockerized cloud-native architectures.
Configure an nginx container as a reverse proxy for mvc and api apps using docker compose, with a dockerfile and nginx.conf, and enable forwarded headers for routing on a network.
Configure and test Docker Compose with an nginx reverse proxy, set up local routing via the hosts file, and verify traffic to conference attendees and API swagger endpoints.
Learn how SSL termination decrypts encrypted traffic at the load balancer instead of the web server. Centralize SSL certificate management and secure the entry point for cloud-native development with nginx.
Configure ssl termination for the api on the reverse proxy by generating a per-service certificate, updating nginx and docker, and validating secure access via https.
Configure ssl termination for client ui by duplicating and adapting the api cert, updating nginx and docker compose to route ui and api over https, and trust the certificates locally.
Review this section's key achievements: configuring a reverse proxy with nginx, implementing SSL termination with OpenSSL, and enabling secure DNS-based communication between client and API via Docker Compose networking.
Package custom docker images to lock in a version for repeatable builds, then deploy via docker compose, publish to Docker Hub, and tag versions for clear version control.
Learn how to create custom Docker images by memorializing a database with preloaded data, so developers deploy a specific image version without repeated migrations.
Learn to create a custom database image with preloaded data by scripting migrations, seeding the database, and snapshotting a container for repeatable setups.
Create a custom database image from a preloaded SQL Server container, snapshot it with docker commit, and test via docker run and docker compose before pushing to a registry.
Docker Hub serves as the centralized hosting platform for Docker images, featuring public repositories you create after signing up, with your username as the repository name, tags, and customizable pages.
discover how to push a docker image to Docker Hub via Docker Desktop or docker push, verify the upload, and pull it later for portable reuse.
Versioning images with docker tags ensures consistent behavior across environments, enables rollback to stable versions, and clarifies which tag to pull from a registry, such as latest or specific versions.
Learn how to tag docker images, create container snapshots, and manage versions by pushing tagged updates, including latest versus specific tags, while updating a database.
Explore best practices for tagging container images, including semantic versioning, build numbers, and mutable versus immutable tags to ensure consistency across environments.
Customize and package a docker image, tag it for versioning, reuse it in Docker Compose, push to Docker Hub, and decide between private or public repositories with tagging best practices.
Explore environments and environment variables in ASP.NET Core, run Docker images with specific values, and manage multiple Docker Compose files for testing and validation.
Learn how environment variables manage ASP.NET core configuration across development, staging, and production, enabling different database connections, API keys, and endpoints without hardcoding, using IConfiguration and Docker.
Define environment-driven configuration by layering appsettings.json with environment-specific files (development, staging, production) and ASP.NET Core environment variables, access values via IConfiguration, and note swagger behavior varies by environment.
Learn to set and override environment variables in containerized ASP.NET Core apps using Docker Compose, inspect running containers, and switch between development, staging, and production environments.
learn to use multiple docker compose override files to manage environment variables for development, staging, and production, and run docker compose up with a chosen override file.
Override the ASP.NET core appsettings connection string in docker compose to apply environment-specific values, such as production database connections, and secure the compose file.
Explore environment variables and app settings in ASP.NET Core for staging, development, and production, and override settings with environment variables and Docker Compose overrides.
Explore Kubernetes basics, kubectl commands, and local development setup. Learn to configure the dashboard UI and use K80s files with best practices.
Kubernetes is an open source platform that automates deployment, scaling, and operations for containerized applications, using declarative configurations and health probes to ensure high availability, scalability, and disaster recovery.
Explore how a Kubernetes deployment instructs the control plane to create and update app instances, scheduling pods on cluster nodes with resource limits and scaling rules.
Enable Kubernetes in Docker Desktop via settings, Kubernetes tab, and apply restart. Verify by confirming Kubernetes and Docker engines run and executing kubectl get all for a cluster IP service.
Learn to use kubectl as the Kubernetes command line interface to manage clusters and resources. Explore get and apply commands, yaml files, and the Kubernetes dashboard user interface.
Set up the Kubernetes dashboard UI with helm, add the dashboard repository, and deploy it; then access via localhost 8443 using a bearer token generated for a service account.
Create an admin user service account and cluster role binding with YAML files. Then obtain a JWT token and sign into the Kubernetes dashboard to view namespaces, pods, and deployments.
Create and apply a kubernetes namespace with a namespace.yaml named cloud native dev to group resources and ease management using kubectl -f.
Deploy and expose a MySQL database in a Kubernetes cluster by creating a deployment and a service, using a registry image, configuring a node port, and connecting with Data Studio.
Deploy a conference seek app in Kubernetes by creating a deployment and two services (node port and cluster IP), mapping container and service ports, and validating with kubectl.
Build and publish web app images by using a Dockerfile to create images for the API, MVC, and database, tag them, and push to a public registry like Docker Hub.
Configure the MVC client to read the base API URL from configuration instead of hardcoding it. Deploy on Kubernetes with port 3202, verify API communication and centralized logging.
Scale a Kubernetes deployment by increasing replicas to multiple pods, then validate readiness and availability; configure a horizontal pod autoscaler with min one, max ten, and CPU/memory thresholds.
Learn to manage resources with the kubectl CLI, deleting pods and using namespaces. Apply configurations with kubectl apply -f and use volumes to prevent data loss while pods stay up.
Learn how to mount external storage for containerized apps using Docker Compose and Kubernetes, with persistent volume claims for MySQL system, data, log, and backup volumes.
Review key Kubernetes concepts, set up and configure clusters, use kubectl as the key command, explore the dashboard, and create manifest files to manage internal and external access.
Explore dotnet aspire within a cloud-native app development workflow, enable the tool, add services to its orchestration components, and review its tooling, with setup steps.
Explore dotnet aspire, an opinionated cloud-ready stack for observable, production-ready distributed apps built with NuGet packages. It offers orchestration, local development components, and templates via Visual Studio or dotnet CLI.
Enable dotnet aspire by installing the aspire workload and using the dotnet CLI, Docker or Podman, with dotnet 8.0+ and a preview Visual Studio or Visual Studio Code.
Create a new aspire starter project via Visual Studio or dotnet CLI, delivering a cloud-native Blazor front end and API with optional Redis cache.
Run and explore a cloud-native .NET Aspire demo showing a Redis-backed cache, API services, and a Blazor UI; observe centralized, structured logging and trace IDs to track distributed requests.
Explore how dotnet aspire enables creating and enhancing projects with a few lines of code. Experiment with its service discovery and monitoring tools while it remains in preview.
Explore cloud-native development from Docker to Kubernetes, containerize apps with the dotnet CLI, and deploy using Docker Compose and kubectl. Plan local and cloud deployments and ongoing learning.
Welcome to the comprehensive and hands-on course ASP.NET Core – Cloud-Native App Development. In this course, you will embark on a journey to master the art of building cloud-native applications using ASP.NET Core, Docker, and Kubernetes.
This course requires you to download Docker. If you are a Udemy Business user, please check with your employer before downloading the software.
Whether you're a beginner looking to dive into modern web development or an experienced developer looking to harness the power of Docker in your ASP.NET Core projects, this course is designed to equip you with the skills and knowledge you need to succeed.
Course Highlights:
Introduction to ASP.NET Core: Understand the fundamentals of ASP.NET Core, its architecture, and its role in modern web development.
Docker Fundamentals: Explore the world of containerization with Docker and learn how to create, manage, and optimize containers for your ASP.NET Core applications.
Building ASP.NET Core Applications: Dive into ASP.NET Core application development, covering topics like routing, middleware, controllers, and views.
Cloud-Native Principles: Learn the principles of cloud-native development, including microservices architecture, scalability, and fault tolerance.
Containerizing ASP.NET Core Apps: Discover how to containerize your ASP.NET Core applications using Docker, making them portable, efficient, and easy to deploy.
Docker Compose: Master Docker Compose to orchestrate multi-container applications effortlessly and manage dependencies between components.
Monitoring and Logging: Implement robust monitoring and logging solutions to gain insights into your cloud-native ASP.NET Core applications.
Security Best Practices: Learn best practices for protecting your applications and data using ASP.NET Core and Docker containers.
Scaling and Load Balancing: Understand how to scale your applications horizontally and set up load balancing to handle increased traffic.
By the end of this course, you will have the skills and confidence to build, containerize, and deploy cloud-native ASP.NET Core applications with Docker. You'll also be well-equipped to tackle real-world projects and stay on the cutting edge of modern web development practices.
Join us on this exciting journey into the ASP.NET Core, Docker, and Kubernetes world, and let's turn you into a cloud-native development expert. Enroll now and start building scalable, portable, and efficient web applications for the cloud!