DevOps
Module 1: Cloud computing
- What is Cloud Computing
- How Cloud Computing are helpful
- Cloud’s role in DevOps orchestration
- What is AWS
- Use cases in AWS
- Companies using AWS and Market tends
- Different Services offered in AWS
- Use case: – Highly available fault tolerant systems
- Understanding availability zone
- region
- Creating your own account in AWS
- Creating a VPC
- subnet
- network gets way
- Running your own EC2 instance
- Connecting in EC2 and installing https in EC2
- S3
- Over viewS3
- SNS. Cloud watch
- Understanding the Serverless (Lambda)
Module 2: DevOps History and evolution of DevOps
- What is the market trend of DevOps
- Which back ground people can switch to DevOps
- Some typical tool stack for DevOps Jobs
- How to get maximum from the course
- Client-Server and Distributed Version control system
- Git
- Advantages of Git over SVN
- Git User trends
- Different Git tools (Git Desktop. Kraken)
- Git Installation and Configuration
- Setting up Git Bash and Git UI
- Creating first repository: Local
- Git commands: add
- commit
- push
- status
- history
- Branch why what? Understanding Master
- Creating a Branch
- Merging a Branch
- Resolving Merge conflicts
- checking the difference
- Understanding the tags: Modifying
- undoing
- deleting and discarding
- What
- Use Case of Unit Testing
- Different kind of Unit Testing
- What is JUnit
- Writing a Simple JUnit Test
- Test NG introduction
- Write a Unit Testing Case in your Favorite language.
- Linux Administration
- A Linux Introduction
- Open Source Philosophy
- Distributions
- Embedded Systems
- Command Line Basics
- Basic Shell
- Command Line Syntax – ls
- Command Line Syntax – $PATH, Case Sensitivity
- Command Line Syntax – Basic Commands
- Command Line Syntax – uname
- Command Line Syntax – Command History, Command Completion
- Command Line Syntax – cd and pwd
- Shell Configuration Files
- Variables – Environment / System Variables
- Variables – User Defined
- Globbing
- Quoting
- Formatting Commands
- Working with Options
- Using the Command Line to Get Help
- Man
- Info
- locate, find, whereis, and using /usr/share/doc/
- Exercise: Man Page Walkthrough
- Exercise: Basic Command Line
- Using Directories and Listing Files
- The Linux File System
- Files, Directories
- Hidden Files and Directories
- Home
- Absolute and Relative Paths
- Exercise: Maneuvering the Linux File System
- Creating, Moving and Deleting Files
- Files and Directories
- Case Sensitivity
- Simple Globbing and Quoting
- The Power of the Command Line
- Archiving Files on the Command Line
- Files, Directories
- Archives, Compression
- Searching and Extracting Data from Files
- Commands (Revisited)
- Command Line Pipes
- I/O Redirection
- Regular Expressions
- Exercise: Practicing with Pipes and Grep
- Turning Commands into a Script
- Basic Text Editing
- Basic Shell Scripting
- Basic Shell Scripting, Continued
- Exercise: Using the vi Text Editor
- Available
- The Linux Operating System
- Choosing an Operating System
- Windows, Mac, and Linux Differences
- Distribution Life Cycle Management
- Understanding Computer Hardware
- Hardware
- Where Data is Stored
- Kernel
- Processes
- syslog, klog, dmesg
- /lib, /usr/lib, /etc, /var/log
- Your Computer on the Network
- Internet, Network, Routers
- Domain Name Service and the Default Gateway (Network Router)
- Network Configuration
- Security and File Permissions
- Basic Security and Identifying User Types
- Root and Standard Users
- System Users
- Creating Users and Groups
- User IDs
- User Commands
- Group Commands
- Exercise: Managing User Accounts
- Exercise: Creating User Groups
- Managing File Permissions and Ownership
- File/Directory Permissions and Owners
- Special Directories and Files
- Symbolic Links
- System files, Special Files, and Sticky Bits
- Use Case in Maven
- Ant vs Maven
- Maven installation and Configuration What is Maven Central
- Dependency Management why and How
- Introduction to POM
- Build lifecycle
- Maven repositories Maven plugins
- Using a POM file to run unit testing (Jenkins)
- Multi-module POM
- dependency hierarchy
- Artifactory management
- Maven Release and Snapshot
- Assignment- Create a Maven Hello world Java Project
- Run the Unit testing and and create the artifact for that
- Use Case (How Artifactories are managed)
- Artifact Lifecycle
- Basic use of Sonatype Nexus
- Artifactory Live demo
- Use Case WebServer Deployment in DevOps
- Architecture
- Different types of Webserver
- Proxy servers
- Mail Server
- Installation of Tomcat
- Manual Deployment
- Deploying a Web application using Maven
- Idea about Automated Deployment using Continuous Integration
- Create a Tomcat Server and Deploy the application manually
- Create a Tomcat Server and Deploy the Application Using Maven
- Benefits of Code Profiling tool
- Use case of Code Profiling tool
- Different kind of Code quality tools
- Over view of Sonar
- Installation of SonarQube
- Installation fo Code Analyser
- Sonar profiles
- Running Sonar for a project
- Configuring SonarQube for one Sample Java project.
Module 3: Jenkins
- Why Jenkins?
- What is Continuous Integration and Continuous Deployment (Use Case1)
- Jenkins installation and Configuration
- Running Jenkins as windows service
- Deploying Jenkins in Tomcat Server
- Jenkins Global Configuration
- Building your first Hello world job
- Jenkins User Management
- Jenkins Plugin management
- Jenkins SCM configuration (Git SVN)
- Understanding the Jenkins workspace
- Build
- pre build and post build job
- Jenkins Unit testing
- Automation testing
- Mail notification
- Jenkins Reporting
- Matrix and trend
- Jenkins remote executor
- Master Slave configuration in Jenkins
- Jenkins Most used plugin
- Advanced Reference
- Jenkins pipeline plugin
- Groovy scripting
- Scriptler
- Jenkins Parameterized build
- Environment inject plugin
- Use of Jenkins environment variables
- Deploying a specific revision
- Customizing the Jenkins UI
- Project based Matrix plugin
- Parallel Execution
- Configuring Jenkins Hub and Node in the cloud (AWS)
- Configuring a Selenium Desktop node with a Linux Server (AWS)
- Case Study
- Real time implementation of Automated role back
- Multi branch Deployment.
- What is Virtual Machine
- Why we need it
- What is Container
- Difference between Containers and Virtual Machine
Module 4: Docker
- Docker Installation and Configuration
- Major Docker Components
- Container Management Running Containers
- Docker file
- Working with Registries
- Docker Port Forwarding
- What is Configuration Management
- Configuration Management Challenges
- Configuration Management in DevOps Ecosystem
- Some tools
- Trends
- What is Container and Containerization
- Different types of Containers
- DOCKER: What why how ?
- Use Case 1 (Why Docker)
- Docker installation
- Docker VS Vagrant
- Docker Run commands
- Advanced Docker
- run commands
- Docker volume persistence
- Overview of Docker Compose
- Docker Hub
- Creating your own image
- Advanced reference
- Create a Docker container to run Jenkins
- Create a Docker container to run a CI/CD pipeline
- Use case 1 (Why puppet)
- Puppet installation and configuration
- Resource implementation
- Managing files and executing programs
- Testing your code Using Puppet Languages
- Variables Numbers and Strings
- Facts
- control flow
- Regex
- Loops
- Resource Processing
- Advanced Course
- Puppet Modules
- Define QA environment
- Changing Base Module path
- Separation of Data from Code
- Introduction to Hiera
- Hiera Backend creation in Puppet
- Variables and Function lookups
- Using Puppet modules
- Puppet Forge-Server- GitHub repo.
Module 5: Ansible
- What is Ansible
- Advantages of Ansible
- Environment Provisioning
- Configuration Deployment
- Installation of Ansible (AWS)
- Modules
- Playbooks and Writing a Playbook
- What is Monitoring
- Why we need monitoring
- Different tools of monitoring
- What is Nagios
- Nagios Architecture
- Different components of Nagios
- A typical Nagios Dashboard
- Installation and Configuration