Course duration
- 3 days
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
Each student will receive a comprehensive set of materials, including course notes and all the class examples.
Experience in the following is required for this DevOps class:
- Foundational knowledge of the software delivery problem domain.
Instructor-led courses are offered via a live Web connection, at client sites throughout Europe, and at our Geneva Training Center.