NEW POSTS EVERY WEEK

DevOps, Cloud Native
and what runs underneath.

Kubernetes, Docker, Terraform, Linux, and system design — field notes from someone working toward the CKA.

45 posts found
TERRAFORM

Fundamentals of IaC: From API and Cloud to Terraform's Workflow

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.

LINUX

Anatomy of APT repositories: sources.list, components, and PPAs

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.

LINUX

From .exe to apt install: Understanding Package Management on Linux

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.

LINUX

ACLs in Linux: Access Control Beyond Owner, Group, and Others

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.

LINUX

umask, /etc/login.defs and special permissions: SUID, SGID and sticky bit

Notes on umask, the /etc/login.defs file, and special permissions SUID, SGID, and sticky bit in Linux, with practical chmod examples.

LINUX

Understanding Linux Permissions: chmod, chown, and sudo in Practice

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`.

CLOUD

Cloud Concepts for Azure Certification. Day 1 Notes

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.

LINUX

Managing Users in Linux: passwd, shadow, useradd, and chage

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.

KUBERNETES

Good Practices for Deployments in Kubernetes: Organizing Applications for Production

Gather all the concepts learned about Deployments and discover good practices for creating more organized, secure, and easy-to-maintain applications.

// Series
Kubernetes Deployment Fundamentals8 / 8
KUBERNETES

Revision History and Rollback in Kubernetes: Restoring Previous Versions of a Deployment

Learn how Kubernetes records each Deployment update, view revision history, and safely perform rollbacks.

// Series
Kubernetes Deployments Fundamentals7 / 8
KUBERNETES

Recreate Strategy in Kubernetes: When Tearing Down All Pods Makes Sense

Understand how the Recreate strategy works, when to use it, and its differences compared to RollingUpdate.

// Series
Fundamentals of Deployments in Kubernetes6 / 8
KUBERNETES

RollingUpdate in Kubernetes: Updating Applications Without Downtime

Understand how the RollingUpdate strategy works and learn to configure maxSurge and maxUnavailable to securely update applications.

// Series
Fundamentals of Deployments in Kubernetes5 / 8
KUBERNETES

Updating a Kubernetes Deployment: How to Apply Changes Safely

Learn how to update a Kubernetes Deployment, understand the role of `kubectl apply`, and how the cluster automatically detects and applies changes.

// Series
Fundamentals of Kubernetes Deployments4 / 8
KUBERNETES

Creating Deployments in Kubernetes: YAML Manifests and kubectl create

Learn the main ways to create a Deployment in Kubernetes using YAML manifests and the kubectl create command.

// Series
Fundamentals of Deployments in Kubernetes3 / 8
KUBERNETES

Anatomy of a Deployment: understanding selector, template, and ReplicaSet

Understand how a Deployment is structured and discover the role of selector, template, and ReplicaSet in creating and managing Pods.

// Series
Kubernetes Deployment Fundamentals2 / 8
KUBERNETES

Understanding Kubernetes Deployments: the resource that keeps your application always available

Understand what a Deployment is, how it works, and why it's the recommended resource for running applications in Kubernetes.

// Series
Kubernetes Deployment Fundamentals1 / 8
LINUX

From VM to EC2: Three Practical Linux Challenges for Cloud Native

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.

KUBERNETES

Configuring emptyDir volumes in Kubernetes Pods

Learn how to create and mount a temporary emptyDir volume in a Kubernetes Pod, define its storage limit, and test its functionality.

// Series
Kubernetes Fundamentals4 / 4
KUBERNETES

Limiting CPU and Memory Consumption of Pods in Kubernetes

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.

// Series
Kubernetes Fundamentals3 / 4
KUBERNETES

Creating and Managing Pods with kubectl and YAML Manifests

Learn how to generate YAML manifests, create Pods, and use the main kubectl commands to manage resources in Kubernetes.

// Series
Kubernetes Fundamentals2 / 4
KUBERNETES

Understanding Pods and kubectl

Understand what Pods are, how kubectl works, and how to create your first Kubernetes resources using YAML manifests.

// Series
Kubernetes Fundamentals1 / 4
CI/CD

Automating Terraform validation using scripts within GitHub Actions workflows

Learn how to use Bash scripts within GitHub Actions workflows to better organize your pipelines, reuse commands, and automate tasks like Terraform project validation.

NETWORKING

Understanding Networks with Wireshark, DNS, and VPN

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.

LINUX

Surviving the Shell: From FHS to Diff, the Linux You Use Every Day

Cleaned-up study notes: directory structure, permissions, file manipulation, wildcards, compression, links, processes, and log reading in the terminal.

CI/CD

Understanding Contexts in GitHub Actions: github, env, vars, and secrets

Learn how GitHub Actions contexts work, when to use github, env, vars, and secrets, and understand the differences between them with practical examples.

LINUX

Working with Files in Linux: Hard Links, Viewing, Logs, and Comparison

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.

KUBERNETES

Understanding Control Plane and Workers

What a Pod is under the hood, why it exists, and how Linux namespaces make it all possible.

KUBERNETES

Truly Understanding Pods in Kubernetes

What a Pod is under the hood, why it exists, and how Linux namespaces make it all possible.

DOCKER

Docker Image Security: Trivy, Docker Scout, Distroless, and Signing with Cosign

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.

// Series
Docker in Practice9 / 9
DOCKER

Docker Compose: Orchestrating Multiple Containers

Learn to define services, networks, volumes, and resource limits in a single file with Docker Compose, instead of repeating `docker run` commands.

// Series
Docker in Practice8 / 9
CI/CD

Understanding GitHub Actions Triggers

Learn how push, pull_request, workflow_dispatch, schedule, create, delete, and branch_protection_rule events initiate workflows in GitHub Actions.

DOCKER

Docker Networking: Connecting Containers and Limiting Resources

Learn to create networks in Docker so containers can communicate by name, and how to limit CPU and memory with --cpus and --memory.

// Series
Practical Docker7 / 9
DOCKER

Multi-stage builds — much smaller Docker images

How to use multi-stage builds to separate build from runtime and drastically reduce the size of your images.

DOCKER

Volumes, bind mounts, and tmpfs in Docker

Understand why containers need volumes to persist data and learn the differences between bind mounts, named volumes, and tmpfs.

// Series
Docker in Practice6 / 9
CI/CD

Understanding GitFlow, Pull Requests, and Branch Protection

Learn how to organize development with GitFlow, create Pull Requests, protect important branches, and define reviewers with CODEOWNERS.

DOCKER

HEALTHCHECK: Teaching Docker to Distrust Its Own Container

Understand why a container might be running and still not be healthy, and how the HEALTHCHECK instruction solves this blind spot.

// Series
Docker in Practice5 / 9
DOCKER

All Dockerfile Instructions and the Difference Between ENTRYPOINT and CMD

A reference guide for the main Dockerfile instructions and a practical explanation of how ENTRYPOINT and CMD work together.

// Series
Docker in Practice4 / 9
DOCKER

Dockerfile in Practice: From Your First Image to `docker build`

Understand what a Dockerfile is, how its instructions become image layers, and build your first Docker image from scratch with `docker build`.

// Series
Docker in Practice3 / 9
TERRAFORM

Terraform state - the file that can take down your infra

What Terraform state is, why it should never live on your machine, and how to configure a remote backend with locking.

DOCKER

Detached Mode, Docker Exec, and Testing Containers from Within

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.

// Series
Docker in Practice2 / 9
DOCKER

Managing Containers Day-to-Day with Docker

Practical notes on the lifecycle of a Docker container, from docker run to docker stats, including logs, pause, and prune.

CI/CD

Understanding GitHub Actions

Understand what GitHub Actions is, how it works, and how to use workflows to automate tasks like tests, builds, and deploys directly on GitHub.

LINUX

Linux Infrastructure Fundamentals: Networking, SSH, SCP, and LVM

A practical journey through networking fundamentals, remote access with SSH, file transfer with SCP, and disk management with LVM.

DOCKER

Explaining Docker as a Franchise

Understand Dockerfile, image, container, and configurations using a simple franchise analogy.

DOCKER

How Containers Work Under the Hood

Understand how Docker and the Linux kernel use cgroups and namespaces to isolate processes, network, users, filesystems, and resources within containers.