
Complete Linux, AWS cloud administration fundamentals, and AWS cloud administrator advanced. Prepare for this AWS DevOps engineer course and apply to AWS cloud engineer roles with interview practice.
Explore how DevOps bridges developers and infrastructure to accelerate delivery, reduce bugs, and improve collaboration through infrastructure as code, automation, and CI/CD tooling.
Explore the software development life cycle (sdLC), its six stages from planning to maintenance, and how waterfall, agile, and lean models shape customer-focused software delivery.
Explore version control fundamentals with git and GitHub, comparing centralized and distributed systems, mastering clone and pull, and understanding pull requests and production workflows through hands-on labs and case studies.
Learn to set up a devops workflow by creating a GitHub repository, cloning it locally, initializing git, committing changes, and pushing to main using a personal access token.
perform a daily git workflow: create and stage files, commit changes, push to GitHub, and apply code review with branching to protect main.
Practice enforcing branch protection to stop direct pushes to main, configure user.name and user.email, and manage changes with git add, commit, status, log, and branch creation.
Push changes from a temp branch to main via a compare and pull request, undergo review and merge, resolve conflicts, and delete the temporary branch to update the main repository.
Explore the final case study in a production environment, reviewing git commands such as git diff, git diff stage, branch and checkout, merge vs rebase, ignore, revert, reset, and stash.
Learn practical git workflows for devops: delete and create branches, merge and rebase, resolve conflicts, and review history with log and graph.
Master git basics and workflows by exploring rm, restore, add, commit, revert, dot gitignore, stash, and reset commands, managing staging, working tree, and history efficiently.
Explore how to perform essential version control tasks in git bash as an alternative to the AWS console, including init, add, commit, config, and log commands.
Explore the shift from standalone servers to virtualization and Docker containerization. Compare monolithic and microservices architectures and learn how Docker enables independent, scalable services.
Explore Docker containerization, microservices benefits, and virtualization contrasts, detailing Docker architecture, daemon and client roles, Docker Hub images, and lightweight, scalable containers for agile development.
Install Docker on an Ubuntu EC2 instance, verify installation, pull and run the hello world image, and explore Docker images, containers, and basic commands to manage a Docker environment.
Learn how to provision a DevOps platform for a development team on AWS EC2, pull the httpd image from Docker Hub, map port 100 to 80, and manage containers.
Demonstrate docker exec to enter a container, verify httpd on port 100, adjust AWS security groups, and modify index.html to show hello developers.
Set up a linux-based development environment with an Ubuntu container alongside an httpd container. Use docker run, docker inspect, and docker exec to verify setup and install git inside Ubuntu.
Case study three demonstrates pulling an apache image, installing git, docker, and nano inside a container, then committing a new image named httpd 2024 for reuse.
Push your Docker image to Docker Hub to let developers pull and reuse it, using login, tag, and push commands described in the case study.
Explore how a Dockerfile automates building a layered image from a base image, using from, copy, run, cmd, entrypoint, and env to install software, and follow Dockerfile naming conventions.
This case study shows building Docker images from Ubuntu, installing Apache or Nginx, copying index.html and about.html, and running containers with port mapping and verification.
Explore how docker volumes create a file system on EC2 to preserve container data, ensuring backups if containers fail, with commands like docker volume create and docker run --mount.
Set up a multi-container Docker Compose with MySQL and WordPress, using volumes and port 100 to 80, defined in a YAML file and launched with Docker Compose up.
Install docker compose on an EC2 instance, create a docker-compose.yaml, and launch WordPress and MySQL containers. Verify containers and ports, set up users, and validate the WordPress deployment.
Master Terraform as infrastructure as code, learning provisioning versus configuration, mutable versus immutable concepts, HCL syntax, providers and resources, and core commands (init, plan, apply, destroy) with AWS case studies.
Deploy a Windows Server 2022 EC2 instance in the us-east-1 region using Terraform, from installation and provider setup to init, plan, and apply, delivering a ready cloud server.
Case study two, resize a Windows server volume from 30 gb to 32 gb using Terraform, update infra.tf, tag the server, and apply changes via Terraform plan and apply.
Deploy three Ubuntu server instances on AWS using Terraform, configure ten GB volumes with delete on termination, and verify deployment with Terraform show.
Deploy an Ubuntu server with Apache using Terraform and a user data script to install, start, and enable Apache, then customize index.html and verify via the public IPv4 address.
Explore case study five: provision and verify an AWS S3 bucket and object using Terraform, then apply and destroy changes to manage demo bucket resources.
Build and access an ubuntu server on AWS using Terraform, generate a key pair with ssh keygen, convert to ppk for putty, and configure a security group for inbound traffic.
Explore Ansible as an agentless, Python-based configuration management tool for infrastructure as code, compare push and pull mechanisms, and examine playbooks, inventory, modules, and NASA's cloud migration case study.
Explore how to use Ansible playbooks to run commands across two hosts, saving welcome messages and user data to files, and compare playbooks with ad hoc commands.
Learn how to provision a new development host with Docker using an Ansible playbook, including apt dependencies, GPG keys, and the Docker CE installation on dev two, with verification steps.
Explore how Ansible roles organize playbooks into reusable, modular units, with a standardized structure including defaults, files, handlers, meta, tasks, templates, and vars, and use Galaxy for ready-made content.
Explore Jenkins as the heartbeat of CI/CD, learn about continuous integration and deployment within the software development life cycle, and gain hands-on Docker and Maven lab experiences.
Explore case study no. 1 as a devops engineer, installing and configuring Jenkins for a CI/CD pipeline, including unlocking, plugin installation, and admin setup.
Explore case study no. 1 lab to deploy Jenkins on an AWS linux instance. Install openjdk 17, configure Jenkins via apt, and set up plugins and access via port 8080.
Create a freestyle Jenkins project on the same server and configure build steps. Track progress with build now, build history, console output, and weather icons.
Learn to create a freestyle Jenkins project, configure execute shell with a bash script, and run builds to inspect console output and manage the workspace for demo projects.
See how case study no 4 replaces frequent deployments with polling the source code repository, triggering Jenkins builds only when git changes occur, via a cron job for continuous integration.
Explore case study 4 by configuring a Jenkins freestyle project with pull SCM to trigger builds from a GitHub repository, detecting changes like README.md commits.
Reduce Jenkins server load by switching from polling to webhooks, enabling GitHub to automatically trigger builds via Jenkins in real time, and streamline the CI/CD workflow.
Configure Jenkins to auto-build on GitHub changes by setting up a webhook and GitHub hook triggers for git ACM polling, then create a Freestyle project and validate with README.md commits.
Set up a three-project Jenkins workflow where each project deploys only after the previous one succeeds, using the post-build action 'build other projects' and triggering in order.
Set up a master project in Jenkins that triggers two dependent projects (project two and project three) only after a successful build of the master, via post-build actions.
Learn to install the build pipeline view plugin in Jenkins to give customers a focused view of their pipeline jobs, showing flow and status across continuous integration and delivery stages.
Set up and troubleshoot a Jenkins agent on AWS EC2 by installing Java, configuring a permanent Ubuntu agent, enabling SSH-based launch, and resolving SSH connectivity with PEM keys.
Implement a master-slave Jenkins setup using an EC2 slave. Configure a permanent agent via SSH, Java, remote root directory, and credentials to run builds on the slave.
Guide to setting up a Jenkins agent on an AWS EC2 Ubuntu host, installing Java, configuring SSH credentials, converting keys to PEM, and troubleshooting connectivity to bring the agent online.
Configure Jenkins to run projects on the new agent node to optimize memory and storage on the main server, then set restrictions, link GitHub, build, and verify the agent name.
Follow case study nine to run a Jenkins freestyle project on agent one, restricting the project to that node and validating builds from the Git repository.
Explore case study 10: configure Jenkins access using metric based security, create a user, and assign privileges accordingly within a secure DevOps workflow.
Set up a new developer in Jenkins by selecting project-based metrics, configuring the project, enabling security, and granting permissions.
Configure Jenkins project-based security to grant a QA user access only to their project, assigning read, move, delete, configure, cancel, and build permissions.
This case study explains how a software company configures Jenkins to send email alerts for failed builds using Google app passwords, SMTP settings, and post-build email notifications.
Configure Jenkins email notifications for case study 12 by setting smtp.gmail.com, ssl, port 465, and app password authentication, then enable post-build alerts for build failures.
Explore production containerization with Docker and Nginx, using shell scripts to build images and run containers, while contrasting manual deployment with Jenkins CI/CD and GitHub webhook.
Install docker on the agent, configure a Jenkins freestyle project with a git source, and run a docker httpd container on port 82 to verify via the public IP.
Explore how Maven automates Java builds, manages dependencies via the pom.xml, and orchestrates lifecycle phases—compile, test, package, install, and deploy—with extensible plugins.
Install Maven on the agent, enable the Maven plugin in Jenkins, create a Maven project, and run clean and package to produce and archive the war artifact.
Explore how Kubernetes orchestrates containers by managing a cluster of loosely coupled components from a shared resource pool, simplifying deployment and scaling.
Set up a basic Kubernetes cluster with one master and one worker node using kubeadm on Linux hosts, install Docker and Calico networking to enable containerized workloads.
Explore Kubernetes core workloads and resource types, including pods, deployments, replica sets, stateful sets, daemon sets, jobs, and cron jobs, plus manifests, quota and storage.
Deploy a nginx web server in a Kubernetes cluster and expose it via a nodeport service; create a pod and nodeport service, then access via the public IP.
Deploy and test an internal Kubernetes cluster service using clusterIP to enable inter service communication with nginx. Verify configuration with kubectl and endpoints, and adapt to nodePort when exposing externally.
Deploy an nginx pod on Kubernetes and expose it with a load balancer service for external access, then switch to cluster ip for internal access.
Explore how Kubernetes deployments enforce the desired state via YAML manifests, manage replicas, automatically replace failed pods, and perform rolling updates and rollbacks to keep apps running.
Deploy a highly available and scalable Nginx web app on Kubernetes using a deployment of five replicas and a NodePort service to handle varying loads.
Learn to deploy and update nginx in a Kubernetes cluster, manage replicas and services, perform a rolling update, verify deployment status, and roll back to a previous version.
Explore how Kubernetes namespaces organize and isolate resources like git branches, separating qa and prod environments to safeguard the live application.
Learn to isolate development, staging, and production with Kubernetes namespaces, deploy apps to dedicated namespaces, and manage deployments, pods, services, and logs using kubectl.
Master high availability in Kubernetes with replication controllers, pod distribution, node health monitoring, service load balancing, etcd high availability, control plane redundancy, and security with configmaps, secrets, and RBAC.
Explore Nagios as one of the top continuous monitoring tools, its core functionalities, architecture, components, plugins, and labs, in a DevOps context.
Install Nagios as a robust monitoring solution on an AWS DevOps lab environment, including Apache setup, Nagios web interface, plugins, and verification steps.
Resolve a localhost swap space alert in Nagios by monitoring status, allocating swap space with Linux commands, restarting Nagios, and verifying the fix in the dashboard.
Add a Debian host to the Nagios monitoring system by installing the NRHP plugins and Nagios plugins, then restart Nagios to verify the ping service.
install and configure apache on ubuntu server, and set up monitoring for http and ping services with nagios to ensure uptime and prompt issue detection.
Master Nagios host group management by adding a Debian server to the Linux server group, editing localhost.cfg, and restarting Nagios services to reflect the new membership.
Demonstrates using Nagios' next force recheck feature to rapidly reschedule checks, verify service status on a Debian host, and resolve production alerts by restarting Nagios and Apache.
Learn to manage nagios access by creating a new user, granting read-only privileges to services, editing the cgi dot cfg, and restarting nagios to enforce permissions.
Configure postfix to relay nagios alerts via Gmail SMTP server with SASL authentication, test connectivity, and update nagios contact settings to trigger email notifications for critical services.
Learn how to monitor a web service with nagios by configuring a host and http service for jobskillshare.org, setting up alerts, and restarting nagios to verify uptime and email notifications.
Install NFS Client Plus Plus or NCP on Windows server and configure Nagios communication, adding the host with CPU, memory, and disk usage checks. Verify checks in Nagios web interface.
Develop expertise in monitoring as a core part of IT infrastructure by mastering Nagios to enhance your ability to manage and maintain a complex system.
AWS DevOps Engineer Technical Skills
The AWS DevOps Engineer Technical Skills course is designed for individuals who have successfully completed the CompTIA Linux+ (XK0-005) Course “AWS Cloud Administrator | Fundamentals” and “AWS Cloud Administrator | Advanced” courses. This advanced DevOps skills course shifts focus from AWS administration services to the specialized skill set and technologies essential for DevOps roles.
In this course, you will delve deep into the world of DevOps, covering a range of critical topics, including:
Introduction to DevOps: Understand the principles, practices, and culture of DevOps that drive software development and operations.
Version Control with Git: Learn how to manage source code efficiently using Git, the industry’s leading version control system.
Microservices with Docker: Explore containerization with Docker to develop, deploy, and manage microservices.
Infrastructure as Code with Terraform: Master Terraform to automate infrastructure deployment and management in a consistent and repeatable manner.
Configuration Management with Ansible: Automate software provisioning, configuration management, and application deployment using Ansible.
Continuous Integration with Jenkins: Implement continuous integration/continuous delivery (CI/CD) pipelines using Jenkins for faster and more reliable software releases.
Container Orchestration with Kubernetes: Orchestrate and manage containerized applications at scale using Kubernetes.
Monitoring and Alerting with Nagios: Monitor systems, networks, and infrastructure effectively using Nagios, ensuring high availability and performance.
Throughout the course, we will apply these concepts in real-world case studies, providing hands-on experience that bridges theory and practice. By the end of this course, you will be well-equipped to confidently apply for AWS DevOps Engineer roles, with the expertise needed to excel in this dynamic field.