Kubernetes, Docker, Terraform, Linux, and system design — field notes from someone working toward the CKA.
Notes from the LINUXtips IaC course: what an API is, what Cloud is in practice, AWS EC2/S3/IAM services, regions and availability zones, and how all this connects with Terraform's architecture, state, and workflow.
Notes on where APT downloads packages from, the four components of an Ubuntu repository (main, restricted, universe, multiverse), and precautions when adding a third-party PPA.
Notes on what a package manager is, the difference from the Windows installation model, and how APT resolves dependencies and verifies GPG signatures before installing anything.
Notes on Access Control Lists (ACLs) in Linux: how to install, read with getfacl, grant permission to a specific user or group with setfacl, and when it's truly worth it.
Notes on umask, the /etc/login.defs file, and special permissions SUID, SGID, and sticky bit in Linux, with practical chmod examples.
Notes on Linux permissions: how to read `ls -l`, symbolic and octal chmod, `chown` to change owner and group, and how to securely configure sudo with `visudo`.
I started studying from scratch for the foundational Azure certification. In this post, I compile my notes on consumption model, multicloud, Azure Arc, deployment models, and shared responsibility.
Notes on user management in Linux: structure of /etc/passwd and /etc/shadow, useradd vs adduser, /etc/skel, account locking, and password expiration policy with chage.
Gather all the concepts learned about Deployments and discover good practices for creating more organized, secure, and easy-to-maintain applications.
Learn how Kubernetes records each Deployment update, view revision history, and safely perform rollbacks.
Understand how the Recreate strategy works, when to use it, and its differences compared to RollingUpdate.
Understand how the RollingUpdate strategy works and learn to configure maxSurge and maxUnavailable to securely update applications.
Learn how to update a Kubernetes Deployment, understand the role of `kubectl apply`, and how the cluster automatically detects and applies changes.
Learn the main ways to create a Deployment in Kubernetes using YAML manifests and the kubectl create command.
Understand how a Deployment is structured and discover the role of selector, template, and ReplicaSet in creating and managing Pods.
Understand what a Deployment is, how it works, and why it's the recommended resource for running applications in Kubernetes.
My journey through the first three Linux for Cloud Native challenges: SSH between environments, filesystem organization, rsync, Vim, VS Code Remote SSH, and real-time logs.
Learn how to create and mount a temporary emptyDir volume in a Kubernetes Pod, define its storage limit, and test its functionality.
Learn how to configure requests and limits in Kubernetes Pods, understand how the Scheduler uses these values, and why CPU and memory limits are important.
Learn how to generate YAML manifests, create Pods, and use the main kubectl commands to manage resources in Kubernetes.
Understand what Pods are, how kubectl works, and how to create your first Kubernetes resources using YAML manifests.
Learn how to use Bash scripts within GitHub Actions workflows to better organize your pipelines, reuse commands, and automate tasks like Terraform project validation.
Understand how network traffic works, how to analyze packets with Wireshark, what changes when using a VPN, and why this knowledge is important for DevOps.
Cleaned-up study notes: directory structure, permissions, file manipulation, wildcards, compression, links, processes, and log reading in the terminal.
Learn how GitHub Actions contexts work, when to use github, env, vars, and secrets, and understand the differences between them with practical examples.
Learn to create hard links and use cat, less, head, tail, grep, wc, and diff to view, follow, and compare files directly from the terminal.
What a Pod is under the hood, why it exists, and how Linux namespaces make it all possible.
What a Pod is under the hood, why it exists, and how Linux namespaces make it all possible.
Close the Docker learning loop by learning to scan for vulnerabilities with Trivy and Docker Scout, reduce the attack surface with distroless images, and sign images with cosign.
Learn to define services, networks, volumes, and resource limits in a single file with Docker Compose, instead of repeating `docker run` commands.
Learn how push, pull_request, workflow_dispatch, schedule, create, delete, and branch_protection_rule events initiate workflows in GitHub Actions.
Learn to create networks in Docker so containers can communicate by name, and how to limit CPU and memory with --cpus and --memory.
How to use multi-stage builds to separate build from runtime and drastically reduce the size of your images.
Understand why containers need volumes to persist data and learn the differences between bind mounts, named volumes, and tmpfs.
Learn how to organize development with GitFlow, create Pull Requests, protect important branches, and define reviewers with CODEOWNERS.
Understand why a container might be running and still not be healthy, and how the HEALTHCHECK instruction solves this blind spot.
A reference guide for the main Dockerfile instructions and a practical explanation of how ENTRYPOINT and CMD work together.
Understand what a Dockerfile is, how its instructions become image layers, and build your first Docker image from scratch with `docker build`.
What Terraform state is, why it should never live on your machine, and how to configure a remote backend with locking.
Learn how to run containers in the background with -d, access them with docker exec, publish ports with -p, and investigate what's happening inside.
Practical notes on the lifecycle of a Docker container, from docker run to docker stats, including logs, pause, and prune.
Understand what GitHub Actions is, how it works, and how to use workflows to automate tasks like tests, builds, and deploys directly on GitHub.
A practical journey through networking fundamentals, remote access with SSH, file transfer with SCP, and disk management with LVM.
Understand Dockerfile, image, container, and configurations using a simple franchise analogy.
Understand how Docker and the Linux kernel use cgroups and namespaces to isolate processes, network, users, filesystems, and resources within containers.