DevOps for Architects Training (DVO103)
Course Length: 3 days
Delivery Methods:
Available as private class only
Course Overview
This DevOps for Architects training course teaches students how to use DevOps for continuous integration and delivery of application development and maintenance.
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
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:
- An understanding of the basic concepts in version control, release management, automation, governance, and infrastructure.
Prerequisite Courses
Courses that can help you meet these prerequisites:
Live Private Class
- Private Class for your Team
- Live training
- Online or On-location
- Customizable
- Expert Instructors