DevOps Boot Camp Training (DVO104)
Course Length: 3 days
Delivery Methods:
Available as private class only
Course Overview
In this DevOps Boot Camp, students will learn DevOps principles and tools required for end-to-end implementation of DevOps.
Course Benefits
- Learn what DevOps is.
- Learn to implement continuous integration.
- Use version control and integrate it with continuous integration tools
- Learn configuration management and infrastructure-as-code.
- Learn automation with shell scripting and other scripting languages.
- Learn to implement continuous monitoring.
- Learn to implement continuous quality.
- Learn about containerization.
Course Outline
- What is DevOps
- Dev and Ops Views
- Leading By Example ...
- What is DevOps?
- More DevOps Definitions
- DevOps and Software Delivery Life Cycle
- Main DevOps' Objectives
- The Term "DevOps" is Evolving!
- Infrastructure as Code
- Agile IT in the Cloud
- DevOps on the Cloud
- Prerequisites for DevOps Success
- Alignment with the Business Needs
- Collaborative Development
- Continuous Testing and Integration
- Continuous Release and Deployment
- Continuous Application Monitoring
- Benefits of DevOps
- What is Involved in DevOps
- Summary
- Configuration Management
- What is Chef?
- Benefits of Infrastructure-as-Code
- Chef - Sample Usages
- Deployment / License
- Who uses Chef
- Chef Architecture
- Chef Components
- Workstation
- Recipe
- Cookbook
- Ruby
- Knife
- Node
- Chef-client
- Chef Server
- Chef Analytics
- Chef Supermarket
- Salient Features of Chef
- Supported Platforms
- Chef Components
- Chef Server prerequisites
- Install Configuration Scenarios
- Standalone Installation
- Installing Optional Chef Server Components
- Workstation
- Chef DK
- Chef DK Prerequisites
- Chef Repository
- Installing Chef DK
- Ohai
- Ohai Attributes
- Cookbooks
- Components of a Cookbook
- Metadata
- Recipes
- Resources
- Directory Resource
- Package Resource
- Service Resource
- File Resource
- Script Resource
- User Resource
- Additional Chef Advanced Features
- Summary
- Distributed Version Control
- What is Version Control
- History of Version Control
- "Undo" Capability
- Collaboration
- Communication and Sharing
- Auditing and Tracking
- Release Engineering, Maintenance, SDLC
- Diagnostics
- Distributed Version Control
- Integrating Version Control into Jenkins
- What is Git
- Git's Design Goals
- Branching and Merging
- Centralized Version Control
- Distributed Version Control
- Git Basics
- Getting Git
- Git on the Server
- Git Repository Managers
- Git on Somebody Else's Server
- Using Git
- Definitions
- Commit
- Commit (continued)
- How to Think About Commits
- Viewing History
- Configuring Git
- Configuration Scope
- User Identification
- GPG Signing
- Gnu Privacy Guard
- GPG Basics
- GPG and Git
- .gitignore
- Other Useful Configurations
- Summary
- Enterprise Version Control
- SVN
- SVN vs CVS
- SVN Installation
- SVN Life Cycle
- Some Useful Commands
- Some Useful Commands (Contd.)
- Perforce
- Important Perforce Terms
- Perforce Clients
- Mercurial
- Installation
- Some Useful Commands
- Some Useful Commands (Contd.)
- Team Foundation Version Control
- TFVC Workspaces
- TFVC Capablities
- Atomic Check-In
- Check-In Policies
- Shelving
- Team Visibility
- Locks
- Labeling
- Branching
- Branch Visualization and Tracking
- Cross-Platform Support
- Disconnected Work
- Summary
- Continuous Integration and Delivery Tools, Technology and Process
- What is Continuous Integration
- Integration Tools
- Typical Setup for Continuous Integration
- Jenkins Continuous Integration
- Jenkins Features
- Running Jenkins
- Jenkins Integration with various Version Control Solutions
- Jenkins Job
- Apache Maven
- Goals of Maven
- What is Apache Maven?
- Why Use Apache Maven?
- The Maven EcoSystem
- Consistent Easy-to-Understand Project Layout
- Convention Over Configuration
- Maven is Different
- Maven Projects have a Standardized Build
- Effect of Convention Over Configuration
- Importance of Plugins
- A Key Point on Maven!
- Summary
- Continuous Code Quality
- Continuous Code Quality
- What is SonarQube
- SonarQube - Benefits
- SonarQube (Multilingual)
- Seven Axes of Quality
- Potential Bugs
- Tests
- Comments and Duplication
- Architecture and Design
- Complexity
- SonarQube Installation
- SonarQube Components
- Code Quality (LOC, Code Smells)
- Code Quality (Project Files)
- Code Quality (Code)
- Summary
- Automation - Scripting
- Why Automate
- When to Automate
- Goals for Scripting
- Error Handling
- Logging
- Automating Versioned Builds
- Automating Deployment
- Automating Continuous Integration Tests
- Automated Cleanup
- Introduction to Shell Scripts
- Basic Shell Script
- Return Status
- Variables
- Special Variables
- Arrays
- Operators
- Conditional Statements
- Conditional Statements (contd.)
- Loops
- Loops - while
- Loops - for
- Loops - until
- Loops - select
- Summary
- Monitoring
- What is Continuous Monitoring
- Monitoring Tools
- Dynatrace Application Monitoring
- Dynatrace Application Monitoring (contd.)
- Dynatrace Application Monitoring
- Splunk
- Splunk Functionalities
- Splunk Searching
- Splunk Functions
- Nagios
- Nagios (contd.)
- Nagios - Installation
- Nagios - Hosts
- Nagios - Web User Interface (Hosts)
- Nagios - Monitoring Services
- Monitoring HTTP
- Monitoring FTP
- Monitoring SSH
- Monitoring SMTP
- Monitoring POP3
- Monitoring IMAP
- Summary
- Containerization
- Containerization (Virtualization)
- Hypervisors
- Hypervisor Types
- Type 1 hypervisors
- Type 2 hypervisors
- Type 1 vs Type 2 Processing
- Paravirtualization
- Virtualization Qualities (1/2)
- Virtualization Qualities (2/2)
- Disadvantages of Virtualization
- Containerization
- Virtualization vs Containerization
- Where to Use Virtualization and Containerization
- Popular Containerization Systems
- What are Linux Containers
- Docker
- OpenVZ
- Solaris Zones (Containers)
- What is Docker
- Where Can I Ran Docker?
- Docker and Containerization on Linux
- Linux Kernel Features: cgroups and namespaces
- The Docker-Linux Kernel Interfaces
- Docker Containers vs Traditional Virtualization
- Docker as Platform-as-a-Service
- Docker Integration
- Docker Services
- Docker Application Container Public Repository
- Competing Systems
- Docker Command-line
- Starting, Inspecting, and Stopping Docker Containers
- Docker Benefits
- Summary
- Collaboration
- What is JIRA?
- License
- JIRA Technical Specifications
- Issues
- Who uses JIRA
- JIRA Products
- JIRA Core
- JIRA Software
- JIRA Service Desk
- What a typical project involves?
- JIRA Integration
- Integrating JIRA into Jenkins
- Summary
- DevOps - The Journey
- Agile Development
- Typical Setup for Continuous Integration
- DevOps in the Enterprise
- Scaling DevOps
- Scaling DevOps (Organization Structure)
- Scaling DevOps (Locality)
- Scaling DevOps (Team Flexiblity)
- Scaling DevOps (Teams: Hiring as Scaling)
- Scaling DevOps (Teams: Employee Retention)
- DevOps Myths
- DevOps Anti-Patterns (Blame Culture)
- DevOps Anti-Patterns (Silos)
- DevOps Anti-Patterns (Root Cause Analysis)
- DevOps Anti-Patterns (Human Error)
- DevOps Patterns For Success
- DevOps Patterns For Success (Cloud)
- DevOps Patterns For Success (Automation)
- DevOps Patterns For Success (Culture)
- Summary
Class Materials
Each student will receive a comprehensive set of materials, including course notes and all the class examples.
Class Prerequisites
Experience in the following is required for this DevOps class:
- Foundational knowledge of the software delivery problem domain.
Experience in the following would be useful for this DevOps class:
- Some knowledge of executing Linux shell commands.
Live Private Class
- Private Class for your Team
- Live training
- Online or On-location
- Customizable
- Expert Instructors