DevOps BootCamp Training
DevOps is the combination of cultural philosophies, practices, and tools that increases an organization’s ability to delivery applications and services at high velocity. Under a DevOps model, a development and operations teams are no longer “siloed”. Quality assurance team also becomes more tightly integrated with development and operations and throughout the application lifecycle.
AUDIENCE
Enterprise Architects, Solution Architects, Information Technology Architects, Senior Developers, and Team Leads
PREREQUISITES
Foundational knowledge of the software delivery problem domain. Some knowledge of executing Linux shell commands is recommended, but not mandatory.
In this DevOps BootCamp training, attendees will learn:
- What DevOps is
- Implementing Continuous Integration
- Using Version Control and integrating it with Continuous Integration tools
- Configuration management and infrastructure-as-code
- Automation with shell scripting and other scripting languages
- Implementing Continuous Monitoring
- Implementing Continuous Quality
- Containerization
This DevOps BootCamp course has 11 hands-on labs that are outlined at the bottom of this page. The labs allow you to practice the following skills:
Lab 1 – Configuration Management
In this lab you will explore Chef basics. You will create recipes that utilize various Chef resources.
Lab 2 – Version Control – Git
In this lab you will install, configure, and use Git.
Lab 3 – Version Control – SVN
In this chapter you will install, configure, and use SVN.
Lab 4 – Continuous Integration
In this chapter you will install and configure Java, Jenkins, Maven, and various SCM plugins for Jenkins.
Lab 5 – Install Prerequisites
In this lab you will install the Apache web server, MySQL, and PHP. They are required by Continuous Code Quality (SonarQube) and Continuous Application Monitoring (Nagios) tools.
Lab 6 – Continuous Code Quality – SonarQube
In this lab you will install, configure, and use SonarQube server, SonarQube Scanner, and Maven to check code quality.
Lab 7 – Automation (Shell Scripting)
In this chapter you will explore basics of Bash shell scripting.
Lab 8 – Tomcat Application Deployment using Chef
In this lab you will install Tomcat and use Chef to deploy a sample Tomcat application.
Lab 9 – Continuous Monitoring – Nagios
In this lab you will install, configure, and use Nagios to monitor servers and services.
Lab 10 – Containerization – Docker
In this chapter you will install and configure Docker.
Lab 11 – Scripting 101 – Python (OPTIONAL)
In this chapter you will explore basics of Python scripting.
This DevOps training can be delivered in traditional classroom style format. This DevOps bootcamp can also be delivered in a synchronous instructor led format.
Outline for DevOps BootCamp Training
Chapter 1. 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
Chapter 2. 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
Chapter 3. Distributed Version Control
- What is Version Control
- What is Version Control (cont’d)
- History of Version Control
- “Undo” Capability
- Collaboration
- Collaboration (Cont’d)
- 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
- Git’s Design Goals (cont’d)
- Branching and Merging
- Branching and Merging (cont’d)
- Centralized Version Control
- Distributed Version Control
- Git Basics
- Git Basics (Cont’d)
- Git Basics (cont’d)
- Getting Git
- Git on the Server
- Git Repository Managers
- Git on Somebody Else’s Server
- Using Git
- Definitions
- Definitions (cont’d)
- Repository (cont’d)
- Definitions (cont’d)
- Commit
- Commit (continued)
- How to Think About Commits
- Viewing History
- Configuring Git
- Configuration Scope
- User Identification
- User Identification (cont’d)
- GPG Signing
- Gnu Privacy Guard
- GPG Basics
- GPG and Git
- .gitignore
- Other Useful Configurations
- Summary
Chapter 4. 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 Capabilities
- Atomic Check-In
- Check-In Policies
- Shelving
- Team Visibility
- Locks
- Labeling
- Branching
- Branch Visualization and Tracking
- Cross-Platform Support
- Disconnected Work
- Summary
Chapter 5. Continuous Integration & Delivery Tools, Technology & Process
- What is Continuous Integration
- What is Continuous Integration (cont’d)
- 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?
- What is Apache Maven (cont’d)
- 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
Chapter 6. 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
Chapter 7. 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
Chapter 8. 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
- Nagios – Monitoring Services (contd.)
- Monitoring HTTP
- Monitoring FTP
- Monitoring SSH
- Monitoring SMTP
- Monitoring POP3
- Monitoring IMAP
- Summary
Chapter 9. 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
Chapter 10. 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
Chapter 11. DevOps –The Journey
- Agile Development
- Agile Development (cont’d)
- What is Continuous Integration
- What is Continuous Integration (cont’d)
- Typical Setup for Continuous Integration
- DevOps in the Enterprise
- Scaling DevOps
- Scaling DevOps (Organization Structure)
- Scaling DevOps (Locality)
- Scaling DevOps (Team Flexibility)
- 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
Chapter 12. (Optional) Python
Lab Exercises
Lab 1. Configuration Management
Lab 2. Version Control – Git
Lab 3. Version Control – SVN
Lab 4. Continuous Integration
Lab 5. Install Prerequisites
Lab 6. Continuous Code Quality – SonarQube
Lab 7. Automation (Shell Scripting)
Lab 8. Tomcat Application Deployment using Chef
Lab 9. Continuous Monitoring – Nagios
Lab 10 – Creating a Docker Account and Obtain an Access Token
Lab 11 – Containerization – Docker
Is there a discount available for current students?
UMBC students and alumni, as well as students who have previously taken a public training course with UMBC Training Centers are eligible for a 10% discount, capped at $250. Please provide a copy of your UMBC student ID or an unofficial transcript or the name of the UMBC Training Centers course you have completed. Asynchronous courses are excluded from this offer.
What is the cancellation and refund policy?
Student will receive a refund of paid registration fees only if UMBC Training Centers receives a notice of cancellation at least 10 business days prior to the class start date for classes or the exam date for exams.