Course Overview
The DevOps Certified Professional (DCP) program is a comprehensive 60-hour online training that takes you through the complete DevOps toolchain. Designed for developers, system administrators, and IT professionals, this program bridges the gap between software development and operations. You will gain practical, hands-on experience with industry-leading tools spanning source control, CI/CD pipelines, infrastructure automation, containers, orchestration, and observability.
The DCP certification is ideal for engineers targeting DevOps, SRE, or platform engineering roles, and for organizations that want to validate their team's DevOps readiness. With 4036+ trained participants and a 4.8/5 rating, this remains one of the most trusted DevOps programs available online.
Course Agenda
Download Full Curriculum (PDF)
- Lets Understand about Software Development Model
- Overview of Waterfall Development Model
- Challenges of Waterfall Development Model
- Overview of Agile Development Model
- Challenges of Agile Development Model
- Requirement of New Software Development Model
- Understanding a existing Pain and Waste in Current Software Development Model
- What is DevOps?
- Transition in Software development model
- Waterfall → Agile → CI/CD → DevOps → DevSecOps
- Understand DevOps values and principles
- Culture and organizational considerations
- Communication and collaboration practices
- Improve your effectiveness and productivity
- DevOps Automation practices and technology considerations
- DevOps Adoption considerations in an enterprise environment
- Challenges, risks and critical success factors
- What is DevSecOps?
- Lets Understand DevSecOps Practices and Toolsets.
- What is SRE?
- Lets Understand SRE Practices and Toolsets.
- List of Tools to become Full Stack Developer/QA/SRE/DevOps/DevSecOps
- Microservices Fundamentals
- Microservices Patterns
- Choreographing Services
- Presentation components
- Business Logic
- Database access logic
- Application Integration
- Modelling Microservices
- Integrating multiple Microservices
- Keeping it simple
- Avoiding Breaking Changes
- Choosing the right protocols
- Sync & Async
- Dealing with legacy systems
- Testing
- What and When to test
- Preparing for deployment
- Monitoring Microservice Performance
- Tools used for Microservices Demo using container
Ubuntu
- Installing CentOS7 and Ubuntu
- Accessing Servers with SSH
- Working at the Command Line
- Reading Files
- Using the vi Text Editor
- Piping and Redirection
- Archiving Files
- Accessing Command Line Help
- Understanding File Permissions
- Accessing the Root Account
- Using Screen and Script
- Overview of Hypervisor
- Introduction of VirtualBox
- Install VirtualBox and Creating CentOS7 and Ubuntu VMs
Vagrant
- Understanding Vagrant
- Basic Vagrant Workflow
- Advance Vagrant Workflow
- Working with Vagrant VMs
- The Vagrantfile
- Installing Nginx
- Provisioning
- Networking
- Sharing and Versioning Web Site Files
- Vagrant Share
- Vagrant Status
- Sharing and Versioning Nginx Config Files
- Configuring Synced Folders
- Introduction of AWS
- Understanding AWS infrastructure
- Understanding AWS Free Tier
- IAM: Understanding IAM Concepts
- IAM: A Walkthrough IAM
- IAM: Demo & Lab
- Computing: EC2 — Understanding EC2 Concepts
- Computing: EC2 — A Walkthrough EC2
- Computing: EC2 — Demo & Lab
- Storage: EBS — Understanding EBS Concepts
- Storage: EBS — A Walkthrough EBS
- Storage: EBS — Demo & Lab
- Storage: S3 — Understanding S3 Concepts
- Storage: S3 — A Walkthrough S3
- Storage: S3 — Demo & Lab
- Storage: EFS — Understanding EFS Concepts
- Storage: EFS — A Walkthrough EFS
- Storage: EFS — Demo & Lab
- Database: RDS — Understanding RDS MySql Concepts
- Database: RDS — A Walkthrough RDS MySql
- Database: RDS — Demo & Lab
- ELB: Elastic Load Balancer Concepts
- ELB: Elastic Load Balancer Implementation
- ELB: Elastic Load Balancer — Demo & Lab
- Networking: VPC — Understanding VPC Concepts
- Networking: VPC — Understanding VPC components
- Networking: VPC — Demo & Lab
- What is Containerization?
- Why Containerization?
- How Docker is good fit for Containerization?
- How Docker works?
- Docker Architecture
- Docker Installations & Configurations
- Docker Components
- Docker Engine
- Docker Image
- Docker Containers
- Docker Registry
- Docker Basic Workflow
- Managing Docker Containers
- Creating our First Image
- Understanding Docker Images
- Creating Images using Dockerfile
- Managing Docker Images
- Using Docker Hub registry
- Docker Networking
- Docker Volumes
- Deepdive into Docker Images
- Deepdive into Dockerfile
- Deepdive into Docker Containers
- Deepdive into Docker Networks
- Deepdive into Docker Volumes
- Deepdive into Docker Volume
- Deepdive into Docker CPU and RAM allocations
- Deepdive into Docker Config
- Docker Compose Overview
- Install & Configure Compose
- Understanding Docker Compose Workflow
- Understanding Docker Compose Services
- Writing Docker Compose Yaml file
- Using Docker Compose Commands
- Docker Compose with Java Stack
- Docker Compose with Rails Stack
- Docker Compose with PHP Stack
- Docker Compose with Nodejs Stack
a. Jira
- Overview of Jira
- Use cases of Jira
- Architecture of Jira
- Installation and Configuration of Jira in Linux
- Installation and Configuration of Jira in Windows
- Jira Terminologies
- Understanding Types of Jira Projects
- Working with Projects
- Working with Jira Issues
- Adding Project Components and Versions
- Use Subtasks to Better Manage and Structure Your Issues
- Link Issues to Other Resources
- Working in an Agile project
- Working with Issue Types by Adding/Editing/Deleting
- Working with Custom Fields by Adding/Editing/Deleting
- Working with Screens by Adding/Editing/Deleting
- Searching and Filtering Issues
- Working with Workflow basic
- Introduction of Jira Plugins and Addons
- Jira Integration with Github
b. Confluence
- Exploring Confluence benefits and resources
- Configuring Confluence
- Navigating the dashboard, spaces, and pages
- Creating users and groups
- Creating pages from templates and blueprints
- Importing, updating, and removing content
- Giving content feedback
- Watching pages, spaces, and blogs
- Managing tasks and notifications
- Backing up and restoring a site
- Admin tasks
- Planning — Discuss some of the Small Project Requirements which include
- Login/Registration with Some Students records CRUD operations
- Design a Method → Classes → Interface using Core Python
- Fundamental of Core Python with Hello-world Program with Method → Classes
- Coding in Flask using HTML - CSS - JS - MySql
- Fundamental of Flask Tutorial of Hello-World APP
- UT — 2 Sample unit Testing using Pythontest
- Package a Python App
- AT — 2 Sample unit Testing using Selenium
Technology Demonstration
- Software Planning and Designing using JAVA
- Core Python
- Flask
- MySQL
- pytest
- Selenium
- HTML
- CSS
- JavaScript
- Introduction of Git
- Installing Git
- Configuring Git
- Git Concepts and Architecture
- How Git works?
- The Git workflow
- Working with Files in Git
- Adding files
- Editing files
- Viewing changes with diff
- Viewing only staged changes
- Deleting files
- Moving and renaming files
- Making Changes to Files
- Undoing Changes
- Reset
- Revert
- Amending commits
- Ignoring Files
- Branching and Merging using Git
- Working with Conflict Resolution
- Comparing commits, branches and workspace
- Working with Remote Git repo using GitHub
- Push - Pull - Fetch using GitHub
- Tagging with Git
- What is SonarQube?
- Benefits of SonarQube?
- Alternative of SonarQube
- Understanding Various License of SonarQube
- Architecture of SonarQube
- How SonarQube works?
- Components of SonarQube
- SonarQube runtime requirements
- Installing and configuring SonarQube in Linux
- Basic Workflow in SonarQube using Command line
- Working with Issues in SonarQube
- Working with Rules in SonarQube
- Working with Quality Profiles in SonarQube
- Working with Quality Gates in SonarQube
- Deep Dive into SonarQube Dashboard
- Understanding Seven Axis of SonarQube Quality
- Workflow in SonarQube with Maven Project
- Workflow in SonarQube with Gradle Project
- OWASP Top 10 with SonarQube
Maven
- Introduction to Apache Maven
- Advantage of Apache Maven over other build tools
- Understanding the Maven Lifecycle and Phase
- Understanding the Maven Goals
- Understanding the Maven Plugins
- Understanding the Maven Repository
- Understanding and Maven Release and Version
- Prerequisite and Installing Apache Maven
- Understanding and using Maven Archetypes
- Understanding Pom.xml and Setting.xml
- Playing with multiples Maven Goals
- Introducing Maven Dependencies
- Introducing Maven Properties
- Introducing Maven Modules
- Introducing Maven Profile
- Introducing Maven Plugins
- How can Maven benefit my development process?
- How do I setup Maven?
- How do I make my first Maven project?
- How do I compile my application sources?
- How do I compile my test sources and run my unit tests?
- How do I create a JAR and install it in my local repository?
- How do I use plugins?
- How do I add resources to my JAR?
- How do I filter resource files?
- How do I use external dependencies?
- How do I deploy my jar in my remote repository?
- How do I create documentation?
- How do I build other types of projects?
- How do I build more than one project at once?
Gradle
- What is Gradle?
- Why Gradle?
- Installing and Configuring Gradle
- Build Java Project with Gradle
- Build C++ Project with Gradle
- Build Python Project with Gradle
- Dependency Management in Gradle
- Project Structure in Gradle
- Gradle Tasks
- Gradle Profile and Cloud
- Gradle Properties
- Gradle Plugins
Artifactory
- Artifactory Overview
- Understanding a role of Artifactory in DevOps
- System Requirements
- Installing Artifactory in Linux
- Using Artifactory
- Getting Started
- General Information
- Artifactory Terminology
- Artifactory Repository Types
- Artifactory Authentication
- Deploying Artifacts using Maven
- Download Artifacts using Maven
- Browsing Artifactory
- Viewing Packages
- Searching for Artifacts
- Manipulating Artifacts
Packer
- Getting to Know Packer
- What is Packer?
- Installing Packer
- The Packer workflow and components
- The Packer CLI
- Baking a Website Image for EC2
- Select an AWS AMI base
- Automate AWS AMI base build
- Using build variables
- Provision Hello World
- Provision a basic site
- Customization with a Config Management Tool
- Simplify provisioning with a config tool
- Use ansible to install the webserver
- Debugging
- Building Hardened Images
- Use Ansible modules to harden our image
- Baking a Jenkins image
- Building a Pipeline for Packer Image
- Validate Packer templates
- Create a manifest profile
- Testing
- CI pipeline
JUnit
- What is Unit Testing?
- Tools for Unit Testing
- What is JUnit?
- How to configure JUnit?
- Writing Basic JUnit Test cases
- Running Basic JUnit Test cases
- JUnit Test Results
Selenium
- Introduction to Selenium
- Components of Selenium
- Selenium IDE
- Selenium Web driver
- Selenium Grid
- Installing and Configuring Selenium
- Working with Selenium IDE
- Working With Selenium Web driver with Java Test Case Setup
- Setup and Working with Selenium Grid
Jacoco
- Overview of Code coverage process
- Introduction of Jacoco
- How Jacoco works!
- How to install Jacoco?
- Setup testing Environment with Jacoco
- Create test data files using Jacoco and Maven
- Create a Report using Jacoco
- Demo — Complete workflow of Jacoco with Maven and Java Project
- Overview of Configuration Management
- Introduction of Ansible
- Ansible Architecture
- Let's get started with Ansible
- Ansible Authentication & Authorization
- Let's start with Ansible Adhoc commands
- Let's write Ansible Inventory
- Let's write Ansible Playbook
- Working with Popular Modules in Ansible
- Deep Dive into Ansible Playbooks
- Working with Ansible Variables
- Working with Ansible Template
- Working with Ansible Handlers
- Roles in Ansible
- Ansible Galaxy
- Understanding the Need of Kubernetes
- Understanding Kubernetes Architecture
- Understanding Kubernetes Concepts
- Kubernetes and Microservices
- Understanding Kubernetes Masters and its Components
- kube-apiserver
- etcd
- kube-scheduler
- kube-controller-manager
- Understanding Kubernetes Nodes and its Components
- kubelet
- kube-proxy
- Container Runtime
- Understanding Kubernetes Addons
- DNS
- Web UI (Dashboard)
- Container Resource Monitoring
- Cluster-level Logging
- Understand Kubernetes Terminology
- Kubernetes Pod Overview
- Kubernetes Replication Controller Overview
- Kubernetes Deployment Overview
- Kubernetes Service Overview
- Understanding Kubernetes running environment options
- Working with first Pods
- Working with first Replication Controller
- Working with first Deployment
- Working with first Services
- Introducing Helm
- Basic working with Helm
Deploying Your First Terraform Configuration
- Introduction
- What's the Scenario?
- Terraform Components
Updating Your Configuration with More Resources
- Introduction
- Terraform State and Update
- What's the Scenario?
- Data Type and Security Groups
Configuring Resources After Creation
- Introduction
- What's the Scenario?
- Terraform Provisioners
- Terraform Syntax
Adding a New Provider to Your Configuration
- Introduction
- What's the Scenario?
- Terraform Providers
- Terraform Functions
- Intro and Variable
- Resource Creation
- Deployment and Terraform Console
- Updated Deployment and Terraform Commands
- Lets understand Continuous Integration
- What is Continuous Integration
- Benefits of Continuous Integration
- What is Continuous Delivery
- What is Continuous Deployment
- Continuous Integration Tools
- What is Jenkins
- History of Jenkins
- Jenkins Architecture
- Jenkins Vs Jenkins Enterprise
- Jenkins Installation and Configurations
- Jenkins Dashboard Tour
- Understand Freestyle Project
- Freestyle General Tab
- Freestyle Source Code Management Tab
- Freestyle Build Triggers Tab
- Freestyle Build Environment
- Freestyle Build
- Freestyle Post-build Actions
- Manage Jenkins
- My Views
- Credentials
- People
- Build History
- Creating a Simple Job
- Simple Java and Maven Based Application
- Simple Java and Gradle Based Application
- Simple DOTNET and MSBuild Based Application
- Jobs Scheduling in Jenkins
- Manually Building
- Build Trigger based on fixed schedule
- Build Trigger by script
- Build Trigger Based on pushed to git
- Useful Jobs Configuration
- Jenkins Jobs parameterised
- Execute concurrent builds
- Jobs Executors
- Build Other Projects
- Build after other projects are built
- Throttle Builds
- Jenkins Plugins
- Installing a Plugin
- Plugin Configuration
- Updating a Plugin
- Plugin Wiki
- Top 20 Useful Jenkins Plugins
- Using Jenkins Plugins Best Practices
- Jenkins Node Management
- Adding a Linux Node
- Adding a Windows Node
- Nodes Management using Jenkins
- Jenkins Nodes High Availability
- Jenkins Integration with other tools
- Jira
- Git
- SonarQube
- Maven
- JUnit
- Ansible
- Docker
- AWS
- Jacoco
- Coverity
- Selenium
- Gradle
- Reports in Jenkins
- JUnit Report
- SonarQube Reports
- Jacoco Reports
- Coverity Reports
- Selenium Reports
- Test Results
- Cucumber Reports
- Notification & Feedback in Jenkins
- CI Build Pipeline & Dashboard
- Email Notification
- Advance Email Notification
- Slack Notification
- Jenkins Advance — Administrator
- Security in Jenkins
- Authorization in Jenkins
- Authentication in Jenkins
- Managing folder/subfolder
- Jenkins Upgrade
- Jenkins Backup
- Jenkins Restore
- Jenkins Command Line
- Real-time monitoring: Datadog provides real-time monitoring of your infrastructure and applications, allowing you to quickly identify and resolve issues before they impact your users.
- Customizable dashboards: With Datadog, you can create customizable dashboards that give you a real-time view of your entire infrastructure. These dashboards can be tailored to your specific needs and can include metrics and alerts for all of your systems and applications.
- Integrations: Datadog integrates with a wide range of third-party tools and services, allowing you to monitor and manage your entire IT stack from a single platform.
- Collaboration: Datadog provides collaboration tools that enable your IT team to work together to resolve issues quickly and efficiently.
- Automatic alerting: Datadog can be configured to automatically alert you when certain metrics or events occur. You can set up alerts for things like server downtime, high CPU usage, or application errors.
- Comprehensive metrics: Datadog collects and analyzes a wide range of metrics from your infrastructure and applications, including server performance, network traffic, and application logs.
- Machine learning: Datadog's machine learning capabilities can help you identify anomalies and patterns in your data, allowing you to proactively address issues before they become critical.
- What Is Splunk?
- Overview
- Machine Data
- Splunk Architecture
- Careers in Splunk
- Setting up the Splunk Environment
- Splunk Licensing
- Getting Splunk
- Installing Splunk
- Adding Data to Splunk
- Basic Searching Techniques
- Adding More Data
- Search in Splunk
- Demo: Splunk Search
- Splunk Search Commands
- Splunk Processing Language
- Splunk Reports
- Reporting in Splunk
- Splunk Alerts
- Alerts in Splunk
- Enterprise Splunk Architecture
- Forwarders
- Installing Forwarders
- Troubleshooting Forwarder Installation
- Splunking for DevOps and Security
- Splunk in DevOps
- DevOps Demo
- Splunk in Security
- Enterprise Use Cases
- Application Development in Splunkbase
- What Is Splunkbase?
- Navigating the Splunkbase
- Creating Apps for Splunk
- Benefits of Building in Splunkbase
- Splunking on Hadoop with Hunk
- What Is Hadoop?
- Running HDFS Commands
- What Is Hunk?
- Installing Hunk
- Moving Data from HDFS to Hunk
- Composing Advanced Searches
- Introduction to Advanced Searching
- Eval and Fillnull Commands
- Other Splunk Command Usage
- Filter Those Results!
- The Search Job Inspector
- Creating Search Macros
- What Are Search Macros?
- Using Search Macros within Splunk
- Macro Command Options and Arguments
- Other Advanced Searching within Splunk
- Introduction and Overview of NewRelic
- What is Application Performance Management?
- Understanding a need of APM
- Understanding transaction traces
- What is Application Performance?
- APM Benefits
- APM Selection Criteria
- Why NewRelic is best for APM?
- What is NewRelic APM?
- How does NewRelic APM work?
- NewRelic Architecture
- NewRelic Terminology
- Installing and Configuring NewRelic APM Agents for Application
- Register a Newrelic Trial account
- Installing a JAVA Agent to Monitor your Java Application
- Installing a PHP Agent to Monitor your PHP Application
- Installing New Relic Agent for .NET Framework Application
- Installing a Docker based Agent to Monitor your Docker based Application
- Understanding of NewRelic Configuration settings of newrelic.yml
- Understanding of NewRelic Agent Configuration settings
- Working with NewRelic Dashboard
- Understanding a transactions
- Understanding Apdex and Calculating and Setting Apdex Threshold
- Understanding Circuit break
- Understanding Throughput
- Newrelic default graphs
- Understanding and Configuring Service Maps
- Understanding and Configuring JVM
- Understanding Error Analytics
- Understanding Violations
- Understanding and Configuring Deployments
- Understanding and Configuring Thread Profiler
- Deep Dive into Transaction Traces
- Profiling with New Relic
- Creating and managing Alerts
- Working with Incidents
- Sending NewRelic Alerts to Slack
- Assessing the quality of application deployments
- Monitoring using Newrelic
- View your applications index
- APM Overview page
- New Relic APM data in Infrastructure
- Transactions page
- Databases and slow queries
- Viewing slow query details
- External services page
- Agent-specific UI
- Viewing the transaction map
- Deep Dive into Newrelic Advance
- Newrelic transaction alerts
- Configure and Troubleshoot Cross Application Traces
- NewRelic Service Level Agreements
- Troubleshooting NewRelic
- Understanding and Configuring NewRelic X-Ray Sessions
- Deep Dive into NewRelic Agent Configuration
- Adding Custom Data with the APM Agent
- Extending Newrelic using Plugins
- Finding and Fixing Application Performance Issues with New Relic APM
- Setting up database monitoring using Newrelic APM
- Setting up and Configuring Newrelic Alerts
- Working with NewRelic Performance Reports
- Availability report
- Background jobs analysis report
- Capacity analysis report
- Database analysis report
- Host usage report
- Scalability analysis report
- Web transactions analysis report
- Weekly performance report