Linux, networking, security, and cloud — studies, projects, and field notes on Docker, Kubernetes, Terraform, and system design. Hands-on learning, from fundamentals to certifications.
Understand how the Terraform state connects HCL to real infrastructure, records dependencies and attributes, and how to share this state with locking in S3.
Understand how the Readiness Probe signals if a container is ready to receive traffic, and see this behavior in a demonstration with Nginx.
Learn to configure a TCP livenessProbe in Nginx, understand its parameters, and observe restarts and CrashLoopBackOff when testing an incorrect port.
How I set up PICKStack, investigated ports, variables, and routes, and adapted a pipeline to publish six images to GHCR with Cosign and SBOM.
Differentiate snapshots, AWS Backup, Storage Gateway, and Elastic Disaster Recovery for planning copies, hybrid integration, and recovery.
Understand how to choose S3 classes and combine versioning, permissions, and lifecycle without confusing durability with availability.
Compare block, object, and file storage and understand the difference between EBS, instance store, S3, EFS, and FSx.
Differentiate private connectivity, name resolution, and global delivery using VPN, Direct Connect, PrivateLink, Route 53, CloudFront, and Global Accelerator.
Learn how VPC, routes, Internet Gateway, NAT Gateway, Security Groups, and Network ACLs control communication on AWS.
Learn how to create AWS resources and differentiate between CloudFormation, Elastic Beanstalk, Batch, Lightsail, and Outposts.
Separate image registry, orchestration, and compute to understand when to use ECR, ECS, EKS, and Fargate on AWS.
Learn the difference between SQS, SNS and Lambda and see how to combine queues, event publishing, and code execution on AWS.
Understand vertical and horizontal scaling, the role of Auto Scaling, and how a load balancer distributes traffic among AWS instances.
Compare On-Demand, Spot, Savings Plans, and Reserved Instances, and understand the difference between discount, capacity reservation, and cost control.
Learn what an EC2 instance is, how to choose your instance type, and what happens to data when restarting, stopping, or terminating a server.
Understand AWS regions, availability zones, and edge locations, and learn what responsibilities remain yours in the cloud.
How providers connect Terraform to external services, where to find them, how to declare versions, and what happens during `terraform init`.
What are expressions in Terraform and how to use references, lists, maps, conditionals, and functions to avoid repeated configurations.
How to move the state off the local machine, configure an S3 backend, securely migrate the file, and separate environments using the key.
The `terraform destroy` command: how it builds the removal plan, what the destruction symbol means in the output, and how to generate and apply a separate destruction plan.
What `init` downloads and organizes, how to configure credentials and providers, what `plan` compares and displays in its output, and how `apply` updates the state.
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.