Prerequisites
- As we go forward, we must work on Operating Systems like Linux and Windows.
So, let’s chose Linux Operating System as per demand.
In Linux, we have different flavors. We chose Ubuntu as easy to manage and understand the
Linux fundamentals for Freshers.
Not only that it was used in every Organization as a first choice to manage applications.
Linux
- Linux Architecture (Linux Flavors and Kernel)
- Understanding core principle of Linux OS
- Ubuntu 20.04 LTS version Installation as of today on Oracle VirtualBox
[Ubuntu 20.04 Server] and [Oracle VirtualBox Download]
- SSH and Password based communication
- Manage VMs on VirtualBox with Automation tool Vagrant (It’s only to simplify the
process to creating VMs on VirtualBox or any other target for daily operations, it doesn’t
add any advantage to resume)
[Vagrant Download]
- Core fundamentals for Root Filesystem (/)
- Accessing Server and Managing networking (IP addresses and Classes etc.,)
- Understanding basic commands as initial stage like ssh, ls, ip, cp, mv, mkdir, apt etc.,
- Package management with apt and dpkg commands
- Installing packages on Ubuntu and understand the default files and folders to be
managed
Nginx/Apache, MySQL, WordPress applications
- Linux file editors like nano, vi, vim
- Linux File permissions and ownership management with chown and chmod commands
- System and Network troubleshooting commands
- Disk partitions and LVM (Logical Volume Manager)
- System performance tools
Shell Scripting
- What are commands and shell scripts?
- Types of shells support in Linux OS
- Difference between sh and bash
- Permissions and execution
- Variables and Arrays
- Conditions and Loops
- IO Redirection
- Shell Functions
- Exit codes
- Important commands for scripting and daily operations like grep, awk, sed, find etc.,
- Signals and numbers
Networking
- IP address types like IPv4 and IPV6
- What is IPv4?
- Classes
- IP address
- Public and Private IP addresses
- Subnet
- Broadcast
- CIDR
- Gateway IP address and NAT Gateway
- Routers and Switches
- DNS
- Hostname
- How to calculate IP address using simple formulas?
- How to assign IP address and handle network in Linux OS Machines (VMs or Bare-Metal
Servers)
- Network troubleshooting tools like ping, netstat, nmap, traceroute etc.,
- How to manage Virtual Network will be covered in AWS VPC Network
Ansible (Configuration Management Tool)
- What is Configuration Management?
- Opensource tools for Configuration Management
- Why Ansible and Ansible architecture
- Ansible setup and configuration
- Add-hoc commands
- Understanding hosts and ansible.cfg files
- Add-Hoc commands
- YAML Fundamentals
- Variables and Facts
- groups_vars and host_vars etc.,
- Modules
- Roles
- Playbooks
- Tasks
- Ansible Galaxy
- Manage AWS using Ansible Boto3 module
Docker and Kubernetes
- What is Container and Images?
a. Applications on Virtual Machines
b. Applications on Containers
c. What are container images?
- Why must we run application on Containers?
- Docker and Use cases?
- Docker Fundamentals
- Docker public images from Docker Hub
- Docker private images
- Docker Containers
- Docker Networking
a. Host
b. Bridge
c. None
d. Overlay
- Docker Storage
a. Volume mount
b. Bind mount
c. Tempfs mount
- Docker Backup and Restore
a. Data backup
b. Images
c. Containers
- Docker Registry
a. Local Registry
- Custom Images build using Dockerfile
- Scan tools like Trivy, Clair etc., to identify Vulnerabilities in Images
- Docker Compose
- Kubernetes Architecture
- Kubernetes control plane and compute plane components
- Kubernetes setup on local system using kubeadm
- How to connect/reach k8s cluster using KUBECONFIG file
- Kubernetes authentication and authorization
- Kubernetes workloads
a. Pods
b. Replication Controller
c. ReplicaSet
d. Deployment
e. Daemonset
f. Statefulset
g. Jobs and Cronjobs
- Kubernetes Storage
a. Volumes
b. PV, PVC and StorageClass
c. CSI
- Kubernetes ConfigMap and Secrets
- Services
a. ClusterIP
b. NodePort
c. LoadBalancer
d. ExternalIP and ExternalName
- Ingress Controller
- Network Policy
- CIS benchmarking tools like kube-bench etc.,
- Rest of the topics will be part of EKS Cluster on AWS
Jenkins CICD
- What is CICD?
- Jenkins components
- Why Ansible and Ansible architecture
- Installing and Configuring Jenkins on AWS EC2 or VirtualBox
- Jenkins authentication and authorization
- Plugins
- Global system settings
- Jenkins Jobs
a. Free style Project
b. Multi-branch project
c. Folder
d. Pipeline Project
- How to write a DSL (Domain Specific Language) pipeline for CICD automation?
AWS Administrative Services
- What is Cloud Computing?
- What is IaaS, PaaS, and SaaS?
- Why Ansible and Ansible architecture
- Why AWS Cloud?
- AWS account creation and access
- Secure AWS Count without root access
- Understanding Compute, Monitoring, Authentication & Authorization services, and their
dashboards
- IAM (Identity and Access Management)
a. What is Authentication and Authorization?
b. MFA and IAM administrative access
c. Users
d. Groups
e. Policies (Inline and JSON)
f. Roles
g. Account settings
h. STS (Security Token Service)
- EC2 Dashboard
a. Differences between Bare-metal and Virtual Machines (Cloud and On-Premises)
b. Amazon Machine Image
c. Instance types (Flavors)
d. Security Group
e. Disk
f. Key pairs
g. How to connect to EC2 Instances
h. Instance types like On-Demand, Reserved, Spot, Dedicated Instance and
Dedicated host
i. Launch Template
j. Image creation from EC2 Instance
- AWS VPC
a. What is VPC?
b. Network, Subnet, Route Table, Subnet Association
c. Internet gateway and NAT gateway
d. Elastic IP
e. VPC Peering
f. Transit Gateway
g. VPN
h. ACL
i. Egress Only Internet gateway
j. Endpoints and Carrier gateway
- Storage
a. What is Object, Block and Filesystem Storage?
b. S3 buckets
c. EBS (Elastic Block Storage)
d. EFS (Elastic Filesystem)
e. FSx
f. AWS Storage Gateway
g. AWS Transfer Family
h. Understanding basics of DRS (Disaster Recovery Service) and Backup service
- Databases
a. Understanding Relational and Non-Relational Databases
b. Databases provided by AWS RDS
c. What is Database Engine?
d. Different database engines
i. Amazon Aurora
ii. MySQL
iii. MariaDB
iv. PostgreSQL
v. Oracle
vi. Microsoft SQL Server
vii. How to connect databases from different remote locations?
viii. Running complex database queries
ix. Metrics collector like slow query logs etc.,
x. Network Security Group
- AWS LoadBalancer
a. What is LoadBalancer?
b. Difference between Layer 7 and Layer 4 load balancing?
c. Types of LoadBalancer support in AWS
i. ELB (Elastic Load Balancer)
ii. ALB (Application Load Balancer)
iii. NLB (Network Load Balancer)
iv. GLB (Gateway Load Balancer)
d. Target Groups
- AWS Auto Scaling
a. What is autoscaling?
b. How it helps to spin multiple EC2 instances horizontally?
c. Creating Launch Configuration
d. How to create and manage Auto Scaling groups?
e. Notifications
- AWS Monitoring
a. What is CloudWatch?
b. Alarms
c. Logs
d. Events
e. Metrics
f. X-Ray traces
g. Insights
h. Application Monitoring
- AWS Lambda Functions
a. What is serverless platform?
b. Why AWS Lambda?
c. Application creation
d. Functions
i. Container Image
ii. From scratch
iii. Blueprint
iv. Serverless app repository
- AWS CloudFormation Templates
- Container and Orchestration services
a. ECS (Elastic Container Service) and Fargate
b. ECR (Elastic Container Registry)
c. EKS (Elastic Kubernetes Service) and Fargate
i. Accessing EKS Cluster
ii. Private and Public EKS Cluster
iii. VPC network
iv. IAM roles and policies for EKS
v. Node Group
vi. External DNS for AWS Route 53 for EKS Ingress hosts
- AWS Beanstalk
- AWS Route 53
a. What is DNS?
b. What are DNS domain zones?
c. DNS troubleshooting tools
d. Internal and External Domains in AWS Route 53
- AWS Notification services
a. Simple Email Service
b. Simple Notification Services
c. Simple Queue Service
- AWS Certificate Manager
Terraform (Infrastructure as Code)
- What is Infrastructure as a Code?
- Opensource tools for IaC
- Why only Terraform?
- Terraform Setup and Configuration to communicate AWS Cloud provider
- Terraform workflow
- Terraform configuration language
- Terraform top-level blocks
- Terraform resources
- Terraform variables
- Terraform functions
- Terraform values
- Terraform datasources
- Terraform backends
- Terraform workspaces
- Terraform modules public and custom
- Terraform cloud
- Terraform graph
- Terraform expressions
- Terraform disaster recovery
AWS DevOps
- Basic understanding on DevOps Culture and Opensource tools
a. Opensource tools for DevOps
b. AWS DevOps services
- Amazon CodeCommit
a. What is Version Control System?
b. Difference between Centralized Version Control System (Subversion) Vs
Distributed Version Control System (Git)
c. How to install git package on OS?
d. Fundamentals of Git
e. Git workflow
f. Git commands like add, push, remote, pull, clone, checkout, branch, tags, revert,
reset, log etc.,
g. Branching strategies and Version code using Tags
h. What are AWS CodeCommit?
i. How to push or clone code from CodeCommit?
j. Notifications
k. Pull request
l. Approval rule templates
m. IAM users and Policy for CodeCommit
- Amazon CodeBuild
a. What is Continues Integration?
b. CodeBuild advantages and use cases
c. Benefits of CodeBuild
i. Fully manages
ii. On-demand
iii. Out of the box
d. How to create a Build Spec files? --> writing basic YAML files for CodeBuild to
automate using events
e. How to run CodeBuild?
f. Sample projects for Custom Dockerfile build, Source code development etc.,
g. VPC Endpoints
h. Monitoring CodeBuild API using AWS CloudTrail
i. Security using IAM users and Policy
- Amazon CodeDeploy
a. What is Continues Deployment/Delivery?
b. What was the purpose of CodeDeploy and use cases?
c. How to deploy developed code to On-premises and Cloud Instances?
d. Application, Deployment groups and Deployments
e. Application revisions
f. Monitoring CodeDeploy using CloudWatch tools and CloudTrail
- Amazon CodePipeline
a. what is CICD?
b. Opensource tools for CICD operations
c. CodePipeline for CICD
d. Understanding DevOps Pipeline for application development and deployment
e. Monitoring Pipelines events and API logs using CloudTrail
f. Manual and scheduled triggers of CodePipeline
- Amazon CodeArtifacts
a. What was Artifacts and use cases?
b. Other tools for Artifacts
c. AWS Artifacts for package manager and Image storage etc.,
d. Integration with CodeBuild, CodeDeploy and CodePipeline
- Amazon X-Ray
a. What X-Ray for Developers?
b. X-Ray for Debugging, Tracing and Service map