Certified DevOps Guru

$15,990.00

[su_tabs mobile="desktop"] [su_tab title="Candidature" disabled="no" anchor="" url="" target="blank" class=""] Are you a seasoned IT professional with a relentless passion for innovation and a wealth of experience in the world of DevOps? The DevOps Guru course is tailored exclusively for individuals like you. 1. Experienced Architects and Practice Heads: If you’re already an architect or practice…

Category:

Description

Course Outline
1. DevOps Concepts
  1. Who is a Developer
  2. Typical tasks of a Developer
  3. Who is an Operations person
  4. Typical tasks of an Operations person
  5. When Dev and Ops meet
  6. Typical issues between Dev and Ops
  7. Software Release Process (SRP)
  8. Roles of Dev, Ops and Testing teams in SRP
  9. Application Release Automation (ARA)
  10. Definition of DevOps
  11. DevOps vs ARA
  12. DevOps Process
  13. DevOps People
  14. DevOps Tools
  15. Periodic Table of DevOps
2. DevOps Terminologies
  1. Servers
  2. Clients
  3. Agents
  4. Source Code Management
  5. Code Version Control System
  6. Centralized Version Control
  7. Distributed Version Control
  8. Continuous Integration
  9. Continuous Build
  10. Build Artifact
  11. Artifact Repository
  12. Continuous Testing
  13. Unit Testing
  14. Integration Testing
  15. Functional Testing
  16. Performance Testing
  17. Quality Testing
  18. Security Testing
  19. Provisioning Automation
  20. Infrastructure Orchestration
  21. Configuration Automation
  22. Deployment Automation
  23. Continuous Delivery
  24. Continuous Deployment
  25. Continuous Monitoring
  26. Monitoring as Code
  27. Infrastructure as Code
  28. Orchestration as Code
  29. Configuration as Code
  30. Everything as Code
  31. Infrastructure as a Service
  32. Platform as a Service
  33. Software as a Service
  34. Everything as a Service
  35. API
  36. Everything as API
  37. Software Defined Storage
  38. Software Defined Network
  39. Software Defined Data Center
  40. Containerization
  41. Virtualization
  42. Virtualization vs Containerization
  43. Immutable Infrastructure based Deployment
  44. Deployment Rollout and Rollback
  45. Monolithic Application
  46. Distributed Application
  47. Service Oriented Architecture
  48. Microservices
  49. Blue Green Deployment
  50. Canary Deployment
  51. A/B Testing
  52. Zero Downtime Designs
3. Agile Concepts
  1. Typical Waterfall Development Model
  2. Understanding problems with Waterfall Model
  3. What is Agile Model of Development
  4. Benefits of Agile Development
  5. Agile Manifesto
  6. Roles in Agile
  7. Scrum and Sprint
  8. Kanban
  9. Planning Scrum
  10. Story
  11. Estimates
  12. Scrum Practices
4. Oracle VM for Virtualization
  1. Why do I need to Learn Virtualization for DevOps?
  2. What is Virtualization
  3. Working on Oracle Virtualbox
  4. Create a VM
  5. Install OS in a VM
  6. Virtual Machine Networking
  7. Virtual Machine Storage
  8. Virtual Appliances
  9. Virtualization vs Cloud
  10. Virtualization vs Containers
5. Linux Administration
  1. Is Linux required for learning DevOps?
  2. What is Linux
  3. History of Linux
  4. Linux Internal Architecture
  5. Linux Distributions
  6. Install Linux
  7. Linux Filesystem
  8. Managing Users
  9. Linux Terminal
  10. Logging in Remotely into Linux
  11. Common Linux Commands
  12. Managing Services
  13. Managing Software
  14. Linux File Permissions
  15. Apache Server Management
6. Vagrant for Virtualization Automation
  1. Automating and abstracting virtualization complexities
  2. Understanding various approaches used in automating virtualization
  3. Learning virtualization automation with Vagrant
  4. Vagrant’s use case as Workstation Standardization
  5. Vagrant as Infrastructure as Code
  6. Vagrant as Desired State Configuration Management
  7. Vagrant providers
  8. Vagrant Commands
  9. Vagrantfile
  10. Using Vagrant to launch multiple systems at once
  11. Familiarity with Vagrant Boxes
  12. Exporting and Importing Vagrant Boxes
  13. Using Vagrant to bootstrap a system with shell scripts
  14. Impact of Vagrant in DevOps timeline optimization
  15. Understanding company behind Vagrant
  16. Where to position Vagrant and where not to
7. Shell Scripting for Linux Automation
  1. Do I need to know Scripting for DevOps?
  2. What is Scripting
  3. Scripting vs Programming
  4. Shell Script vs other Scripting languages
  5. Shell Scripting Syntax
  6. Variables in Shell Scripts
  7. Printing in Shell Scripts
  8. Arguments in Shell Scripts
  9. Conditionals in Shell Scripts
  10. Loops in Shell Scripts
8. Python Programming
  1. Do I need to know coding for DevOps?
  2. Python vs Other Programming Languages
  3. Python Syntax
  4. Variables
  5. Data Types
  6. Conditionals
  7. Loops
  8. Functions
  9. Modules
  10. Python PIP
9. Ruby Programming
  1. Ruby vs Other Programming Languages
  2. Ruby Syntax
  3. Variables
  4. Data Types
  5. Conditionals
  6. Loops
  7. Functions
  8. Classes
  9. Ruby Gems
10. AWS Cloud
  1. Why AWS is the market leader
  2. AWS Services
  3. EC2
  4. EBS
  5. VPC
  6. Security Groups
  7. Elastic IP
  8. S3
  9. RDS
  10. Elastic Load Balancer
  11. AWS CLI
11. Azure and GCP IAAS Cloud
  1. Azure Virtual Machines (VMs)
  2. Azure Virtual Networks
  3. Azure Resource Manager (ARM)
  4. Google Cloud Compute Engine
  5. Google Cloud Virtual Private Cloud (VPC)
  6. Google Cloud Deployment Manager
  7. Multi-Cloud Strategies and Use Cases
12. Terraform for AWS Cloud Automation
  1. Why Terraform?
  2. Core Terraform Components
  3. Fundamental Concepts
  4. Terraform syntax, internals, and patterns
  5. Terraform Coding Examples
  6. Provisioning resources with Terraform on AWS
  7. Creating AWS compute instances
  8. Creating AWS databases
  9. Creating Elastic IP
  10. Attaching Elastic IP with Instances
  11. Variables and Resource References
  12. Creating Security Groups
  13. Attaching Security Groups to AWS instances
  14. Remote Exec
  15. End to End Infrastructure and Configuration Automation with Terraform
