Containers, Cloud and DevOps (88 hours).
Virtualization and containers, Docker, DevOps, cloud technologies and platforms. Exercises with Docker, Azure and GitHub Actions.
- Containerization overview
- Docker, images, containers, Docker Desktop, Docker Hub, development workflow
- Docker CLI: NGINX demo
- File system and volumes - data in Docker
- Demo: ASP.NET app in a container
- Demo: SQL Server database in a container
- Installing Docker Desktop, running containers for NGINX server, Lightstreamer, ASP.NET app, etc.
- Dockerfile: key instructions, creation in VS, structure
- Demo: building a custom image and publishing it to Docker Hub
- Container networking
- Demo: connecting ASP.NET app and SQL Server containers in a network
- Orchestration and container orchestration overview
- Docker compose orchestration tool: running multi-container apps, YAML file, debugging a containerized app
- Kubernetes overview
- Building custom images, connecting containers in networks, orchestrating containers with Docker Compose
- Writing a Dockerfile and building an image
- Running multi-container apps with Docker Compose
- What is Cloud Computing?
- Cloud Computing Models
- Cloud Service Providers
- Microsoft Azure and Azure Services
- Azure for Students
- Azure Portal
- Azure App Service
- Demo: Deploy an ASP.NET Core App to Azure
- Deploying apps to Azure App Service from Azure Portal and Visual Studio
- Deploying Docker containers and containerized apps to Azure Container Instances
- Deploying app to Azure App Service using Visual Studio
- Deploying app to Azure App Service using Azure Portal
- Deploying a container app to Azure Container Instances with Docker Compose
- What is DevOps?
- Lifecycle, Lifecycle Stages, Pipeline, Tools, Culture, Engineers
- DevOps Practices
- CI/CD
- Infrastructure as Code (IaC)
- Version Control
- Monitoring and Logging
- Automation
- Agile software development
- DevOps Trends
- DevSecOps
- Serverless Computing
- Microservices Architecture
- AIOps and MLOps
- CI/CD Overview and Principles
- GitHub Actions as a CI/CD Tool
- Demo: GitHub Actions Workflow for a JS App
- GitHub Actions Components
- Workflows, Jobs, Runners, Steps, Actions
- Syntax Keywords
- GitHub Marketplace
- Demo: Create a GitHub Actions Workflow
- Writing GitHub Actions workflows for build, test, Azure deploy of apps, push of Docker images to Docker Hub, etc.
- IaC Overview
- Configuration files, approaches
- Infrastructure provisioning tools
- Configuration management tools
- Terraform Overview
- Workflow and files
- Install Terraform
- Demo: Terraform and Docker
- Installing Terraform, provisioning an NGINX Docker container, creating an Azure resource group and deploying an Azure Web app with Terraform, using Terraform with GitHub Actions for CI/CD
- App Monitoring
- Overview, metrics, data, types, tools
- Prometheus
- How it works, metric types, jobs, instances, samples, installation, configuration
- Demo: Prometheus and Blackbox Exporter
- Alerting and Alertmanager
- Demo: Prometheus and Alertmanager
- Grafana
- Dashboards and panels
- Demo: Grafana and Prometheus
- Live Demo: Instrumenting and Monitoring a Node.js App
- Installing Prometheus, Alertmanager and Grafana, instrumenting and monitoring Node.js and ASP.NET Core app
- Using Terraform to build and push Docker image to Docker Hub
- Creating GitHub Actions workflow to deploy a WordPress app to Azure Container Instances using a Docker Compose file
- Managing Node Exporter metrics and alerts with Prometheus and Alertmanager