
Master container technology with Docker and Kubernetes, explore GitOps with Argo CD, and learn Istio service mesh with Envoy to streamline application deployment.
Learn DevOps theory, master container technology with Docker, and then deploy and monitor Kubernetes for microservices, with Istio service mesh and Google Kubernetes Engine, all guided by real-world samples.
Download the DevOps scripts and terminal commands from the Resources and References section. Access the Java source code, but the course does not teach the Java application source code.
Maximize value by pacing learning: watch without typing, pause every ten minutes, use subtitles and playback speed, and practice steps locally with Q&A or Udemy AI help.
Understand Kubernetes requirements, including 2 CPU cores and 4 GB memory, and laptop needs of 4 CPU cores and 8 GB RAM; consider Google Kubernetes Engine for Google Cloud deployments.
Explore the shift from a monolith to microservices at Loan Pig, with independent teams for origination, insurance, disbursement, and installments, and learn scalable, cost-efficient deployment on cloud with API-driven coordination.
Navigate the devops loop from planning and coding to testing, packaging, deploying, and monitoring, with devsecops security checks, vulnerability scanning, and continuous feedback.
Learn how microservices bundle Java, Go, and Python into portable containers with Docker. Build images, run containers, and share layers across hosts for scalable deployments.
Install Docker from the official guide, start the daemon, and verify with docker version. Run hello world, BusyBox, and Nginx containers, and explore port publishing and volume mounting.
Build a Docker image for a Java REST API by writing a Dockerfile, compiling with Maven or Gradle, packaging a JAR, and pushing the tagged image to a registry.
Master semantic versioning, a standard three-part scheme (major, minor, patch) signaling breaking changes, backward compatibility, and bug fixes. Minor and major increments reset numbers to zero to reflect scope changes.
Explore how Docker Compose lets multiple containers, such as MySQL and WordPress, run on a single host, using a YAML script to define services, networks, and dependencies.
Learn how Kubernetes orchestrates containers via pods and services across a cluster, using replicas, horizontal pod autoscaling, namespaces, labels, and volumes.
Deploy a single nginx pod to a local kubernetes cluster using kubectl, creating a deployment and a NodePort service. Inspect with kubectl get and describe, then test access with curl.
Operate minikube to start and stop a local Kubernetes cluster, configure memory and CPU, enable or disable add-ons, use tunnel for localhost access, and reset with minikube delete.
Scale a pod in Kubernetes by creating a deployment with the devops-blue image and exposing a load balancer service. Observe traffic distribution across replicas and virtual IP endpoints.
Compare imperative and declarative Kubernetes management using kubectl and configuration files; write YAML to define the desired state and apply it for automated, faster, error-reduced deployments.
Declare kubernetes resources with yaml manifests that use the rest api, and read references with kubectl explain to define apiVersion, kind, metadata, and spec as the target state.
Configure declarative Kubernetes resources by creating deployment and service yaml with apiVersion, kind, metadata, and spec, using labels and a label selector to target pods running devops-blue on port 8111.
Learn how Kubernetes uses deployment as the high-level spec, the pod as the running application, and the replica set to maintain the requested number of pods.
Apply declarative configuration to update the image tag and let Kubernetes implement the target state, scaling pods and updating namespace, deployment, and service from a single YAML file.
Identify and use labels and label selectors to route traffic to specific pods in Kubernetes, using services on ports 9011–9014 within the devops namespace.
Add annotations to each Kubernetes resource to store human and tool-specific metadata, alongside labels that identify pods. Place both labels and annotations in the metadata section of a deployment object.
Learn to port-forward pods in development with kubectl port-forward, binding host ports 9111 and 9112 to pod ports, then curl localhost to access a pod directly.
Master Kubernetes health checks by configuring readiness and liveness probes to automatically redirect traffic to healthy pods, restart crashed ones, and maintain target replicas in a multi-pod deployment.
Explore pod lifecycle statuses in Kubernetes, from Pending and ContainerCreating through Running, Succeeded, and Failed, to Unknown and Terminating, including ImagePullBackOff and CrashLoopBackOff.
Generate and view logs and errors from Kubernetes pods using endpoints and a Postman collection; centralize logs with label selectors and tools like Elasticsearch or Datadog.
Explore the Kubernetes dashboard, compare cloud provider dashboards with Minikube, enable the dashboard addon, and inspect pod logs in a web browser.
Explore the Kubernetes Lens dashboard to browse Kubernetes objects deployed across clusters, download and log in, and switch between multiple clusters; kubectl navigation is also demonstrated.
Discover how Kubernetes volumes preserve data beyond pod lifecycles, using emptyDir and persistent volumes with a persistent volume claim for cross-pod sharing and persistence across replicas.
Explore how emptyDir volumes in Kubernetes pods mount two empty directories for images and documents across two containers and pods, and observe how load balancing affects data visibility.
Explore hostPath volumes in minikube, linking a persistent volume via a storage class and a claim, and mounting it into containers for images and documents.
Configure local volumes in minikube by SSH into the node, creating directories, and setting permissions; define storage classes, persistent volumes, and claims with node affinity, then test with Postman.
Learn how to use Kubernetes ConfigMap to externalize configuration, pass data via environment variables to containers, and update values without code changes, triggering rolling pod restarts.
Learn how Kubernetes secrets store data as base64-encoded key-value pairs, not encrypted, and how to use secret key refs with configmaps to drive an HTML page.
Explore Kubernetes service types, including load balancer, NodePort, and ClusterIP, and learn how external and internal access, ports, endpoints, and Minikube tunnel shape pod exposure.
Explore how ingress controllers route traffic to Kubernetes services using URL paths and host headers, and configure nginx ingress to route blue and yellow pods.
Learn how to secure Kubernetes ingress traffic with TLS certificates, create a TLS secret, and configure ingress to serve HTTPS for api.devops.local, including handling self-signed certs.
Overview
This devops bootcamp is the first among several series (coming soon!) to start -or advance- your career as DevOPs or SRE (Site Reliability Engineer).
In this course, you will learn about container technology (docker) and container orchestration (kubernetes). Those are a-must-have knowledge for DevOps engineeer, as docker and kubernetes are popular technology and well sought by many companies. You will also learn about GitOps using ArgoCD, and how to use Istio Service Mesh with Envoy proxy to ease the application management.
What We Will Learn
We will learn how to manage application written on microservice architecture. You don't need to know any programming language to works with this course. In fact, this course is not about programming language, and mostly we will works with text files, terminal, or even graphical user interface.
Learn how to reach infrastructure agility, and easier maintenance compared to traditional infrastrucutre (virtual machine, bare metal). With the help of kubernetes, along with other tools that integrates well, maintaining reliable infrasturcture become a skill that everybody can learn (by using this course, for example).
But kubernetes and docker is not the only technology required for DevOps engineer journey. In this course, we will learn real-life infrastructure architecture that leverages several technologies, integrated to kubernetes. They are:
Nginx : very popular reverse proxy, http load balancer, which is used as traffic gateway, or kubernetes ingress controller
Sealed secret : secure your username, password, and any other "secret" things on kubernetes. Update and share them safely, since the kubernetes will "seal" them and encrypt them in secure way
Grafana, Prometheus : for kubernetes & infrastructure data gathering, analytics, and visualization
Helm : a package manager for kubernetes. Think of zip archive, but kubernetes-style, that can customized
Chartmuseum : a repository for helm
ArgoCD : learn GitOps, a subset of DevOps that focusing on automatic infrastructure based on git repository. Works well since most software engineering team will already familiar with git, so they can also leverage the kubernetes power without knowing the kubernetes itself. Collaborate together, and achieve automated application deployment through GitOps with ArgoCD
Istio & Envoy Proxy : One of the most important item to works with kubernetes. Manage, secure, and monitor your traffic. Add application functionalities without even writing single line of code
Kiali : Istio user interface to visualize your traffic that runs on kubernetes cluster,and manage them!
Jaeger : distributed tracing to know how your microservices performs, which node that has problem
Lens : hate to see the black screen on terminal? Then use this tools to navigate your kubernetes cluster
Pre-requisites
laptop with at least 8 GB memory free (so you need at least 16 GB memory)
or you can use any laptop, since we will learn to use Google Kubernetes Engine (it might has limited free quota if you are new user, but it depends on google)
Course Curricullum
These are the things that you will learn, in more than 100 lectures!
what is container and why it so popular
kubernetes from zero
declarative kubernetes
resource monitoring & limiting
volume binding
kubernetes secret & configuration map
integrate and secure nginx on your kubernetes cluster
automatic horizontal scaling to maintain performance
how to use and create helm charts
how to host your own helm repository (for free)
gitops automatic application synchronization
automatic configuration synchronization
provision and manage tls certificate
distributed tracing
service mesh (using istio and envoy proxy)
traffic management on service mesh
myths / fallacies of distributed system
opentracing
opentelemetry
service mesh visualization
load balancer
canary release
dark launching
automatic timeout / retry without even writing code
mutual TLS for security