13. ARM Templates and Google Cloud Deployment Manager
  1. Overview of ARM templates.
  2. Structure and syntax.
  3. Parameters and variables.
  4. Overview of ARM templates.
  5. Structure and syntax.
  6. Parameters and variables.
  7. Deploying resources using ARM templates.
  8. Resource provisioning with Deployment Manager.
  9. Creating reusable templates in ARM.
  10. Blueprint development in Deployment Manager.
14. Puppet for Agent based Configuration Automation
  1. Introduction to Agent-based Configuration Management
  2. Introduction to concepts of resources and providers
  3. Desired State Configuration Management
  4. Managing Puppet Infrastructure as a Code
  5. Puppet Code Lifecycle
  6. Understanding architecture components
  7. Installing puppetmaster and puppet agent
  8. Implementing Puppet Enterprise GUI
  9. Writing Manifests
  10. Running Manifests locally
  11. Running Manifests on Server
  12. Using common resources – file, service, package
  13. Automate anything by executing commands through puppet
  14. Understanding non sequential coding style
  15. Implementing ordering in puppet
  16. Dissecting a puppet code run
  17. Understanding how to write platform independent code in puppet
  18. Using variables
  19. Using facter variables
  20. Puppet conditionals
  21. Use of embedded ruby templates in puppet
  22. Implementing modularity in puppet
  23. Using third party modules
  24. Creating own modules
  25. Applying automation modules on agents
  26. Automating web services with Puppet
15. Chef for Agent based Configuration Automation
  1. Configuration Management with Chef
  2. Introduction to concepts of resources and providers in Chef
  3. Desired State Configuration Management push/pull mechanisms in chef
  4. Managing Chef Infrastructure as a Code n Git SCM
  5. Understanding architecture components
  6. Chef component integration flow
  7. Installing chef workstation, chef server, chef node
  8. Implementing enterprise chef with GUI
  9. Writing recipes
  10. Running recipes locally
  11. Running recipes on Server
  12. Using common resources – file, service, package
  13. Automate anything by executing commands through chef
  14. Implementing modularity in chef through cookbooks
  15. Using third party cookbooks
  16. Creating own cookbooks
  17. Uploading cookbooks
  18. Mapping cookbooks
  19. Applying cookbooks on agents
  20. Understanding concept of runlist
  21. Using file shipment within cookbooks
  22. Understanding benefits of sequential coding style
  23. Understanding the scalability of chef
  24. Dissecting a chef code run
  25. Understanding how to write platform independent code in chef
  26. Using variables
  27. Using ohai variables
  28. Chef conditionals & loops
  29. Use of embedded ruby templates in Chef
  30. Automating databases with Chef
  31. Automating web services with Chef
16. Ansible for Agentless Configuration Automation
  1. Introduction to Agent-less Configuration Automation
  2. Configuration Management with Ansible
  3. Introduction to concepts of modules and providers in Ansible
  4. Desired State Configuration Management through Push
  5. Understanding Ansible requirements
  6. Understanding enterprise implementation architectures
  7. Ansible code run workflow
  8. Installing Ansible Tower
  9. Installing Ansible Opensource
  10. Understanding concept of inventory
  11. Managing datacenter structures with inventory
  12. Writing playbooks
  13. Running playbooks
  14. Using common modules – file, service, apt, yum
  15. Automate anything by executing commands through Ansible
  16. Understanding benefits of yaml coding
  17. Common automation with Ansible
  18. Platform dependencies in Ansible code
  19. Using variables
  20. Ansible vault variables
  21. Using Ansible vault for storing passwords
  22. Automating databases with Ansible
  23. Automating web services with Ansible
  24. WordPress Automation using Ansible
17. Opsworks for configuration management
  1. Understanding the role of OpsWorks in managing infrastructure.
  2. Creating and configuring OpsWorks stacks.
  3. Creating layers for different application components.
  4. Introduction to Chef recipes and cookbooks.
  5. Writing custom recipes for configuration management.
  6. Understanding OpsWorks lifecycle events.
  7. OpsWorks best practices for configuration management.
18. LXC/LXD for Understanding Containerization
  1. Understanding Linux Containers
  2. Using LXC/LXD
  3. Understanding benefits of docker over LXC/LXD
19. Docker for Containerization
  1. Why Docker?
  2. Understanding Docker Architecture
  3. Implementing Docker
  4. Docker commands to start, manage and stop containers
  5. Running docker containers in interactive mode
  6. Understanding ephemeral behavior of docker
  7. Data persistence in docker
  8. Network Stack of docker
  9. Understanding Docker repositories
  10. Using docker hub
  11. Creating own docker images and submitting to Hub
  12. Creating docker image from docker file
  13. Managing docker at scale
  14. Understanding docker’s use case as deployment tool
  15. Understanding concept of Immutable Infrastructure
20. Amazon ECS, Azure Container Apps, and Google Cloud Run
  1. Understanding container orchestration with ECS.
  2. Creating ECS Clusters
  3. Building Docker containers for ECS.
  4. Creating task definitions for containerized applications.
  5. ECS Services
  6. Introduction to Azure Container Apps
  7. Use cases and benefits.
  8. Creating Container Apps
  9. Defining Container Services with Azure
  10. Scaling Container Apps
  11. Introduction to Google Cloud Run
  12. Creating Cloud Run Services
  13. Deploying containerized applications on Cloud Run.
  14. Multi-Cloud Containerization Strategies
21. Kubernetes for Container Microservice Orchestration
  1. What is orchestration
  2. Why Kubernetes is required
  3. Understanding of Swarm vs Kubernetes vs Mesos
  4. Understanding Kubernetes Architecture
  5. Implementing Kubernetes cluster on 4 Servers
  6. Managing docker lifecycle using Kubernetes
  7. Creating a deployment in Kubernetes
  8. Managing deployment
  9. Deleting Deployment
  10. Scaling of containers on Kubernetes
  11. Exploring container logs in kubernetes
  12. Implementing Services on Kubernetes
  13. Nodeport vs Hostport Networking
  14. Persistent Volumes
