Course duration
- 3 days
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.
Since its founding in 1995, InterSource has been providing high quality and highly customized training solutions to clients worldwide. With over 500 course titles constantly updated and numerous course customization and creation possibilities, we have the capability to meet your I.T. training needs.
Instructor-led courses are offered via a live Web connection, at client sites throughout Europe, and at our Geneva Training Center.
Instructor-led courses are offered via a live Web connection, at client sites throughout Europe, and at our Geneva Training Center.