What is DevOps?
Permits corporations to create a secure gadget of labor, wherein groups are able to fast and independently broaden, take a look at, and install code and price quick, safely, securely, and reliably to clients. Through including the understanding of Dev, QA, IT Operations and statistics security into shipping teams and automatic self-carrier gear and systems, teams are capable of use that knowledge of their each day paintings without being depending on different teams. Allows corporations to maximize developer productivity, enable organizational studying, create high worker satisfaction, and win inside the marketplace
Pre Requisites to learn DevOps
- Basic understanding of Linux/Unix system concepts
- Familiarity with Command Line Interface (CLI)
- Familiarity with a Text Editor
Part 0:DevOps Introduction
- Understanding Development
- Development SDLC : WaterFall & Agile
- Understanding Operations
- Dev vs Ops
- DevOps to the rescue
- What is DevOps
- DevOps SDLC
- Continuous Delivery model
- DevOps tools for DevOps SDLC
- DevOps Roles & Responsibilities
Part 1: OS, Virtualization & Networking
Linux Quickstart
- Linux Introduction, Principles & Linux distro
- Command line utilities & Basic commands
- Linux Filesystem
- Text Editors (VIM)
- Filters & I/O Redirections
- Users & Group administration
- File permissions & Ownerships
- Sudo
- Software Management: Redhat & Ubuntu
- Useful tools: ssh, telnet, scp, rsync, disk utils, backups etc
- Service & Process management
- Systems and HW stats
Networking fundamentals Part 1
- Components of computer networks
- Classification: LAN, WAN, Peer to Peer network, Server based
- Switches
- Routers
- Network Architecture
- Protocols
- Port numbers
- DNS
- DHCP
- IP Addresses
Vprofile Web Application Architecture.
- Infrastructure
- Network layout
- Services & Components
- Databases
- Datastores
- Architecture from a DevOps perspective.
Virtualization
- Introduction & Real time use cases
- Hypervisors
- Virtualbox
- Vagrant
- Vagrant on windows
- Vagrant on Linux
- Vagrant Cloud
- Automating virtual machines
- Vagrant & Virtualbox for Lab setup
- Create & Manage your own Lab on any computer
Implementing Vprofile on VM’s
- Setup all vprofile services in Single VM
- Create multiple vm’s through Vagrant
- Setup Vprofile multistack in multiple vm’s
- Validate and test Multistack Vprofile App
Part 2 Cloud computing
- Introduction to cloud computing.
- DevOps & Cloud
- Public, Private & Hybrid cloud
- IAAS, PAAS & SAAS
- Cloud computing & DevOps
AWS part 1
- Introduction to Public cloud with AWS
- Setup your own account and Manage it
- IAM: Manage users, groups, roles & policies
- Secure your AWS account
- Ec2 services: Instances, AMI, EIP, Security groups, key pairs
- EBS: Manage Volumes for ec2, backups & restores
- ELB: Load balance your own website
- S3: Use S3 to host websites & as a centralised storage
- RDS: Setup & Manage your own Highly available Database
Vprofile on AWS cloud.
- Create multiple Ec2 instances for setting up Nginx and Tomcat
- Setup and use Elasticache, ElasticSearch, SQS, RDS, S3 for Vprofile backend services.
- Setup AWS Elastic Load Balancer in front of Nginx or Tomcat for High Availablity.
- Monitor everything with AWS Cloudwatch.
Part 3 Automation, Orchestration & Config Managment
Version control system with Git
- What is VCS & why it is needed
- DevOps use cases
- Setup your own repo with git
- Manage your code base/source code with GIT & GITHUB
Continuous Integration with Jenkins
- Introduction to Continuous Integration.
- Build & Release and relation with DevOps
- Understanding development and developers
- Why continuous integration
- Jenkins introduction and setup
- Jenkins projects/jobs
- Jenkins plugins
- Jenkins administration:
- Users
- Nodes/slaves
- Managing plugins
- Managing software versions
- Introduction
- Phases
- Java builds
- Build and Release job/project setup
- Nexus:
- Intro & Setup
- Software versioning & Hosted repository
- Integration with Jenkins
- Continuous integration job/project setup
- Complete Jenkins project:
- Packing Artifacts
- Static Code Analysis
- Tomcat setup Staging & productions
- Artifacts deployments to web servers from Jenkins
- Build Pipeline
- Jenkins not just CI tool anymore
- More DevOps use cases of Jenkins
Continuous Integration for Vprofile Application.
- Setup Jenkins, Maven and Git for building Vprofile source code.
- Sonarqube for Code Analysis.
- Version vprofile softwares and upload it in Nexus repository.
- Deploy Vprofile software to tomcat server.
- Continuous Software Testing for Vprofile after deployment.
- Vulnerability testing for Vprofile with security tools.
- Alerting Developers for any build issues.
- Complete Continuous Delivery Build Pipeline for Vprofile on Dev, QA, UAT and Production Environment.
Ansible
- Configuration Management & Automation
- What is Ansible & its features
- Ansible setup on local & cloud
- Understanding Ansible architecture & Execution
- Inventory
- Ad-hoc commands: Automating change Management with Ad Hoc commands
- Playbook Introduction
- Ansible configuration with ansible.cfg
- Ansible Documentation
- Modules, modules & lots of modules
- Writing playbook for webserver & DB server deployments
- Tasks
- Variables
- Templates
- Loops
- Handlers
- Conditions
- Register
- Debugging
- Ansile Roles
- Identify server roles
- Roles structure
- Creating, Managing and executing roles
- Ansible Galaxy
- Exploring Roles from Galaxy
- Download Galaxy roles and integrate with your code
- Ansible Advanced Execution
- Improving execution time
- Limiting and selecting tasks
- Troubleshooting and Testing
Puppet
- Config Management with Puppet
- Difference between Puppet & Ansible
- Puppet server & agent setup
- Writing puppet manifests
- Managing multi OS(RedHat & Ubuntu) with puppet
- Setup LAMP Stack with Puppet
- Resources
- Variables
- Selectors
- Classes
- Variables
- Conditions
- Modules
- Puppet Forge modules:
- Apache
- VCS
- Firewall
- Mysql
- Templates
- Hiera
Vprofile Continuous Delivery project
- What is Continuous delivery & why its needed
- Continuous delivery vs continuous deployments
- Overview of the project
- Infrastructure setup for the project
- Integrating, AWS, Git, Jenkins, Nexus, Ansible, Webservers, Backends & DBservers
- Project execution step by step.
- Build triggers
- Build Pipeline
- Deploy latest/old/any version of artifacts on Dev, QA, UAT & Production Environment.
Part 4 Dockers & Containers
- What are containers
- Difference between VM’s & Containers
- Hypervisor Vs Docker Engine
- Docker Introduction
- Docker installation
- Images & containers basics
- Images
- Docker Images Deep Dive
- DockerHub
- Pull & Push images
- Building your own Image with Dockerfile
- Docker & Jenkins integration
- Hosting & Managing Images
- Containers
- Deep Dive
- Running, Stopping, Deleting, Inspecting & Managing containers
- Docker networking
- Web server examples
- Local Development workflow
- Docker Compose
- Automated WorkFlow/ Continuous delivery of dockers
- Docker Orchestration with Kubernetes
- Microservice Architecture
- Why Containers for microservices
- Kubernetes Intro & Architecture
- Kubernetes setup
- Running Docker containers on kubernetes
- Kubectl
- Pod
- Service
- Replication controller & Set
- Deployment
- Whats Next in container world
Containerizing Vprofile Applications
- Learn to containerize Vprofile all the services with Dockerfile and Build.
- Continuous Integration of docker images from Jenkins.
- Docker compose to run multistack vprofile app on Docker Engine.
- Kubernetes Definitions for Vprofile all the containers and services.
Part 5: Security & High Availablity
Networking fundamentals Part 2
- Ip Addresses & Subnet Masks
- IP Address Ranges
- Subnetting
- Private Vs Public networks
- High Availability
- Firewalls & NACL
AWS Part 2
- Ip Addresses & Subnet Masks
- VPC: Setup Highly Available & Secure network on AWS
- CloudWatch: Monitor you AWS setup
- Autoscaling with ELB
- Beanstalk: Setup and automated deployments
Next Level of DevOps > DevSecOps
- Information Security Overview
- Security Threats and Attack vectors
- Hacking concepts
- Hacking Phases
- Attack Types
- Penetration Testing
- DevOps & PenTest
- PenTest tools
- Kali Linux OS
- Vulnerability Assessment tools
- Metasploit
- Nmap
- Nessus
Part 6: More DevOps tools (Optional)
- Chef
- Chef Overview and comparison with Ansible & Puppet
- Understanding chef concepts.
- Writing chef recipes
- Creating cookbooks
- Hosted chef server
- Knife
- Bootstrapping/ adding nodes
- Roles
- Berkshelf
- Setting up your own chef server
- Managing chef from Chef UI
- Databags
- Chef supermarket
- Monit
- SonarQube integration with Jenkins
- Troubleshooting issues in DevOps implementations
- AWS automation with Ansible
- AWS cli, S3fs & S3cmd
- Terraform