DevOps Fundamentals Training (DVO101)
Course Length: 3 days
Delivery Methods:
Available as private class only
Course Overview
This DevOps Fundamentals course introduces the core DevOps concepts and principles as well as the ways to stand up the DevOps practice in your organization.
This training course is supplemented by hands-on labs that help attendees reinforce their theoretical knowledge of the learned material.
The audience for this class includes enterprise architects, solution architects, information technology architects, senior developers, and team leads.
Course Benefits
- Learn to gain fundamental understanding of DevOps' value proposition.
- Learn to gain practical experience working with select DevOps tools, including Puppet, Jenkins, and others.
Course Outline
- DevOps Fundamentals
- Why DevOps
- What is DevOps?
- Collaborative, Matrixed and Cross-Functional Teams
- Key Components of Successful DevOps Teams
- DevOps-ification
- DevOps Vocabulary
- DevOps Goals
- Not DevOps - Crush Buzzwords
- Driving Business Outcomes with DevOps
- Technology-Enabled Business
- DevOps Key Enabler for Digital Transformation
- Core Values and Mission
- Core Values - Culture
- Core Values - Automation
- Core Values - Measurement
- Core Values - Sharing
- Communication
- Collaboration
- Value Stream Mapping
- Behavioral Patterns for Success
- DevOps Org Structures
- DevOps Team - Separate
- DevOps Merged Organization
- DevOps Overlapped Organization
- Organizational Structure Leadership
- What Does Continuous Delivery Mean?
- Deployment Pipelines
- Your Organization is Doing CD if
- Pipelining for CD
- Continuous Integration
- CI Pipeline
- CD and CI Methodologies
- Key Tool Categories for CI/CD
- Summary
- Cloud Technical Introduction
- A Bit of History
- Wikipedia Entry
- Cloud Computing at a Glance
- Electrical Power Grid Service Analogy
- Capacity Planning Concepts and Challenges
- Coping with Computing Demand the Traditional Way
- Coping with Computing Demand the Cloud Way
- The Origin of the Cloud Computing
- Grid Computing vs Cloud Computing
- What Drives Cloud Adoption?
- The NIST Perspective
- Five Characteristics of the Cloud
- The Three Cloud Service Models (NIST)
- The Cloud Computing Spectrum: IaaS, PaaS and SaaS
- Cloud Service Model Implementations
- The Four Cloud Deployment Models (NIST)
- The NIST Cloud Definition Framework
- Cloud Deployment Model Dynamics
- Virtualization
- Virtualization Qualities (1/2)
- Virtualization Qualities (2/2)
- Cloud Infrastructure - Virtual Machines
- A Bootable OS Image
- Block Storage for Instances
- Cloud Object Storage
- SOA and the Cloud
- Cloud Risks to Consider
- DevOps Security Concerns
- Amazon WS Technical Lessons When Moving To the Cloud
- Architecting for HA in AWS (Same Data Center)
- Architecting for HA in AWS (Different AZs)
- Summary
- Standing Up DevOps
- Standing Up DevOps
- Things to Look For and Avoid
- IT Assets Ownership
- Viewing Applications As Products, not Projects
- DevOps in the Enterprise
- IT Governance
- Governance and Risk Mitigation
- DevOps Adoption Steps
- Select DevOps Techniques and Practices
- Service Quality Metrics
- Summary
- DevOps Tools
- The Choice of Cloud Platform
- IaaS for DevOps
- PaaS for DevOps
- Containerization Tools
- System Configuration Automation and Management
- Continuous Integration (CI) Systems
- Build and Dependency Management Systems
- Select DevOps Tools
- Summary
- Introduction to Puppet
- What is Puppet
- Puppet's Domain Specific Language
- "Infrastructure-as-code" in Puppet
- Example of the Puppet DSL
- Main Puppet Artifacts
- Puppet Design
- Puppet Workflow Orchestration
- Facter
- Facter Fact Discovery
- Facter Example
- Extending Facter
- Geppetto
- Puppet Lab Services
- Puppet Enterprise Licensing
- Puppet Enterprise Support
- Puppet Enterprise Feature Set (1/2)
- Puppet Enterprise Feature Set (2/2)
- Summary
- Containerization Systems Overview
- 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)
- Summary
- LXC Introduction
- What are Linux Containers
- How LXC Works
- LXC vs True Virtualization
- Security Concerns
- LXC Alternatives
- Getting Started with LXC
- Creating a Container
- Listing and Getting Info on Containers
- Starting, Stopping, and Destroying a Container
- Container Pausing and Resuming
- Communicating with a Container
- Monitoring Container State Change
- Programmatic Access to LXC
- Container Root Filesystems
- Container Cloning
- Copy and Snapshot Types
- Using Snapshots
- LXC Web Panel
- Summary
- Docker Introduction
- 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
- Summary
- Introduction to Continuous Integration, Continuous Delivery and Jenkins-CI
- Agile Development
- Agile Development (cont'd)
- What is Continuous Integration
- What is Continuous Integration (cont'd)
- Typical Setup for Continuous Integration
- Continuous Delivery
- Continuous Delivery (cont'd)
- DevOps and Continuous Delivery
- Continuous Delivery Challenges
- Continuous Delivery vs Continuous Deployment
- Imagine a Software Engineering Process...
- Jenkins Continuous Integration
- Jenkins Features
- Running Jenkins
- Summary
- Installing and Running Jenkins
- Downloading and Installing Jenkins
- Running Jenkins as a Stand-Alone Application
- Running Jenkins as a Stand-Alone Application (cont'd)
- Running Jenkins on an Application Server
- The Jenkins Home Folder
- Installing Jenkins as a Windows Service
- Initial Configuration
- Configuration Wizard
- Configuration Wizard (cont'd)
- Configuring Tools
- Configuring Tools - Best Practices
- Logging in Jenkins
- Custom Log Recorders
- Summary
- Job Types in Jenkins
- Introduction
- Different types of Jenkins Items
- Different types of Jenkins Items (cont'd)
- Configuring Source Code Management(SCM)
- Working with Subversion
- Working with Subversion (cont'd)
- Working with Git
- Storing Credentials
- Storing Credentials (cont'd)
- Build Triggers
- Schedule Build Jobs
- Polling the SCM
- Maven Build Steps
- Summary
- Securing Jenkins
- Jenkins Security - Overview
- Jenkins Security
- Authentication
- Authorization
- Confidentiality
- Activating Security
- Configure Authentication
- Using Jenkins's Internal User Database
- Creating Users
- Authorization
- Matrix-Based Security
- Note Create the Administrative User
- Project-based Matrix Authorization
- Project-Based Authentication
- Conclusion
- Jenkins Plugins
- Introduction
- Jenkins Plugins - SCM
- Jenkins Plugins - Build and Test
- Jenkins Plugins - Analyzers
- Jenkins for Teams
- Installing Jenkins Plugins
- Summary
- Distributed Builds with Jenkins
- Distributed Builds - Overview
- Distributed Builds - How?
- Agent Machines
- Configure Jenkins Master
- Configure Projects
- Conclusion
- Continuous Delivery and the Jenkins Pipeline
- Continuous Delivery
- Continuous Delivery (cont'd)
- DevOps and Continuous Delivery
- Continuous Delivery Challenges
- Continuous Delivery with Jenkins
- The Pipeline Plugin
- The Pipeline Plugin (cont'd)
- Defining a Pipeline
- A Pipeline Example
- Pipeline Example (cont'd)
- Parallel Execution
- Creating a Pipeline
- Invoking the Pipeline
- Interacting with the Pipeline
- Conclusion
- Best Practices for Jenkins
- Best Practices - Secure Jenkins
- Best Practices - Users
- Best Practices - Backups
- Best Practices - Reproducible Builds
- Best Practices - Testing and Reports
- Best Practices - Large Systems
- Best Practices - Distributed Jenkins
- Best Practices - 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.
Live Private Class
- Private Class for your Team
- Live training
- Online or On-location
- Customizable
- Expert Instructors