Course Content
DevOps Course Content :
Introduction to DevOps
- Define DevOps
- What is DevOps
- SDLC models, Lean, Agile
- Why DevOps?
- History of DevOps
- Devops Stakeholders
- Devops Goals
- Important terminology
- DevOps perspective
- Devops and Agile
- Devops Tools
- Configuration management
- Continuous Integration, Continuous Deployment and Continuous Delivery
Introduction to Cloud computing
- What is cloud computing
- Characteristics of cloud computing
- Cloud implementation models
- Cloud service models
- Advantages of cloud computing
- Concerns of cloud computing
Introduction to Virtualization
- What is Virtualization?
- History of Virtualization
- What is Hypervisor?
- Types of Server Virtualization
- Benefits of Virtualization
- Important Virtualization products
AWS Cloud Technical Essentials
- Amazon EC2
- Amazon Elastic Load Balancer
- Amazon Route 53
- Amazon VPC
- Amazon Simple Storage Service (Amazon S3)
- Amazon Elastic Block Store (Amazon EBS)
- Amazon Content Delivery Network (Amazon CloudFront)
- Amazon Relational Database Service (Amazon RDS)
- Amazon DynamoDB
- Amazon ElastiCache
- Amazon Simple Notification Service (SNS)
- Amazon CloudWatch
- Amazon CloudTrail
- Amazon Simple Email Service (Amazon SES)
- AWS Identity and Access Management (IAM)
- Amazon Command Line Interface API
- S3-Browser
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
GIT: Version Control
Introduction
- Version control systems
- Local, Centralized and distributed
Installing Git
- Installing on Linux
- Installing on Windows
- Initial setup
Git Essentials
- Creating repository
- Cloning, check-in and committing
- Fetch pull and remote
- Branching
Jenkins – Continuous Integration
- Introduction to Jenkins
- CI/CD Concepts
- Continuous Integration and Continuous Delivery
- Quiz: CI/CD Concepts
- Installing and Configuring Jenkins
- Prerequisites
- Jenkins Install
- The Dashboard
- User Management and Security
- Adding a Jenkins Slave
- Setting Up GitHub
- Plugin Manager
- Exercise: Install a Jenkins Master and Prerequisites
- Exercise: Configuring Matrix-Based Security
- Exercise: Add a Jenkins Slave
- Exercise: Working with the Plugin Manager
- Quiz: Installing and Configuring Jenkins
- Projects
- Freestyle Project Configuration
- Source Code Management and the Git Plugin
- Git Hooks and Other Build Triggers
- Workspace Environment Variables
- Parameterized Projects
- Upstream/Downstream Projects and the Parameterized Trigger Plugin
- Folders
- Views
- Exercise: Configure a Parameterized Freestyle Project?
- Hands-on Labs: Configure a Jenkins Freestyle Project
- Hands-on Labs: Jenkins Upstream and Downstream Projects with the Parameterized Trigger Plugin
- Quiz: Projects
- Pipelines
- Our Java Pipeline Project
- Docker Install
- Installing and Configuring Ant
- The Jenkins file
- Configuring and Running a Pipeline
- Artifacts and Fingerprints
- Exercise: Build a Simple Pipeline Without SCM
- Hands-on Labs: Configure a Jenkins Pipeline
- Quiz: Pipelines
- Testing With Jenkins
- About Testing
- Unit Testing with JUnit and Ant
- Deploying to Apache
- Functional Testing
- Quiz: Testing With Jenkins
- Pipeline Enhancements
- Multi-branch Pipelines and Code Promotion
- Tagging
- Notifications
- Shared Pipeline Libraries
- Exercise: Configure Notifications in a Pipeline
- Hands-on Labs: Configure a Jenkins Multibranch Pipeline
- Quiz: Pipeline Enhancements
- Advanced Jenkins Administration
- The Jenkins CLI
- The Jenkins REST API
- Setting Up a Jenkins Master with Docker
- Exercise: Using the Jenkins CLI
- Exercise: Using the Jenkins REST API
- Quiz: Advanced Jenkins Administration
Ansible
- Introduction to Ansible
- Ansible Agentless Architecture
- Installation
- Ansible Inventories
- Ansible Modules
- Ansible Playbooks
Introduction
- What is a Docker
- Use case of Docker
- Platforms for Docker
- Dockers vs Virtualization
- Docker Architecture.
- Important Docker components
- Understanding the Docker components
- Installing Docker on Linux.
- Understanding Installation of Docker on Windows.
- Some Docker commands.
- Docker Hub.
- Downloading Docker images.
- Running Docker images
- Running commands in container.
- Running multiple containers.
- Creating a custom image.
- Running a container from the custom image.
- Publishing the custom image.
- Accessing container
- Linking containers
- Exposing container ports
- Container Routing