Duration: 8 weeks
Curriculum
Week 1
- Linux and Containers
- Linux Fundamentals
- Introduction to Linux, basic commands, and file systems
- User management, permissions, and access control
Week 2
- Containerization with Docker
- Introduction to Docker, containerization benefits
- Dockerizing applications, creating Dockerfiles
- Docker Compose and multi-container applications
Week 3
- Introduction to Terraform
- Introduction to Terraform, infrastructure as code
- Creating Terraform configurations for AWS or Azure
- Terraform state management and versioning
Week 4
Week 5
Week 6
- Kubernetes and Project Deployment
- Introduction to Kubernetes
- Deploying applications to Kubernetes
- Kubernetes services, networking, and storage
Week 7-8
Project Ideas
Project 1: Deploy a Web Application
Objective: Deploy a simple web application (e.g., a blog or a todo list app) using Docker, Terraform.
Requirements:
- Containerize the application using Docker.
- Provision infrastructure (e.g., AWS or Azure) using Terraform.
- Deploy the application to a Virtual Machine
Project 2: CI/CD Pipeline for a Microservices Application
Objective: Build a CI/CD pipeline for a microservices-based application using GitHub Actions, Docker, and Kubernetes.
Requirements:
- Create a microservices-based application (e.g., an e-commerce platform).
- Set up a CI pipeline using GitHub Actions to build and test the application.
- Use Docker to containerize the application.
- Deploy the application to a Kubernetes cluster.
Project 3: Infrastructure Provisioning and Management
Objective: Provision and manage infrastructure for a web application using Terraform
Requirements:
- Provision infrastructure (e.g., AWS or Azure) using Terraform.
- Configure the infrastructure using Ansible.
- Deploy a web application to the provisioned infrastructure.
- Configure monitoring and logging.
Project 4: Kubernetes Cluster Deployment
Objective: Deploy a Kubernetes cluster on a cloud provider (e.g., AWS or Azure) and deploy a sample application.
Requirements:
- Provision a Kubernetes cluster using Terraform.
- Deploy a sample application (e.g., a web server) to the cluster.
- Configure monitoring and logging.
- Scale the application and test its resilience.
Expectations
Students will work on a project that involves:
- Containerizing an application using Docker
- Provisioning infrastructure using Terraform
- Deploying the application to Kubernetes
- Managing and monitoring the application
Assessment and Evaluation
- Project completion and deployment
- Code quality and best practices
- Participation and engagement throughout the course