22. OpenShift, Amazon Elastic Kubernetes Service (EKS), Azure Kubernetes Service (AKS), and Google Kubernetes Engine (GKE)
  1. Introduction to OpenShift
  2. Understanding OpenShift as a Kubernetes platform.
  3. OpenShift Architecture
  4. Setting up OpenShift clusters.
  5. Deploying applications using OpenShift.
  6. CI/CD with OpenShift
  7. Introduction to Amazon EKS
  8. Creating and Managing EKS Clusters
  9. Node Groups and Worker Nodes
  10. Container Orchestration with EKS
  11. Monitoring and Logging
  12. Introduction to Azure AKS
  13. Creating AKS Clusters
  14. Node Pools and Nodes
  15. Kubernetes Workloads in AKS
    1. Deploying containerized applications.
    2. Helm charts and application management.
  16. Introduction to Google GKE
  17. Creating GKE Clusters
  18. Node Pools and Node Management
  19. Application Deployment in GKE
    1. Deploying containerized applications.
    2. YAML manifests and deployment strategies.
18. Git & GitHub for Source Code Management
  1. Understanding handover of source code from Developer team to Operations team
  2. Understanding Wall of Confusion
  3. Understanding Code Conflicts
  4. Understanding Merge Hell
  5. Understanding Possible Merger Issue Resolution approaches
  6. Understanding use case for git and brief history of Linus Torvalds’s contribution
  7. Using git in command line to clone an internet repository
  8. Using local git command line environment setup
  9. Using git to do commit code locally
  10. Integrating local git with remote git server
  11. Using Github.com by creating user account and projects
  12. Using Github.com UI to perform typical source code management tasks
  13. Understanding extra features of GitHub UI over basic git command line
  14. Concepts of bug tracking and collaborative documentation
  15. Git clone of github repository
  16. Distributed use of Git
  17. Git history
19. GitLab as Opensource Alternative of GitHub
  1. What is GitLab
  2. Why use GitLab
  3. GitLab Features
  4. GitHub vs GitLab
  5. Working on GitLab UI
  6. Working with GitLab using Git CLI
20. Jenkins for CI/CD
  1. Introduction to Continuous Integration
  2. Understanding Jenkins and Hudson relation
  3. Implementing Jenkins through Infrastructure as Code
  4. Understanding concept of Job based automation
  5. Creating first job in Jenkins
  6. Enabling Git in Jenkins
  7. Integrating Git Server with Jenkins for periodic polling of source code changes
  8. Import sample java j2ee application on git server
  9. Trigger Jenkins job from Git
  10. Understanding Jenkins Deployment Architecture for better performance
  11. Implementing Jenkins Master-Slave
  12. Jenkins Build Triggers
  13. Jenkins Build Steps
  14. Jenkins Post Build Steps
  15. Jenkins Plugins
  16. Jenkins Global Configurations
  17. Jenkins Pipelines
  18. Pipeline DSL
  19. Pipeline Groovy
  20. Stages vs Jobs
21.GitHub Actions, GitLab CI(Jenkins alternative CI/CD platforms)
  1. Introduction to GitHub Actions
  2. Setting up CI/CD workflows in GitHub Actions.
  3. Configuring triggers for workflow execution.
  4. Building code with GitHub-hosted runners.
  5. Deployments with GitHub Actions
  6. Deployments with GitHub Actions
  7. Creating .gitlab-ci.yml Files
  8. Runners and Executors
  9. Building and Testing Pipelines with GitLab CI/CD
  10. Deployment and Release
  11. Comparison of CI/CD platforms(Jenkins/Github Actions/GitLab CI)
22. Maven & Jenkins for Build Automation
  1. Build Process using Java code
  2. Using maven to build a Java project
  3. Understanding binary files using .class
  4. Understanding build packaging using .jar
  5. Understanding .war
  6. Maven Build Lifecycle
  7. Integrating Maven with Jenkins
  8. Running Maven from Jenkins
23. Sonatype Nexus & Jenkins for Build Artifact Management
  1. Artifact Repository’s role in DevOps Workflow
  2. Manual Maven Build Version Control
  3. Introduction to Maven Artifact Repository
  4. Introduction to Nexus Artifact Repository
  5. Implementing Nexus Repository
  6. Integrating Nexus with Maven
  7. Running Maven build in Jenkins to store build artifacts in Nexus
  8. Snapshots in Nexus
  9. Release in Nexus
  10. Downloading artifact versions from Nexus
24. SonarQube & Jenkins for Code Testing
  1. Code Quality Testing
  2. Metrics to Measure Quality of Coding
  3. Introduction to SonarQube
  4. Implementing SonarQube
  5. Integrating SonarQube with Maven
  6. Running SonarQube Code Quality Analysis from Jenkins
  7. SonarQube Quality Gates
  8. Gated Jenkins Pipeline
25. Tomcat & Jenkins for Deployment Automation
  1. What is a middleware
  2. What is Tomcat
  3. Understanding a Simple Java Web Application
  4. Installing Tomcat
  5. Managing Users in Tomcat
  6. Enabling Admin Access in Tomcat
  7. Managing Tomcat
  8. Deploying WAR files in Tomcat
  9. Undeploying WAR files
  10. Example Application on Tomcat
  11. Configuring API access to Tomcat
  12. Using curl to call API
  13. Tomcat Deployment API
  14. Tomcat Undeployment API
  15. API based Deployment on Tomcat using Jenkins
  16. Container Deployment Plugin for Tomcat
  17. Installing Deployment Plugin
  18. Configuring Deployment Plugin
  19. Plugin based Deployment on Tomcat from Jenkins
26. Selenium IDE for Browser Automation
  1. Understanding Live Application Testing
  2. Live Website Testing
  3. Transaction Testing
  4. Installing Selenium IDE
  5. Recording Transactions
  6. Testing Transactions
27. Selenium WebDriver Testing Automation
  1. Understanding concept of automated testing
  2. Understanding webdrivers
  3. Installing Selenium Webdriver
  4. Writing a python wrapper
  5. Testing with Selenium using Python
  6. Jenkins Integration with Selenium using Python
