Dates/Location To be confirmed


Course Description

This training course introduces the core DevOps concepts and principles as well as the ways to stand up the DevOps practice in your organization.Devops

Upon completion of this training course, students will have fundamental understanding of DevOps’ value proposition; they will also gain practical experience working with select DevOps tools, including Puppet, Jenkins, and others.

This training course is supplemented by hands-on labs that help attendees reinforce their theoretical knowledge of the learned material.


  • DevOps practices and tools
  • Puppet
  • Technical introduction to cloud computing
  • Jenkins



3 days


Target Audience

Enterprise Architects, Solution Architects, Information Technology Architects, Senior Developers, and Team Leads


Course Prerequisites

Foundational knowledge of the software delivery problem domain


Course Outline

Chapter 1. DevOps Introduction

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

Chapter 2. 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 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)

Chapter 3. 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

Chapter 4. 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

Collaborative Lifecycle Management Solutions from IBM


Collaborative Lifecycle Management Diagram


Collaborative Lifecycle Management


Rational Team Concert (RTC)

Rational Quality Manager (RQM)

Rational DOORS Next Generation (DNG)

Chapter 5. 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 Fact Discovery

Facter Example

Extending Facter


Puppet Lab Services

Puppet Enterprise Licensing

Puppet Enterprise Support

Puppet Enterprise Feature Set (1/2)

Puppet Enterprise Feature Set (2/2)

Chapter 6. Containerization Systems Overview



Hypervisor Types

Type 1 hypervisors

Type 2 hypervisors

Type 1 vs Type 2 Processing


Virtualization Qualities (1/2)

Virtualization Qualities (2/2)

Disadvantages of Virtualization


Virtualization vs Containerization

Where to Use Virtualization and Containerization

Popular Containerization Systems

What are Linux Containers



Solaris Zones (Containers)

Chapter 7. 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

Chapter 8. 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

Chapter 9. Introduction to Continuous Integration and Jenkins-CI

Agile Development

Agile Development (cont’d)

What is Continuous Integration

What is Continuous Integration (cont’d)

What is Continous Integration (cont’d)

Typical Setup for Continuous Integration

Jenkins Continuous Integration

Jenkins Features

Running Jenkins

Chapter 10. Installing and Running Jenkins

Downloading and Installing Jenkins

Running Jenkins as a Stand-Alone Application

Running Jenkins on an Application Server

Installing Jenkins as a Windows Service

Chapter 11. A Jenkins Job

Different types of Jenkins job

Configuring Source Code Management (SCM)

Working with Subversion

Build Triggers

Schedule Build Jobs

Polling the SCM

Maven Build Steps

Chapter 12. Securing Jenkins

Jenkins Security – Overview

Jenkins Security




Activating Security

Configure Authentication

Using Jenkins’s Internal User Database

Creating Users


Matrix-Based Security

Note – Create the Administrative User

Project-based Matrix Authorization

Project-Based Authentication

Chapter 13. Jenkins Plugin


Jenkins Plugins – SCM

Jenkins Plugins – Build and Test

Jenkins Plugins – Analyzers

Jenkins for Teams

Installing Jenkins Plugins

Chapter 14. Distributed Builds with Jenkins

Distributed Builds – Overview

Distributed Builds – How?

Slave Machines

Configure Jenkins Master

Configure Projects

Chapter 15. Best Practices for Jenkins

Best Practices – Secure Jenkins

Best Practices – Backups

Best Practices – Reproducible Builds

Best Practices – Testing and Reports

Best Practices – Large Systems

Best Practices – Distributed Jenkins

Lab Exercises

Lab 1. Provisioning Tomcat Web Server in EC2
Lab 2. Learning the Lab Environment
Lab 3. Getting Started with Puppet
Lab 4. Provisioning MySQL Database with Puppet
Lab 5. Getting Started with Linux Containers
Lab 6. Connecting to Linux Containers
Lab 7. Provisioning Software in LXC
Lab 8. Getting Control over LXC
Lab 9. LXC Web Panel
Lab 10. Getting Started with Docker
Lab 11. Jenkins
Lab 12. Maven
Lab 13. Create a Jenkins Job
Lab 14. Configure Jenkins Security
Lab 15. Add Development Metrics


See more DevOps courses