Description
- Project 1: Implementing private Git server behind corporate firewall.
- Project 2: Sample Java J2EE application’s end to end continuous delivery and deployment automation with integrated and automated testing in a delivery pipeline
- Project 3: Implementing 3 tier enterprise chef architecture and using it to create an end to end automation of leading web application framework automation involving application configuration, database configuration, platform configuration and vm configuration
- Project 4: Managing Webservers and Websites using Puppet
- Project 5: Managing Cloud Infrastructure as a Code
- Project 6: Performing secure user management across multiple servers using ansible.
- Project 7: Creating your own docker image that you can contribute back to open source community
- Project 8: Managing dockers at scale by using kubernetes in a 4 server cluster
- Project 9: Monitoring Windows and Linux platforms and tools using Nagios monitoring system
- Project 10: Bringing up a pre-baked multi server virtual machine blueprint by using vagrant
- Fundamentals of Cloud Computing
- New! – AWS Cloud – EC2, Security Groups, Amazon Machine Images, Key Management, Elastic IP etc.
- New! – Understanding DevOps on AWS using AWS’s own DevOps tools
- Installing Linux
- Architecture and Filesystem of Linux
- Linux Bash Commands
- Installing Software on Linux
- Managing Services on Linux
- Editing files on Linux
- Understanding fundamentals of Software Programming
- New! – Ruby – Syntax, Variables, Decision Making etc.
- New! – Python – Syntax, Variables, Decision Making etc.
- New! – Shell Scripting – Learning to automate Operating System
First thing that we are going to learn is about automating and abstracting virtualization complexities
Understanding various approaches used in automating virtualization
Learning virtualization automation with Vagrant
Vagrant’s use case as Workstation Standardization
Vagrant as Infrastructure as Code
Vagrant as Desired State Configuration Management
Vagrant providers
Vagrant Commands
Vagrant file
Using Vagrant to launch multiple systems at once
Familiarity with Vagrant Boxes
Exporting and Importing Vagrant Boxes
Using Vagrant to bootstrap a system with shell scripts
Impact of Vagrant in DevOps timeline optimization
Understanding vendor behind Vagrant•Where to position Vagrant and where not to
Introduction to Containerization
Understanding Linux Containers
Using LXC
Understanding benefits of docker over LXC
Understanding Docker Architecture
Implementing Docker
Docker commands to start, manage and stop containers
Running docker containers in interactive mode
Understanding ephemeral behavior of docker
Data persistence in docker
Network Stack of docker
Understanding Docker repositories
Using docker hub
Creating own docker images and submitting to Hub
Creating docker image from docker file
Managing docker at scale
Understanding docker’s use case as deployment tool
Understanding concept of Immutable Infrastructure
What is orchestration
Why Kubernetes is required
Understanding of Swarm vs Kubernetes vs Mesos
Understanding Kubernetes Architecture
Implementing Kubernetes cluster on 4 Servers
Managing docker lifecycle using Kubernetes
Creating a deployment in Kubernetes
Managing deployment
Deleting Deployment
Scaling of containers on Kubernetes
Exploring container logs in kubernetes
Understanding Kubernetes Docker Placements
Implementing and Using GUI for Kubernetes
Introduction to Microservices and relevance of Kubernetes in context
Introduction to PaaS and relevance of Kubernetes in context
Understanding of Source Code Repository as the point of handover from Developer team to Operations team
Understanding Wall of Confusion
Understanding Code Conflicts
Understanding Merge Hell
Understanding Possible Merger Issue Resolution approaches
Understanding use case for git and brief history of Linus Torvalds’s contribution
Using git in command line to clone an internet repository
Using local git command line environment setup
Using git to do commit code locally
Integrating local git with remote git server
Using Github.com by creating user account and projects
Using Github.com UI to perform typical source code management tasks
Understanding extra features of GitHub UI over basic git command line
Concepts of bug tracking and collaborative documentation
git clone of github repository
distributed use of git
Creating own github clone
Github enterprise alternatives
Implementing lightweight alternative that looks and feels similar to github.com
Implementing enterprise grade open source github clone system called Git Lab through Infrastructure as Code
Understanding features of GitLab
Understanding unique proposition of GitLab
Retracing typical github.com actions on GitLab
Importing Sample J2EE source code in local git server
Introduction to Continuous Integration
Understanding Jenkins and Hudson relation
Implementing Jenkins through Infrastructure as Code
Understanding concept of Job based automation
Creating first job in Jenkins
Enabling Gitin Jenkins
Integrating Git Server with Jenkins for periodic polling of source code changes
Import sample java j2ee application on git server
Trigger Jenkins job from Git
Understanding Software Builds
Using Maven as a Build Tool
Configure Maven to work with Nexus Repository and Sonarqube Code Quality Analysis
Implement Nexus Repository through Infrastructure as Code
Configure Nexus repository for integration with Maven
Implement Sonarqube Code Quality Analysis
Integrate Sonarqube to be called by maven in a jenkins job for code quality testing
Integrate Nexus to store builds and artifacts
Understanding Deployment Automation
Implementing Deployment Automation
Understanding testing stages and purposes
Implementing various test stages and creating pipeline
End to End Pipeline automation for continuous deployment
Understanding Testing Automation
Implementing Web Testing Automation in Jenkins by integrating Selenium through Python wrapper
Deployment Automation through API calls
Understanding Jenkins Deployment Architecture for better performance
- AWS CodeCommit
- AWS CodePipeline
- AWS CodeDeploy
What is Continuous Monitoring
Need for Monitoring
What is Nagios
What can Nagios Monitor
How does Nagios compare with Competition
Installing Nagios
Configuring Nagios for monitoring local system19
Understanding File structures in Nagios
Understanding inter file relationships and dependencies in Nagios Configuration
Configuring NRPE on Linux server
Using NRPE to monitor Linux systems through Nagios
Configuring NSClient++ on Windows
Using check_nt to monitor Windows systems
Understanding Nagios Core engine alternatives
- Understanding Configuration Management
- Understanding Configuration Automation
- Understanding Desired State Configuration Management
- Understanding Continuous Configuration Automation
- Understanding Idempotent Configuration Management
- Understanding Resources
- Understanding Providers
- Understanding Server Client based Configuration Automation
- Understanding Remote Configuration Automation
Introduction to Automation and Configuration Management with Puppet
Introduction to concepts of resources and providers
Desired State Configuration Management
Managing Puppet Infrastructure as a Code
Puppet Code Life cycle
Understanding architecture components
Installing puppet master and puppet agent
Implementing Puppet Enterprise GUI
Writing Manifests
Running Manifests locally
Running Manifests on Server
Using common resources–file, service, package
Automate anything by executing commands through puppet
Understanding non sequential coding style
Implementing ordering in puppet
Dissecting a puppet code run
Understanding how to write platform independent code in puppet
Using variables
Using facter variables
Puppet conditionals
Implementing modularity in puppet
Using third party modules
Creating own modules
Applying automation modules on agents
Automating web services with Puppet
Introduction to Automation and Configuration Management with Chef
Introduction to concepts of resources and providers in Chef
Desired State Configuration Management push/pull mechanisms in chef
Managing Chef Infrastructure as a Code n Git SCM
Understanding architecture components
Chef component integration flow
Installing chef workstation, chef server, chef node
Implementing enterprise chef with GUI•Writing recipes
Running recipes locally
Running recipes on Server
Using common resources–file, service, package
Automate anything by executing commands through chef
Implementing modularity in chef through cookbooks
Using third party cookbooks
Creating own cookbooks
Uploading cookbooks
Mapping cookbooks
Applying cookbooks on agents
Understanding concept of run list
Using file shipment within cookbooks
Understanding benefits of sequential coding style
Understanding the scalability of chef
Dissecting a chef code run
Understanding how to write platform independent code in chef
Using variables
Using ohai variables
Chef conditionals & loops
Automating databases with Chef
Automating web services with Chef
Understand how chef knife can interact with cloud solutions like ec2
Understand the ways to use chef on AWS cloud
AWS Opsworks and how it works
Difference between Opsworks and CloudFormation
Chef’s cloud first approach
Introduction to Automation and Configuration Management with Ansible
Introduction to concepts of modules and providers in Ansible
Desired State Configuration Management through Push
Understanding Ansible requirements
Understanding enterprise implementation architectures
Ansible code run workflow
Installing Ansible Tower
Installing Ansible Opensource
Understanding concept of inventory
Managing datacenter structures with inventory
Writing playbooks
Running playbooks
Using common modules–file, service,apt, yum
Automate anything by executing commands through Ansible
Understanding benefits of yaml coding
Common automation with Ansible
Platform dependencies in Ansible code
Using variables
Automating web services with Ansible
- Introduction
- Why Terraform?
- Core Terraform Components
- Fundamental Concepts
- Terraform syntax, internals, and patterns
- Terraform Coding Examples
- Provisioning resources with Terraform
- Creating and accessing compute instances