28. VM Monitoring with Nagios
  1. What is Continuous Monitoring
  2. Need for Monitoring
  3. What is Nagios
  4. What can Nagios Monitor
  5. How does Nagios compare with Competition
  6. Installing Nagios
  7. Configuring Nagios for monitoring local system
  8. Understanding File structures in Nagios
  9. Understanding inter file relationships and dependencies in Nagios Configuration
  10. Configuring NRPE on Linux server
  11. Using NRPE to monitor Linux systems through Nagios
  12. Configuring NSClient++ on Windows
  13. Using check_nt to monitor Windows systems
  14. Understanding Nagios
  15. Ecosystem of Agent Alternatives
  16. Understanding Nagios
  17. Ecosystem of GUI Alternatives
  18. Understanding options for web based GUI management of
  19. Nagios Configurations
  20. Understanding Nagios Core engine alternatives
29. Container Monitoring with Prometheus & Grafana
  1. What is Prometheus?
  2. Setting up Prometheus
  3. Installing Prometheus
  4. Configuring Prometheus
  5. Setting up Grafana For Prometheus
  6. Grafana dashboard
29. ELK (Elasticsearch, Logstash, and Kibana), AWS CloudWatch, Azure Monitor, and Google Cloud Monitoring
  1. Understanding the importance of real-time monitoring.
  2. Introduction to ELK, AWS CloudWatch, Azure Monitor, and Google Cloud Monitoring.
  3. Understanding Elasticsearch as a distributed, RESTful search and analytics engine.
  4. Installation and configuration of Elasticsearch.
  5. Introduction to Logstash for log ingestion and processing.
  6. Setting up Logstash pipelines.
  7. Overview of Kibana as a data visualization tool.
  8. Installing and configuring Kibana.
  9. Introduction to AWS CloudWatch as a monitoring and observability service.
  10. Setting up CloudWatch Alarms for resource monitoring.
  11. Overview of Azure Monitor for Azure resource monitoring.
  12. Configuration of metrics and logs in Azure Monitor.
  13. Introduction to Google Cloud Monitoring (formerly Stackdriver).
  14. Configuring monitoring and alerting policies in Google Cloud.
  15. Real-world examples and case studies of log management and monitoring in production environments.
29. Serverless Computing(AWS Lambda, Azure Functions, and Google Cloud Functions)
  1. Understanding the concept of serverless computing.
  2. Benefits and use cases of serverless architectures.
  3. Overview of AWS Lambda, Azure Functions, and Google Cloud Functions.
  4. Introduction to AWS Lambda as a serverless compute service.
  5. Creating and configuring Lambda functions.
  6. Event sources and triggers for Lambda.
  7. Overview of Azure Functions for serverless application development.
  8. Creating Azure Functions with different triggers.
  9. Introduction to Google Cloud Functions as a serverless platform.
  10. Writing and deploying Cloud Functions.
  11. Event-driven architecture with Cloud Functions.
  12. Building serverless applications using Lambda, Azure Functions, and Cloud Functions.
  13. Serverless Deployment and CI/CD
  14. Real-world Use Cases
30. AWS DevOps Stack
  1. What is Cloud9
  2. Working on Cloud9
  3. What is CodeCommit
  4. How to work on CodeCommit UI
  5. How to use git CLI with CodeCommit
  6. Gtthub vs CodeCommit
  7. What is CodeBuild
  8. How to build using CodeBuild
  9. Maven CLI vs CodeBuild
  10. CodeBuild Benefits
  11. What is CodeDeploy
  12. Deployment Groups
  13. Deployment Agents
  14. Performing a deployment using CodeDeploy
  15. What is CodePipeline
  16. Tying all parts of AWS DevOps CICD workflow together
  17. Executing End to End CICD with CodePipeline
  18. What is CodeStar
  19. What is EKS
  20. Setting up EKS
  21. What is ECS
  22. Types of ECS
  23. Using ECS
  24. What is Elastic Beanstalk
  25. Deploying on Elastic Beanstalk
  26. What is CloudFormation
  27. How to write CloudFormation Codes
  28. What is Opsworks
  29. Stacks and Layers
  30. Create ad run Opsworks
31. Azure DevOps Stack
  1. Overview of Azure DevOps
  2. Managing Teams and Tasks in Azure Boards
  3. Understanding Azure Repos
  4. Working with Azure Repos
  5. Understanding Azure Piplines
  6. Building with Azure Pipelines
  7. Artifact Management with Azure Artifacts
  8. Deployment in Azure Pipeline
  9. Testing with Azure Test Plans
  10. CICD with Azure Pipeline
31. Google Cloud Platform (GCP) DevOps
  1. Benefits of using GCP for DevOps.
  2. Implementing Continuous Integration and Continuous Deployment (CI/CD) on GCP.
  3. Strategies for multi-cloud deployments.
  4. Cross-cloud DevOps use cases.
  5. Real-world examples and case studies of DevOps practices on GCP.
Projects
1. Shell Scripting Project

Project Description: Automating Apache Installation on Multiple Linux Systems and Customizing the Default Webpage with Hostnames.

  1. Dive into the intricacies of Apache installation on Linux systems through our expert-guided tutorials and reference materials.
  2. Craft your custom shell script to automate the installation process, ensuring efficiency and consistency across multiple servers.
  3. Go beyond the basics by dynamically printing each server’s hostname on the default webpage, showcasing your ability to personalize web content programmatically.
  4. Test your script on a diverse range of Linux systems, allowing you to adapt and troubleshoot in various environments.
  5. Showcase your completed project to your peers, receiving valuable feedback and gaining insights from a community of like-minded learners.
2. Python Project

Project Description: Creating an Advanced Arithmetic Calculator Using Python

  1. Command-Line Interaction: To utilize the calculator, simply open your terminal or command prompt and run the Python script of our Arithmetic Calculator.
  2. User Input: The CLI calculator prompts you to enter the numeric values on which you wish to perform the arithmetic operations. Enter the first number and press “Enter,” then enter the second number when prompted (except for the square root operation, which requires only one number).
  3. Operation Selection: After providing the numeric inputs, the calculator displays a list of available arithmetic operations, each represented by a specific command. Choose the desired operation by typing the corresponding command and pressing “Enter.” The available operations include:
    • Addition: Enter +
    • Subtraction: Enter -
    • Multiplication: Enter *
    • Division: Enter /
    • Exponentiation: Enter ^
    • Modulo: Enter %
    • Square Root: Enter sqrt
  4. Error Handling: Our calculator incorporates robust error handling to ensure data validity and prevent common issues. If you provide invalid inputs (e.g., non-numeric characters, division by zero, or negative square root), the calculator will display an error message, guiding you to correct the problem.
  5. Real-Time Result: As soon as you select the arithmetic operation, the calculator performs the calculation and immediately displays the result on the command line interface.
  6. Continuous Usage: The CLI calculator is not limited to a single calculation. You can perform multiple calculations in the same session without restarting the application. Simply follow the prompts to enter new numeric values and choose a new operation.
  7. Versatility and Convenience: With its command-line interface, our calculator is accessible from any terminal or command prompt, making it convenient to use on various operating systems.
  8. Relevance to DevOps: While the calculator project centers on arithmetic operations, it forms an essential foundation for your journey into Python programming within the DevOps domain. The knowledge gained from this project will serve as a stepping stone for tackling more complex Python tasks and projects relevant to your DevOps career.

