
DevOps
- Business Perspective
- IT Perspective
- Developer Perspective
- Tester Perspective
- Operations Perspective
What is DevOps
- Definition
- Stakeholders of DevOps
- What is SDLC
- Phases of SDLC
- Role Of Dev in SDLC
- Role of Ops in SDLC
What is Agile and Scrum
- Agile Development Process
- Agile Manifesto
- Agile Scrum Work Flow
- Agile Analysis Estimation Techniques
- Types of Roles and Responsibilities
- Problem That DevOps Solves
- Making a DevOps Transition
- Introduction to DevOps Automation
DevOps Life Cycle
- Introduction
- Tools
- DevOps Technology Categories
- Collaboration
- Planning
- Issue Tracking
- Monitoring
- Configuration Management
- Source Control
- Dev Environments
- Continuous Integration
- Continuous Testing
- Continuous Deployment
Linux
- Linux Overview
- What is the Operating system
- What is Unix, Linux
- Unix vs Linux
- Linux vs Windows
- Linux market trends
- Linux flavors
- Linux Architecture
- What are shell kernel command-line utilities
- Linux Boot process
- Linux commands
- Linux admin-level commands
- Reading files
- Redirection operators
- User management
- Group management
- File system management
- Linux volume manager hands-on
- Linux installation using iso
- Directory structure
- Editors
- VMware overview
Shell Scripting
- Shell history and introduction
- Types of shells
- Shebang line in a shell
- Command-line arguments
- Variables
- Types of Operators
- Loops
- Case statement
- Functions
- grep
- Awk
- Sed
- Adv. Script Programs
GIT
- Introduction
- What is a Version Control System (VCS)? Distributed Vs non-distributed VCS
- What is Git and where did it come from?`
- Alternatives to Git
- Installation and Configuration
- Obtaining Git Installing Git
- Common configuration options GUI tools
- Key Terminology
- Clone Working Tree Checkout Staging area Add
- Commit Push-Pull Stash
- Git – Local Repository Actions Creating a repository (git init) Checking status (git status)
- Adding files to a repository (git add) Committing files (git commit) Removing staged files (git reset) Removing committed files (git rm) Checking logs (git log)
- Git – Remote Repository Actions Creating a remote repository (git init) Cloning repositories (git clone)
- Updating the remote repository from the local (git push) Updating the local repository from the remote (git pull)
- Tagging in Git What is Git Tags? Listing tags Lightweight tags
- Displaying tag details (tag show) Annotated tags
- Checking out tags Pushing tags Pulling tags
- Branching in Git
- What is a branch
- A note about <HEAD> Listing branches Create new branch Checkout branch Pushing branches Pulling branches Merging in Git
- Fetching Changes (git fetch) Rebasing (git rebase)
- Git Pull
- Git Workflows Different ways of using Git Centralized
- Feature Branch Gitflow Workflow Forking Workflow
- Creating a branch from a Stash Advanced Repository Actions Removing untracked files (git clean) Remove staged changes (git reset) Revert a commit (git revert)
- Check out a previous commit (git checkout)
- Advanced Branching & Merging
- Deleting a Branch Fast forward merge Three-way merge
MAVEN (Build Tool)
- Issues before in the manual process of the build process
- Automated build process
- Introduction
- Maven Structure and Installation
- Maven Dependencies
- Maven Repositories
- Maven Plug-ins
- Maven Configuration
- Integration with SCM tools
- Maven Project
Continuous Integration Tool
Jenkins
- Introduction
- How to install and configure Jenkins
- How to achieve Continuous Integration with Jenkins
- Jenkins Jobs
- How to schedule jobs in Jenkins
- How to integrate Jenkins with Ant
- How to integrate Jenkins with Maven
- How to integrate Jenkins with Slack
- How to integrate Jenkins with Shell scripts
- How to integrate Jenkins with Python scripts
- Jenkins dashboard
- Jenkins authentication
- Jenkins plugins – how to download and use
- Parameterizing the build
- One-click regression
- Overview of Continuous Integration (CI)
- What does it mean by Continuous Integration? Fundamental of CI
- How CI helps to Agile Development History of Jenkins
- Where Jenkins Fit in Organization Overview of Jenkins community
- Setup and Running Jenkins
- Prerequisites
- Preparing Environment Installing Git
- Setup Account
- Install Jenkins on Ubuntu / Windows Configuring a Node
- Running Jenkins as Stand-Alone/ Apache Server Backup Jenkins data
- Configuring Jenkins server
- Configure Dashboard Configure System Environment Global Properties
- Configure Build Tools Configure Proxy
- Working with Jenkins Build Job
- Create and Configure a job Run a job manually Triggering a Build Scheduled Build job Manual Build job
- Polling SCM
- Maven and ANT Build Step Execute a Shell
- Post-Build Actions Archiving Build Results Notifications
- Working with Automate Testing
- Advanced Jenkins
- Working with Maven Build Monitoring External jobs Distributed builds
- File fingerprint tracking Parameterized Build Job Parameterized Trigger
- Automated Deployment and Continuous Delivery
- Jenkins Plugins
- Change reporting Code coverage Static Analysis
- Performance reporting Style checking
- Secure and Notification in Jenkins
- Overview of Notification Email Notification
- Other Notification
- Best Practices on Jenkins
Configuration Management Tools
CHEF
- What is Chef
- Common Chef Terminology
- Chef Server
- Chef Workstation
- Chef-Repo
- Chef-Client
- Server and Nodes
- Chef Configuration Concepts
- Chef Architecture
Building Web Server Cookbook
- Getting Setup
- Starting the Apache Recipe
- Create a user in chef nodes using a cookbook
- Adding Platform Support to the Cookbook
- Adding Local Chef-Repo to Github
- Install and configure Chef Reporting
Node Object and Search
- What is Node Object
- Search Concepts
- Searching Node Attributes with Knife
Data-Bags
- What is Data Bags?
- Creating user and Sudo Group Data Bags
- Building a recipe to deploy local user accounts From Data Bags
Chef Environments
- What are Environments and why do they matter
- Creating & Configuring Environments
- Deploying to Different Environments
- Viewing and Environments with Knife
Roles
- What are Roles
- Creating A web server Role
- Creating Db Server Role
- Creating a Base Role
Deploying Nodes In Production
- Unattended Node Bootstrapping
Architecture and Process Flow
- Architecture Introduction
- System Requirement
- Components Overview
- Process of Execution &flow
- Conclusion
Terraform
- Introduction to Terraform
- Terraform Fundamentals
- Terraform Configuration Basics
Terraform Modules
- Introduction
- Terraform Scripting
- Terraform stacks
- Terraform State Files
- Setup Module
Vagrant
Introduction
- What is Vagrant
- Virtualization Overview
Setting Up Vagrant
- Virtual Box Installation
- Vagrant Installation
- Vagrant without Virtual Box
Using Vagrant
- Vagrant Machine
- Vagrant Files
- Boxes
- Running Vagrant Machines
- SSH to Vagrant Machine
- Synced Folders
- Networking Basics
- Environment Management
Boxes
- Vagrant Boxes
- Basic Box Management
- Creating Boxes from the existing environment
- Creating custom boxes
DOCKER (Containerization Tool)
Introduction
- Installing Docker on Windows
- Installing Docker on Linux
Working with Containers
- What is container
- docker run command
- Theory of pulling and Running Containers
- Working with images
- Docker Files
- Container Life cycle
Docker Swarm Mode
- Swarm Mode Theory
- Configuring Swarm Mode
- Services
- Scaling Services
- Rolling Updates
KUBERNETES
- What is Kubernetes
- Purpose of Kubernetes for microservices
- How Kubernetes works
- Master components, how works
- Node Components, how works
- How pods works
- Installations and configuration Kubernetes cluster
- Pod lifecycle
- Work with pods
- Work Services
- Work Deployment
Amazon Web Services (AWS)
Introduction to Cloud Computing
- What is Cloud
- Why Cloud?
- Types of Cloud Deployment Models
- Types of Cloud Services
- Future of Cloud Technologies
- Advantages and Disadvantages of Cloud
Introduction to Amazon Web Services (AWS)
- What is AWS?
- How to Subscribe to an AWS account
- What is the AWS Free Usage Tier
- AWS Certification
- Introduction to the AWS Management Console
- List of services given by AWS
Elastic Compute Cloud (EC2)
- What is Amazon EC2?
- Features of Amazon EC2
- Managing the EC2 infrastructure
- EC2 Dashboard
- Pricing for Amazon EC2
Regions and Availability Zone Concepts
- Describing Regions
- Availability Zones, and Endpoints
- Managing instances in an Availability Zone
Amazon Machine Images (AMI)
- Managing AMIs
- Working with Windows, Linux AMIs
- Shared and Paid AMI
- Making an AMI Public
EC2 Instances
- Instance Type
- Instance life cycle
- Differences between reboot, stop and terminate
- Building an EC2 Windows and Linux instances
- To install instances in public and private subnet
- Security via Key Pairs
- EC2 Class and VPC Security Groups
- Managing Elastic IP’s
- A pricing model in EC2 instances
- EC2 with Amazon command-line interface
Amazon Elastic Block Store (EBS)
- Features of Amazon EBS
- Amazon EBS volumes
- Managing EBS volumes
- Increasing the volume size
- AmazonEBS snapshots
Load Balancing (ELB)
- Creating a load balancer
- Internal and external load balancer
- Load balancing protocols
- Security groups for the load balancer
- Health check for the load balancer
- Cross-zone load balancing
- Connection Draining
Auto Scaling
- What is auto-scaling?
- Auto-scaling components
Advantages of auto-scaling
- Creation of launch configuration
- Configuration of auto-scaling policies
- Advantages of using auto-scaling with ELB
Network & Security
- Security Groups
- Elastic IPs
- Placement Groups
- Key Pairs
- Network Interfaces
Networking Services
Amazon Virtual Private Cloud (VPC)
- What is Amazon VPC?
- VPC Essentials
- Default and Nondefault VPC
- VPC Networking and ACL
- Security Groups
- DNS and DHCP Options Sets
- VPC Peering and Endpoints
- Subnet Routing
- VPC Internet Gateway
- Elastic IP addresses and network interfaces
- VPC integration with many other AWS services
- Creating a NAT instance in a VPC
- Configuring a Web application in VPC
- Pricing for Amazon VPC
Amazon Route 53
- Route 53 as your DNS service
- Using Traffic Flow
- Route 53 Health Checks
- Configuring DNS Failover
- Latency Based Routing
- Weighted Routing Policies
- Hosting web portal using Route53
- Bucket Policies
Security & Identity Services
Identity Access Management (IAM)
- IAM Features
- Getting Started With IAM
- Creation of users, groups, roles
- Managing & Writing policies
- Credential Report
- IAM Console and the Sign-in Page
Storage & Content Delivery Services
Amazon S3
- What is Object Storage?
- Data as objects
- Lifecycles of S3
- Managing Buckets
- Accessing S3 storage via tools
- Creation of a static website using S3 storage
Database Services
Relational Database Service (RDS)
- RDS Essentials
- Launching RDS instance
- Selecting the Engine
- Configuring the Database Engine
- Managing RDS Database
- Setting up automatic backups
- Authorizing access to the DB
Amazon CloudWatch
- Amazon CloudWatch Architecture
- List of services monitored by CloudWatch
- Collect and track metrics
- Monitoring memory and disk Metrics
- Monitoring logs, Graphs
- Set Alarms
Cloud Formation
- Building AWS infrastructure as a code
- Design a template
- Create a Stack
- Create a Template from your Existing Resources
- Introduction to JSON
Application Services
Amazon Simple Email Service (SES)
- Simple email service overview
- Configuring Amazon email service
- Amazon SES and Deliverability
- Amazon SES Email-Sending Process
- Email format and Limits of SES
Elastic Cache
- Redis Cache Introduction
- Redis Cache Configuration
- MEM Cache Introduction
- MEM Cache Configuration
Amazon Simple Notification Service (SNS)
- Simple Notification Service overview
- SNS architecture
- Publishers and subscribers
- Creation of a topic
- Subscribing to the topic via Email
- Setting notification for EC2 instance changes
Python Scripting
Introduction
- What is Scripting Language
- Scripting Language vs Programming Language
- Features of Python
- Python Versions
- Installing Python
- Executing Python from the Command line
- IDLE
- Editing Python Files
- Running Python Scripting Windows/Unix/Linux
- Python Documentation
- Getting Help
- Setting up path
Basic Python Syntax
- Basic Syntax
- Comments
- Python Reserved Words
- Naming Conventions
- Print Function
- Variable and Data Types
- Type (), id() Functions
String Manipulations
- Accessing Strings
- Basic Operations
- String Indexing and Slicing
- Conversion Functions
Operators
- Arithmetic Operators
- Relational Operators
- Logical Operators
- Assignment Operators
- Short Hand Assignment Operators
- Bitwise Operators
- Identity Operators
Input Functions
- input() Function
- raw_input() Function
Conditional Statements
- Simple if
- If … else
- Nested if else
- If … elif …
- Single line if statement
Looping Statements
- While loop
- While … else
- Infinite loop
- While … Pass
- For loop
- Nested loops
Control Statements
- Break
- Continue
- Pass
Collections
- List
- Introduction
- Accessing list
- Operations
- Working with lists
- Nested list
- Functions and Methods
- List comprehension
- Iterators
Tuples
- Introduction
- Accessing tuples
- Operations
- Functions and Methods
Sets
- Introduction
- Accessing values
- Working with sets
- Functions and methods
- Set comprehension
Dictionaries
- Introduction
- Accessing values
- Working with dictionaries
- Functions and methods
- Dictionary comprehension
Functions
- Defining function
- Calling function
- Function documentation String
- Types of Parameters
- Functions without parameters
- Functions with positional parameters
- Function with named parameters
- Function with default parameters
- Function with variable length parameters
- Return statement
- Call by value
- Call by Reference
- Scope of variables
- Global variables
- Local variables
- Passing collections to a function
- Passing functions to function
- Lambda() function
- Map() function
- Filter Function
- Reduce() Function
- Iterators
- Generators
- Clusures
- Yield statement
- Decorators
Modules
- Usage of modules
- Creating user-defined module
- Setting path
- Importing module
- From import
- Creating alias name
- dir() function
- main() function
Packages
- Creating a package
- Creating sub-packages
- Usage of __init __.py file
- Importing Packages
- Setting path
Standard Modules
- Math
- Random
- Data and Time
- OS and sys
- String
- Glob
File Handling
- What is file
- Opening files
- Closing files
- Access modes
- Writing data to files
- Reading data from files
- Tell(), seek() functions
- File methods
Working directories