
Explore how devops enables automated end-to-end workflows through continuous development, testing, integration, deployment, and monitoring, emphasizing collaboration, culture change, and tools like git, jenkins, docker, kubernetes.
You can create lab either on GCP or AWS. Here is the video for GCP lab setup and AWS lab setup document.
Explain how a version control system lets many developers work simultaneously, maintains a detailed log of file changes with time and author, resolves conflicts, and preserves version history and backups.
Install git using the package manager, verify its version, and create a local repository to start working with git.
Initialize a local Git repository, create and track files, stage changes, and commit them to the local repository, clarifying the relationship between the working directory, staging area, and history.
Learn git basics for devops tools training by managing files across the working directory, staging area, and local repository, using git add, git commit, and status commands.
Explore how the diff command in git reveals onstage and unstaged changes, and how to track edits using git status, git add, and git commit.
Learn to delete files from the working directory and the local repository using git rm, then check status and commit the changes.
Explore how git reset removes staged changes from the staging area, reset a file, and restage it with git add, while contrasting with git checkout and cached removals.
Explore how git reset --mixed discards commits and unstages changes, affecting the working directory and staging area, with recovery via git checkout.
Learn to create and merge git branches by copying master, working on features in a separate branch, and merging back to master while tracking changes and conflicts.
Navigate merge conflicts in git by resolving issues between master and feature branches, edit conflicting files, and commit resolved content after manual reconciliation.
Learn to stash unfinished work in git, temporarily shelving staged or unstaged changes to switch contexts and later reapply them with stash apply.
Learn how to manage work in progress with git stash, view the stash list, and apply or pop stashes to restore changes to your working directory.
Learn how to use git stash apply to reapply changes to the working directory, view stashes, and apply them to other branches.
Learn how to perform a partial Git stash by selecting a single unstaged file and stashing only that file, then verify with Git status and stash list.
Push local Git projects to a remote repository on GitHub, manage remotes and branches, delete remote branches, and authenticate to collaborate effectively.
Create branches on GitHub, open pull requests, and collaborate through reviews before merging into the master branch.
Understand how git reset removes changes from the staging area and how git checkout discards changes in the working directory, as shown with git status and git add.
Clone a remote repository to a local empty directory to create a local repository, then push or pull updates as team projects evolve.
Clone a remote repository with git to create a local copy, then git pull remote changes to update your local files and keep the project in sync.
Explore git fetch, git pull, and git clone to manage remote changes. Fetch shows updates without merging; pull downloads and merges, while clone copies the repository for the first time.
Explore Maven life cycles—clean, default, and site—and their phases like validate, initialize, compile, and install, along with plugins, goals, and the build process.
Explore the pom.xml in Maven, detailing groupId, artifactId, packaging, plugins, and dependencies, and learn how Maven fetches plugins and dependencies from the central repository to a local cache.
Clone the public GitHub project Game of Life, install Maven, and compile the Java source into executable code by resolving dependencies and plugins, then package a deployable artifact.
Learn how continuous integration automates code builds, tests, and deployments with tools like Jenkins, enabling early bug detection, rapid feedback, and reduced manual errors.
Automate software delivery with Jenkins, a Java-based automation server that acts as an orchestrator for continuous integration and delivery, enabling building, testing, and deploying through a rich plugin ecosystem.
Set up the Java prerequisites, install Jenkins, start the service, unlock with the initial password, install essential plugins, and create the admin user for your first Jenkins dashboard.
Learn to create your first Jenkins job using a freestyle project, configure execution steps, run shell commands, and review console output while Jenkins acts as an orchestrator.
Configure Jenkins email notifications by setting up SMTP, using Gmail, and customizing subject and content; select recipients or groups and trigger alerts on every job status, including console output links.
Explore building an automated Jenkins driven ci/cd pipeline that compiles code, runs unit tests, packages artifacts, and deploys to testing and staging environments, all triggered by GitHub changes.
Create a Jenkins Maven compile job that clones the GitHub project, installs Maven and Java automatically, and runs Maven goals to compile and package the code.
Learn how to create a Maven unit test job in Jenkins, run JUnit tests, generate and publish JUnit reports, and view test results and trends in the Jenkins workspace.
Install and configure the Build Pipeline plugin in Jenkins to visualize the pipeline, set the initial and subsequent jobs, and monitor progress via the dashboard and console output.
Schedule Jenkins jobs with cron syntax using build triggers and timer to run automatically, configuring minutes, hours, day of month, month, and day of week.
Learn how to schedule a jenkins job using poll scm by watching a github repo every two minutes for new commits, triggering automated builds, and chaining subsequent pipeline jobs.
Explore how Jenkins schedules and triggers a job through GitHub webhooks, configuring event subscriptions, saving the job, and responding to push or other repository events.
Explore distributed architecture in Jenkins, using a master with multiple slaves to share and run jobs across different environments. Learn how bi-directional communication links enable scheduling, monitoring, and load distribution.
Set up a Windows slave for a Jenkins master, configure a remote workspace, launch the agent via java web start, and run a remote build with git and Marvin.
Add a linux slave to a Jenkins master and configure SSH authentication with public keys. Connect the agent, install tools (Git, Maven, Java), and run jobs on the slave.
Discover how Jenkins pipeline uses plug-ins to implement automated continuous delivery pipelines in Jenkins, linking interdependent jobs to form a seamless delivery process shared by dev and ops.
Create pipelines as code with a groovy-based pipeline DSL in Jenkins. Declarative pipelines define stages like checkout, compile, and package, running on labeled agents.
Create and place a Jenkinsfile in your repository to define and run a ci/cd pipeline, enabling team-wide visibility and streamlined updates.
Docker is a containerization technology launched in 2013 as an open source Docker engine that separates application dependencies from infrastructure, enabling running containers on Linux and later Windows.
Explore the differences between virtual machines and containers, detailing architecture with hypervisors and host versus guest operating systems, and contrast resource usage, boot times, and Docker engine-based containers.
Explore the Docker architecture and client-server model, covering the Docker daemon, Docker client, and Docker registry, and how docker run and docker pull launch containers.
Explore the docker container lifecycle, including listing images and containers, starting and stopping containers, attaching and detaching from a container, and removing containers and images.
Learn to stop a running Docker container using the stop command, and verify status by listing containers to distinguish running from exited ones.
Explore how to stop and start a running container using available commands, and verify active containers remain up until you stop them again.
Learn how to remove docker images only after deleting containers that reference them, since an image cannot be removed while a container uses it.
Learn to attach a named volume to a docker container, map a data directory, and verify persistent storage across container lifecycles, with volume inspection and host sharing tips.
Delete a Docker volume by using the remove command, remove unused volumes, and understand that a volume in use by a container cannot be deleted until the container is removed.
Create a volume by name using the -v flag, run a container that maps a directory inside the container to the volume, and inspect the volume to verify contents.
Explore how Docker volumes can be migrated between containers to enable data sharing. Copy and transfer volumes from one container to another using volumes from container one.
learn to create your own docker images by writing a dockerfile, use a base image like ubuntu, install packages with run, and build with docker build.
Explore how Docker's default bridge network assigns IPs within a subnet, enabling container-to-container communication by IP on the same bridge, while containers on different networks cannot communicate.
Learn how to create and use a user-defined bridge network in Docker, attach containers, inspect networks, and understand automatic service discovery and container communication within the same network.
Publish container ports in Docker to expose web services, map container port 80 to a host port with the -p flag, and verify access from the host.
Bind and forward Docker container ports to the host using port forwarding, publishing container port 80 to a host port, and verify access via the host IP.
Learn to deploy Docker containers by wiring Jenkins pipelines, creating jobs from Git sources, building Docker images, and running containerized apps in a delivery pipeline.
Drive understanding of Docker Swarm as a container orchestration and clustering tool that manages multiple containers across a cluster of Docker hosts, enabling high availability, load balancing, and scaling.
Learn to configure a docker swarm cluster with multiple manager and worker nodes, run containers as services, and scale up or down for high availability.
Initialize a Docker swarm cluster with one manager and two workers, start Docker on all nodes, join the swarm with a token, and manage containers and services with load balancing.
Start a service on a Docker swarm cluster by creating a service from the engine X image and exposing port 8001 so the service is accessible on any node.
Drain a worker node in a docker swarm cluster to prevent new containers from starting and reallocate running containers to other nodes, preserving total container count and demonstrating high availability.
Scale the web service by increasing replicas from five to ten across worker nodes. Then scale to fifteen, with load balancing across the three nodes and an active manager.
Understand Docker Machine as a tool that automates the provisioning of Docker hosts, enabling quick deployment on local machines, cloud providers, and data centers.
Use Docker machine to provision Docker hosts and configure a swarm cluster, automating Docker installation and setup to replace manual, error-prone steps.
Create docker hosts on Google Cloud using docker-machine from a Linux system by authenticating with gcloud and provisioning VM instances, then install and configure Docker on each host.
Explore how Kubernetes orchestrates containers across a cluster of nodes, providing scheduling, high availability, scaling, rolling updates, and automatic rollbacks with load balancing and health checks.
Learn how Amazon EKS provides a managed Kubernetes control plane with high availability across multiple availability zones, automated upgrades, health checks, and network policy integration with AWS services.
Compare Kubernetes cluster setup on Google Cloud Platform and Amazon Web Services, with AWS EKS pricing, service costs, and load balancer considerations.
Learn to set up a Kubernetes cluster on Amazon EKS with a managed control plane, install five essential tools, and create a scalable us-west node group.
Define pods as the basic deployment and scaling unit in Kubernetes, containing containers that share a single IP and network, defined in a manifest to manage lifecycle.
Apply a Kubernetes manifest to deploy a deployment with one container, using apiVersion, kind, metadata, and spec with containers, image, and ports. Deployments run on a three-node cluster via kubectl.
Create a Kubernetes deployment object from a yaml manifest to wrap a replica set and multiple pods, enabling easy scaling, high availability, and automatic upkeep of the desired replicas.
Learn how to expose a Kubernetes application using a service object that provides a stable virtual IP and load balances across pods, anchored by labels.
Create a load balancer service by switching to a target port, expose the app via a single public ip and dns, and learn the cost of multiple load balancers.
Perform a rolling update to upgrade a Kubernetes deployment with a new Docker image, creating a new replica set while rolling down the old ones to achieve zero downtime.
Explore how autoscaling in Kubernetes with EKS automatically adjusts nodes and pods to meet demand, using cluster autoscaler and horizontal pod autoscaler to scale out and in.
Configure and test cluster autoscaler on an eks cluster to automatically scale the node pool from 1 to 6 nodes as workloads like deployments and pods require resources.
Configure EKS to use the horizontal pod autoscaler to scale an apache web server deployment by CPU utilization, with min 1 and max 10 replicas and a 50 percent target.
Delete the cluster and all associated resources, including the control plane, load balancers, and services, verify removal in the console, and ensure no remaining resources incur charges.
This course helps to understand the devops methodology in detail and help them learn the devops tools and gain handson experience on the tools thereby :
Apply DevOps strategies to your projects
Understand Continuous Delivery
Automate the deployment process
Create CI/CD pipeline by integrating the tools
Learn Managing application for high availability,Load balancing, scaling and deployment strategies for no downtime.
continuous integration Jenkins
version control system GIT
containerization using DOCKER
Build a highly available and fully scalable application with Docker Swarm
container orchestrator KUBERNETES
Introduction to Kubernetes
Kubernetes Architecture
Spinning up a Kubernetes Cluster on AWS
Exploring your Cluster
Understanding YAML configuration in kubernetes
Creating a pod object in kubernetes
Creating a Deployment in Kubernetes using YAML Preview
Creating a Service Object in Kubernetes
Creating Headless service, Node Port, Load balancer Services
Creating secrets and configmaps
Working with daemon sets
Deploying database application using statefulsets
Working with Persistent Volumes, Persistent volume claims
Using Rolling Updates in Kubernetes
Blue Green Deployments in Kubernetes
Canary Deployment in Kubernetes
Helm Package manager for Kubernetes
Deploying Kubernetes Dashboard with Helm
Installing Prometheus and grafana on kubernetes cluster with Helm
Monitoring Kubernetes cluster with Prometheus
Deploying micro service application using statefulsets and Persistent volumes
KUBERNETES ON AWS - EKS
Create Kubernetes cluster on AWS with EKS
Eksctl command line tool
Configuring Auto Scaling EKS cluster on AWS
Deploy application on EKS cluster from Jenkins
Complete CI/CD pipeline on EKS cluster on AWS from Docker hub
Complete CI/CD pipeline on EKS cluster on AWS from ECR
build automation tool MAVEN