As part of our larger DevOps course, the Arithmetic Calculator project provides you with a practical hands-on experience, enabling you to apply your Python skills effectively in a command-line environment. By successfully completing this project, you’ll not only enhance your understanding of Python programming but also gain confidence in creating functional command-line applications.

3. Ruby Project

Project Description: Creating an Advanced Arithmetic Calculator Using Ruby

  1. Command-Line Interaction: To utilize the calculator, simply open your terminal or command prompt and run the Ruby script of our Arithmetic Calculator.
  2. User Input: The CLI calculator prompts you to enter the numeric values on which you wish to perform the arithmetic operations. Enter the first number and press “Enter,” then enter the second number when prompted (except for the square root operation, which requires only one number).
  3. Operation Selection: After providing the numeric inputs, the calculator displays a list of available arithmetic operations, each represented by a specific command. Choose the desired operation by typing the corresponding command and pressing “Enter.” The available operations include:
    Addition: Enter +
    Subtraction: Enter –
    Multiplication: Enter *
    Division: Enter /
    Exponentiation: Enter ^
    Modulo: Enter %
    Square Root: Enter sqrt
  4. Error Handling: Our calculator incorporates robust error handling to ensure data validity and prevent common issues. If you provide invalid inputs (e.g., non-numeric characters, division by zero, or negative square root), the calculator will display an error message, guiding you to correct the problem.
  5. Real-Time Result: As soon as you select the arithmetic operation, the calculator performs the calculation and immediately displays the result on the command line interface.
  6. Continuous Usage: The CLI calculator is not limited to a single calculation. You can perform multiple calculations in the same session without restarting the application. Simply follow the prompts to enter new numeric values and choose a new operation.
  7. Versatility and Convenience: With its command-line interface, our calculator is accessible from any terminal or command prompt, making it convenient to use on various operating systems.
  8. Relevance to DevOps: While the calculator project centers on arithmetic operations, it forms an essential foundation for your journey into Ruby programming within the DevOps domain. The knowledge gained from this project will serve as a stepping stone for tackling more complex Ruby tasks and projects relevant to your DevOps career.

As part of our larger DevOps course, the Arithmetic Calculator project provides you with a practical hands-on experience, enabling you to apply your Ruby skills effectively in a command-line environment. By successfully completing this project, you’ll not only enhance your understanding of Ruby programming but also gain confidence in creating functional command-line applications.

4. Vagrant Project

Project Description: In this advanced Vagrant hands-on project, you will immerse yourself in a simulated real-world scenario that mirrors the challenges and complexities faced by DevOps engineers in the industry. You’ll be tasked with setting up and managing a multi-tier application infrastructure, leveraging Vagrant’s capabilities to create, configure, and provision virtualized development environments effortlessly.

  1. Understanding the Scope: You will begin by delving into the project’s scope and objectives. Gain a clear understanding of the multi-node deployment scenario you’ll be handling, mirroring real-life enterprise requirements.
  2. Provisioning Your Vagrant Environment: Dive into the hands-on aspect as you set up your Vagrant environment, replicating multiple nodes to mimic a complex deployment architecture. You’ll configure each node’s specifications, network settings, and provisioning requirements.
  3. Building and Configuring the Nodes: In this phase, you’ll fine-tune each node’s configuration, installing and customizing software packages, and ensuring seamless communication among them.
  4. Orchestrating Multi-Node Deployment: Discover the power of Vagrant in action! Utilize its robust orchestration capabilities to deploy all nodes simultaneously, streamlining the entire process and ensuring consistent results.
  5. Testing and Troubleshooting: Validate your deployment by implementing comprehensive testing procedures. Identify and troubleshoot common issues that arise during multi-node setups, honing your critical problem-solving skills.
  6. Advanced Vagrant Features: Elevate your expertise with advanced Vagrant features. Learn to manage snapshots, implement versioning, and explore integrations with popular configuration management tools.
  7. Scaling and Performance Optimization: As an industry professional, you know the importance of scalability and performance. Discover how Vagrant empowers you to optimize performance and handle larger deployments with ease.
  8. Automating DevOps Pipelines: Conclude this project by automating the entire DevOps pipeline using Vagrant. Witness how it streamlines deployment workflows and enhances collaboration between development and operations teams.

By the end of this hands-on project, you will have unlocked the true potential of Vagrant, arming yourself with valuable skills that can significantly boost your career as a DevOps professional. Embrace the power of streamlined multi-node deployment, and take a confident step forward into the future of DevOps excellence.

5. Terraform Project

Project Description: In this practical, real-world scenario, you’ll learn to automate the deployment of a Java application on a Tomcat service running on an EC2 VM, using the power of Terraform.

  1. Defining the Infrastructure: Begin by understanding the architecture you’ll create during this project. Define the necessary AWS EC2 VM instance and network configurations using Terraform’s declarative syntax.
  2. Provisioning the EC2 VM: Dive into action as you leverage Terraform to provision an EC2 VM, ensuring it meets the requirements for hosting a Tomcat service and deploying the Java application.
  3. Installing and Configuring Tomcat: Learn how to utilize Terraform to automate the installation and configuration of Tomcat on the EC2 VM. Set up the Tomcat environment, including users, access permissions, and basic settings.
  4. Deploying the Java Application: With Terraform at your command, automate the deployment of the Java application onto the Tomcat service. Ensure a seamless integration between the application and Tomcat server.
  5. Network Configuration and Security: Explore how Terraform enables you to set up networking components like security groups and VPC configurations. Strengthen the security of your deployment to meet industry best practices.
  6. Monitoring and Scaling: Delve into the world of monitoring and scaling with Terraform. Implement monitoring tools and configure auto-scaling based on workload demands to ensure optimal performance.
  7. Version Control and Collaboration: Learn the importance of version controlling your infrastructure code using Terraform. Set up collaborative workflows to work effectively within teams.
  8. Infrastructure Teardown: Experience the full lifecycle of your deployment by utilizing Terraform to tear down the infrastructure gracefully. Gain confidence in your ability to manage deployments effectively.
