DevOps Fundamentals and Cloud Deployment

Learn the principles of DevOps and how to apply them using various tools and technologies. This course covers Linux, networking, Docker, Kubernetes, Jenkins, GitOps, and more for efficient software deployment and operations.

Objective

  • Understand the DevOps lifecycle and its importance in software development.
  • Learn Linux fundamentals and basic networking concepts.
  • Deploy and manage applications using Docker and Kubernetes.
  • Implement CI/CD pipelines with Jenkins and GitHub Actions.
  • Use GitOps with Argo CD for automated deployments.

Curriculum

DevOps Overview

  • What is a software development life cycle?
  • Waterfall Model
  • Agile Model
  • Lean Methodology
  • What is DevOps?
  • What is DevOps lifecycle?
  • What is the requirement of DevOps?
  • Comparison traditional IT vs DevOps
  • Benefit of DevOps
  • Why is it so Important in Developing Software?
  • DevOps Tools and how it works

Linux Fundamental

  • Introduction to Linux OS
  • Basic Linux Command
  • User and Group management
  • Linux Origins
  • Linux Distributions
  • Kernel, Structure and Shells
  • File System Structure
  • Useful Linux Commands
  • System Administration in Linux

Basic Networking

  • Basic Networking Concepts
  • Linux Networking tools
  • Network Config
  • Firewall and Security
  • IP Address, Subnet Mask, DNS

Web Server

  • What is a Proxy? How does it work?
  • What is a Reverse Proxy?
  • Load Balancer and High Availability
  • Introduction to NGINX
  • Configuring NGINX for Web Hosting
  • Configuring NGINX as a Load Balancer

Docker

  • Introduction to Docker
  • Docker Command
  • Dockerfile Instructions
  • Docker Images
  • Docker containers
  • Working with Docker Registry
  • Deploying Next.js, Spring Boot, PostgreSQL with Docker

Docker Volumes and Compose

  • What are Docker Volumes?
  • How Volume Works in Docker
  • Writing a Docker Compose file
  • Deploying with Persistent Data using Docker Compose

Containerization with Docker and Networking

  • What is Docker Network?
  • Deploying a Multi-Tier Application using Docker Network
  • Container Orchestration and Docker Swarm

Kubernetes Overview

  • Introduction to Kubernetes
  • Kubernetes architecture
  • Kubernetes Installation (Minikube)
  • Creating Deployments and Services

Advanced Kubernetes

  • Setup Kubernetes Cluster with Kubespray
  • Auto scaling the deployment
  • Setup SSL/TLS on Kubernetes with NGINX Ingress

Microservices with Kubernetes

  • What is an API Gateway?
  • Monolithic vs Microservices Architecture
  • Service Mesh and Istio
  • Install Istio with Kubernetes

Helm v3: Kubernetes Package Manager

  • Introduction to Helm
  • Helm Architecture and Commands
  • Deploy Postgresql and Spring Boot via Helm

Jenkins Integration

  • Introduction to Continuous Integration
  • Jenkins Architecture and Pipeline
  • Jenkins integration with Spring and NextJs
  • Continuous Integration using Jenkins

GitOps and Argo CD

  • What is GitOps?
  • Installation of Argo CD
  • CI/CD pipeline with Jenkins and Argo CD

GitHub Actions

  • What is GitHub Actions?
  • CI/CD pipeline with GitHub Actions
  • Use GitHub Actions to build and push image to docker registry

Rancher

  • Overview of Rancher
  • Manage Kubernetes Cluster with Rancher
  • Security in Rancher

Mini-Project

  • Topic will be provided