Course duration
- 3 days
Course Benefits
- Confidently design a DevOps framework for your organization.
- Understand the various key components.
- Implement DevOps in their organization.
- Create automation through scripting
- Compare the different tools available for applicability to your environment
- Apply the knowledge to improve reliability of build and release processes
- Utilize the various tools covered in the course in the real world
Course Outline
- The DevOps Roadmap
- Why DevOps?
- Wall of Confusion
- What is DevOps?
- History behind DevOps
- Early Adopters
- DevOps Background
- Cross Functional Teams
- Key Components of Successful DevOps Teams (A3 and C)
- DevOps-ification
- DevOps Vocabulary
- DevOps Goals
- Driving business outcomes with DevOps
- DevOps at the Core
- Alignment with the Business
- Collaborative Development
- Continuous Integration and Test Automation
- Continuous Delivery
- Comprehensive Application Monitoring
- Summary
- Configuration Management
- Why is configuration management key to DevOps success?
- What is Configuration Management
- Do we need Configuration Management?
- Terminology
- Automation tool comparison
- Introduction to Chef
- Deployment/License
- Who Uses Chef?
- Chef Architecture
- Chef Components
- Workstation
- Recipe
- Cookbook
- Ruby
- Knife
- Node
- Chef-client
- Chef Server
- Chef Analytics
- Chef Supermarket
- Introduction to Ansible
- Why use Ansible?
- Ansible playbooks
- YAML
- YAML list
- YAML dictionary
- Abbreviated YAML
- Simple Ansible
- More complex Ansible
- Simple Ansible YAML file
- Why use containers if you have a great CM tool?
- Containerization solutions
- Chef and Docker workflow
- Setting up the environment
- Deployment
- Cloud Integration
- Summary
- Release Management
- What is Version Control?
- Why use Version Control
- Version Control Vocabulary
- Version Control Patterns
- Distributed vs. Centralized
- Source Code vs. Binary Repository
- Repository Management
- Release Complexity
- Release Maintenance
- Release Logging
- Branching and Tagging
- Branching Conventions
- Tagging Conventions
- Automatic Deployment with Git
- Utilizing Git Hooks
- Continuous Deployment and DVCS GitHub, Mercurial, CodePlex
- Centralized Version Control
- Managing Dependencies with Maven
- Summary
- Building Tools
- Build Tool History
- Build Automation Processes
- Repeatability
- Notification
- Continuous Build
- Git post-receive Script
- Introduction to Ant
- Ant Anatomy
- Ant Installation
- Example Ant build.xml
- Running Ant
- Ant Dependency Management
- Introduction to MSBuild
- MSBuild Anatomy
- MSBuild Automation Process
- HelloWorld MSBuild XML
- Introduction to Maven
- Maven Build Cycle
- Maven Installation
- Maven Plugin Execution Framework
- Maven pom.xml Example
- Introduction to Gradle
- Why Gradle?
- Gradle plugins
- Ant Migration
- Maven migration
- Summary
- Continuous Integration and Delivery
- What Does Continuous Delivery Mean?
- You’re Doing CD if Your …
- What is Continuous Integration?
- Deployment Pipeline
- Project Methodologies
- Measuring Your Organizational Maturity
- Tool Selection
- Organization Structure
- Organizational Structure Leadership
- Organizational Structure Working
- Business Continuity
- Supportability and Sustainability
- Summary
- Continuous Integration Tools
- Challenges Solved by CI Tools
- CI Testing Tools
- Typical CI Setup
- Atomic Integration
- More on CI
- CI and Automated BD
- Ancillary CI Benefits
- CI Connectivity
- Introduction to Jenkins
- Jenkins Features
- Running Jenkins
- Jenkins options
- Introduction to Hudson
- Hudson Features
- Hudson pre-requisites
- Hudson environments
- Hudson Pattern
- One Hudson Workflow Variation
- Introduction to TeamCity
- Introduction to CruiseControl
- Comparison
- Summary
- Monitoring
- What to Monitor
- How to Monitor
- Why to Monitor
- Types of Monitoring
- Monitoring Strategy
- Amazon Monitoring
- Google Cloud Monitoring
- Hybrid Cloud Monitoring
- Application Performance Monitoring (APM)
- APM Octal Process
- Monitoring Across the Stack
- Introduction to Nagios
- Nagios Features
- Who uses Nagios?
- Introduction to ELK
- Kibana Dashboard
- ELK Demo
- Log Shipping
- User Management
- Introduction to Dynatrace
- Who uses Dynatrace
- Summary
- Measurement
- What to measure?
- How to Measure?
- Why to Measure
- Choosing the Right Metrics
- What Are Your Key Performance Indicators?
- Actionable Insight
- Software Quality Measurements
- Top 5 Metrics
- Summary
- Cloud Computing and Virtualization
- Cloud History
- Cloud on Wikipedia
- Cloud at a Glance
- Electrical Power Grid Service Analogy
- Capacity Planning Concepts and Challenges
- Coping with Computing Demand the Traditional Way
- The Origin of the Cloud Computing
- Grid Computing vs Cloud Computing
- What Drives Cloud Adoption?
- 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
- Four Cloud Deployment Models (NIST)
- NIST Cloud Definition Framework
- Virtualization
- Virtualization Qualities
- Cloud Infrastructure - Virtual Machines
- Bootable OS Image
- Block Storage for Instances
- Cloud Object Storage
- Microservices and the Cloud
- Cloud Risk Considerations
- Bootable OS Image
- 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
- 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
- Introduction to Python
- Basic Python Script
- Python Comments
- Assignment Not Allowed in Expressions
- Variable Naming
- Block Scope
- Other features of Python
- Introduction to Ruby
- Executing a Ruby File
- Ruby Objects
- Creating a Hash
- Setting Value of a Key
- Getting Value of a Key(s)
- Conditionals and Flow
- Methods
- Classes
- Including External Ruby Files
- Introduction to Perl
- Perl and Programmers
- First Perl Script
- Summary
- Servers
- Introduction to Application Servers
- WebSphere
- J2EE Application Environments
- App Server Standards
- Administration Interfaces
- Java Virtual Machine
- Three tier architecture
- Tomcat
- Tomcat Architecture
- Active Tomcat Versions
- Tomcat Installation
- Tomcat Startup
- Tomcat Admin Console
- Tomcat Manual Startup on Linux
- Tomcat Manual Startup on Windows
- Tomcat Deployment
- Parallel Deployment
- Running Tomcat in Debug
- Web Servers
- UNIX Aliases
- History
- Tracing and Logging
- Servlet Containers
- Fixpack Automation
- Dependencies
- Clustering Considerations
- High Availability
- Summary
- Agile
- History of Agile
- Sprint0
- Scrum Team
- Managing Sprints
- Maintaining the Backlog
- Working With Story Points
- Distributed Agile
- Kaizen
- Kanban
- Comparison of Scrum and Kanban
- Introduction to Jira
- Kanban board
- Control Chart
- Cumulative Flow Diagram
- Burndown Chart
- Introduction to Rally
- Summary
- Error Handling
- Introduction to Error Handling
- Zen of Troubleshooting
- Troubleshooting Skill
- Success Pattern
- Self-healing
- Proactive vs. Reactive
- Issue Handling
- Notification
- Summary
- Continuous Code Quality
- Continuous Code Quality
- What is SonarQube
- SonarQube - Benefits
- SonarQube (Multilingual)
- Seven Axes of Quality
- Potential Bugs
- Tests
- Comments and Duplications
- Architecture and Design
- Complexity
- SonarQube Installation
- SonarQube Components
- Code Quality (LOC, Code Smells)
- Code Quality (Project Files)
- Code Quality (Code)
- Summary
- Best Practices
- Who are the folks using the various solutions
- DevOps Implementation Basics
- DevOps Implementation Checklist
- Lean Patterns
- Process Theory
- Tool Pattern
- Culture Alignment
- Culture Antipatterns
- Process Antipatterns
- Technology Antipatterns
- Tale of Two Audiences
- Best Practices
- Best Practices Continued
- 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:
- An understanding of the basic concepts in version control, release management, automation, governance, and infrastructure.
Courses that can help you meet these prerequisites:
Instructor-led courses are offered via a live Web connection, at client sites throughout Europe, and at our Geneva Training Center.