6. Docker Project

Project Description: This hands-on experience will introduce you to the fundamental concepts of Docker, allowing you to encapsulate and run your website within a container.

During this quick and exciting journey, you’ll learn the essential steps of creating a Dockerfile, building a custom Docker image, and deploying your website as a Docker container. Witness the power of Docker as your static website becomes easily portable and isolated, ready to run on any environment.

  1. Preparing Your Static Website: Before diving into Docker, ensure you have a simple static website ready for containerization. This could be a basic HTML/CSS page or a small JavaScript application.
  2. Installing Docker: If you haven’t already, install Docker on your local machine. We’ll use Docker Desktop for Windows or Docker Desktop for macOS, or Docker Engine for Linux users.
  3. Creating a Dockerfile: Learn the essentials of Dockerfile creation. Craft a Dockerfile that defines the base image, copies your static website’s files into the container, and specifies the necessary settings.
  4. Building the Docker Image: Use the Dockerfile to build your custom Docker image. This image will encapsulate your static website and all the required dependencies.
  5. Running the Container: Deploy your Docker image by running a container from it. Witness how your static website is now served from within the Docker container.
  6. Accessing the Website: Access your website from a web browser to confirm that it’s running smoothly within the Docker container.
  7. Cleanup: Learn to manage Docker containers. Stop and remove the container, and clean up any unnecessary resources to keep your system tidy.

By the end of this Docker project, you’ll have achieved a hands-on understanding of Docker’s core concepts and how to containerize a basic static website. This foundation will set you on the path to exploring more complex containerization use cases and integrating Docker into your future development and deployment workflows.

7. Kubernetes Project

Real-Life Use Case Project: “Containerizing a Web Application with Kubernetes”

Project Story: ABC Tech, a growing e-commerce startup, faces challenges with their monolithic web application’s performance during peak times. To address this, they decide to modernize their application infrastructure using Kubernetes. By containerizing their monolithic application into microservices and leveraging Kubernetes’ capabilities, they aim to achieve seamless scalability and high availability.

As a DevOps Engineer at ABC Tech, you have been tasked with implementing this containerization project. Your mission is to design a simplified Kubernetes-based solution that will transform their monolithic web application into microservices and deploy it on a Kubernetes cluster to improve performance and reliability.

  1. Assessment and Planning: Assess the monolithic web application’s architecture and identify components suitable for containerization as microservices.
  2. Containerization: Break down the monolithic application into smaller microservices and design Docker images for each microservice, encapsulating all dependencies and configurations.
  3. Kubernetes Cluster Setup: Set up a simple Kubernetes cluster to host the microservices. Configure basic networking and security settings.
  4. Deploying Microservices: Deploy the microservices onto the Kubernetes cluster. Create Pods, Replica Sets, and Deployments for each microservice to ensure high availability.
  5. Implementing Services: Create Kubernetes Services to expose the microservices within the cluster. Implement load balancing to distribute incoming traffic evenly across multiple instances of each microservice.
  6. Scaling Microservices: Utilize Kubernetes’ Horizontal Pod Autoscaler to automatically scale the microservices based on CPU utilization. This ensures optimal resource utilization during peak times.

By the end of this project, ABC Tech’s monolithic web application will be transformed into microservices and deployed on a Kubernetes cluster. Through the power of Kubernetes, the application will achieve better scalability and improved performance, enabling ABC Tech to handle the increasing user traffic with ease.

8. Puppet Project

Real-Life Use Case Project: “Automating WordPress Deployment using Puppet”

Project Story: XYZ Web Services, a web hosting provider, faces challenges with manual WordPress deployments for their clients. The process is time-consuming and prone to configuration errors, leading to dissatisfied customers.

To address this issue, the DevOps team at XYZ Web Services decides to automate WordPress deployments using Puppet. By leveraging Puppet’s configuration management capabilities, they aim to streamline the deployment process, ensuring consistent and error-free setups for their clients.

As a DevOps Engineer at XYZ Web Services, you have been assigned this Puppet project. Your mission is to design an automated solution using Puppet that will enable seamless WordPress deployments for clients, reducing manual effort and ensuring standardized configurations.

  1. Client Requirements Gathering: Understand the typical requirements and configurations for WordPress deployments, such as web server settings, PHP version, database credentials, and necessary plugins.
  2. Puppet Manifest Design: Create Puppet manifests to define the desired state of the WordPress environment. Specify configurations for the web server, PHP, MySQL, and other dependencies.
  3. Creating Puppet Modules: Design Puppet modules for each component of the WordPress environment. Create modules for Apache/Nginx, PHP, MySQL, and other required packages.
  4. Configuring WordPress Site: Implement Puppet configuration to set up the WordPress site. Define virtual hosts, database connections, and WordPress settings using Puppet templates.
  5. Database Management: Integrate Puppet with database management modules to automate the creation of MySQL databases and user accounts for each WordPress site.

By the end of this Puppet project, XYZ Web Services will have an automated WordPress deployment solution using Puppet. The team will benefit from a standardized and error-free deployment process, improving customer satisfaction and streamlining operations.

9. Chef Project

Real-Life Use Case Project: “Automating WordPress Deployment using Chef”

Project Story: XYZ Web Services, a web hosting provider, faces challenges with manual WordPress deployments for their clients. The process is time-consuming and prone to configuration errors, leading to dissatisfied customers.

To address this issue, the DevOps team at XYZ Web Services decides to automate WordPress deployments using Chef. By leveraging Chef’s configuration management capabilities, they aim to streamline the deployment process, ensuring consistent and error-free setups for their clients.

As a DevOps Engineer at XYZ Web Services, you have been assigned this Chef project. Your mission is to design an automated solution using Chef that will enable seamless WordPress deployments for clients, reducing manual effort and ensuring standardized configurations.

  1. Client Requirements Gathering: Understand the typical requirements and configurations for WordPress deployments, such as web server settings, PHP version, database credentials, and necessary plugins.
  2. Chef Cookbook Design: Create Chef cookbooks to define the desired state of the WordPress environment. Specify configurations for the web server, PHP, MySQL, and other dependencies.
  3. Creating Chef Recipes: Design Chef recipes for each component of the WordPress environment. Create recipes for Apache/Nginx, PHP, MySQL, and other required packages.
  4. Configuring WordPress Site: Implement Chef configuration to set up the WordPress site. Define virtual hosts, database connections, and WordPress settings using Chef templates.
  5. Database Management: Integrate Chef with database management recipes to automate the creation of MySQL databases and user accounts for each WordPress site.

