
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.
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.
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 .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.
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.
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.
Configure docker compose to orchestrate the api and ui projects, define services and ports, and set dependencies so the api starts before the ui.
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.
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.
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 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.
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.
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 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.
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.
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.
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.
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, 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.
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!