Linux, Docker, Kubernetes, Ci/CD and Microservices
- Description
- Reviews
8 Days Training Duration / Virtual Instructor-Led or Classroom Based Training
TRAINING PLAN
COURSE DURATION
• 56+ Hours (8 days) Approx.
PREREQUISITES
• A foundational understanding of IT infrastructure
• Basic knowledge about Software Development Life Cycle
LEARNING OUTCOMES
This course is intended for:
• Learn concepts of Virtualization and Containerization.
• Learn how Applications can be deployed and managed on a cluster of servers.
COURSE OVERVIEW – DOCKER & KUBERNETES
Environment Setup
• AWS or local VM’s
• Connectivity tool: Putty, puttygen and WinSCP
Day 1
Linux Course Overview
• Linux Basics
• Linux Directory Structure
• Linux Basic Command
o clear
o pwd
o cd
o echo
o ls
o history
o whoami
o sudo su
• Copy, Remove, Move and Time Commands
• Touch and cat
Day 2
• Watch
• Env
• Dif and Grep Commands
• Head, tail, sort and more commands
• Zip and tar
• Tr and wc commands
• Disk utilities like free, fdisk, df and du commands
• Getting Help from Command Line user Interface
• W, who, hostname, hostnamectl and uname commands
• Search for files and directories using find and locate commands
• Top command its output explanation
• User and group management commands
o Id
▪ id -u <user>
▪ id -g <group>
o sudo useradd <user>
o sudo passwd <user>
o sudo userdel <user>
o sudo groupadd <group>
o sudo groupdel <group>
• Sed, awk, vmstat and nestat commands
• Vnstat command
• Cut command
• Merge multiple files using paste command
• Connect and manage remote machine using SSH
• Changing files and directory permissions
• Tar and zip commands
• Scheduling future jobs using crontab
• PATH environment variable
• Curl
• Short tutorial on ssh
• Short tutorial on vi text editor
• Ifconfig, ip, netstat, nslookup
• Short tutorial on apt-get and yum
Day 3
o Environment Setup
▪ Get an aws ec2 instance
▪ Install SSH on the box
▪ Connect from Windows through SSH.
▪ Install Docker
o Docker Basics
▪ Virtualization and Containerization
▪ Install git on windows as well as VM
▪ Containerization and Virtualization
▪ Docker Architecture
▪ Docker Image Internals
▪ Docker Container Internals
▪ Docker Lifecycle
▪ Lab:
➢ Lab on Docker image
➢ Lab on pushing image Docker Hub
➢ Lab on Docker Container
➢ Creating an image from our custom container
➢ Export and import images and Containers
➢ Accessing containers from outside the machine.
Day 4
o Understanding the internals
▪ Namespaces.
▪ Control Groups
▪ Filesystem
➢ COW
▪ How are the images stored?
➢ Hands on session
▪ How are the containers stored?
➢ Hands on session
o Build our own Docker image
▪ Discuss about each of the Dockerfile commands.
➢ Difference between RUN, EntryPoint and Command
➢ Difference between Add and Copy
▪ Lab:
➢ Create Docker images with
1. FROM
2. RUN
3. ENTRYPOINT
4. CMD
5. ARG
6. Ect.
▪ Build a Docker image of an existing small application hosted on Tomcat.
o Volume
▪ What is Volume and why do we need them.
▪ Different types of Docker volumes
➢ Lab
• Create a container attached to
1. volume and understand the internals
2. Bind mounts and understand the internals
• Understand the various options
1. How to distinguish them
2. Which volume type to use? When to use them?
▪ Lab:
➢ Create Docker web container connected to backend mysql container.
➢ Backup, crash and restore of mysql container.
o Multi Stage Build
Day 5
o Docker Networking
▪ Understanding networking in general
▪ Docker networking
➢ Lab:
• Use the default bridge
▪ Understand the internals
• Create a custom bridge
▪ Understand the internals
• Understand the difference between default and custom bridge
• Use the host network
▪ Understand the internals
• Use the none network
▪ Understand the internals
o Kubernetes
▪ Introduction to Container Orchestration
▪ Architecture
▪ On premises considerations
▪ Annotations
▪ Install a three-node cluster (one master and two worker)
▪ Scheduling, eviction, affinity, taints and tolerations
➢ Lab on scheduling a Pod on a Node.
▪ Advantages of Kubernetes
▪ Pods
➢ Labs: Creating our own Pods
▪ Understanding Pods
▪ How was the Pod created?
➢ Hands on Deep dive into Pods
▪ Namespaces
➢ Lab: Namespaces
▪ Labels and selectors
➢ Lab: Labels and selectors
▪ Replication Controller
▪ Replica Set
➢ Lab:
o Hands on impact of Replica Set
Day 6
o Deployment
▪ Lab:
➢ Create a deployment
➢ Scale out and scale in
➢ Update and rollback
o StatefulSet
o Daemonset
o Kubernetes Jobs
o Lab:
▪ Kubernetes jobs
o Secretes
o Lab:
▪ Kubernetes Secrets
o Kubernetes Volumes
▪ PV
▪ PVC
o Lab:
▪ Kubernetes volumes
Day 7
• Microservices
o Lab: Implement Companies-Employee–Rating microservices
o What is a Monolith application?
o Challenges of Monolith applications
o How microservices solves it
o Microservices Architecture
o Migrating from monolith to microservices
o Designing a microservice from scratch
▪ Decomposition patterns
• Decompose by business capability
• Decompose by subdomain
o 12 Factor applications
o Richardson Maturity Model
Day 8
o ServiceTypes
▪ Clust IP
➢ Lab: Cluster IP
▪ NodePort
➢ Lab: NodePort
▪ Loadbalancer
o CI/CD
▪ Implement a complete CI/CD using
➢ Git
➢ Jenkins
➢ Maven
➢ Docker and DockerHub
➢ Junit (Illustrative)
➢ Kubernetes