By the end of this Chef project, XYZ Web Services will have an automated WordPress deployment solution using Chef. The team will benefit from a standardized and error-free deployment process, improving customer satisfaction and streamlining operations.

10. Ansible Project

Real-Life Use Case Project: “Automating WordPress Deployment using Ansible”

Project Story: XYZ Web Services, a web hosting provider, faces challenges with manual WordPress deployments for their clients. The process is time-consuming and prone to configuration errors, leading to dissatisfied customers.

To address this issue, the DevOps team at XYZ Web Services decides to automate WordPress deployments using Ansible. By leveraging Ansible’s powerful automation capabilities, they aim to streamline the deployment process, ensuring consistent and error-free setups for their clients.

As a DevOps Engineer at XYZ Web Services, you have been assigned this Ansible project. Your mission is to design an automated solution using Ansible that will enable seamless WordPress deployments for clients, reducing manual effort and ensuring standardized configurations.

  1. Client Requirements Gathering: Understand the typical requirements and configurations for WordPress deployments, such as web server settings, PHP version, database credentials, and necessary plugins.
  2. Ansible Playbook Design: Create Ansible playbooks to define the desired state of the WordPress environment. Specify tasks and configurations for the web server, PHP, MySQL, and other dependencies.
  3. Configuring Inventory: Set up the Ansible inventory to manage client-specific variables and group hosts based on deployment requirements.
  4. Creating Ansible Roles: Design Ansible roles for each component of the WordPress environment. Create roles for Apache/Nginx, PHP, MySQL, and other required packages.
  5. Configuring WordPress Site: Implement Ansible tasks to set up the WordPress site. Define virtual hosts, database connections, and WordPress settings using templates.
  6. Database Management: Integrate Ansible with database management tasks to automate the creation of MySQL databases and user accounts for each WordPress site.

By the end of this Ansible project, XYZ Web Services will have an automated WordPress deployment solution using Ansible. The team will benefit from a standardized and error-free deployment process, improving customer satisfaction and streamlining operations.

11. GitLab Project

Real-Life Use Case Project: “Setting up a Private GitLab Server”

Project Story: ABC Software Solutions, a security-conscious software development company, aims to enhance their code security and collaboration capabilities. They currently use public Git repositories, but due to sensitive code and proprietary projects, they have decided to migrate to a private version control system.

To address this requirement, the DevOps team at ABC Software Solutions decides to set up a Private GitLab Server on their internal infrastructure. By having a self-hosted GitLab server, they can have full control over their repositories, ensure enhanced security, and promote efficient team collaboration.

As a DevOps Engineer at ABC Software Solutions, you have been entrusted with this Private GitLab Server project. Your mission is to design and deploy a self-hosted GitLab instance, ensuring smooth migration from public repositories to the private server.

12. Jenkins Project

Real-Life Use Case Project: “Java CI/CD Pipeline for a Java Web Application”

Project Story: ABC Software Solutions, a software development company, is working on a Java-based web application with a large development team. They face challenges in managing the software development lifecycle and ensuring high code quality before deployment. Manual testing and deployment processes slow down the release cycle, leading to delays and potential defects in production.

To address these challenges, the DevOps team at ABC Software Solutions decides to implement a comprehensive CI/CD pipeline using GitLab, Jenkins, Maven, Sonatype Nexus, SonarQube, Tomcat, and Selenium. By integrating these tools, they aim to automate the entire development and deployment process, ensuring faster, reliable, and high-quality releases.

As a DevOps Engineer at ABC Software Solutions, you have been entrusted with this CI/CD pipeline project. Your mission is to design and set up an end-to-end CI/CD pipeline that automates code integration, testing, code quality checks, artifact management, and automated deployment.

  1. Version Control with GitLab: Set up a GitLab repository to manage the source code of the Java web application. Ensure proper branching and version control practices are followed.
  2. Continuous Integration with Jenkins: Configure Jenkins to monitor the GitLab repository for code changes. Automate the build process using Maven to compile, test, and package the Java application.
  3. Artifact Management with Sonatype Nexus: Set up Sonatype Nexus as the artifact repository to store and manage Maven artifacts. Ensure artifacts are versioned and easily accessible for deployments.
  4. Code Quality Checks with SonarQube: Integrate SonarQube with Jenkins to perform code quality analysis. Define quality gates and enforce coding standards to maintain high code quality.
  5. Automated Deployment on Tomcat: Configure Jenkins to deploy the Java web application to Tomcat automatically. Utilize API-based deployment for seamless integration with Tomcat.
  6. Automated Selenium Testing: Implement Selenium automated tests to ensure end-to-end functionality of the web application. Integrate these tests into the CI/CD pipeline for automated testing.
  7. Pipeline Visualization and Monitoring: Create a comprehensive dashboard to visualize the CI/CD pipeline’s stages and monitor the progress of each build and deployment.
  8. Deployment to Staging and Production Environments: Extend the CI/CD pipeline to include deployment to staging and production environments, ensuring controlled and safe releases.

By the end of this CI/CD pipeline project, ABC Software Solutions will have a fully automated and efficient CI/CD process for their Java web application. The development team will experience faster feedback loops, improved code quality, and reduced time-to-market. The company will benefit from higher customer satisfaction and a competitive advantage in the market.

13. Nagios Project

Real-Life Project Story: “Implementing Monitoring-as-Code for Tomcat Servers with Nagios”

Project Background: XYZ Web Services, a web hosting company, is committed to embracing modern DevOps practices, including Infrastructure as Code (IaC) and Monitoring as Code (MaC). They have recognized the need to automate their monitoring setup to achieve greater efficiency, scalability, and consistency.

To address these goals, the DevOps team at XYZ Web Services decides to implement Monitoring-as-Code for their Tomcat servers using Nagios. By adopting this approach, they aim to define their monitoring configurations as code, enabling version control, automated provisioning, and streamlined management of monitoring infrastructure.

As a DevOps Engineer at XYZ Web Services, you have been entrusted with this Monitoring-as-Code Project. Your mission is to design and implement a monitoring solution using Nagios, where the monitoring configurations are defined and managed as code.

Project Steps of Implementation:

  1. Infrastructure as Code Foundation: Establish the foundation for Infrastructure as Code (IaC) by adopting a tool like Terraform or AWS CloudFormation to provision and manage the infrastructure where Nagios will run.
  2. Monitoring Configuration Repository: Create a Git repository to serve as the central repository for storing the Nagios monitoring configurations as code.
  3. Nagios Configuration as Code: Define the Nagios monitoring configurations as code using a tool like Nagios BPI (Business Process Intelligence). This allows expressing the monitoring checks, hosts, and services in a declarative manner.
  4. Version Control: Adopt best practices for version controlling the monitoring configurations using Git. Enable collaboration and maintain a history of changes for monitoring configurations.
  5. Automated Deployment: Implement automation scripts or CI/CD pipelines to deploy the Nagios server and the Monitoring-as-Code configurations automatically.

By the end of this Monitoring-as-Code Project, XYZ Web Services will have a fully automated and version-controlled monitoring setup for their Tomcat servers using Nagios. The DevOps team will benefit from streamlined infrastructure management, enhanced collaboration, and the ability to adapt monitoring configurations swiftly as their infrastructure evolves.

14. AWS Code Family Project

Real-Life Workshop Project: “Building an AWS CI/CD Pipeline for Java Application Deployment”

Workshop Story: Welcome to our hands-on workshop where you will dive into the world of AWS Code services, experiencing their power in automating software development, testing, and deployment. In this immersive workshop, you will gain practical expertise in setting up a seamless CI/CD pipeline for a Java application deployed onto an EC2 Linux instance.

Throughout the workshop, you will be introduced to the key AWS Code services, each playing a crucial role in the CI/CD process. You will start by using AWS CodeCommit as a secure and fully managed Git repository to host your Java application’s source code. AWS CodeArtifact will be utilized as a managed artifact repository, ensuring efficient package management for your software artifacts.

With AWS CodeBuild, you will learn how to run automated tests and produce software packages, facilitating continuous integration. AWS CodeDeploy will take center stage as you explore its capabilities in deploying your Java application onto an EC2 Linux instance, enabling seamless and reliable software releases.

The workshop’s highlight will be AWS CodePipeline, where you will create an automated end-to-end CI/CD pipeline for your Java application. Witness how AWS CodePipeline orchestrates the various stages, integrating AWS CodeCommit, CodeArtifact, CodeBuild, and CodeDeploy, resulting in a fully automated and streamlined software delivery process.

Workshop Agenda:

  1. Introduction to AWS Code Services: Get an overview of AWS CodeCommit, CodeArtifact, CodeBuild, CodeDeploy, and CodePipeline. Understand their roles in CI/CD workflows.
  2. Setting up AWS Code Services: Create a new AWS CodeCommit repository to host your Java application’s source code. Configure CodeArtifact to manage your software packages.
  3. Automated Testing with AWS CodeBuild: Set up CodeBuild to automatically build and run tests for your Java application. Observe how CodeBuild produces software artifacts.
  4. Deploying with AWS CodeDeploy: Configure CodeDeploy to deploy your Java application onto an EC2 Linux instance. Experience automated deployments with ease.
  5. Creating a CI/CD Pipeline with AWS CodePipeline: Design an end-to-end CI/CD pipeline using CodePipeline. Define stages and actions to automate the entire software delivery process.
  6. Testing the CI/CD Pipeline: Run test scenarios to verify the effectiveness of your CI/CD pipeline. Observe how code changes trigger automated deployments.

By the end of this AWS Code services workshop, you will have practical hands-on experience in building an efficient CI/CD pipeline for your Java application on AWS. You will leave empowered with the knowledge and skills to automate software development, testing, and deployment using AWS Code services, ready to excel in the world of modern software delivery.

15. Azure DevOps Project

Real-Life Workshop Project: “Azure DevOps CI/CD Pipeline for Java Application Deployment”

Workshop Story: Welcome to our hands-on workshop where you will explore the capabilities of Azure DevOps, Microsoft’s powerful platform for software development, testing, and deployment. In this immersive workshop, you will gain practical expertise in setting up a seamless CI/CD pipeline for a Java application, empowering you to automate and accelerate your software delivery process using Azure DevOps.

Throughout the workshop, you will delve into the key features of Azure DevOps that facilitate efficient software development and deployment. You will start by using Azure Repos as a Git repository to host your Java application’s source code securely. Azure Artifacts will be utilized to manage your software packages and dependencies seamlessly.

With Azure Pipelines, you will learn how to automate your CI/CD workflow, enabling continuous integration and continuous deployment. Azure Pipelines provides you with the flexibility to define custom build and release processes, tailored to your specific project needs.

The highlight of the workshop will be setting up an end-to-end CI/CD pipeline using Azure DevOps. You will witness how Azure Pipelines orchestrates the build, testing, and deployment stages, integrating Azure Repos and Artifacts, resulting in a fully automated and streamlined software delivery process.

Workshop Agenda:

  1. Introduction to Azure DevOps: Get an overview of Azure DevOps, understand its core services, and explore how it can optimize your software development lifecycle.
  2. Setting up Azure Repos and Artifacts: Create a new Azure Git repository to host your Java application’s source code securely. Configure Azure Artifacts to manage your software packages efficiently.
  3. Automated Testing with Azure Pipelines: Set up Azure Pipelines to automatically build and run tests for your Java application. Observe how Azure Pipelines generates software artifacts.
  4. Continuous Deployment with Azure Pipelines: Configure Azure Pipelines to deploy your Java application to a target environment automatically. Experience the power of continuous deployment.
  5. Creating a CI/CD Pipeline with Azure DevOps: Design an end-to-end CI/CD pipeline using Azure Pipelines. Define custom stages and tasks to automate your software delivery process.
  6. Testing the CI/CD Pipeline: Run test scenarios to verify the effectiveness of your CI/CD pipeline. Observe how code changes trigger automated deployments.

By the end of this Azure DevOps workshop, you will have practical hands-on experience in building an efficient CI/CD pipeline for your Java application using Microsoft’s Azure DevOps platform. You will leave empowered with the knowledge and skills to automate your software development, testing, and deployment, leveraging the full potential of Azure DevOps for successful project delivery.

 

Reviews

There are no reviews yet.

Be the first to review “Certified DevOps Guru”

Your email address will not be published. Required fields are marked *