# DevOps Daily > DevOps Daily is an educational platform providing tutorials, guides, exercises, quizzes, and news for DevOps engineers. Content covers Docker, Kubernetes, Terraform, CI/CD, Linux, AWS, Git, Python, and more. - Last updated: 2026-10-22 - Content: 586 posts, 20 guides, 21 exercises, 45 quizzes, 27 flashcard decks, 24 checklists, 110 interview questions, 61 interactive simulators - License: Open source (GitHub) - Contact: info@devops-daily.com ## Pages - [Home](https://devops-daily.com): DevOps tutorials, guides, exercises, and weekly news - [Posts](https://devops-daily.com/posts): 586+ technical articles on DevOps tools and practices - [Guides](https://devops-daily.com/guides): Multi-part comprehensive learning resources - [Exercises](https://devops-daily.com/exercises): Hands-on labs with step-by-step instructions - [Quizzes](https://devops-daily.com/quizzes): Test your DevOps knowledge with interactive quizzes - [Flashcards](https://devops-daily.com/flashcards): Review key concepts with spaced-repetition flashcards - [Checklists](https://devops-daily.com/checklists): Actionable security and best-practice checklists - [Interview Questions](https://devops-daily.com/interview-questions): DevOps interview prep for junior to senior - [News](https://devops-daily.com/news): Weekly curated DevOps news digests - [Games](https://devops-daily.com/games): 61+ interactive DevOps simulators and learning tools - [Roadmap](https://devops-daily.com/roadmap): DevOps learning path from beginner to expert - [Roadmaps](https://devops-daily.com/roadmaps): Structured learning paths (Junior, DevSecOps) - [Books](https://devops-daily.com/books): Curated DevOps book recommendations - [DevOps Survival Guide](https://devops-daily.com/books/devops-survival-guide): Free DevOps learning resource - [About](https://devops-daily.com/about): About DevOps Daily - [Editorial Standards](https://devops-daily.com/editorial): Our editorial and correction policy ## Categories - [DevOps](https://devops-daily.com/categories/devops): DevOps practices and tools - [Docker](https://devops-daily.com/categories/docker): Docker articles, tutorials, and guides on DevOps Daily covering containers, images, Dockerfiles, Compose, volumes, networking, and production best practices. - [Kubernetes](https://devops-daily.com/categories/kubernetes): Container orchestration and management - [Git](https://devops-daily.com/categories/git): Git and version control for developers - [Terraform](https://devops-daily.com/categories/terraform): Infrastructure as code - [Linux](https://devops-daily.com/categories/linux): Linux operating system and distributions - [Networking](https://devops-daily.com/categories/networking): Networking concepts and practices - [Bash](https://devops-daily.com/categories/bash): Bash scripting and command line - [Security](https://devops-daily.com/categories/security): Application and infrastructure security - [Cloud](https://devops-daily.com/categories/cloud): Cloud platforms and services - [CI/CD](https://devops-daily.com/categories/ci-cd): Continuous integration and delivery - [AWS](https://devops-daily.com/categories/aws): Amazon Web Services cloud computing platform - [FinOps](https://devops-daily.com/categories/finops): Understanding FinOps for cloud financial management - [Python](https://devops-daily.com/categories/python): Python programming language and its applications ## Guides - [Security Gates](https://devops-daily.com/guides/security-gates): Implement automated security gates that block deployments on critical vulnerabilities, policy violations, and security failures. Shift security left in your CI/CD pipeline. (4 parts) - [Introduction to Packer](https://devops-daily.com/guides/introduction-to-packer): Learn how to build automated machine images with HashiCorp Packer, from basic concepts to multi-platform image creation (6 parts) - [Introduction to AWS](https://devops-daily.com/guides/introduction-to-aws): Learn AWS step by step by building a real cloud application. Covers IAM, EC2, S3, VPC, RDS, load balancing, Lambda, CloudWatch, and cost control. (10 parts) - [Introduction to Python](https://devops-daily.com/guides/introduction-to-python): A practical guide to Python programming from basics to building real projects (10 parts) - [Introduction to Docker](https://devops-daily.com/guides/introduction-to-docker): Beginner-friendly Docker guide covering containers, images, Dockerfiles, volumes, networking, Compose, and production best practices in 10 chapters. (10 parts) - [Introduction to Kubernetes](https://devops-daily.com/guides/introduction-to-kubernetes): Kubernetes introduction covering architecture, pods, deployments, services, and scaling for container orchestration (10 parts) - [Introduction to Linux](https://devops-daily.com/guides/introduction-to-linux): A practical guide to getting started with Linux for beginners and experienced users alike. Learn the basics of the Linux operating system, command line, and system administration skills needed to feel comfortable in a Linux environment. (10 parts) - [Introduction to Terraform](https://devops-daily.com/guides/introduction-to-terraform): Learn how to manage infrastructure as code with Terraform, from basic concepts to production-ready configurations (10 parts) - [Introduction to CI/CD with GitHub Actions](https://devops-daily.com/guides/introduction-to-cicd): Learn to automate your development workflow with GitHub Actions, from basic builds to sophisticated deployment pipelines. (10 parts) - [Introduction to PostgreSQL](https://devops-daily.com/guides/introduction-to-postgres): Learn how to work with PostgreSQL from database fundamentals to production deployment (10 parts) - [Cryptography Essentials](https://devops-daily.com/guides/cryptography-essentials): Master the cryptographic fundamentals every DevOps engineer needs: symmetric and asymmetric encryption, hashing algorithms, TLS/SSL certificates, and Public Key Infrastructure (PKI). (4 parts) - [Static Application Security Testing (SAST)](https://devops-daily.com/guides/sast-tools): Master Static Application Security Testing (SAST) with SonarQube, Semgrep, and CodeQL. Learn to detect vulnerabilities in source code before they reach production. (4 parts) - [Threat Modeling](https://devops-daily.com/guides/threat-modeling): Master threat modeling methodologies including STRIDE, DREAD, and attack trees. Learn to identify, analyze, and prioritize security threats in your systems with practical exercises. (4 parts) - [OWASP Top 10](https://devops-daily.com/guides/owasp-top-10): Learn about the OWASP Top 10 web application security risks. Understand each vulnerability, see real-world examples, and learn how to prevent them in your applications. (10 parts) - [Security Principles](https://devops-daily.com/guides/security-principles): Master the fundamental security principles every DevSecOps engineer needs to know. Learn CIA Triad, Defense in Depth, Least Privilege, and Zero Trust concepts with practical examples. (4 parts) - [A Practical Guide to FinOps for DevOps Engineers](https://devops-daily.com/guides/finops-for-devops-engineers): Learn how to implement FinOps practices in your DevOps workflows to optimize cloud costs while maintaining performance and reliability. (7 parts) - [Networking Fundamentals for Developers](https://devops-daily.com/guides/networking-fundamentals): A comprehensive guide to computer networking concepts, from basic protocols to advanced cloud networking and automation. (10 parts) - [Introduction to Ansible](https://devops-daily.com/guides/introduction-to-ansible): Learn how to automate server configuration and deployment tasks with Ansible, from basic concepts to production-ready practices. (10 parts) - [Introduction to Bash](https://devops-daily.com/guides/introduction-to-bash): Bash scripting and command line guide covering navigation, variables, control flow, functions, permissions, arguments, and best practices in 10 chapters. (10 parts) - [Introduction to Git](https://devops-daily.com/guides/introduction-to-git): A 10-part guide to Git version control covering repos, branching, merging, remotes, collaboration workflows, history rewriting, and team best practices. (10 parts) ## Posts - [PHP2Shell: How to Check That Every PHP You Run Is Actually Patched](https://devops-daily.com/posts/php2shell-check-every-php-is-patched.md): PHP 8.5.12, 8.4.27, 8.3.36 and 8.2.35 fix two critical remote code execution bugs. Installing the update is the easy part. A patched Ubuntu PHP still says 8.3.6, running workers keep the old code, and 4.4 hours after the release 8 of 39 popular images still shipped a vulnerable PHP. Here is how to find the PHP you run and prove it is fixed. - [What Keeps a Neon Compute Awake, and What It Costs](https://devops-daily.com/posts/what-keeps-a-neon-compute-awake.md): We watched Neon computes through the API to see which clients stop scale to zero. Idle connections do not. An open transaction, a monitoring agent and a health check every 5 minutes do, and that health check keeps the smallest compute running 180 CU-hours a month. - [Prompt Caching on DigitalOcean Inference, Measured: What Breaks It and How Long It Lasts](https://devops-daily.com/posts/digitalocean-inference-prompt-caching-measured.md): We sent 867 requests with a long on-call runbook as the system prompt to three DigitalOcean-hosted models. With the runbook first and unchanged, the cache cut the input bill about 5 times on Llama 4 Maverick and more than 12 times on DeepSeek V4.1 Flash. One timestamp on the first line turned it off on all three. Here is what else turns it off, how long a cached prefix lasted, and what prompt_cache_key does. - [Neon Realtime, Measured: Live SQL Queries Replace the LISTEN/NOTIFY Layer We Built by Hand](https://devops-daily.com/posts/neon-realtime-live-queries-measured.md): Neon Realtime turns a SQL query into a live subscription. We rebuilt our hand-made LISTEN/NOTIFY layer on it as a live order board and measured it on a real Neon project: 48,600 writes at up to 100 per second, which queries are re-sent in full on every write, what a reconnect delivers, scale to zero, and 14 attempts to tamper with a sealed query. - [SOC 2 Evidence From GitHub and Terraform, and the Part That Still Needs a Person](https://devops-daily.com/posts/soc2-evidence-from-github-and-terraform.md): We pointed a small evidence collector at a repository whose main branch had a strict ruleset. The ruleset passed and three change-management controls failed. Here is which SOC 2 evidence you can pull from GitHub and Terraform, which still needs a person, and ten ways an evidence script can pass a control without evidence. - [Postgres 19 Slipped to November: Every Pulled Feature and Why](https://devops-daily.com/posts/postgres-19-delay-pulled-features.md): PostgreSQL 19 now ships on 19 November, and 13 items left its release notes after beta 1. Here is each pulled feature with the reason from its revert, what to use instead, a script that finds beta-era code that depends on them, and why "AI found too many bugs" is only part of the story. - [Let's Encrypt Goes to 64-Day Certificates: When Does Your ACME Client Actually Renew?](https://devops-daily.com/posts/lets-encrypt-64-day-certificates-renewal-check.md): Let's Encrypt moves to 64-day certificates on 10 February 2027, and its staging environment already issues them. We issued real 64-day staging certificates with certbot, acme.sh and lego and recorded when each one renews. The ARI clients renewed or scheduled their renewal around day 42. acme.sh 3.0.7 with --days 80 scheduled its renewal for day 79, 15 days after the certificate expired, and upgrading to 3.1.6 fixed that at the next check. - [Page, Ticket or Ignore: Is the Cheap Model Good Enough for Alert Triage?](https://devops-daily.com/posts/cheap-model-alert-triage-digitalocean-inference.md): We gave six models on DigitalOcean Serverless Inference one written on-call policy and 200 alerts, three times each. A model at $0.16 per 1,000 alerts made every call the same way as one at $1.64. The real differences were latency, missed pages and a bug in our own test data that the models caught. - [DORA Metrics From Git History: The Definition Picks Your Tier](https://devops-daily.com/posts/dora-metrics-from-git-history.md): We computed deployment frequency, lead time, change failure rate and recovery time from one year of Kubernetes, uv, Go and Prometheus history, once per common definition. The definition alone moved every project across two or three DORA performance levels, and the merge button decides whether Git still knows when the work started. - [Datadog Alternatives in 2026: 12 Tools, Their Real Prices, and What 300 GB of Logs Costs on Each](https://devops-daily.com/posts/datadog-alternatives-2026-real-prices.md): We read the pricing page of Datadog and 12 alternatives on the same day and priced one workload on each: 300 GB of logs a month. Datadog with standard indexing of every event is $780 to $1,155 a month; the alternatives we could price run from about $19 to $180. Here is each tool, who it suits, and the catch on its pricing page. - [DevOps Interviews Now Test How You Decide. How to Practice Situational Questions](https://devops-daily.com/posts/devops-interviews-situational-questions.md): Fewer interviewers ask what a Kubernetes Service is. More of them describe a broken system and ask what you do first. Here is what they grade, five worked scenarios with weak and strong answers, and a way to practice making the call. - [How YouTube, Slack and GitHub Shard MySQL: We Built the Vitess Pattern on Five Servers and Measured What It Costs](https://devops-daily.com/posts/how-youtube-slack-github-shard-mysql-vitess.md): YouTube built Vitess, and Slack and GitHub use it for their largest MySQL workloads. We built the same primitives over five real MySQL servers and measured them: a scatter read took 4 shard queries and got a quarter of the throughput, every simulated half-finished cross-shard transfer lost money, an online split lost no rows, and a hot channel stayed hot at 128 shards. - [Ubuntu 26.10 Moves cp, mv and rm to Rust. We Ran 162 Shell Commands Through GNU and uutils to See What Changes](https://devops-daily.com/posts/ubuntu-26-10-rust-coreutils-what-changes.md): Ubuntu 26.10 ships on October 15 with Rust coreutils for every tool. On the same system, 150 of our 162 shell test cases gave byte-identical results with GNU and uutils. The other 12 come down to four changes that can break a script (GNU detection, cut -c, timeout -s KILL, base64 -d) and five error messages. - [DigitalOcean Agent Droplets: When the $50 Plan Pays Off](https://devops-daily.com/posts/digitalocean-agent-droplets-when-the-plan-pays-off.md): Agent Droplets is a prepaid discount on DigitalOcean Managed Agents, not a server. We priced our real agent runs from a real invoice to find where the $50 and $200 plans start to save money, and found a rounding rule that made our runs cost more than the token math. - [OpenSSH 10.6 Refuses DOMAIN\user and Weakens ssh -C. We Measured Both](https://devops-daily.com/posts/openssh-10-6-domain-usernames-and-compression.md): OpenSSH 10.6 came out on October 6. It refuses usernames with a backslash or a dollar sign before it connects, which breaks ssh, scp, rsync, git and Ansible logins written as CORP\alice. It also cuts ssh -C to Huffman coding only, so a 32 MiB log now compresses to 21 MiB instead of 3.7 MiB. We built 10.5 and 10.6 side by side and tested 13 ways of passing a username, 4 kinds of data and 8 SSH clients. - [Python 3.15 Made UTF-8 the Default. We Ran 13 Cases in Seven Linux Locales to See What Changes](https://devops-daily.com/posts/python-3-15-utf-8-default-linux-locales.md): Python 3.15 turns on UTF-8 mode everywhere. With container locale settings, none of our 13 encoding cases changed. On a UTF-8 server, only stdin and stdout changed. On a legacy-locale host, almost everything did, and the PYTHONUTF8=0 opt-out dropped LC_ALL=C processes to ASCII. - [Docker Desktop Switched New Containers to the local Log Driver. We Measured What That Changes](https://devops-daily.com/posts/docker-desktop-local-log-driver.md): Docker Desktop 4.94 made local the default log driver for new Linux containers, while Docker Engine on your servers still uses json-file with no rotation. We wrote the same 500,000 lines through both. local kept every line in 24 MB where json-file used 84 MB. A file-tailing collector read none of them. - [Queue or Log? Kafka, RabbitMQ and NATS All Do Both Now](https://devops-daily.com/posts/queue-or-log-kafka-rabbitmq-nats.md): Kafka has queues, RabbitMQ has streams, and NATS JetStream does both, so the broker is no longer the choice. We ran replay, a poison message, extra consumers and a retry through six setups. Two settings decided every result. We also found that RabbitMQ 4.3 quietly stops dead-lettering poison messages for consumers that nack. - [OpenTofu 1.13 Re-Encodes base64gzip and Drops WinRM. We Upgraded the Same State to See What Breaks](https://devops-daily.com/posts/opentofu-1-13-upgrade-base64gzip-winrm.md): OpenTofu 1.13 shipped on September 30. We applied configs with 1.12.7 and planned them with 1.13.1 against the same state. Gzipped user data planned an update and a replacement with no config change. A WinRM provisioner passed validate and plan, then failed at apply. The new assume functions turned an Invalid count argument error into a clean plan. Here is what to check before you bump the version. - [How Shopify Survives Black Friday: The Flash-Sale Playbook](https://devops-daily.com/posts/how-shopify-survives-black-friday-flash-sale-playbook.md): Shopify load tests at 150% of last year's peak, queues buyers at the edge and reserves stock during payment. We rebuilt checkout with k6 and measured it. - [A Poisoned .git/config Runs Code on git status. We Tested Which Commands and Copies Carry It](https://devops-daily.com/posts/poisoned-git-config-git-status-runs-code.md): On October 2 GitLab disclosed ConfigPoisoning: a repo that brings its own .git/config makes an AI coding tool run attacker commands when it shows a diff. We ran the same trick against plain git 2.39 and 2.55. A bare git status ran repo-supplied programs, the usual safe diff flags missed the clean filter, git 2.54 config hooks walked past core.hooksPath=/dev/null, a clone was clean but a cached workspace was not, and GitHub-hosted runners switch off the ownership check that would stop it. - [Knowing What Your AI Feature Costs Before Finance Does](https://devops-daily.com/posts/ai-feature-cost-before-finance-does.md): The model invoice has one line per model, and finance wants one line per feature. We ran three features on one key and recorded every usage block: a one-word alert label cost a third to a half of a full incident investigation, because of reasoning tokens nobody reads. Here is how to measure that per request and tag it per feature. - [GITHUB_TOKEN Is Now 377 Characters Long. We Tested Which Redaction Rules Still Catch It](https://devops-daily.com/posts/github-app-installation-tokens-redaction.md): GitHub finished moving App installation tokens, including the Actions GITHUB_TOKEN, to a new ghs__ format on October 2. We ran 40 real tokens through the usual redaction regexes and one through gitleaks, trufflehog and detect-secrets. The latest gitleaks release found nothing, and the common patterns either missed the token or hid only its first 40 to 46 characters, which were the same in all 40 tokens. - [A Repo per Agent: What Cloudflare Artifacts Changes About Git](https://devops-daily.com/posts/cloudflare-artifacts-repo-per-agent.md): Cloudflare Artifacts gives every agent, session or task its own Git repository. We measured how push contention grows when agents share one branch, walked through the Workers API, and priced the pattern so you can decide where it fits. - [We Took Down Our Mesh VPN Control Plane. Here Is What Kept Working](https://devops-daily.com/posts/mesh-vpn-control-plane-outage-what-keeps-working.md): Replacing the VPN with a WireGuard mesh moves the single point of failure from the VPN gateway to the coordination server. We stopped the control server under real Tailscale clients for 30 minutes and measured what survived: existing tunnels did, joins and revocations did not, an expiring key cut a device off on time, and a client restart took a device offline until we turned on netmap caching. - [CVE-2026-80521: The Ubuntu Container Escape Is Not Just an Ubuntu Problem](https://devops-daily.com/posts/af-unix-container-escape-cve-2026-80521.md): A public exploit breaks out of default Docker and Kubernetes containers through a bug in the AF_UNIX garbage collector, and Ubuntu 24.04 and 26.04 still have no kernel fix. The same code sits in the 6.1 and 6.6 LTS kernels, where upstream has no fix either. Here is how to check any node in one command, and what to do while you wait for a patch. - [GitHub Actions Removed Node 20. Find Every node20 Action You Still Run](https://devops-daily.com/posts/github-actions-node20-removed.md): Since September 23, GitHub Actions runs every node20 action on Node 24, and the opt-out is gone. An action that still works only adds a warning, so they are easy to miss until one breaks. Here is how to list every action your workflows use, read its runs.using value, and catch the ones hidden behind SHA pins and composite actions. - [GitHub Is Removing ssh-rsa Signatures: Find What Breaks Before the November 4 Brownout](https://devops-daily.com/posts/github-ssh-algorithm-removal.md): GitHub removes the ssh-rsa signature type and diffie-hellman-group-exchange-sha256 on January 13, 2027, with brownouts on November 4 and December 9. Learn which clients and keys are at risk, which debug lines to read, and how to rotate keys before the first brownout. - [GitHub Started Enforcing Self-Hosted Runner Versions. We Tested What Happens](https://devops-daily.com/posts/github-self-hosted-runner-version-window.md): GitHub started enforcing self-hosted runner versions on September 29. We tried four runner versions against a free github.com organization and asked GitHub's own API about every release. One was refused, one connected and then exited while its job waited in the queue, and the API scheduled every version's end about nine weeks after its successor. - [Free Egress Has Fine Print: S3 vs R2, B2, Wasabi and More](https://devops-daily.com/posts/object-storage-free-egress-fine-print.md): Serving 50 TB a month costs $4,379 on S3 at list price and $62 on R2. But the cheapest number in our comparison is outside the free-egress policy of the provider that offers it. Nine storage offerings, four workloads, and the fine print that changes the answer, with a calculator you can run yourself. - [containerd 1.7 Reaches End of Life: What Breaks on 2.x](https://devops-daily.com/posts/containerd-1-7-end-of-life-what-breaks-on-2x.md): We ran containerd 1.7.36, 2.3.6 and 2.4.1 against the same data and an old node config. The config still loaded and the mirrors still worked. What broke was pulling schema 1 images, and it stays hidden until a node has to pull one. - [Issue to Pull Request with DigitalOcean Managed Agents](https://devops-daily.com/posts/issue-to-pull-request-digitalocean-managed-agents.md): We gave an OpenCode agent on DigitalOcean Managed Agents three real GitHub issues and no GitHub token. It produced three merged pull requests and one wrong one that passed its tests. Here is the setup, the recorded runs, the cost per issue, and every gotcha we hit. - [Where to Run AI Agents: 8 Managed Agent Runtimes Compared](https://devops-daily.com/posts/managed-agent-runtimes-compared-2026.md): DigitalOcean Managed Agents, Cloudflare, AWS AgentCore, Google, Microsoft Foundry, E2B, Vercel and Modal, compared on isolation, state, tool access, limits and price, with one cost scenario worked out on every platform. - [Six System Design Problems, and the New Problem Each Fix Creates](https://devops-daily.com/posts/system-design-six-problems-and-what-each-fix-costs.md): Caching, read replicas, sharding, queues, WebSockets, retries, circuit breakers and CQRS each solve a real problem and hand you a new one. A practical map of the six problems every growing system meets, the usual fixes, and what each fix costs you. - [Terraform Module Outputs, Inputs and Sources: How Modules Pass Data to Each Other](https://devops-daily.com/posts/terraform-module-outputs-inputs-and-sources.md): How to get a value out of a Terraform module, pass a resource into another module, chain modules with for_each, pin a Git branch or tag as a module source, and fix the "Provider configuration not present" error that shows up when you refactor. All examples were run on Terraform 1.15. - [Terraform State: Remove, Move and Migrate Resources, and Set Up a Remote Backend](https://devops-daily.com/posts/terraform-state-remove-move-migrate-backend.md): The state questions every Terraform team hits: how to stop managing a resource without deleting it, rename one without a rebuild, move it to another project, bootstrap a remote backend, and why the DynamoDB lock table is on its way out. Every command here was run on Terraform 1.15. - [The No-Backend Backend: Neon Data API, RLS and 27 Attacks](https://devops-daily.com/posts/no-backend-backend-neon-data-api-rls.md): A team task board with no server code: static React, Neon Auth, and the Neon Data API with row-level security as the only guard. A signed-in attacker tried 27 ways in. What held, the four mistakes we tried, and the 15-minute gap. - [Deploy a Complete AI Incident Backend on One Neon Branch](https://devops-daily.com/posts/build-branch-local-incident-search-neon.md): Build and verify a disposable incident-search backend with Neon Auth, Object Storage, Functions, AI Gateway, and Lakebase Postgres—then remove the complete environment with one guarded command. - [CI Passed 6 of 6 Migrations. A Neon Branch of Production Passed 1](https://devops-daily.com/posts/rehearse-migrations-on-a-neon-branch.md): How to test Postgres migrations before production: branch production on Neon in seconds, run each migration while an app keeps reading and writing, and gate on errors, failed queries, lock stalls and lost rows. The six migrations that passed on our fixture database failed five times on the branch. - [Your Semantic Cache Answers the Question Next Door](https://devops-daily.com/posts/semantic-cache-answers-the-wrong-question.md): We put a semantic cache in front of an ops assistant on DigitalOcean Serverless Inference and replayed 288 hand-labelled questions through six embedding models. At the threshold that cut the bill by about 30 percent, about one hit in three was the answer to a different question. Someone asking how to undo a pushed commit got the instructions for an unpushed one. - [Cloudflare Freed 100 TB of RAM From Its Hash Rings. Your Proxy May Have the Opposite Problem](https://devops-daily.com/posts/hash-ring-points-nginx-haproxy-envoy.md): Cloudflare got back 100 TB of RAM partly by cutting 90% of the points on its consistent hash rings. We measured the other end of the same curve: a million keys through nginx and HAProxy to 100 backends, and Envoy rebuilt from its source. The busiest server ranged from 1.05x to 2x its fair share, and the points per server explained most of it. - [We Hid 96 Instructions in the Logs an Ops Agent Reads. Here Is What Stopped Them.](https://devops-daily.com/posts/prompt-injection-ops-agent-measured.md): An on-call agent reads logs and tickets that other people write. We planted 96 prompt injections in that text and measured six defences on DigitalOcean Serverless Inference. One paragraph in the system prompt cut the attack rate from 35 percent to 4. Delimiters on their own did nothing we could measure. A check outside the model stopped every forbidden action, and still missed the secrets the agent wrote into its own reports. - [The Junior Ops Pipeline Did Not Collapse. It Never Existed.](https://devops-daily.com/posts/the-junior-ops-pipeline-never-existed.md): Junior developer hiring is reportedly down 60 to 70 percent since 2022. We counted fifteen years of job postings to see what happened to entry level operations roles, and found something stranger: there were never any to lose. - [We Put Localhost on the Internet and Watched Who Turned Up](https://devops-daily.com/posts/what-happens-when-you-put-localhost-on-the-internet.md): A Cloudflare quick tunnel gives you a public URL for a port on your laptop in one command and no account. We ran one in front of a server that logs everything and answers nothing, to find out how long it takes the internet to find you, and what the thing actually costs. - [Full-Text vs pgvector vs Hybrid Search, Measured](https://devops-daily.com/posts/fulltext-vs-pgvector-vs-hybrid-measured.md): We put keyword search, pgvector and hybrid retrieval over the same 3,814 passages with 200 hand-written queries and pooled relevance judgments. The overall winner turned out to be the least useful number in the whole benchmark. - [We Measured the 200x Claim, and Got It Wrong Twice First](https://devops-daily.com/posts/we-measured-the-200x-claim.md): Last week we told you to measure a vendor claim on your own workload instead of repeating it. Then we got access, did exactly that, and produced two confident numbers that were both artefacts of our own bad method. Here is the real result, and the two mistakes, which are more useful than the result. - [Your Tenant Isolation Is One Forgotten WHERE Clause Away](https://devops-daily.com/posts/postgres-row-level-security-multi-tenant.md): Most multi-tenant apps enforce isolation in application code, which means every query is a chance to leak. Postgres row-level security moves the boundary into the database. Here is a working schema, the things that quietly break it, and why the role in your Neon connection string reads every tenant no matter what your policies say. - [Your Logs Cost More Than the Service That Emits Them](https://devops-daily.com/posts/your-logs-cost-more-than-the-service.md): Log ingestion is priced per gigabyte and indexing is priced per event, which means a service emitting small lines pays far more than its byte count suggests. Here is the arithmetic on a real server, why the usual advice to "log less" misses, and the five levers that actually move the bill. - [Jev and the Classification Problem Hiding in Your LLM Bill](https://devops-daily.com/posts/most-of-your-llm-calls-are-classification.md): Routing, tagging, triage and extraction are classification wearing a chat interface. A new model class is arguing that point loudly, with numbers worth reading carefully. Here is how to tell whether the argument applies to your pipeline, and how to read a 200x claim before you repeat it. - [Git Bisect for Your Data](https://devops-daily.com/posts/git-bisect-for-your-data.md): You know the number is wrong today. Nobody knows when it started. git bisect answers that question for code by checking out old commits; the same search works on a database if you can read it as it was at an arbitrary moment. Here is a CLI that does it, measured against a real Postgres, and the one limit that decides whether it can help you at all. - [Where Your Code Runs When There Is No Region](https://devops-daily.com/posts/edge-runtime-no-long-lived-process.md): The edge compatibility tax people still warn about has mostly been paid off. What is left is stranger and more interesting: you can keep your Node imports, but you cannot keep your process. Two measured demos of what that actually costs. - [Linux, Git, Docker: Why That Order Matters](https://devops-daily.com/posts/linux-git-docker-learning-order.md): Every DevOps roadmap lists the same tools. Almost none of them explain why the order is not arbitrary, or why learning Docker first makes containers feel like magic. Three steps, each one runnable in a terminal, each one making the next one obvious. - [Serverless Killed Your Connection Pool](https://devops-daily.com/posts/serverless-killed-your-connection-pool.md): A connection pool only works because a process outlives the request. Take the process away and it has nothing to amortise across. Measured against a real Postgres: what a connection costs cold and warm, why the pooler barely touches latency, and the benchmark that makes pooling look pointless. - [The Producer Changed the Schema and Nobody Told the Consumer](https://devops-daily.com/posts/schema-registry-is-not-a-contract.md): A schema registry stops the obvious breakages and sleeps through the expensive ones. Two changes to the same event, demonstrated live: one the registry rejects before it is published, one it cannot see at all because the schema never changed. - [Your Trace Dies the Moment the Pipeline Shells Out](https://devops-daily.com/posts/trace-context-environment-variables.md): OpenTelemetry has a Release Candidate spec for passing trace context through environment variables, which is how you connect a CI run to the build tool it spawns. Two runnable demos: one showing four orphaned traces becoming one, and one showing why BAGGAGE across a trust boundary is the part worth arguing about. - [Figma Made Multiplayer Instant by Picking the Dumber Algorithm](https://devops-daily.com/posts/figma-multiplayer-dumber-algorithm.md): Figma rejected Operational Transforms, and they are not running a real CRDT either. They built something simpler on purpose, and the reason it works is a constraint most teams already have. Here is the model, the trade it makes, and two runnable demos of where it breaks. - [systemd and NetworkManager Are Trapping AI Agents](https://devops-daily.com/posts/ai-canaries-systemd-networkmanager.md): Both projects now plant instructions in their repos designed to make an unreviewed AI contribution give itself away. I ran a real agent against each to see what fires, what does not, and what walks straight past. - [Gate Your Terraform Plans: Rules Decide, the Model Explains](https://devops-daily.com/posts/terraform-plan-gate-digitalocean-inference.md): A pull request says "3 to add, 1 to change, 1 to destroy" and everyone approves it. This is a GitHub Action that reads the plan JSON, fails the job on selected changes that risk data loss or public exposure, and uses DigitalOcean inference only to write the comment. Measured against twenty labelled plans, including the four it misses. - [How Netflix Ships a Third of the Internet: The CDN They Had to Build](https://devops-daily.com/posts/how-netflix-ships-a-third-of-the-internet-open-connect.md): At its 2015 peak Netflix was 37% of North American downstream traffic, and almost none of it came from a commercial CDN. Open Connect is a cache hierarchy built on one asymmetry: Netflix knows tonight what people will watch tomorrow. Here is how the appliances, the nightly fill, the BGP steering and the 800 Gb/s FreeBSD boxes fit together, a runnable comparison of push fill against pull-through caching, and what it teaches anyone running a cache. - [In-App, Email and Push From One Event](https://devops-daily.com/posts/in-app-email-and-push-from-one-event.md): An order ships. The user wants a badge in the app, a digest email later, no push at all, and their own webhook endpoint pinged. The design that handles that without duplicates: an outbox keyed by event, user and channel, preferences evaluated at send time, digest windows, and provider feedback wired back in. With a runnable model and a build-or-buy verdict. - [Meta Says Every Muse User Gets Their Own VM](https://devops-daily.com/posts/meta-muse-gives-every-user-a-vm.md): Meta says its new consumer agent runs on a dedicated cloud VM per person, with a second agent that has to approve anything leaving that machine and a credential store the agent can use but never read. Those are three infrastructure decisions you face too. Here is what each one defends against, what it costs to build, and a runnable model of the broker, including the injected page that tries to walk out with a token. - [How Stripe Avoids Double-Charging Anyone](https://devops-daily.com/posts/how-stripe-avoids-double-charging-idempotency-keys.md): A payment request times out. Did the charge happen? Stripe answers that question with idempotency keys, and the design behind them is more than a cache of responses: locked key rows, recovery points, and a rule about which calls can be retried. Here is the design, a working Postgres implementation, the run where our own version double-created rides, and the constraint that caught it. - [Who Owns the State File, and Other Questions That Decide Your Week](https://devops-daily.com/posts/who-owns-the-terraform-state-file.md): Most Terraform pain is not HCL. It is state: who is allowed to write it, how it is split, how you find out it no longer matches reality, and how a plan gets reviewed before it applies. Four decisions, a real drift run, and the tooling that exists for each. - [Go Is Not Just for CLIs. It Runs the Cloud Native Control Plane](https://devops-daily.com/posts/go-runs-the-cloud-native-control-plane.md): Docker, Kubernetes, etcd, Terraform, Vault, Prometheus, CoreDNS, Caddy, MinIO, CockroachDB: we pulled the real language breakdown of 20 infrastructure projects from GitHub, explain why Go keeps winning the control plane, list where it does not, and build a static cross-compiled HTTP server to show the reason in under 6 MB. - [Stop Building Webhook Retries Yourself](https://devops-daily.com/posts/stop-building-webhook-retries-yourself.md): We pointed a webhook sender at a receiver built to fail the common ways production fails: outages, 429s, timeouts, dead endpoints, bad signatures. Then we watched the retries, the schedule, the signature checks, and the replay happen without writing any of it. Here is the run, with the code and the attempt logs. - [DNS Detective: an Agent That Diagnoses Your Domain by Actually Probing It](https://devops-daily.com/posts/dns-detective-digitalocean-inference.md): We built an agent on DigitalOcean's Serverless Inference that debugs DNS, TLS and email problems the way an engineer does: form a hypothesis, run a real lookup, follow the evidence. It solved a null-MX mystery, an expired certificate, and a broken DNSSEC chain on camera, and one model we tried got disqualified for inventing probe results. - [Omarchy 4 Makes the Linux Desktop Feel Like a Product, Finally](https://devops-daily.com/posts/omarchy-4-quattro-developer-workstation.md): DHH's Arch-based distro shipped its biggest release in August: a full desktop shell rewrite, sub-minute installs, dual boot, and coding agents treated as system citizens. With an $8M foundation behind it and hardware vendors paying attention, Omarchy is the most serious run at the developer workstation in years. - [Getting a Row Change Out of Postgres Without Dual-Writing](https://devops-daily.com/posts/postgres-cdc-without-dual-writing.md): Your service writes to Postgres and publishes to Kafka, and one day those two disagree. The fix is to make the database the only writer and read changes from its log: the outbox pattern, logical decoding, and the replication-slot failure mode that quietly fills your primary's disk, demonstrated live with real numbers. - [How Discord Stores Trillions of Messages With a Tiny Team](https://devops-daily.com/posts/discord-trillions-of-messages.md): Discord went from 12 database nodes to 177 to 72, while message volume went from billions to trillions. The interesting part is not the migration to ScyllaDB; it is what they built in front of the database, and what their three worst problems teach anyone running a hot datastore at any scale. - [Email APIs With Hosted MCP Servers: Who Actually Ships One](https://devops-daily.com/posts/email-apis-with-hosted-mcp-servers.md): Every email provider now claims AI-agent support, but there is a real dividing line: a hosted MCP server your agent connects to with a URL, versus a package you have to run yourself. As of August 2026 the hosted club is small. Here is the roster, what each server exposes, and how to wire one into Claude in two minutes. - [Kubernetes 1.37 Really Can Flag Unused PVCs, but the Viral YAML Is Wrong](https://devops-daily.com/posts/kubernetes-1-37-unused-pvc-condition.md): A post making the rounds says Kubernetes 1.37 adds an unusedSince field to PVC status. The feature is real and it is genuinely good news for storage bills; the YAML being shared shows an API that does not exist. Here is what KEP-5541 actually shipped, the correct fields, and a working query for "PVCs unused for 30 days". - [WAL as the Source of Truth: What Lakebase Storage on S3 Means for You](https://devops-daily.com/posts/wal-as-the-source-of-truth-lakebase-storage-s3.md): Neon published a deep dive on the storage engine behind Lakebase Postgres: the write-ahead log is the database, S3 holds the history, and Postgres itself runs stateless on top. This is the reader-level version, with a hands-on session where we watch LSNs move, delete a table, and branch back to the moment before the mistake in under a second. - [Kubernetes 1.37 Garhwal: What Shipped and What Slipped](https://devops-daily.com/posts/kubernetes-1-37-garhwal-what-shipped.md): Kubernetes 1.37 landed on August 26 with 67 enhancements: 16 stable, 23 beta, 27 alpha. We checked the release against the June feature-freeze plan, KEP by KEP. Pod-level resources and Pod Certificates made stable, the GPU-slicing feature everyone watched did not graduate, and the ipvs removal clock is now running. - [WebSockets Are the Easy Part](https://devops-daily.com/posts/websockets-are-the-easy-part.md): Opening a WebSocket takes twenty lines. Reconnection, resume-from-cursor, presence, fan-out and backpressure are the actual product, and they are why realtime systems fail in month two instead of day one. Here is each problem, what it looks like in production, and an honest build-vs-buy section. - [Kubernetes Beyond the Basics: 7 Concepts That Take You From Junior to Mid-Level](https://devops-daily.com/posts/kubernetes-concepts-junior-to-mid-level.md): You can write a Deployment and debug a CrashLoopBackOff. The gap between junior and mid-level is a different set of ideas: how requests really drive scheduling, why Services do not load-balance the way you think, what actually happens during a rolling deploy, and why Kubernetes is a reconciliation engine, not a command runner. - [Terraform Variables, Loops, and Outputs: The Complete Guide](https://devops-daily.com/posts/terraform-variables-loops-and-outputs.md): Everything about moving values through Terraform in one place: declaring vs assigning variables, tfvars and TF_VAR_ precedence, locals, maps and lists, for_each and its pitfalls, splat outputs for counted resources, sensitive values, and the classic "variables may not be used here" error. - [The Postmortem Nobody Reads, and the One They Do](https://devops-daily.com/posts/the-postmortem-nobody-reads.md): Most incident write-ups are compliance artifacts: written once, filed, and never opened again. The difference between those and the postmortems engineers actually forward to each other comes down to a handful of choices about audience, structure, and follow-through. - [Why Your Kafka Bill Is Mostly Network](https://devops-daily.com/posts/why-your-kafka-bill-is-mostly-network.md): Run the numbers on a self-managed Kafka cluster and the biggest line item is not brokers or disks, it is cross-AZ data transfer. Here is the arithmetic, where every gigabyte crosses a zone boundary, and the four levers that actually shrink the bill. - [GitHub's 2.9B Monthly Commits: Anatomy of an Outage](https://devops-daily.com/posts/github-2-9-billion-monthly-commits-outage.md): GitHub's August 17 outage began with a missed sidecar limit and escalated through retry storms. Learn which reliability controls your platform needs next. - [Someone Ran migrate:fresh on Production](https://devops-daily.com/posts/someone-ran-migrate-fresh-on-production.md): We wiped a 30,000-row Laravel production database on purpose, then recovered every row in under a second with a Neon point-in-time restore. Here is the full timed experiment, the recovery playbook, and the guardrails that stop it happening to you. - [Agentic AI Vocabulary for DevOps: 12 Terms You Already Operate Under Another Name](https://devops-daily.com/posts/agentic-ai-vocabulary-for-devops.md): Every agentic AI glossary is written for executives. Read the same twelve terms as an infrastructure engineer and most of them describe control loops, sandboxes and admission policies you have run for a decade. The useful exercise is finding the three where that analogy breaks, because those are the ones that will page you. - [The Anatomy of Kubernetes Persistent Storage: PV, PVC and the Parts That Bite](https://devops-daily.com/posts/anatomy-of-kubernetes-persistent-storage.md): A PersistentVolumeClaim is a request and a PersistentVolume is the thing you get. That part takes five minutes to learn. The lifecycle rules underneath, which decide whether deleting a claim also deletes your data, are where teams lose production volumes. - [The 9 Types of API Testing, and Where Each Belongs in Your Pipeline](https://devops-daily.com/posts/api-testing-types-where-each-belongs-in-your-pipeline.md): Telling load testing from stress testing is easy. What shapes delivery is which of the nine run on every pull request, and which only run after a deploy. - [Build and Evaluate an AI Error Explainer with DigitalOcean Inference](https://devops-daily.com/posts/build-evaluate-ai-error-explainer-digitalocean-inference.md): Build a FastAPI error explainer, enforce structured model output, and evaluate models and routers against reviewed errors before choosing one. - [Fix Your DevOps Career in One Day](https://devops-daily.com/posts/fix-your-devops-career-in-one-day.md): Not a five-year plan. Eight things you can finish between breakfast and dinner, ordered by how much they change what happens to you next month, with the evidence for why each one is on the list. - [6 Apache Kafka Use Cases, and When You Do Not Need Kafka](https://devops-daily.com/posts/kafka-use-cases.md): Six patterns where Kafka genuinely earns its operational cost, what each one looks like in practice, and the failure mode nobody mentions until you are already running it in production. - [Streaming LLM Responses in Next.js: 1.3s to First Token, Not 15.7s](https://devops-daily.com/posts/nextjs-streaming-digitalocean-inference.md): The same model, the same prompt, and the same DigitalOcean endpoint. One version shows the first words in 1.3 seconds, the other shows a blank screen for nearly 16. The difference is entirely in your route handler. - [Why Your Base Image Has 1,684 CVEs](https://devops-daily.com/posts/why-your-base-image-has-1684-cves.md): I inventoried 17 base images straight from the registry and counted every advisory against the exact package versions inside. The totals are larger than you expect, one package produces most of them, and the runtime you actually run is not in the count at all. - [HTTP QUERY Shipped. Your Cache Did Not Get the Memo](https://devops-daily.com/posts/http-query-method-rfc-10008.md): RFC 10008 gave HTTP its first new method since 2010: QUERY, a request that is safe and idempotent like GET but carries a body like POST. The semantics are the easy part. The hard part is that its cache key includes the request body, which is not something your CDN or browser does by default yet, and the RFC quietly ships a workaround for exactly that. - [We Built an On-Call Agent in Mastra: Where It Won and Where It Would Not](https://devops-daily.com/posts/we-built-an-on-call-agent-in-mastra.md): Most agent tutorials stop at the happy path. We built a real on-call agent on Mastra, then killed the process with SIGKILL at the exact moment it rolled back a deploy. It recovered the run. It also rolled the deploy back a second time. Here is what durable execution actually guarantees, and the code that makes it safe. - [Auth for a Postgres App, Without a Separate Service](https://devops-daily.com/posts/neon-auth-without-a-separate-service.md): The usual way to add auth is to run a second system next to your database and spend forever keeping the two in sync. Neon Auth puts the auth server in the same project as Postgres: one line in a config file, one deploy, and the user who signs in is a row you can join to your own tables. Here is how it works and why the reconciliation tax disappears. - [Realtime Chat With Auth: Next.js, Neon Auth, and WebSockets](https://devops-daily.com/posts/neon-realtime-chat-with-auth.md): A WebSocket cannot carry an Authorization header, so how do you know who is on the other end? This build-log wires a realtime chat where every socket is authenticated with a Neon Auth JWT, verified before the connection is accepted, and fanned out across isolates with Postgres LISTEN/NOTIFY. Real code, the security gotcha that matters, and the test output that proves it. - [Top 5 AI Agent Frameworks in 2026](https://devops-daily.com/posts/top-5-ai-agent-frameworks-2026.md): Five frameworks worth shipping production agents on, ranked against stated criteria, with the GitHub and npm numbers behind the ranking and an honest note on where each one loses. - [You Cannot Rotate a Secret You Cannot Find](https://devops-daily.com/posts/you-cannot-rotate-a-secret-you-cannot-find.md): Trace one credential from a laptop to production and count the copies it leaves behind. That count is your rotation cost and your blast radius, and it is why most teams never rotate anything. - [From DNS to Delivery: Building Transactional Email with SMTPFast](https://devops-daily.com/posts/from-dns-to-delivery-smtpfast.md): Connect a domain, send a FastAPI receipt through SMTPFast, trace delivery beyond the 200 response, and verify signed webhooks end to end. - [Adding SAML and SCIM Before It Costs You a Deal](https://devops-daily.com/posts/saml-scim-before-it-costs-you-a-deal.md): What actually changes in your application when an enterprise buyer asks for SSO and directory sync, in the order you should build it, including the validation steps that turn SAML into an authentication bypass if you skip them. - [Terraform Strings and Conditionals: The Complete Guide](https://devops-daily.com/posts/terraform-strings-and-conditionals.md): Building strings, checking substrings, ternaries, optional attributes and conditional resources, in one place. - [What Does One Merge Actually Cost You in CI?](https://devops-daily.com/posts/what-does-one-merge-cost-in-ci.md): Wall-clock time and machine minutes are different numbers, and most teams track only one. Here is how to get both from your own repo. - [I Tested AI Resume Screening. The Model Was the Fair Part](https://devops-daily.com/posts/ai-resume-screening-devops-what-i-measured.md): Eight models scored the same DevOps resume. They ignored tool names and buzzwords, but six docked the engineer for a career break. - [A Postgres Branch Per Learner: Building on Neon](https://devops-daily.com/posts/building-a-learning-platform-on-neon.md): Every hands-on lab gets its own Postgres branch, AI generation runs outside the request cycle, and cleanup is core infrastructure rather than a chore. - [Running a Background Job That Must Not Be Lost](https://devops-daily.com/posts/running-a-background-job-that-must-not-be-lost.md): A queue gets your job to a worker, not to the finish line. What happens when the worker dies halfway, and a durable executor in 90 lines of TypeScript. - [Build and Deploy a Ticket Triage App with DigitalOcean Inference](https://devops-daily.com/posts/digitalocean-inference-ticket-triage-app.md): Build a practical FastAPI ticket triage app with DigitalOcean Serverless Inference, then deploy it to App Platform with Terraform. - [Stacked Pull Requests on GitHub: What They Actually Fix](https://devops-daily.com/posts/github-stacked-pull-requests-public-preview.md): GitHub shipped stacked pull requests to public preview. What stacking solves, how the gh-stack workflow works, and when a stack is the wrong shape. - [What It Actually Takes to Deliver a Webhook in Production](https://devops-daily.com/posts/reliable-webhook-delivery-retries-signatures-idempotency.md): Sending a webhook is one HTTP POST. Delivering one is a retry schedule, a signature scheme, an idempotency story, and a way to answer "did you get it?" six hours later. Here is the whole problem, and a working Node implementation of both sides. - [Explaining CI Failures Automatically with a GitHub Action](https://devops-daily.com/posts/ci-log-triage-digitalocean-inference.md): We built a GitHub Action that reads a failing job log and tells you what broke, using DigitalOcean serverless inference. The interesting part was not the model call. It was throwing away 92% of the log before sending it. - [The DevOps Skills That Create Openings, Not Just Pass Filters](https://devops-daily.com/posts/devops-skills-that-create-job-openings.md): Most skill lists tell you what gets you past a screening. They do not tell you what makes a company decide to hire someone in the first place. Those are different lists, and the second one is shorter, more specific, and worth a lot more. - [What Sending a Developer Newsletter Actually Takes](https://devops-daily.com/posts/what-sending-a-developer-newsletter-actually-takes.md): A newsletter looks like a for-loop over an address list. It is not. Here is the infrastructure behind the DevOps Daily newsletter: sending domain and DNS, bounce and complaint handling, one-click unsubscribe, idempotent scheduling, and the Message-ID that makes any of it debuggable. - [11 Laws That Quietly Run Your Engineering Team](https://devops-daily.com/posts/11-laws-that-run-your-engineering-team.md): Parkinson, Goodhart, Brooks, Chesterton. Eleven old "laws" that were not written about software but explain your incidents, your estimates, and your org chart better than most engineering blog posts. - [DMARCbis Is Here: What Changed in the New DMARC and What to Do to Your Records](https://devops-daily.com/posts/dmarcbis-what-changed-new-dmarc.md): DMARC finally became a real internet standard in 2026. The pct tag is gone, there are two new tags, and the Public Suffix List is out. Here is what actually changed and the exact edits to make to your DNS. - [Send an Email by Hand: The Raw SMTP Conversation (and Why You Should Not Do It in Production)](https://devops-daily.com/posts/send-an-email-by-hand-raw-smtp.md): You can open a socket to a mail server and type an email one command at a time. Doing it once teaches you what every email API hides. Here is the full SMTP conversation, byte by byte, and the exact reasons production sending needs more than a telnet session. - [DevOps Engineer, What's Next? Five Career Paths for the Next Five Years](https://devops-daily.com/posts/devops-engineer-career-paths-next-five-years.md): The generic "DevOps Engineer" title is splitting into specialized tracks. Here are five honest career paths for the next five years, what each one really involves, who thrives in it, and the first concrete step to take. - [One git push to RCE: the anatomy of CVE-2026-3854 and the parsing bug behind it](https://devops-daily.com/posts/github-rce-git-push-header-injection-cve-2026-3854.md): A single git push could execute code on GitHub's backend, with cross-tenant reach on github.com itself. The root cause is a bug you almost certainly have somewhere too: untrusted input smuggled through a delimited internal header. - [Stop Compiling Postgres Extensions in Your Dockerfile: How pglayers Works](https://devops-daily.com/posts/pglayers-postgres-extensions-docker-layers.md): Adding pgvector or PostGIS to a Postgres image usually means apt-get, build tools, and a fat, slow image. pglayers ships each extension as a scratch Docker layer you COPY in. Here is how it works and when to use it. - [Build the Container Boundary You Do Not Have: Seccomp Profiles with the Security Profiles Operator](https://devops-daily.com/posts/security-profiles-operator-seccomp-boundary.md): A container is not a security boundary out of the box, but you can build one. Here is a hands-on guide to recording, tuning, and enforcing seccomp profiles with the Security Profiles Operator, which just shipped v1.0. - [Swapping Across 25 Models With One Line](https://devops-daily.com/posts/neon-swap-25-models-one-line.md): Choosing a model is usually a commitment: an SDK, a key, an integration. Through the gateway it is a string, so you can shop the whole catalog per task. And the catalog spans a 100x price range, which turns model choice into your biggest cost lever. Here is the swap, the price spread, and a real multi-model run. - [The pwn request just got harder: what actions/checkout v7 changes, and what it does not](https://devops-daily.com/posts/pwn-request-github-actions-checkout-v7.md): GitHub is backporting a fork-checkout block to actions/checkout, with enforcement on July 20, 2026. Here is what a pwn request actually is, what the change stops, and the three ways your pipeline is still exposed after you upgrade. - [Build a Terraform Provider for Your API with the Plugin Framework](https://devops-daily.com/posts/build-a-terraform-provider-plugin-framework.md): If your product has a REST API, a Terraform provider lets people manage it as code. Here is how to build one with the modern Terraform Plugin Framework, using a real email API as the example, from client to registry. - [Per-Branch AI Endpoints: Isolating Model Spend Across Prod, Preview, and CI](https://devops-daily.com/posts/neon-per-branch-ai-spend-isolation.md): When previews, CI, and production all call models with the same key, you cannot tell what a preview cost or notice a runaway test until the invoice. Because a Neon branch is its own deployment with a usage ledger that lives in the branch's Postgres, model spend is attributed and isolated per environment. I proved it: a CI branch spent tokens while production stayed flat. - [Your GitOps Controller Is Tier Zero: the Argo CD repo-server RCE](https://devops-daily.com/posts/argo-cd-repo-server-unauthenticated-rce.md): An unauthenticated RCE in Argo CD's repo-server turns one compromised pod into full cluster takeover. Reported 18 months ago, still unpatched. Here is how it works and the one control that stops it. - [Your Container Is Not a Security Boundary: GhostLock (CVE-2026-43499)](https://devops-daily.com/posts/ghostlock-cve-2026-43499-container-boundary.md): A 15-year-old Linux kernel bug just got a public exploit that breaks out of containers and hands any local user root on the host. GhostLock is a reminder that the container is not your security boundary, the shared kernel is. Here is what actually shrinks the blast radius. - [How Docker Really Works, From docker run to the Kernel](https://devops-daily.com/posts/how-docker-works-under-the-hood.md): You type docker run and a container appears. Between those two moments the CLI, dockerd, containerd, and runc hand work down a chain until the Linux kernel puts your process in its own namespaces and cgroups. Here is the whole path, with the real commands to watch it happen. - [Model Fallback and Routing Without a Provider SDK Each](https://devops-daily.com/posts/neon-model-fallback-and-routing.md): Models have outages, rate limits, and bad minutes. A resilient app falls back to another one, but building that across providers normally means a different SDK and error shape for each. Through one OpenAI-compatible gateway, fallback is a loop over model names. Here it is, tested against a real failure. - [One Key for Claude, GPT, and Gemini: the Gateway Pattern](https://devops-daily.com/posts/neon-one-key-for-claude-gpt-gemini.md): Using three model providers usually means three API keys, three SDKs, and three billing relationships sprayed across your code. An AI gateway collapses that to one credential and one OpenAI-compatible endpoint. I proved it on a Neon Function: the same call answered by GPT, Claude, and Gemini. - [Migrating From S3 to Branch-Aware Storage](https://devops-daily.com/posts/neon-migrating-from-s3-to-branch-aware-storage.md): Neon object storage is S3-compatible, so moving to it is mostly a config change, not a rewrite. Your upload code, your presigned URLs, and your download paths all stay the same. Here is exactly what carries over, the small diff that changes, and a copy script to move the objects, with the honest list of what does not come along. - [Stop Standing Up an S3 Bucket Per Preview Environment](https://devops-daily.com/posts/neon-stop-a-bucket-per-preview-environment.md): Giving every preview environment isolated file storage usually means provisioning a real bucket per environment: policies, IAM, lifecycle rules, credentials, and a teardown job that leaves orphans anyway. When the bucket rides the database branch, that whole apparatus disappears. Here is the difference, tested. - [Stop Prompting, Start Looping: Agentic Loops Explained](https://devops-daily.com/posts/stop-prompting-start-looping.md): The best engineers stopped hand-writing prompts and started writing loops. Here is what an agentic loop actually is, the plan-build-judge pattern behind it, why the judge has to be a separate agent, and how to try it in an interactive simulator. - [The Docker AuthZ Bypass Is Back: CVE-2026-34040](https://devops-daily.com/posts/docker-authz-bypass-cve-2026-34040.md): CVE-2026-34040 lets a crafted API request slip past Docker authorization plugins, and it is an incomplete fix of the 2024 maximum-severity bug. Here is how the bypass works, who is exposed, and how to close it. - [PostgreSQL 18.2 Broke Standbys: The 18.x Upgrade Footguns](https://devops-daily.com/posts/postgres-18-2-standby-regression-upgrade-footguns.md): PostgreSQL 18.2 shipped regressions bad enough to force an out-of-cycle 18.3: halted standbys, substring crashes, and a pg_trgm segfault. Here is what went wrong and the quieter Postgres 18 upgrade traps to check before you patch. - [Presigned-URL Uploads From a Serverless Function](https://devops-daily.com/posts/neon-presigned-uploads-from-a-function.md): Streaming user uploads through your API means the bytes cross your server twice, and serverless functions have request-size limits that make it worse. Presigned URLs let the browser upload straight to object storage while your function just hands out permission. Here it is on a Neon Function, tested end to end. - [Object Storage That Branches With Your Database](https://devops-daily.com/posts/neon-object-storage-branches-with-your-database.md): Database branching gives you a throwaway copy of your rows. But your app also stores files in object storage, and those normally stay in one shared bucket. On Neon a branch forks the bucket too, so each branch gets its own copy of the files. I built a small files API to prove it. - [Stop Paginating With OFFSET: Keyset Pagination and the Deep-Page Cliff](https://devops-daily.com/posts/stop-paginating-with-offset.md): LIMIT/OFFSET is the reflexive way to paginate, and it is fine on page one. But OFFSET makes the database generate and throw away every row before the page you want, so cost grows with page depth until deep pages fall off a cliff. Keyset pagination makes every page the same speed regardless of depth. Here is why OFFSET is slow, the fix, and the one tradeoff. - [Firebase Alternatives in 2026: Choose by Why You Are Leaving, Not by a Ranking](https://devops-daily.com/posts/firebase-alternatives-2026.md): Most "Firebase alternatives" lists rank tools you cannot compare, because Firebase is five products in a trench coat. The useful question is which part you are replacing and why you are leaving: the Firestore bill that scales with reads, or the data model you cannot port. Here is an honest map of Supabase, Appwrite, Convex, PocketBase, Nhost, Amplify and the rest, grouped by the reason you are actually switching. - [When the SSH Server Attacks the Client: libssh2 CVE-2026-55200](https://devops-daily.com/posts/libssh2-cve-2026-55200-client-side-ssh.md): You spent years hardening sshd. This bug does not care. CVE-2026-55200 is a pre-auth heap overflow in libssh2 where a malicious SSH server takes over the client that connects to it, no credentials needed. And libssh2 is a client library hiding in curl, git tooling, and backup jobs all over your pipeline. Here is the bug, who is actually exposed, and how to find it in your stack. - [The Everything-on-Your-Branch Architecture](https://devops-daily.com/posts/neon-everything-on-your-branch-architecture.md): For a decade "branch the database" has meant a copy of the schema and rows. But your app is also files, backend code, and model config. Neon now forks all of it on one branch: Postgres, object storage, functions, and the AI gateway, together and isolated. I branched a full-stack project to prove it. - [A Postgres-Backed MCP Server in ~20 Lines](https://devops-daily.com/posts/neon-functions-postgres-mcp-server.md): Most of what an MCP server does is run database queries on behalf of an AI agent. So I put one right next to the database. Here is a Postgres-backed MCP server built on Neon Functions, deployed onto a database branch, with the code, a live client test, and the repo. - [Preview Environments That Include the Backend, Not Just the Frontend](https://devops-daily.com/posts/neon-functions-preview-environments-backend.md): Every PR gets a frontend preview URL. The backend is almost always one shared staging database, so previews quietly lie to you. On Neon a branch is the database, its data, and the functions together, so each PR can get a real isolated backend. Here is the workflow, tested end to end. - [Realtime Without a WebSocket Service](https://devops-daily.com/posts/neon-functions-realtime-without-websockets.md): Live counters, presence, notifications: the reflex is to add a websocket service to run and pay for. But if your data already lives in Postgres, it has a pub/sub built in. Here is realtime fan-out with Postgres LISTEN/NOTIFY and SSE on a Neon Function, tested with two live subscribers. - [hostNetwork Is Still a Footgun: What CVE-2026-32193 Teaches Every Cluster](https://devops-daily.com/posts/hostnetwork-footgun-cve-2026-32193.md): A recent AKS advisory let an untrusted pod with hostNetwork break out to the worker node. The Azure-specific bug is patched, but the footgun that made it reachable lives on every Kubernetes cluster. Here is how the escape class works and what to actually lock down. - [Stop Using Random UUIDs as Primary Keys: uuidv7() Lands in PostgreSQL 18](https://devops-daily.com/posts/postgres-18-uuidv7-primary-keys.md): Random UUIDv4 primary keys quietly wreck insert speed and bloat indexes on large tables. PostgreSQL 18 ships a native time-ordered uuidv7() that keeps the upsides of UUIDs without the B-tree penalty. Here are the numbers and how to adopt it. - [Compute That Lives on Your Database Branch](https://devops-daily.com/posts/neon-functions-compute-on-your-database-branch.md): Neon Functions run your code in the same region as your Postgres, on a per-branch URL. To see why that matters I deployed a small API and timed a query from inside the function versus from a machine across the Atlantic: 1.2 ms against 135 ms. Here is how it works, with the real numbers and the repo. - [Streaming an AI Agent Without a Function Timeout](https://devops-daily.com/posts/neon-functions-streaming-without-timeout.md): Long agent loops and long token streams run into the same wall: a serverless function that hits its execution cap and cuts the connection. Neon Functions hold long-lived streaming connections by default. I deployed two endpoints to prove it: one streamed for 90 seconds, the other streamed an agent token by token starting at 466 ms. - [Splunk Shipped an Unauthenticated Database Sidecar: CVE-2026-20253](https://devops-daily.com/posts/splunk-postgres-sidecar-rce-cve-2026-20253.md): You did not install a PostgreSQL server, but Splunk Enterprise 10 did, and in affected versions its sidecar endpoint had no authentication. The result is a pre-auth, CVSS 9.8 path to writing files on the host as the Splunk user, now on CISA's actively-exploited list. The bug is patched; the broader lesson is about every helper service your tools quietly bundle. - [I Gave an AI Agent a Database, Compute, Storage, and Models From One CLI](https://devops-daily.com/posts/ai-agent-stack-one-cli-neon-platform.md): An AI agent usually needs four accounts: a database, somewhere to run, object storage, and a model provider. I wired all four from a single Neon credential and had a deployed image-generating agent in a few minutes. Here is the actual build log, the config that ties it together, and the honest caveats. - [Neon Is Becoming a Backend Platform, Not Just Postgres](https://devops-daily.com/posts/neon-backend-platform-not-just-postgres.md): In June 2026 Neon added serverless functions, S3-compatible object storage, and an AI gateway to its database. The interesting part is not any one feature, it is the through-line: everything branches with your data. Here is what shipped, what it competes with, and where the seams still show. - [Your Automation Platform Is a Credential Honeypot: Ansible CVE-2026-11807](https://devops-daily.com/posts/ansible-automation-platform-credential-leak-cve-2026-11807.md): A missing authorization check in Event-Driven Ansible lets any logged-in user pull plaintext vault passwords, SSH keys, and OAuth tokens out of Ansible Automation Platform. It is a CVSS 9.6, it is patched, and it is a reminder of what your automation control plane really holds. - [SpaceX Just Bought Cursor for $60B. What That Means If Your Team Lives in It](https://devops-daily.com/posts/spacex-cursor-acquisition-betting-on-one-ai-tool.md): SpaceX is acquiring Anysphere, the maker of Cursor, in a $60 billion all-stock deal, the largest acquisition of a venture-backed startup ever. The number is the headline. The real question for engineering teams is what it means to build your daily workflow on a tool whose owner just changed. - [The gRPC-Go Auth Bypass Hiding in Your Dependency Tree: CVE-2026-33186](https://devops-daily.com/posts/grpc-go-authorization-bypass-cve-2026-33186.md): A missing leading slash lets requests slip past gRPC-Go authorization rules. It is a CVSS 9.1, it is fixed in 1.79.3, and because gRPC-Go is a transitive dependency in a huge slice of cloud-native Go, you may be shipping it without knowing. Here is how to find out. - [Kubernetes 1.37 Just Locked Its Feature Set: What Made the Cut](https://devops-daily.com/posts/kubernetes-1-37-feature-freeze-whats-locked-in.md): The enhancements freeze for Kubernetes 1.37 landed on June 17, so the shape of the August release is now decided. GPU partitioning keeps maturing for AI workloads, and a cgroup v1 change will stop some kubelets from starting. Here is what is locked in and what to check before you upgrade. - [Your First Serverless LLM Call on DigitalOcean in 10 Minutes](https://devops-daily.com/posts/digitalocean-serverless-inference-first-call.md): DigitalOcean's Inference Engine gives you an OpenAI-compatible endpoint with pay-per-token pricing and no GPU to manage. Here is the fastest path from zero to a working call, with curl, Python, and Node, every snippet run against the live API. - [Secrets Management Best Practices with HashiCorp Vault](https://devops-daily.com/posts/hashicorp-vault-secrets-management-best-practices.md): Run HashiCorp Vault the way production needs it: auto-unseal, AppRole auth for machines, dynamic database credentials that expire on their own, and encryption as a service. Real config, real terminal output. - [AI SRE Agents: What They Actually Fix, and What They Will Happily Break](https://devops-daily.com/posts/ai-sre-agents-what-they-fix-and-break.md): AI SRE is now its own category, with every incident vendor shipping an agent that investigates and remediates on its own. Here is the honest split: where these agents genuinely earn their keep, where they are oversold, and the one risk nobody puts on the marketing page. - [Hetzner Doubled Its Prices Again. The AI Memory Crunch Is Why](https://devops-daily.com/posts/hetzner-doubled-prices-ai-memory-crunch.md): On June 15, 2026, Hetzner raised prices on new orders by roughly 99% in Germany and 158% in the US, the latest in a string of 2026 increases. It is not greed and it is not just Hetzner: the AI memory supercycle has reached the infrastructure bill of teams that never touch AI. - [How to Design a Multi-Region Active-Active Architecture on AWS](https://devops-daily.com/posts/multi-region-active-active-aws.md): A practical walkthrough of building active-active multi-region apps on AWS: traffic routing with Route 53 and Global Accelerator, data replication with DynamoDB Global Tables and Aurora, and the application changes that make failover actually work. - [The US Government Pulled Two Frontier Models Overnight. The Real Lesson Is About Your Stack](https://devops-daily.com/posts/government-pulled-fable-mythos-what-builders-should-learn.md): On June 12, 2026, an export-control directive forced Anthropic to disable Claude Fable 5 and Mythos 5 for every user worldwide, three days after launch. The policy fight is interesting. The operational lesson for anyone building on a single model provider is more urgent. - [npm v12 Will Stop Running Install Scripts. We Audited Our Repos to See What Actually Breaks](https://devops-daily.com/posts/npm-v12-install-scripts-audit.md): Starting with npm v12 (estimated July 2026), dependency install scripts will not run unless you allowlist them. We ran the new audit tooling on our own production repos: 65 packages flagged, 4 that matter, and a surprising amount of nothing breaking. - [OpenTofu 1.12: destroy = false Retires the tofu state rm Ritual](https://devops-daily.com/posts/opentofu-1-12-destroy-false-state-surgery.md): OpenTofu 1.12 lets a resource declare that it should be forgotten instead of destroyed, makes prevent_destroy dynamic, and quietly ends the manual providers lock step. Here is what each change does, plus the footguns the release notes will not warn you about. - [Neon vs Supabase in Production: We Benchmarked the Operations That Page You at 3am](https://devops-daily.com/posts/neon-vs-supabase-operational-benchmarks.md): Two benchmark sessions against Neon and Supabase Pro measured what spec sheets never show: compute resizes cost 39 seconds of real downtime on one platform and zero on the other, read replicas differ by 23x, and branch creation has a tail you should know about. - [Neon vs Supabase Pricing: What the Same App Costs From Launch to Scale](https://devops-daily.com/posts/neon-vs-supabase-scaling-costs.md): We priced one application through five growth stages on both platforms using verified June 2026 list prices. The result is three distinct cost regimes, two crossover points, and a surprise: at scale the biggest line item is not the database. - [Neon vs Supabase Free Tiers: We Benchmarked Both So You Don't Have To](https://devops-daily.com/posts/neon-vs-supabase-free-tier-benchmarks.md): We ran 320 timed operations against the Neon and Supabase free tiers from a same-region client: query latency, project creation, cold starts, and branching. The latency race is a tie, and the real differences are nothing like the marketing. - [node-postgres Silently Ignores Your TLS Config When the URL Says sslmode](https://devops-daily.com/posts/node-postgres-sslmode-silently-ignores-ssl-options.md): If your connection string contains sslmode=require, the pg library throws away the ssl options object where you loaded your CA certificate, and verification fails with "self-signed certificate in certificate chain". Here is the trap, the fix, and the v9 changes coming. - [Designing Rate Limiting for APIs: Algorithms, Patterns, and Implementation](https://devops-daily.com/posts/designing-rate-limiting-for-apis.md): A practical comparison of token bucket, leaky bucket, fixed window, and sliding window rate limiting, with copy-paste Redis and FastAPI code, nginx config, and guidance on which one to actually use. - [Shai-Hulud Reaches PyPI: The Hades Wave That Runs Before You Import It](https://devops-daily.com/posts/shai-hulud-hades-pypi-wave-june-2026.md): The Shai-Hulud worm jumped to PyPI on June 7. The Hades wave hides in 19 Python packages, runs at interpreter startup through a .pth hook before you import anything, and steals your CI/CD secrets. - [Is Valkey Ready to Replace Redis in 2026?](https://devops-daily.com/posts/is-valkey-ready-to-replace-redis-2026.md): Valkey forked from Redis after the 2024 license change and has matured fast. Here is whether it is production-ready, how the migration works, and whether the AGPL question even applies to you. - [OpenTofu in 2026: Should You Switch from Terraform (and What It Actually Costs You)](https://devops-daily.com/posts/opentofu-2026-switch-from-terraform.md): OpenTofu has matured into a real Terraform alternative in 2026. Here is what the fork gives you, why the migration is easier than you think, and where the actual lock-in hides. - [Zero-Downtime Database Migrations for PostgreSQL in Production](https://devops-daily.com/posts/zero-downtime-postgresql-migrations-production.md): A single ALTER TABLE can take down a busy PostgreSQL database for minutes. This post shows why that happens and how to ship schema changes safely with lock timeouts, the expand-and-contract pattern, and copy-paste SQL recipes for indexes, columns, constraints, and type changes. - [Hetzner's Third Price Increase in Three Months: What DevOps Teams Should Do](https://devops-daily.com/posts/hetzner-price-increases-2026.md): Hetzner is changing dedicated server and cloud pricing again on June 15, 2026. Here is what changed, why customers are frustrated, and how to decide whether to stay, resize, or move workloads. - [How NetEase Games Cut LLM Cold Starts From 42 Minutes to 30 Seconds Using Fluid](https://devops-daily.com/posts/netease-fluid-30-second-llm-cold-starts-kubernetes.md): NetEase Games published a Kubernetes case study walking through how they took their serverless GPU inference cold-start time from 42 minutes down to under 30 seconds. The bottleneck isn't the GPU. It's the 60GB model weights crossing a region. Here is what they did with the CNCF Fluid project and how to apply the same pattern even if you are not on Kubernetes. - [OpenTelemetry Just Graduated: What to Retire from Your Stack This Quarter](https://devops-daily.com/posts/opentelemetry-graduated-what-to-retire-this-quarter.md): On May 21, 2026, CNCF graduated OpenTelemetry. All three core signals (traces, metrics, logs) are now production-ready, the project is the second-most-active in CNCF after Kubernetes itself, and Anthropic, Bloomberg, Capital One, eBay, and Heroku run it at scale. Here is the decision framework for what proprietary agents you can stop running, what is still risky, and the 90-day adoption checklist. - [How to Build an Effective On-Call Rotation and Escalation Policy](https://devops-daily.com/posts/on-call-rotation-escalation-policy-guide.md): Your phone buzzed at 3:14 AM for a disk warning that auto-resolved by 3:16. Nobody fixes the alert. The next person on rotation hates their life. Here is how to build on-call schedules, escalation policies, and alert rules that respect your engineers. - [When the Malicious Hook Is in the Other Manifest: 700+ Repos, 8 Packagist Packages, One package.json Trick](https://devops-daily.com/posts/postinstall-hidden-in-package-json-php-supply-chain-may-2026.md): On May 22, 2026, Socket disclosed a Composer supply chain attack that hid an npm-style postinstall command inside package.json on PHP projects. composer.json was clean, the PHP review missed it, and 700+ GitHub repos pulled it in. Here is the exact payload, why ecosystem-boundary blindness keeps catching teams, and how to wire your CI to look at both manifests. - [node-ipc DNS-Tunneling Supply Chain Attack: Your Egress Firewall Probably Missed This](https://devops-daily.com/posts/node-ipc-dns-exfil-supply-chain-may-2026.md): On May 14, 2026, three malicious versions of the node-ipc npm package shipped a payload that hunts AWS, SSH, kubeconfig, and GitHub CLI credentials, then smuggles them out through DNS TXT queries. Most orgs filter HTTPS egress. Almost nobody filters DNS. Here is what the payload does and how to close the gap. - [AI Is Reshaping DevOps. The Engineers Are Faster Than the Vendors.](https://devops-daily.com/posts/ai-reshaping-devops-engineers-vs-vendors.md): GitHub, Datadog, HashiCorp and friends are moving carefully. The engineers running their stacks are wiring AI into kubectl and pull-request review on a Tuesday afternoon. Here is what is actually changing in 2026, what is not, and where the gap between vendors and the engineers using their tools is widest. - [AntV npm Compromise: The Shai-Hulud Worm Comes for Your Dashboards (May 19, 2026)](https://devops-daily.com/posts/antv-npm-shai-hulud-wave-may-2026.md): A new Shai-Hulud wave landed at 01:56 UTC on May 19 and rode the @antv maintainer account through 323 packages including echarts-for-react. Here is what got published, what it steals, and the lockfile grep that tells you if you are exposed. - [Cilium 1.19 ClusterMesh Policy Flip: The Silent Default That Will Drop Your Cross-Cluster Traffic](https://devops-daily.com/posts/cilium-1-19-clustermesh-policy-flip.md): Cilium 1.19 changed how network policies without a cluster selector resolve in a ClusterMesh. East/West traffic that 1.18 implicitly allowed is now silently dropped. Here is how to find every affected policy before you upgrade. - [Karpenter Spot Storm Fallback Gap: The Production Loop Nobody Talks About](https://devops-daily.com/posts/karpenter-spot-storm-fallback-gap.md): When AWS spot capacity dries up in a region, Karpenter does not automatically fall back to on-demand. It retries the same dying offerings on a 3-minute loop. Here is why, and how to design around it. - [Running Your First Chaos Engineering Experiment with Litmus](https://devops-daily.com/posts/running-first-chaos-engineering-experiment-litmus.md): A hands-on walkthrough of installing LitmusChaos on Kubernetes, killing pods on purpose, and watching whether your app actually recovers. Real YAML, real output, no theory. - [When One Data Center Room Got Hot: AWS US-EAST-1, Coinbase, and the DR Drill That Was Not](https://devops-daily.com/posts/aws-use1-az4-thermal-event-single-az-lessons.md): On May 7, 2026, cooling failed in a single hall of one US-EAST-1 data center. Coinbase, FanDuel, and CME Group went down for hours, and Coinbase publicly confirmed their backup systems did not work as expected. Here is what happened, the multi-AZ checklist that would have caught it, and the AWS Fault Injection Simulator commands to run the drill before the next thermal event. - [Argo CD CVE-2026-42880: When Read-Only Means Read-Everything-Including-Secrets](https://devops-daily.com/posts/argocd-cve-2026-42880-serversidediff-secret-leak.md): A critical Argo CD bug (CVSS 9.6, disclosed May 7) lets any authenticated user pull plaintext Kubernetes Secrets out of any Application that has ServerSideDiff with mutation-webhook diffs enabled. Here is the upgrade matrix, the one-liner to find at-risk apps in your cluster, and the safe RBAC scope-down for teams that cannot patch today. - [Ingress-NGINX Is Retired: A Real Migration to Gateway API With ingress2gateway 1.0](https://devops-daily.com/posts/ingress-nginx-eol-gateway-api-migration.md): In March 2026 the Kubernetes project retired ingress-nginx with no replacement waiting in the wings. Roughly half of all clusters still run it. This post is the migration that does not involve a flag day: how to inventory your annotations, what ingress2gateway 1.0 translates and what it silently drops, the side-by-side cutover pattern with the actual PromQL, and how to pick between Envoy Gateway, kgateway, Cilium Gateway, and Istio. - [NGINX Rift (CVE-2026-42945): The 18-Year-Old Rewrite Bug That Hands an Attacker Your Worker Process](https://devops-daily.com/posts/nginx-rift-cve-2026-42945-rewrite-rce.md): An autonomous code-audit tool found an 18-year-old heap overflow in NGINX's rewrite module. Affects every release from 0.6.27 through 1.30.0, plus NGINX Plus and the entire F5 product line. Full RCE PoC is public. Here is the one-line config grep that tells you whether you are exposed, the patch matrix, and what to do about the long tail of products that bundle the vulnerable nginx without a vendor patch yet. - [TanStack npm Worm: The Supply-Chain Attack With a Dead-Man's Switch](https://devops-daily.com/posts/tanstack-npm-worm-dead-mans-switch.md): On May 11, 2026, attackers republished 14+ official TanStack packages on npm with a worm that signs itself with valid SLSA provenance and arms a dead-man's switch that wipes your home directory the moment you revoke the stolen GitHub token. Here is what happened, how the payload works, and how to check your machine. - [Distributed Tracing with OpenTelemetry: From Instrumentation to Visualization](https://devops-daily.com/posts/distributed-tracing-opentelemetry-instrumentation-visualization.md): A walkthrough of instrumenting a real service with OpenTelemetry, running the Collector, and finding the slow span in Jaeger when a request hops across five microservices. - [Dirty Frag (CVE-2026-43284 + CVE-2026-43500): Local Root on Every Major Linux Distro](https://devops-daily.com/posts/dirty-frag-cve-2026-43284-linux-root-escalation.md): A two-bug chain in the Linux kernel networking subsystems lets any unprivileged local user become root in a single command. The PoC is public, the embargo broke, and not all distros have a patch yet. - [Next.js 16.2.6 and 15.5.18 Ship 13 Security Fixes: Patch Now](https://devops-daily.com/posts/nextjs-16-2-6-15-5-18-security-release.md): Vercel released back-to-back security updates for Next.js covering 7 high, 4 moderate, and 2 low severity advisories, including an upstream React denial-of-service issue. Here is what is broken, who is exposed, and the rollout path. - [Mini Shai-Hulud: PyTorch Lightning Just Stole Your CI Secrets](https://devops-daily.com/posts/mini-shai-hulud-pytorch-lightning-supply-chain-attack.md): On April 30 a supply chain worm pushed malicious versions of PyTorch Lightning (10M+ downloads/month), intercom-client, and intercom-php to PyPI, npm, and Packagist in 48 hours. It steals every credential in your CI and propagates through your own GitHub tokens. Here is what to check and what to rotate. - [10 GitHub Repositories That Will Actually Teach You DevOps in 2026](https://devops-daily.com/posts/top-github-devops-learning-repos-2026.md): Most "top DevOps repos" lists are recycled awesome-list links. This one is a curated set of repositories that will move the needle on your DevOps skills, with star counts, who each one is for, and how to actually use it. - [CVE-2026-3854: A Single git push Owned GitHub](https://devops-daily.com/posts/github-cve-2026-3854-git-push-rce.md): A semicolon in a git push option let any authenticated user run code on GitHub.com's backend and on 88% of self-hosted GitHub Enterprise installs. Here is how the bug worked and what to do. - [Istio Traffic Management: Routing, Retries, and Circuit Breaking](https://devops-daily.com/posts/istio-traffic-management-routing-retries-circuit-breaking.md): Configure weighted routing, automatic retries, and circuit breakers in Istio with copy-paste YAML examples and real kubectl output you can verify on your own cluster. - [CVE-2026-31431 Copy Fail: A 4-Byte Kernel Write That Escapes Containers](https://devops-daily.com/posts/copy-fail-cve-2026-31431-linux-container-escape.md): A new Linux kernel bug lets any unprivileged process flip 4 bytes in the page cache and break out of a container. runtime-default seccomp does not block it. Here is what to do. - [Kubernetes 1.36 Ships User Namespaces GA and Pod-Level In-Place Resize](https://devops-daily.com/posts/kubernetes-1-36-user-namespaces-pod-resize.md): Kubernetes 1.36 "Haru" landed on April 22, 2026. Two changes matter most for production: user namespaces graduated to stable, and pod-level CPU and memory can now be resized in place without restarting. Here is what each one does, the kubelet and runtime requirements, and how to enable them safely. - [GitOps with Argo CD: Structuring Your Repository for Multi-Environment Deployments](https://devops-daily.com/posts/gitops-argocd-repository-structure-multi-environment.md): A practical guide to laying out your Git repository for Argo CD across dev, staging, and production. See real folder structures, Kustomize and Helm patterns, and the pitfalls that bite teams in production. - [How to Set Up Cloud Cost Allocation Tags Across AWS, GCP, and Azure](https://devops-daily.com/posts/cloud-cost-allocation-tags-aws-gcp-azure.md): A working playbook for tagging resources across AWS, GCP, and Azure so finance can finally answer which team spent what, and engineers can prove their workload is not the expensive one. - [The MCP Design Flaw That Exposes 150M Downloads to RCE](https://devops-daily.com/posts/mcp-design-flaw-rce-supply-chain-risk.md): Researchers at OX Security disclosed an architectural vulnerability in Anthropic MCP that enables remote code execution across Python, TypeScript, Java, and Rust SDKs. Anthropic calls it "by design." Here is how the flaw works, which tools are affected, and what to do if you use Cursor, Claude Code, LangChain, or anything with an MCP server. - [The Vercel April 2026 Security Incident: What Happened and What to Do About It](https://devops-daily.com/posts/vercel-april-2026-security-incident.md): Vercel disclosed a security incident that started with a compromised OAuth app at Context.ai, escalated through a Vercel employee Google Workspace account, and reached internal systems plus customer environment variables not marked sensitive. Here is the attack chain, what was exposed, and what to change in your deployments. - [How Does It Work So Fast? The Engineering Behind Instant UI Responses](https://devops-daily.com/posts/how-does-it-work-so-fast.md): Credit card validation, username checks, autocomplete, URL shorteners - they all feel instant. Here is what is actually happening under the hood in each case. - [Two Composer Command Injection Flaws Let Attackers Run Arbitrary Code - Even Without Perforce](https://devops-daily.com/posts/composer-command-injection-cve-2026.md): CVE-2026-40176 and CVE-2026-40261 affect all Composer 2.x versions. A malicious composer.json or crafted package metadata can execute OS commands on your machine. Upgrade to 2.9.6 now. - [SLOs, SLIs, and Error Budgets: A Practical Implementation Guide](https://devops-daily.com/posts/slos-slis-error-budgets-practical-guide.md): Your service went down at 2 AM and nobody could agree on whether it was "bad enough" to page someone. SLOs, SLIs, and error budgets fix that. Here is how to define, measure, and act on them with real Prometheus queries and alerting rules. - [Best Claude Code Plugins for DevOps Engineers in 2026](https://devops-daily.com/posts/best-claude-code-plugins-devops-2026.md): A curated guide to Claude Code plugins built for DevOps workflows - from Terraform validation and Kubernetes troubleshooting to security scanning and CI/CD pipeline optimization. - [Claude Code: Agents, Commands, Skills, and Plugins Explained](https://devops-daily.com/posts/claude-code-agents-commands-skills-plugins-explained.md): A clear breakdown of the four extension types in Claude Code - what each one does, how they differ, and when to use which. No marketing fluff, just practical explanations with examples. - [CLI vs MCP: When to Use Each for AI-Powered DevOps](https://devops-daily.com/posts/cli-vs-mcp-when-to-use-each.md): CLI tools and MCP servers both let AI agents interact with your infrastructure, but they solve different problems. Here is when to reach for each one and why the answer is usually both. - [The Ory Ecosystem Explained: Identity, OAuth2, and SSO for Kubernetes](https://devops-daily.com/posts/ory-ecosystem-identity-auth-kubernetes.md): A practical breakdown of the Ory ecosystem - Kratos, Hydra, Polis, Oathkeeper, and Keto - what each one does, how they connect, and how to pick the right components for your auth stack. - [Building an Internal Developer Platform from Scratch](https://devops-daily.com/posts/building-internal-developer-platform-from-scratch.md): A step-by-step guide to designing and building an internal developer platform that gives your teams self-service infrastructure, faster deployments, and fewer tickets to the platform team. - [Coolify: Self-Hosted PaaS on DigitalOcean - Deploy Apps Without Vendor Lock-In](https://devops-daily.com/posts/coolify-self-hosted-paas-digitalocean.md): Set up Coolify on a DigitalOcean droplet and get your own Vercel-like platform for deploying Next.js apps, databases, and more - with auto SSL, GitHub auto-deploy, and no per-seat pricing. - [CVE-2025-55182 React2Shell: 766 Next.js Hosts Breached in 24 Hours](https://devops-daily.com/posts/react2shell-cve-2025-55182-nextjs-breach.md): A CVSS 10.0 RCE in React Server Components let attackers breach 766 Next.js hosts in a single day, stealing database credentials, SSH keys, and cloud secrets. Here is how it works, who is affected, and what to do right now. - [Claude Code Source Leaked via npm Source Maps: Lessons for Every DevOps Team](https://devops-daily.com/posts/claude-code-source-leak-what-devops-engineers-should-learn.md): Anthropic accidentally shipped source maps in their npm package, exposing 512,000 lines of Claude Code source. Here is what went wrong and how to prevent it in your own CI/CD pipeline. - [The Axios Supply Chain Attack: What DevOps Teams Need to Know](https://devops-daily.com/posts/axios-supply-chain-attack-what-happened-and-what-to-do.md): A compromised npm maintainer account led to malicious axios versions deploying a RAT across macOS, Windows, and Linux. Here is what happened, how to check if you are affected, and how to prevent this in your pipeline. - [Claude Code Hidden Features You Probably Missed](https://devops-daily.com/posts/claude-code-hidden-features-you-probably-missed.md): From mobile sessions to automated PR reviews, here are the Claude Code features that most engineers overlook but can seriously level up your workflow. - [5 DevOps Books Worth Reading in 2026](https://devops-daily.com/posts/devops-books-to-read-in-2026.md): A curated list of DevOps books that are actually worth your time in 2026, from beginner Linux guides to production Kubernetes patterns and the SRE bible. - [How to Implement Progressive Delivery with Feature Flags](https://devops-daily.com/posts/how-to-implement-progressive-delivery-with-feature-flags.md): Learn how to implement progressive delivery using feature flags, canary releases, and gradual rollouts to ship changes safely in production without risking your entire user base. - [Migrating from Heroku to DigitalOcean](https://devops-daily.com/posts/migrating-from-heroku-to-digitalocean.md): A complete guide to migrating production applications from Heroku to DigitalOcean. Covers App Platform, Managed Databases, Redis, Spaces, Coolify self-hosted, and infrastructure-as-code setup with real-world migration strategies. - [Why Most FinOps Initiatives Fail (and What Actually Works)](https://devops-daily.com/posts/why-finops-initiatives-fail.md): Your FinOps team is probably a reporting bottleneck, not a cost optimization engine. The fix: stop centralizing cost visibility and start decentralizing cost accountability to the teams that own the services. - [The 3 Infrastructure Decisions That Determine Your Engineering Velocity](https://devops-daily.com/posts/3-infrastructure-decisions-engineering-velocity.md): Provisioning model, environment strategy, and deployment surface. Everything else is optimization. Here's how to make these foundational choices without killing your team's momentum. - [Your Cloud Bill Is an Organizational Problem, Not a Technical One](https://devops-daily.com/posts/cloud-bill-organizational-problem.md): Why your AWS bill keeps growing despite cost optimization efforts. The real driver is team structure, not instance size. A framework for tying cloud spend to service ownership and engineering accountability. - [When Kubernetes Is the Wrong Default](https://devops-daily.com/posts/when-kubernetes-is-wrong-default.md): Most teams adopt Kubernetes too early. Here's a pragmatic framework for deciding between managed platforms, VMs, and Kubernetes based on your team size and workload characteristics. - [Build vs Buy in 2026: What Still Makes Sense to Build In-House?](https://devops-daily.com/posts/build-vs-buy-2026.md): A practical guide to infrastructure decisions: When building in-house makes sense, when it wastes resources, and how to calculate the true cost of engineering time. - [The Hidden Cost of Overengineering Your First 50 Engineers](https://devops-daily.com/posts/hidden-cost-overengineering-first-50-engineers.md): Service meshes, multi-cloud strategies, and platform teams sound impressive. But for early-stage companies, they often slow delivery and burn cash. A practical guide to progressive complexity adoption. - [Heroku vs Self-Hosting: A Cost-Benefit Analysis for 2026](https://devops-daily.com/posts/heroku-vs-self-hosting-cost-analysis.md): A transparent breakdown of Heroku costs versus self-hosting alternatives. Real numbers, honest tradeoffs, and a framework to help you decide when to make the switch. - [5 Advanced Docker Features Worth Knowing](https://devops-daily.com/posts/advanced-docker-features.md): Go beyond Docker basics with BuildKit, multi-stage builds, health checks, init processes, and build secrets. Learn practical techniques that improve security, performance, and reliability. - [Infrastructure as Code: A Beginner's Guide to IaC Fundamentals](https://devops-daily.com/posts/infrastructure-as-code-fundamentals.md): Learn the fundamentals of Infrastructure as Code - what it is, why it matters, key concepts, popular tools, and best practices for managing infrastructure with code. - [Heroku is Shutting Down: Top Alternatives for Your Apps in 2026](https://devops-daily.com/posts/heroku-alternatives-2026.md): Heroku has announced it is transitioning to a sustaining model with no new features. Here are the best alternatives to migrate your applications. - [Understanding Kubernetes Operators: A Deep Dive with a Practical Example](https://devops-daily.com/posts/write-simple-kubernetes-operator.md): Learn the concepts behind Kubernetes operators, why they exist, and how the control loop pattern works, then build one yourself to solidify your understanding. - [DevOps vs SysAdmin vs SRE: What's the Difference?](https://devops-daily.com/posts/devops-vs-sysadmin-vs-sre.md): Confused about DevOps, SysAdmin, and SRE roles? This beginner-friendly guide uses real-world analogies to explain what each role does, how they differ, and which path might be right for you. - [What is DevOps? A Complete Beginner's Guide](https://devops-daily.com/posts/what-is-devops.md): New to DevOps? This beginner-friendly guide explains what DevOps is, why it matters, and how it transforms the way software is built and delivered - no technical background required. - [GitOps: Deploy Docker Containers with GitHub Actions and ArgoCD](https://devops-daily.com/posts/gitops-deploy-docker-containers-github-actions-argocd.md): Learn how to implement a modern GitOps workflow for Docker deployments. This guide covers building images with GitHub Actions, pushing to container registries, and automated deployments with ArgoCD. - [How to Publish a Helm Chart](https://devops-daily.com/posts/how-to-publish-helm-chart.md): Learn how to package and publish your Helm charts to various repositories including GitHub Pages, OCI registries, and ChartMuseum. This guide covers the complete workflow from packaging to distribution. - [Docker Image Optimization: Best Practices for Smaller, Faster Images](https://devops-daily.com/posts/docker-image-optimization-best-practices.md): Learn proven strategies to optimize Docker images: multi-stage builds, layer caching, base image selection, and security hardening. Reduce image size by up to 90% while improving build times and security. - [Introduction to ArgoCD: Getting Started with GitOps](https://devops-daily.com/posts/introduction-to-argocd.md): Learn how ArgoCD brings GitOps principles to Kubernetes deployments. This hands-on guide covers core concepts, architecture, and practical examples to get you started with declarative, automated application delivery. - [How to Set Up AWS Cost Explorer and Budgets for Teams](https://devops-daily.com/posts/how-to-set-up-aws-cost-explorer-and-budgets-for-teams.md): Learn how to set up AWS Cost Explorer and Budgets to track cloud spending, prevent cost overruns, and keep your team informed about AWS expenses. - [Deployment Strategies: Blue-Green vs Canary vs Rolling](https://devops-daily.com/posts/deployment-strategies-guide.md): Blue-green, canary and rolling deployments side by side: how each ships a release, how fast it rolls back, what it costs, and when to use which one. - [Ping: Request Timed Out vs Destination Host Unreachable](https://devops-daily.com/posts/ping-timeout-vs-destination-unreachable.md): "Request timed out" means no reply came back. "Destination host unreachable" means a router, or your own machine on the LAN, says it cannot reach the host. - [The 5-Minute Kubernetes Cluster Health Check](https://devops-daily.com/posts/5-minute-kubernetes-cluster-health-check.md): Learn how to quickly assess your Kubernetes cluster's health with essential commands and catch issues before they become critical problems. - [Right-Sizing Kubernetes Resources with VPA and Karpenter](https://devops-daily.com/posts/right-sizing-kubernetes-resources-vpa-karpenter.md): Overprovisioned CPU and memory in Kubernetes increases costs and reduces efficiency. Learn how to use Vertical Pod Autoscaler, Karpenter, and monitoring tools to balance performance and resource usage. - [How to Free Up a TCP/IP Port on Linux, macOS, and Windows](https://devops-daily.com/posts/how-to-free-up-tcp-port.md): Learn how to identify processes using a port and free it up by stopping the service, killing the process, or changing configuration across different operating systems. - [The Hidden Costs of Over-Automation in DevOps](https://devops-daily.com/posts/designing-automation-with-failure-in-mind.md): Automation speeds things up, but too much of it can hide failures, slow incident response, and add fragile layers you have to maintain. - [The 10 Most Common DevOps Mistakes (And How to Avoid Them in 2025)](https://devops-daily.com/posts/devops-mistakes-2025.md): Explore the top 10 DevOps mistakes made in 2025 and learn how to avoid them to ensure a smoother DevOps journey. - [How to Get a List of All Valid IP Addresses in a Local Network?](https://devops-daily.com/posts/how-to-get-a-list-of-all-valid-ip-addresses-in-a-local-network.md): Discover active devices on your local network using tools like nmap, arp-scan, and native OS commands. Learn network scanning techniques for inventory management, security audits, and troubleshooting. - [A Day in the Life of a DevOps Engineer](https://devops-daily.com/posts/a-day-in-a-life-of-a-devops-engineer.md): Follow a DevOps engineer through a typical day - from morning deployments to midnight hotfixes. Real challenges, real solutions, and real impact on business operations. - [How Can I Delete a Remote Tag?](https://devops-daily.com/posts/how-can-i-delete-a-remote-tag.md): Learn how to delete Git tags from remote repositories safely. Understand the difference between local and remote tag deletion, and discover best practices for managing release tags in team environments. - [COPY with Docker but with Exclusion](https://devops-daily.com/posts/copy-with-docker-exclusion.md): Learn how to use the COPY instruction in Docker with exclusion patterns to optimize your Docker builds. - [How to Set Image Name in Dockerfile](https://devops-daily.com/posts/set-image-name-dockerfile.md): Learn how to set and manage image names effectively in Dockerfiles for streamlined workflows. This guide covers the steps to build Docker images with specific names and tags. - [Forward Host Port to Docker Container](https://devops-daily.com/posts/forward-host-port-to-docker-container.md): Learn how to map ports from your host machine to Docker containers using -p, expose services on specific interfaces, handle port conflicts, and dynamically add port forwarding to running containers. - [How do I Get Flask to Run on Port 80?](https://devops-daily.com/posts/how-do-i-get-flask-to-run-on-port-80.md): Running Flask on port 80 requires special permissions since port 80 is a privileged port. Learn the different approaches to running Flask on port 80, from using sudo to setting up reverse proxies with Nginx. - [Make an Existing Git Branch Track a Remote Branch](https://devops-daily.com/posts/make-git-branch-track-remote.md): Run git branch --set-upstream-to=origin/branch-name (short: git branch -u origin/branch-name). Not on the remote yet? Run git push -u origin branch-name. - [Can Two Different Sockets Share a TCP Port?](https://devops-daily.com/posts/can-two-sockets-share-tcp-port.md): Understand how TCP port sharing works with SO_REUSEADDR and SO_REUSEPORT, when multiple sockets can bind to the same port, and the limitations you need to know. - [Why Your CI/CD Pipeline Is Slower Than It Should Be (and How to Fix It)](https://devops-daily.com/posts/why-your-ci-pipeline-is-slower.md): Small pipeline changes give big wins. Parallelize jobs, cache dependencies, pin images, reuse build artifacts, and run only the tests you need. - [What do PTY and TTY Mean?](https://devops-daily.com/posts/what-do-pty-and-tty-mean.md): TTY and PTY are interfaces for text input and output in Unix systems. Learn the difference between physical terminals (TTY), pseudo-terminals (PTY), and how they enable SSH sessions, terminal emulators, and command-line tools. - [Command to Delete All Pods in All Kubernetes Namespaces](https://devops-daily.com/posts/delete-all-pods-in-all-namespaces.md): Learn how to delete all Pods across all namespaces in Kubernetes using a single command. Understand the implications and best practices for this operation. - [How to Clone a Git Repository into a Specific Folder](https://devops-daily.com/posts/clone-git-repo-specific-folder.md): Want to clone a repository into a custom directory name? Learn how to specify the target folder when cloning Git repositories. - [How do I Resolve Merge Conflicts in a Git Repository?](https://devops-daily.com/posts/how-do-i-resolve-merge-conflicts-in-a-git-repository.md): Merge conflicts happen when Git cannot automatically combine changes from different branches. Learn how to identify, understand, and resolve conflicts to keep your development workflow moving forward. - [How to Set Git Editor for Commit Messages](https://devops-daily.com/posts/set-git-editor-commit-messages.md): Want to use your preferred editor for Git commit messages? Learn how to configure Git to use VS Code, Vim, Nano, Emacs, or any editor of your choice. - [Why Does the C Preprocessor Interpret "linux" as "1"?](https://devops-daily.com/posts/why-c-preprocessor-interprets-linux-as-one.md): Discover why the word 'linux' is predefined as the constant 1 in the C preprocessor on Linux systems, and how this historical quirk can cause unexpected compilation errors. - [How Docker Differs from a Virtual Machine (And Why It Matters)](https://devops-daily.com/posts/how-docker-differs-from-a-virtual-machine.md): Containers and virtual machines both isolate environments, but they work in very different ways. This guide explains the key differences and when to use each. - [Git Clone a Specific Branch with --single-branch](https://devops-daily.com/posts/clone-specific-git-branch.md): Clone only one branch with git clone -b branch-name --single-branch . Add --depth 1 to download just the latest commit and save more space. - [How to Copy Docker Images Between Hosts Without a Repository](https://devops-daily.com/posts/copy-docker-images-between-hosts-withouta-repository.md): Learn how to transfer Docker images directly between machines when a container registry is unavailable or impractical. - [Docker: How to Use Bash with an Alpine Based Docker Image](https://devops-daily.com/posts/docker-alpine-use-bash.md): Want to use bash in your Alpine-based Docker container? Learn why Alpine uses sh by default, how to install bash, and best practices for interactive shells and scripts. - [How to Access a Docker Container's Shell](https://devops-daily.com/posts/how-to-access-docker-container-shell.md): Learn how to get into a Docker container shell using exec, attach, and other methods for debugging, configuration, and maintenance. - [Network Usage Top/Htop on Linux](https://devops-daily.com/posts/network-usage-top-htop-on-linux.md): Monitor real-time network bandwidth usage on Linux with tools like iftop, nethogs, nload, and bmon. Learn which processes are consuming bandwidth, track interface statistics, and identify network bottlenecks. - [Why SCTP Is Not Widely Used Despite Its Technical Advantages](https://devops-daily.com/posts/why-sctp-is-not-widely-used.md): Explore why Stream Control Transmission Protocol (SCTP) remains niche despite offering features that improve on both TCP and UDP, including NAT issues, lack of OS support, and ecosystem inertia. - [Understanding the Difference Between CMD and ENTRYPOINT in Dockerfiles](https://devops-daily.com/posts/difference-between-cmd-and-entrypoint-in-dockerfiles.md): Learn how CMD and ENTRYPOINT instructions work, how they interact with each other, and when to use each one for more flexible Docker containers. - [How to Start a Stopped Docker Container with a Different Command](https://devops-daily.com/posts/start-stopped-docker-container-different-command.md): Need to run a different command in a stopped Docker container? Learn your options for changing the startup command, including docker commit, docker run --entrypoint, and best practices for debugging or recovery. - [How to Copy Files from Docker Containers to the Host Machine](https://devops-daily.com/posts/copy-files-from-docker-container-to-host.md): Learn efficient ways to extract and retrieve files from your running or stopped Docker containers to your host filesystem. - [docker compose: Always Recreate Containers from Fresh Images](https://devops-daily.com/posts/docker-compose-always-recreate-containers.md): Run docker compose up -d --pull always --build --force-recreate to pull newer images, rebuild local ones and replace containers instead of reusing them. - [Terraform: Failed to install provider, does not match checksums from dependency lock file](https://devops-daily.com/posts/terraform-provider-checksum-mismatch.md): Troubleshoot the Terraform error about provider checksums not matching the dependency lock file and learn safe fixes and best practices. - [Difference Between Running and Starting a Docker Container](https://devops-daily.com/posts/docker-run-vs-docker-start.md): Confused about 'docker run' vs 'docker start'? Learn the difference between running and starting a Docker container, with practical examples and best practices for your workflow. - [How Can I Inspect the File System of a Failed Docker Build?](https://devops-daily.com/posts/inspect-filesystem-of-failed-docker-build.md): Want to debug a failed Docker build? Learn practical ways to inspect the build's file system, including interactive debugging with buildkit, temporary containers, and troubleshooting tips. - [docker: 'build' requires 1 argument. See 'docker build --help'](https://devops-daily.com/posts/docker-build-requires-1-argument.md): Getting the error 'docker: build requires 1 argument'? Learn what it means, why it happens, and how to fix it with practical examples for your Docker workflow. - [Exposing a Port on a Live Docker Container](https://devops-daily.com/posts/expose-port-on-live-docker-container.md): Need to access a service running inside a Docker container, but forgot to expose the port? Learn your options for exposing ports on a running container, workarounds, and best practices for future-proof setups. - [Using SSH Keys Inside a Docker Container](https://devops-daily.com/posts/using-ssh-keys-in-docker-container.md): Need to use SSH keys in your Docker container for git, automation, or remote access? Learn secure ways to provide SSH keys, best practices for builds, and how to avoid common pitfalls. - [Connecting to PostgreSQL in a Docker Container from Outside](https://devops-daily.com/posts/connecting-to-postgresql-in-a-docker-container-from-outside.md): Expose PostgreSQL safely and connect from your host or another machine using Docker and Docker Compose. Covers port publishing, listen addresses, pg_hba.conf basics, and common troubleshooting. - [How to Use sudo Inside a Docker Container](https://devops-daily.com/posts/how-to-use-sudo-in-docker-container.md): Need to run commands as root or another user inside your Docker container? Learn when and how to use sudo, why it's often unnecessary, and best practices for secure container builds. - [How Can I Trigger a Kubernetes Scheduled Job Manually?](https://devops-daily.com/posts/trigger-kubernetes-scheduled-job-manually.md): Learn how to manually trigger a Kubernetes Scheduled Job to run on demand. Understand the steps, commands, and best practices for this operation. - [What Is the Difference Between 'docker compose' and 'docker-compose'?](https://devops-daily.com/posts/docker-compose-vs-docker-compose.md): Confused about 'docker compose' vs 'docker-compose'? Learn the key differences, why the new command exists, and which one you should use for your projects. - [How Can I Use Environment Variables in docker-compose?](https://devops-daily.com/posts/docker-compose-environment-variables.md): Learn the best ways to manage and use environment variables in docker-compose files, including .env files, variable substitution, and secure practices for real-world projects. - [How to Use docker-compose up for Only Certain Containers](https://devops-daily.com/posts/docker-compose-up-only-certain-containers.md): Want to start just a few services from your docker-compose file? Learn how to use docker-compose up to run only specific containers, with practical examples and tips for multi-service projects. - [Using ls to list directories and their total sizes](https://devops-daily.com/posts/using-ls-list-directories-sizes.md): How to show directory sizes from the shell - practical commands for macOS and Linux, and why `ls` alone is not enough. - [Docker: Connect to the Host's localhost from a Container](https://devops-daily.com/posts/connect-to-host-localhost-from-docker.md): Use host.docker.internal, not localhost. Docker Desktop resolves it; on Linux add --add-host=host.docker.internal:host-gateway or use --network host. - [How to Run a Cron Job Inside a Docker Container](https://devops-daily.com/posts/how-to-run-cron-job-in-docker.md): Learn how to schedule and run cron jobs inside Docker containers, with practical Dockerfile examples, troubleshooting tips, and best practices for reliable automation. - [Understanding the Difference Between COPY and ADD in Dockerfiles](https://devops-daily.com/posts/dockerfile-copy-vs-add-commands.md): Learn when to use COPY vs ADD instructions in your Dockerfiles for better security and build performance - [How Do You Attach and Detach from Docker's Process?](https://devops-daily.com/posts/how-to-attach-detach-docker-process.md): Learn how to attach to a running Docker container's process, interact with it, and safely detach without stopping the container. Includes keyboard shortcuts, practical examples, and troubleshooting tips. - [How to Get the IP Address of the Docker Host from Inside a Docker Container](https://devops-daily.com/posts/how-to-get-docker-host-ip-from-container.md): Need your container to talk to the Docker host? Learn practical ways to discover the host's IP address from inside a container, with examples for Linux, macOS, and Windows. - [How to Explore a Docker Container File System](https://devops-daily.com/posts/exploring-docker-container-file-system.md): Learn different ways to inspect, browse, and copy files from Docker containers, whether they're running or stopped. Essential techniques for debugging and understanding containerized applications. - [Difference Between git add -A and git add . in Git](https://devops-daily.com/posts/git-add-a-vs-git-add-dot.md): Confused about when to use git add -A versus git add dot? Learn the key differences and when to use each command for staging files. - [How to Fix Terraform "Variables Not Allowed" Error During Plan](https://devops-daily.com/posts/terraform-variables-not-allowed-error-plan.md): Learn why Terraform throws 'Variables not allowed' errors in certain contexts and how to resolve them using locals, data sources, or restructuring your configuration. - [How to Connect to Network Shares with Username and Password](https://devops-daily.com/posts/connect-network-share-with-credentials.md): Learn how to mount SMB/CIFS network shares with credentials on Linux, macOS, and Windows, including persistent mounts and secure credential storage. - [Network Tools That Simulate Slow Network Connection](https://devops-daily.com/posts/network-tools-that-simulate-slow-network-connection.md): Test how your applications handle slow, lossy, or high-latency networks using simulation tools. Learn to use tc, comcast, clumsy, and Network Link Conditioner to throttle bandwidth and add delay for realistic testing. - [Namespace "Stuck" as Terminating: How Do I Remove It?](https://devops-daily.com/posts/remove-stuck-terminating-namespace.md): Learn how to resolve the issue of a Kubernetes namespace stuck in the Terminating state. Understand the causes and steps to fix it. - [How to Change Author and Committer for Multiple Commits in Git](https://devops-daily.com/posts/change-author-multiple-commits-git.md): Need to fix incorrect author information across many commits? Learn how to batch update author and committer names and emails in Git history. - [How to Kill All Processes with a Given Partial Name in Linux](https://devops-daily.com/posts/kill-processes-by-partial-name.md): Learn how to terminate multiple processes by matching partial names using pkill, killall, and other methods. Understand the risks and safe practices for bulk process termination. - [Experimenting Locally with Terraform](https://devops-daily.com/posts/experimenting-locally-with-terraform.md): Practical techniques for running, testing, and iterating on Terraform locally before you push changes to remote state or CI. - [What is the Difference Between Active and Passive FTP?](https://devops-daily.com/posts/what-is-the-difference-between-active-and-passive-ftp.md): Active and passive FTP differ in how the data connection is established. Learn how each mode works, when to use them, and how they interact with firewalls and NAT. - [Can Terraform Watch a Directory for Changes? Working With Dynamic Files](https://devops-daily.com/posts/can-terraform-watch-directory-for-changes.md): Learn how to handle scenarios where you need Terraform to respond to file changes, and explore alternatives to automatic directory watching. - [How to Get the Current Branch Name in Git](https://devops-daily.com/posts/get-current-branch-name-git.md): Need to programmatically get the current Git branch name? Learn multiple methods to retrieve the branch name for scripts, CI/CD pipelines, and shell prompts. - [How to Measure the Actual Memory Usage of an Application or Process](https://devops-daily.com/posts/measure-actual-memory-usage-of-process.md): Learn how to accurately measure real memory usage of processes in Linux, understand the difference between virtual, resident, and shared memory, and use the right tools for memory analysis. - [How to Switch Namespace in Kubernetes](https://devops-daily.com/posts/switch-namespace-in-kubernetes.md): Learn how to switch between namespaces in Kubernetes using kubectl commands and configuration files. Understand the importance of namespaces and practical examples. - [How Do I Force Kubernetes to Re-Pull an Image?](https://devops-daily.com/posts/force-kubernetes-repull-image.md): Learn how to force Kubernetes to re-pull container images to ensure your Pods use the latest version. Understand the steps and implications of this operation. - [How to Get Current Date and Time in Linux Terminal and Create Custom Commands](https://devops-daily.com/posts/get-current-date-time-and-custom-commands.md): Learn how to display the current date and time in various formats using the date command, and create custom shell aliases for quick access to your preferred formats. - [Close a Port on Windows from the Command Line](https://devops-daily.com/posts/how-to-close-tcp-and-udp-ports-via-windows-command-line.md): Find the PID with netstat -ano | findstr :PORT, checking the Local Address column, then end it with taskkill /PID /F, or block the port with netsh. - [How to Create a Remote Git Branch](https://devops-daily.com/posts/create-remote-git-branch.md): Need to create a branch on the remote repository? Learn how to push local branches to remote and create remote branches directly. - [How to Find an Available Port on Linux, macOS, and Windows](https://devops-daily.com/posts/how-to-find-available-port.md): Learn multiple methods to find open ports on your system, from command-line tools like netstat and lsof to programmatic approaches in Python and Node.js. - [How to Mount a Single File in a Volume](https://devops-daily.com/posts/how-to-mount-a-single-file-in-a-volume.md): Learn practical ways to mount exactly one file into a container using Docker bind mounts, Docker Compose, and Kubernetes with subPath. Includes real examples, caveats, and troubleshooting tips. - [Best practices when using Terraform?](https://devops-daily.com/posts/best-practices-when-using-terraform.md): Discover essential best practices for using Terraform to manage your infrastructure effectively and securely. - [How to create an SSH key in Terraform?](https://devops-daily.com/posts/how-to-create-an-ssh-key-in-terraform.md): Learn how to generate and manage SSH keys in Terraform for secure access to your infrastructure. - [Increasing the Maximum Number of TCP/IP Connections in Linux](https://devops-daily.com/posts/increasing-the-maximum-number-of-tcp-ip-connections-in-linux.md): Learn how to tune Linux kernel parameters to handle more TCP connections for high-traffic servers. Adjust file descriptors, TCP backlog, port ranges, and connection tracking limits to scale your applications. - [Kubernetes Service External IP Pending](https://devops-daily.com/posts/kubernetes-service-external-ip-pending.md): Learn how to troubleshoot and resolve the issue of a Kubernetes service's external IP being stuck in the Pending state. Understand the causes and solutions for this common problem. - [How to Share Providers and Variables Across Terraform Modules](https://devops-daily.com/posts/terraform-provider-variable-sharing-modules.md): Learn the right way to configure providers and pass variables when working with Terraform modules, avoiding common pitfalls with provider inheritance and variable scoping. - [How to Change the Commit Author for a Single Commit in Git](https://devops-daily.com/posts/change-commit-author-single.md): Made a commit with the wrong author information? Learn how to change the author name and email for a single commit in your Git history. - [How to Organize Terraform Modules for Multiple Environments](https://devops-daily.com/posts/organize-terraform-modules-multiple-environments.md): Learn effective patterns for structuring Terraform modules to manage dev, staging, and production environments without duplicating code. - [How Do SO_REUSEADDR and SO_REUSEPORT Differ?](https://devops-daily.com/posts/so-reuseaddr-vs-so-reuseport.md): Understand the difference between SO_REUSEADDR and SO_REUSEPORT socket options, when to use each one, and how they solve different problems in network programming. - [How to Save Terraform Plan and Apply Output to a File](https://devops-daily.com/posts/terraform-save-plan-apply-output-to-file.md): Learn how to save Terraform plan output for review, share readable apply logs, and use the -out flag for safe two-step deployments. - [What is P99 Latency?](https://devops-daily.com/posts/what-is-p99-latency.md): P99 latency measures the response time at the 99th percentile, showing how fast your slowest 1% of requests are. Learn why P99 is more important than average latency for understanding real user experience. - [Delete a Commit from a Git Branch: Reset, Rebase or Revert](https://devops-daily.com/posts/delete-commit-from-branch.md): Remove the last commit with git reset --hard HEAD~1, drop an older one with git rebase -i, or undo a pushed commit safely with git revert . - [Where Does the Convention of Using /healthz for Application Health Checks Come From?](https://devops-daily.com/posts/healthz-convention-origin.md): Discover the origins of the /healthz endpoint convention for application health checks and why it has become a standard in modern software development. - [How do I Add an Empty Directory to a Git Repository?](https://devops-daily.com/posts/how-do-i-add-an-empty-directory-to-a-git-repository.md): Git does not track empty directories by design. Learn practical workarounds to include empty folders in your repository using .gitkeep files and understand why this limitation exists. - [How to Tar a Directory While Excluding Files and Folders](https://devops-daily.com/posts/tar-directory-excluding-files-and-folders.md): Create tar archives without including unnecessary files like node_modules, .git, or build artifacts. Learn to use --exclude patterns effectively for cleaner backups. - [How to Store Terraform Azure State File in a Different Subscription](https://devops-daily.com/posts/terraform-azure-state-file-different-subscription.md): Learn how to configure Terraform to store its state file in an Azure Storage Account that exists in a different subscription from your infrastructure resources. - [How Do I Get Logs from All Pods of a Kubernetes Replication Controller?](https://devops-daily.com/posts/get-logs-from-all-pods-replication-controller.md): Learn how to retrieve logs from all Pods managed by a Kubernetes replication controller. Understand the commands and best practices for effective logging. - [How to List Volumes in Docker Containers](https://devops-daily.com/posts/how-to-list-docker-volumes-in-containers.md): Learn multiple ways to view Docker volumes attached to containers, inspect volume mounts, find volume locations on the host, and understand volume usage across your Docker environment. - [What Does Terraform Refresh Really Do?](https://devops-daily.com/posts/terraform-refresh-explained.md): What `terraform refresh` actually does, how it updates the state file without changing real resources, and where it still fits in modern Terraform workflows. - [How to Run Terraform Init From a Different Directory](https://devops-daily.com/posts/terraform-run-init-from-different-folder.md): Learn how to initialize and manage Terraform configurations from outside their directory using -chdir, working directories, and automation patterns. - [How to Force cp to Overwrite Files Without Confirmation](https://devops-daily.com/posts/force-cp-overwrite-without-confirmation.md): Learn how to use cp command to overwrite existing files without prompts, understand the -f flag, and handle alias conflicts that cause unexpected confirmation requests. - [How to Update or Sync a Forked Repository on GitHub](https://devops-daily.com/posts/sync-forked-repository-github.md): Your fork is behind the original repository? Learn how to sync your GitHub fork with the upstream repository and keep it up to date with the latest changes. - [Close vs Shutdown Socket](https://devops-daily.com/posts/close-vs-shutdown-socket.md): Understanding the difference between close() and shutdown() for sockets matters for proper connection handling. Learn when to use each, how shutdown enables half-closed connections, and how close releases file descriptors. - [How to Add SSH Keys to GCP Instances Using Terraform](https://devops-daily.com/posts/terraform-add-ssh-key-gcp-instance.md): Learn how to configure SSH key access for Google Cloud Platform compute instances with Terraform, including project-wide and instance-specific keys. - [Specifying an API Gateway Endpoint with a Variable in Terraform](https://devops-daily.com/posts/api-gateway-endpoint-variable.md): Learn how to dynamically specify an API Gateway endpoint with a variable in Terraform for flexible configurations. - [How to Remove a Symlink to a Directory in Linux](https://devops-daily.com/posts/remove-symlink-to-directory.md): Removing a symlink to a directory can be tricky if you're not careful. Learn the correct way to delete symlinks without accidentally removing the target directory's contents. - [How to List All Files in a Git Commit](https://devops-daily.com/posts/list-files-in-commit-git.md): Need to see which files were changed in a commit? Learn how to list all files modified, added, or deleted in any Git commit using log and show commands. - [UDP vs TCP: How Much Faster Is UDP Really?](https://devops-daily.com/posts/udp-vs-tcp-performance-comparison.md): Understanding the performance differences between UDP and TCP protocols, when speed matters, and why UDP isn't always the faster choice in real-world applications. - [Why Python open() Does Not Create a File If It Doesn't Exist](https://devops-daily.com/posts/python-open-does-not-create-file.md): Learn why open() in read mode fails on non-existent files, which modes create files automatically, and how to handle file creation properly in Python. - [Capturing Mobile Phone Traffic on Wireshark](https://devops-daily.com/posts/capturing-mobile-phone-traffic-on-wireshark.md): Learn how to capture and analyze network traffic from your mobile phone using Wireshark. Set up a proxy or WiFi hotspot to inspect HTTP/HTTPS requests, debug mobile apps, and understand what data your phone is sending. - [How to Find and Restore a Deleted File in Git](https://devops-daily.com/posts/find-restore-deleted-file-git.md): Accidentally deleted a file and need it back? Learn how to find when a file was deleted and restore it from Git history. - [Managing Different Environments in Terraform](https://devops-daily.com/posts/different-environments-in-terraform.md): Learn how to manage different environments in Terraform using workspaces, variable files, and directory structures. - [How to Sleep for Milliseconds in Bash and Linux](https://devops-daily.com/posts/sleep-for-milliseconds.md): Learn how to pause script execution for fractions of a second using sleep, usleep, and other methods for precise timing in Bash scripts and command-line operations. - [How to Add a Volume to an Existing Docker Container](https://devops-daily.com/posts/how-to-add-a-volume-to-an-existing-docker-container.md): You cannot change mounts on a running container, but you can safely recreate it with the desired volume. This guide shows exact commands for Docker CLI and Docker Compose, plus ways to migrate or seed data. - [How to Configure ECS Fargate Task Execution Roles With Terraform](https://devops-daily.com/posts/terraform-fargate-task-definition-execution-role.md): Learn how to properly set up IAM execution roles for ECS Fargate task definitions in Terraform, including permissions for ECR, CloudWatch Logs, and Secrets Manager. - [Git File History: View the Changes Made to a File](https://devops-daily.com/posts/view-file-change-history-git.md): Run git log --follow -p -- path/to/file to list the commits that changed a file, with patches, across renames. git blame shows who last changed each line. - [CI/CD Pipeline Hardening: A Practical Guide to Securing Your Build Infrastructure](https://devops-daily.com/posts/cicd-pipeline-hardening-guide.md): Your CI/CD pipeline has access to source code, secrets, and production environments. Here is how to harden it against supply chain attacks, secret exfiltration, and artifact tampering. - [How to Integrate DAST Into Your CI/CD Pipeline (With OWASP ZAP Examples)](https://devops-daily.com/posts/dast-integration-guide.md): A practical guide to Dynamic Application Security Testing. Learn how DAST works, set up OWASP ZAP scans, compare it with Burp Suite, and automate security testing in your CI/CD pipeline with quality gates. - [Dependency Scanning: Finding Vulnerabilities Before Attackers Do](https://devops-daily.com/posts/dependency-scanning-guide.md): A practical guide to dependency scanning with Snyk, Dependabot, and native package manager tools. Learn how to detect vulnerable dependencies, automate fixes, and integrate scanning into your CI/CD pipeline. - [Pre-commit Hooks for Security: Stop Secrets Before They Hit Your Repository](https://devops-daily.com/posts/pre-commit-hooks-security-guide.md): Once a secret is committed to Git, it lives forever in the history. Pre-commit hooks with gitleaks, detect-secrets, and custom checks catch credentials before that happens. - [Secrets Management Guide: Vault, AWS Secrets Manager, and Azure Key Vault](https://devops-daily.com/posts/secrets-management-guide.md): Stop storing secrets in .env files and environment variables. This guide covers secrets management fundamentals, HashiCorp Vault dynamic secrets, AWS Secrets Manager rotation, and Azure Key Vault with practical code examples. - [Secure Coding Practices Every DevOps Engineer Should Know](https://devops-daily.com/posts/secure-coding-practices-guide.md): A practical guide to writing secure code: input validation, output encoding, error handling, and authentication. With real examples in Python, JavaScript, and Go. - [Security-Focused Code Reviews: Catching Vulnerabilities Before Production](https://devops-daily.com/posts/security-focused-code-reviews.md): Learn how to review code with a security mindset. This guide covers common vulnerability patterns, language-specific pitfalls, and practical checklists for finding injection flaws, auth bypass, and logic bugs that automated tools miss. - [Software Supply Chain Security: SBOMs, Sigstore, and SLSA in Practice](https://devops-daily.com/posts/software-supply-chain-security.md): Protect your software supply chain with practical steps for SBOM generation, artifact signing with Cosign, and SLSA provenance. Includes complete CI/CD pipeline examples for GitHub Actions and GitLab CI. - [Should .terraform.lock.hcl Be in .gitignore? (The Answer Might Surprise You)](https://devops-daily.com/posts/should-terraform-lock-be-in-your-gitignore.md): The .terraform.lock.hcl file causes confusion for many Terraform users. Learn why you should commit it to version control and how to handle it properly. - [How to Get the Full Path of a File in Linux](https://devops-daily.com/posts/get-full-path-of-file.md): Learn different methods to get the absolute path of a file in Linux, from simple commands like realpath to handling relative paths and symlinks correctly. - [Use Terraform to set up a Lambda function triggered by a scheduled event source](https://devops-daily.com/posts/use-terraform-to-set-up-a-lambda-function-triggered-by-a-scheduled-event-source.md): Learn how to use Terraform to create an AWS Lambda function triggered by a scheduled event source, such as a cron job. - [How to Fix SSH "Could Not Resolve Hostname" Error](https://devops-daily.com/posts/ssh-could-not-resolve-hostname-error.md): Troubleshoot and fix the SSH 'nodename nor servname provided, or not known' error with DNS checks, host file configuration, and SSH config debugging. - [How to Determine the URL That a Local Git Repository Was Originally Cloned From](https://devops-daily.com/posts/how-to-determine-the-url-that-a-local-git-repository-was-originally-cloned-from.md): Find out where your Git repository came from by checking remote URLs. Learn how to view, verify, and manage remote repository connections using git remote commands. - [How to Redirect All Output to a File in Bash](https://devops-daily.com/posts/redirect-all-output-to-file-bash.md): Learn how to redirect stdout and stderr to files in Bash, capture both standard output and errors together, and understand the different redirection operators. - [How to Fix Terraform Provider Checksum Mismatch Errors](https://devops-daily.com/posts/terraform-failed-install-provider-checksums-mismatch.md): Running into 'doesn't match checksums from dependency lock file' errors when installing Terraform providers? Learn what causes this issue and how to resolve it safely. - [How to Undo a Git Merge That Has Not Been Pushed Yet](https://devops-daily.com/posts/undo-git-merge-not-pushed.md): Made a merge you regret? Learn how to safely undo a Git merge before pushing it to the remote repository using reset and other recovery techniques. - [How to Fix "Error acquiring the state lock: ConditionalCheckFailedException"](https://devops-daily.com/posts/fix-error-acquiring-the-state-lock-conditionalcheckfailedexception.md): Learn how to diagnose and fix Terraform state lock errors that prevent your infrastructure deployments from running. - [How to Fix Terraform Not Deploying API Gateway Stage](https://devops-daily.com/posts/terraform-api-gateway-stage-not-deploying.md): Learn why Terraform might not deploy your AWS API Gateway stage and how to properly configure deployments with automatic triggering on configuration changes. - [How to Use Multiple Build Arguments in Docker Build](https://devops-daily.com/posts/docker-build-with-multiple-build-args.md): Learn how to pass multiple build-time variables to Docker builds using --build-arg, set default values in Dockerfiles, and use build arguments for environment-specific configurations. - [How to Exclude Directories from grep -R](https://devops-daily.com/posts/exclude-directories-from-grep.md): Learn how to exclude specific directories when searching recursively with grep, including node_modules, .git, and other directories you want to skip. - [How to Modify a Specific Commit in Git](https://devops-daily.com/posts/modify-specific-commit-git.md): Need to change an old commit? Learn how to modify a specific commit in Git history using interactive rebase and amend commands. - [How to Apply SQL Scripts to RDS Databases With Terraform](https://devops-daily.com/posts/terraform-apply-sql-scripts-rds.md): Learn different approaches for running SQL scripts and migrations against RDS databases during Terraform deployment, including provisioners, external tools, and dedicated migration resources. - [Correct way to attach AWS managed policies to a role?](https://devops-daily.com/posts/correct-way-to-attach-aws-managed-policies-to-a-role.md): Learn how to correctly attach AWS managed policies to an IAM role using the AWS Management Console, CLI, or Terraform. - [What’s the Difference Between Docker Compose vs. Dockerfile?](https://devops-daily.com/posts/docker-compose-vs-dockerfile.md): Understand the key differences between Docker Compose and Dockerfile, and learn when to use each in your containerized workflows. - [When is it Appropriate to Use UDP Instead of TCP?](https://devops-daily.com/posts/when-is-it-appropriate-to-use-udp-instead-of-tcp.md): UDP trades reliability for speed and simplicity. Learn when to choose UDP over TCP for real-time applications, gaming, streaming, and scenarios where low latency matters more than guaranteed delivery. - [Cannot Connect to Docker Daemon at unix:/var/run/docker.sock - Is the Docker Daemon Running?](https://devops-daily.com/posts/cannot-connect-to-docker-daemon.md): Fix the common 'Cannot connect to the Docker daemon' error with practical solutions for Linux, macOS, and Windows. Learn why this happens and how to resolve permissions and service issues. - [How to Handle Persistent Storage for Databases in Docker](https://devops-daily.com/posts/docker-persistent-storage-databases.md): Learn how to properly manage database data in Docker containers using volumes, bind mounts, and best practices for data persistence across container restarts and deployments. - [Git Diff Between Two Branches: Files, Commits and Stats](https://devops-daily.com/posts/see-differences-between-branches-git.md): git diff main..feature shows changed lines, git log main..feature lists commits main does not have, and git diff --stat main feature sums it up per file. - [Docker Compose: Wait for Container X Before Starting Y](https://devops-daily.com/posts/docker-compose-wait-container.md): Configure Docker Compose so a service waits for another container to be ready, using healthchecks and depends_on conditions with a working example. - [Docker Compose vs Kubernetes: Understanding the Key Differences](https://devops-daily.com/posts/docker-compose-vs-kubernetes-differences.md): Explore the fundamental differences between Docker Compose and Kubernetes, including use cases, complexity levels, and when to choose each container orchestration tool. - [Ingress vs Load Balancer in Kubernetes: When to Use Each](https://devops-daily.com/posts/ingress-vs-load-balancer-kubernetes.md): Learn the key differences between Kubernetes Ingress and LoadBalancer services, including use cases, cost implications, and implementation examples for optimal traffic routing. - [How to Fix Git Refusing to Merge Unrelated Histories](https://devops-daily.com/posts/git-refusing-merge-unrelated-histories.md): Getting the refusing to merge unrelated histories error? Learn what causes this Git error and how to safely fix it when combining separate repositories. - [How to Use Local Docker Images with Minikube](https://devops-daily.com/posts/use-local-docker-images-minikube.md): Learn different methods to use locally built Docker images in Minikube, including docker-env, image loading, and registry configuration for efficient Kubernetes development. - [Why Your Docker Container Exits Immediately](https://devops-daily.com/posts/why-docker-container-exits-immediately.md): Troubleshoot and fix Docker containers that start and immediately exit. Learn about foreground processes, CMD vs ENTRYPOINT, and common pitfalls that cause containers to stop. - [How do I Squash My Last N Commits Together?](https://devops-daily.com/posts/how-do-i-squash-my-last-n-commits-together.md): Squashing commits helps you clean up your Git history by combining multiple related commits into one. Learn how to use interactive rebase to squash commits while keeping your history organized and meaningful. - [How to Create Symbolic Links in Linux](https://devops-daily.com/posts/how-to-symlink-files-linux.md): Learn how to create and manage symbolic links (symlinks) in Linux to create shortcuts, organize files, and maintain flexible file system structures. - [What Does set -e Mean in a Bash Script?](https://devops-daily.com/posts/what-does-set-e-mean-in-bash-script.md): The set -e command in Bash causes your script to exit immediately when any command fails. Learn when to use it, how it works, and common pitfalls to avoid. - [How to Fix Pods Stuck in Terminating Status in Kubernetes](https://devops-daily.com/posts/fix-pods-stuck-terminating-kubernetes.md): Learn how to diagnose and resolve Kubernetes pods that are stuck in Terminating status using kubectl commands, finalizers, and force deletion techniques. - [How to Clone All Remote Branches in Git](https://devops-daily.com/posts/clone-all-remote-branches-git.md): Need to work with all branches from a remote repository? Learn how to clone and check out all remote branches efficiently using Git commands. - [How to Kill a Process Running on a Particular Port in Linux](https://devops-daily.com/posts/kill-process-running-on-port-linux.md): Learn multiple methods to identify and terminate processes that are using specific ports on Linux systems using netstat, lsof, fuser, and ss commands. - [How to Configure CloudWatch Logs Subscription Filter to Lambda With Terraform](https://devops-daily.com/posts/terraform-cloudwatch-log-subscription-lambda.md): Learn how to stream CloudWatch Logs to a Lambda function using Terraform, including proper permissions and error handling. - [Difference Between ClusterIP, NodePort and LoadBalancer Service Types in Kubernetes](https://devops-daily.com/posts/kubernetes-service-types-clusterip-nodeport-loadbalancer.md): Understand the key differences between ClusterIP, NodePort, and LoadBalancer service types in Kubernetes, when to use each, and how they expose applications. - [How to Check Which Process is Using a Specific Port from Command Line](https://devops-daily.com/posts/command-line-for-looking-at-specific-port.md): Learn how to identify which processes are listening on specific ports using netstat, lsof, and ss commands across different operating systems. - [Delete All Local Docker Images Safely](https://devops-daily.com/posts/delete-all-local-docker-images.md): Learn how to reclaim disk space by removing Docker images, containers, and volumes without breaking your development workflow. - [Docker Compose: Understanding Ports vs Expose](https://devops-daily.com/posts/docker-compose-ports-vs-expose.md): Learn the key differences between ports and expose in Docker Compose, when to use each one, and how they affect container networking and security in your applications. - [Terraform: Error Creating IAM Role. MalformedPolicyDocument: Has Prohibited Field Resource](https://devops-daily.com/posts/error-creating-iam-role-malformed-policy.md): Learn how to resolve the 'MalformedPolicyDocument: Has prohibited field Resource' error when creating an IAM role in Terraform. - [How to Find Files Containing Specific Text on Linux](https://devops-daily.com/posts/find-files-containing-specific-text-linux.md): Need to locate files with specific content? Learn how to use grep, find, and other Linux tools to search through files and directories efficiently. - [How to Reset Local Git Branch to Match Remote Repository HEAD](https://devops-daily.com/posts/how-to-reset-local-branch-to-match-remote-head.md): Learn different methods to reset your local Git branch to exactly match the remote repository HEAD, including hard reset, fetch and reset, and when to use each approach safely. - [How to Check Which Version of PostgreSQL You Are Running](https://devops-daily.com/posts/which-postgresql-version-am-i-running.md): Learn multiple ways to check your PostgreSQL version, including psql commands, SQL queries, and system commands. Find version numbers from the server, client, and package manager. - [How to Reset or Revert a File to a Specific Revision in Git](https://devops-daily.com/posts/how-to-reset-revert-file-to-specific-revision.md): Learn multiple ways to reset or revert a specific file to a previous version in Git, including using git checkout, git restore, and git show commands with practical examples. - [How to Push a New Local Branch to Remote Git Repository and Track It](https://devops-daily.com/posts/how-to-push-new-local-branch-to-remote-and-track.md): Learn how to push a new local Git branch to a remote repository and set up tracking, including different methods for initial push, setting upstream branches, and managing branch relationships. - [kubectl apply vs kubectl create: Understanding the Key Differences](https://devops-daily.com/posts/kubectl-apply-vs-create-differences.md): Learn the differences between kubectl apply and kubectl create commands, when to use each, and how they handle resource management in Kubernetes deployments. - [How to Create a Copy of a Directory in Unix/Linux](https://devops-daily.com/posts/create-copy-directory-unix-linux.md): Learn various methods to copy directories in Linux and Unix systems using cp, rsync, and tar commands with practical examples and best practices. - [How to Revert Git Repository to a Previous Commit Safely](https://devops-daily.com/posts/how-to-safely-revert-repository-to-previous-commit.md): Learn multiple safe methods to revert your Git repository to a previous commit, including using git revert, git reset, and git checkout with practical examples and safety considerations. - [How to Loop Through File Content in Bash](https://devops-daily.com/posts/looping-through-file-content-bash.md): Learn different methods to iterate through file content line by line in Bash scripts, including handling special characters and processing large files efficiently. - [How to Change File and Folder Permissions Recursively in Linux](https://devops-daily.com/posts/change-permissions-folder-subfolders-files-linux.md): Learn how to use chmod command to change permissions for directories and all their subdirectories and files efficiently and safely. - [Communication Between Multiple Docker-Compose Projects](https://devops-daily.com/posts/communication-multiple-docker-compose.md): Learn how to enable communication between multiple Docker-Compose projects using shared networks and environment configurations. - [How to Execute Multiple Commands in Docker Compose](https://devops-daily.com/posts/docker-compose-multiple-commands.md): Learn different techniques for running multiple commands in Docker Compose services, from simple command chaining to advanced multi-stage initialization scripts. - [How to Undo the Most Recent Local Commits in Git](https://devops-daily.com/posts/how-to-undo-recent-local-commits-in-git.md): Learn different ways to undo recent Git commits using reset, revert, and rebase commands. Understand when to use each method safely. - [How to Find the IP Address of an SSH Client](https://devops-daily.com/posts/find-ssh-client-ip-address.md): Learn multiple ways to identify the IP address of clients connected to your SSH server, from environment variables to logs and active connection monitoring. - [How to Ignore Change of an Attribute in Terraform Blocks](https://devops-daily.com/posts/ignore-change-of-attribute.md): Learn how to use the `lifecycle` block with the `ignore_changes` argument to ignore changes to specific attributes in Terraform. - [How to Change Echo Text Colors in Linux Terminal](https://devops-daily.com/posts/change-echo-output-colors-linux.md): Learn how to colorize your terminal output using ANSI escape codes with the echo command to make scripts more readable and visually appealing. - [How to Count Number of Lines in Files Using Linux Terminal](https://devops-daily.com/posts/count-lines-in-file-linux-terminal.md): Learn different methods to count lines in text files like CSV, TXT, and other non-binary files using wc, awk, sed, and other Linux command-line tools. - [How to Delete a Git Branch Locally and Remotely](https://devops-daily.com/posts/how-to-delete-git-branch-locally-and-remotely.md): Learn how to safely delete Git branches both on your local machine and remote repositories using different Git commands and safety checks. - [How to Discard Unstaged Changes in Git](https://devops-daily.com/posts/how-to-discard-unstaged-changes-in-git.md): Learn different methods to discard unstaged changes in Git using checkout, restore, and clean commands. Learn selective and bulk change removal techniques. - [Move the Most Recent Commit(s) to a New Branch with Git](https://devops-daily.com/posts/move-most-recent-commits-to-new-branch-git.md): Learn how to move recent commits from your current branch to a new branch using git checkout, reset, and cherry-pick. Fix branch organization mistakes effectively. - [How to Close Specific Ports on Linux Systems](https://devops-daily.com/posts/close-specific-port-linux.md): Learn how to close and block specific ports on Linux using iptables, ufw, firewalld, and by stopping services. Secure your system by controlling port access. - [What is the Difference Between Git Pull and Git Fetch?](https://devops-daily.com/posts/difference-between-git-pull-and-git-fetch.md): Understand when to use git pull versus git fetch, how they affect your local repository, and which command is safer for different workflows. - [How to Fix Docker "The input device is not a TTY" Error](https://devops-daily.com/posts/docker-tty-error-fix.md): Learn what causes the Docker TTY error and discover multiple solutions to fix it, from command-line flags to proper terminal configuration for interactive containers. - [How to Fix src refspec master does not match any Error in Git](https://devops-daily.com/posts/fix-src-refspec-master-does-not-match-any.md): Getting the src refspec master does not match any error when pushing? Learn what causes this Git error and how to fix it in different scenarios. - [How to Use Grep to Show Only Filenames on Linux](https://devops-daily.com/posts/grep-show-filenames-only-linux.md): Learn how to use grep options to display only the names of files containing matches, making it easier to identify relevant files in large searches. - [How to Change the URI (URL) for a Remote Git Repository](https://devops-daily.com/posts/how-to-change-uri-url-for-remote-git-repository.md): Learn how to update remote repository URLs in Git when repositories are moved, renamed, or migrated. Learn remote management commands to keep your workflow going. - [How to Organize a Terraform Repository with Multiple Subfolders](https://devops-daily.com/posts/organizing-terraform-repository-with-subfolders.md): Learn how to structure a Terraform repository with multiple environments, modules, and configurations in a way that scales with your infrastructure needs. - [How to Rebuild, Restart and Upgrade a Docker Compose Container](https://devops-daily.com/posts/rebuild-docker-container-compose.md): restart, up -d, up --build and --force-recreate each apply a different kind of change, and only one of them rebuilds your image. Tested on Compose 5.6: which command picks up code, config and image changes, how to upgrade without losing data, how to get a shell in a running or crashed service, and a Compose 2.38 quirk that can leave old code running. - [How to Recursively Count Files in a Linux Directory](https://devops-daily.com/posts/recursively-count-files-in-linux-directory.md): Learn different methods to count files in a directory and its subdirectories, including fast one-liners and options for filtering by type, size, or pattern. - [How to Modify Existing, Unpushed Commit Messages](https://devops-daily.com/posts/how-to-modify-existing-unpushed-commit-messages.md): Learn how to change commit messages for unpushed commits using git commit --amend and interactive rebase. Learn message editing techniques for clean Git history. - [How to Exclude Directories When Using Find in Linux](https://devops-daily.com/posts/exclude-directories-when-using-find-linux.md): Learn how to exclude specific directories from find command searches to improve performance and focus on relevant results when searching through file systems. - [How to Clear Docker Container Logs Properly](https://devops-daily.com/posts/how-to-clear-docker-container-logs-properly.md): Learn safe ways to clear or reset Docker container logs, where the logs live, and how to set up log rotation so logs do not grow unbounded. - [How to Loop Through an Array of Strings in Bash](https://devops-daily.com/posts/loop-through-array-strings-bash.md): Learn various methods to iterate through string arrays in Bash, including indexed arrays, associative arrays, and advanced looping techniques with practical examples. - [How to Cherry Pick Commits in Git](https://devops-daily.com/posts/how-to-cherry-pick-commits-in-git.md): Learn how to selectively apply specific commits from one branch to another using git cherry-pick. Learn single and multiple commit cherry-picking with conflict resolution strategies. - [How to Rename a Local Git Branch](https://devops-daily.com/posts/how-to-rename-local-git-branch.md): Learn how to rename Git branches locally using git branch -m, handle the current branch, and update remote tracking references safely. - [How to Pipe to and from Clipboard in Bash Scripts](https://devops-daily.com/posts/pipe-clipboard-bash-script.md): Learn how to integrate clipboard functionality into your Bash scripts using xclip, xsel, pbcopy, and pbpaste for easy data transfer between terminal and GUI applications. - [What Does AssumeRole: Service: ec2 Do?](https://devops-daily.com/posts/assumerole-service-ec2.md): Understand the role of AssumeRole with Service: ec2 in AWS IAM policies and how it integrates with Terraform. - [What is the Difference Between a Pod and a Deployment?](https://devops-daily.com/posts/difference-between-pod-and-deployment.md): Understanding the difference between Pods and Deployments in Kubernetes matters for managing containerized applications effectively. Learn how they work and when to use each. - [What is the Difference Between "Expose" and "Publish" in Docker?](https://devops-daily.com/posts/expose-vs-publish-docker.md): Understanding the difference between 'expose' and 'publish' in Docker is important for managing container networking effectively. Learn how these concepts work and when to use them. - [How to Reset Git to a Previous Commit](https://devops-daily.com/posts/how-to-reset-git-to-previous-commit.md): Learn different ways to reset your Git repository to a previous commit state. Understand the differences between soft, mixed, and hard resets and when to use each approach. - [How to Split a Terraform File (main.tf) into Several Files (No Modules)](https://devops-daily.com/posts/how-to-split-terraform-file.md): Organizing Terraform configurations by splitting a single main.tf file into multiple files can improve readability and maintainability. Learn how to do this without using modules. - [How to Abort a Merge Conflict in Git](https://devops-daily.com/posts/abort-merge-conflict-git.md): Ran into merge conflicts and want to cancel the merge? Learn how to safely abort a merge and return your repository to its pre-merge state. - [How to Enter a Docker Container Already Running with a New TTY](https://devops-daily.com/posts/enter-docker-container-new-tty.md): Learn how to attach to a running Docker container with a new TTY session for debugging or interaction. - [How to Stash Changes in Git](https://devops-daily.com/posts/how-to-stash-changes-in-git.md): Learn how to temporarily save your work in progress using Git stash. Learn stashing, applying, and managing multiple stashes to handle interruptions in your development workflow. - [How to Recursively Grep All Directories and Subdirectories](https://devops-daily.com/posts/recursively-grep-directories-subdirectories.md): Learn how to use grep with recursive options to search through entire directory trees efficiently, including advanced filtering and performance optimization techniques. - [How to View Git Commit History](https://devops-daily.com/posts/how-to-view-git-commit-history.md): Learn various ways to explore and analyze your Git commit history. Learn git log options, filtering techniques, and formatting to understand your project evolution and track changes effectively. - [Defining Variables with and without Export in Linux Shell](https://devops-daily.com/posts/defining-variables-with-without-export-linux.md): Understand the difference between regular shell variables and exported environment variables, when to use export, and how variable scope affects scripts and processes. - [How to Find Files Using Wildcards in Linux](https://devops-daily.com/posts/find-files-with-wildcards-linux.md): Learn how to use wildcard patterns with find command to recursively search for files in directories and subdirectories based on name patterns. - [How to Undo Git Add Before Commit](https://devops-daily.com/posts/how-to-undo-git-add-before-commit.md): Learn how to unstage files that you've added to Git's staging area using git reset, git restore, and other methods before committing. - [Lightweight Alternatives to Python Twisted for Async Networking](https://devops-daily.com/posts/lightweight-alternatives-to-python-twisted.md): Explore modern, lightweight alternatives to Twisted for building asynchronous network applications in Python, including asyncio, aiohttp, Trio, and more. - [How to Fix Terraform Import "Index Value Required" Error for String Keys](https://devops-daily.com/posts/terraform-import-index-value-required-error.md): Learn how to resolve the 'Index value required' error when importing resources with for_each in Terraform, and understand the correct syntax for string-based resource keys. - [Difference Between RUN and CMD in a Dockerfile](https://devops-daily.com/posts/difference-run-cmd-dockerfile.md): Understand the key differences between RUN and CMD in a Dockerfile, and learn when to use each for building and running Docker containers. - [How to Force Git Pull to Overwrite Local Files](https://devops-daily.com/posts/how-to-force-git-pull-overwrite-local-files.md): Learn how to use git reset, git clean, and git checkout to force git pull to overwrite local changes when you need to match the remote repository exactly. - [How to Profile C++ Code Performance on Linux](https://devops-daily.com/posts/profile-cpp-code-performance-linux.md): Learn how to use profiling tools like gprof, Valgrind, and perf to analyze C++ application performance and identify bottlenecks on Linux systems. - [How to Use sudo to Redirect Output to a Privileged Location](https://devops-daily.com/posts/sudo-redirect-output-to-privileged-location.md): When you try to redirect output to a file you don't have permission to write, sudo doesn't help the way you'd expect. Learn the right techniques to write to protected files. - [How to Delete Exported Environment Variables in Linux](https://devops-daily.com/posts/delete-exported-environment-variables-linux.md): Learn different methods to remove environment variables from your current shell session and prevent them from persisting in future sessions. - [How to Check Out a Remote Git Branch](https://devops-daily.com/posts/how-to-checkout-remote-git-branch.md): Learn different methods to check out remote Git branches locally using git checkout, git switch, and git fetch commands with practical examples. - [Remove a Git Submodule: deinit, git rm and Cleanup](https://devops-daily.com/posts/remove-git-submodule.md): Run git submodule deinit -f path, then git rm -f path, and commit. To delete the leftover Git data too, remove .git/modules/, usually the same path. - [How We Reduced Our AWS Bill by 73% While Actually Improving Performance](https://devops-daily.com/posts/aws-cost-optimization.md): The counterintuitive strategies we used to slash cloud costs while actually improving application performance. - [How to Access Host Port from Docker Container](https://devops-daily.com/posts/docker-access-host-port.md): Learn how to access a host machine's port from a Docker container using network configurations and best practices. - [Where Docker Images Are Stored on Your Host Machine](https://devops-daily.com/posts/docker-image-storage-locations.md): Discover where Docker stores images, containers, and volumes on different operating systems, and learn how to manage Docker's storage footprint effectively. - [Docker Complains About "No Space Left on Device": How to Clean Up?](https://devops-daily.com/posts/docker-no-space-left-cleanup.md): Running out of space while using Docker can disrupt your workflow. Learn how to identify and clean up unused Docker resources to free up space. - [How to Execute Terraform Actions Without the Interactive Prompt](https://devops-daily.com/posts/execute-terraform-actions-without-prompt.md): Learn how to automate Terraform workflows by bypassing the interactive prompt for commands like apply and destroy. - [How to Get the Current Working Directory in Terraform](https://devops-daily.com/posts/get-current-working-directory-terraform.md): Learn how to reference file paths in Terraform using path.module, path.root, and path.cwd - and understand which one to use in different scenarios. - [How to Retrieve a Secret in Terraform from AWS Secret Manager](https://devops-daily.com/posts/retrieve-secret-terraform-aws-secret-manager.md): Learn how to securely retrieve secrets from AWS Secret Manager using Terraform in your infrastructure as code workflows. - [How to Make Git Forget About a File That Was Tracked But Is Now in .gitignore](https://devops-daily.com/posts/how-to-make-git-forget-tracked-file-in-gitignore.md): Learn how to remove files from Git tracking while keeping them locally when you add them to .gitignore after they were already committed. - [The GitHub Actions Workflow That Eliminated Our DevOps Bottleneck](https://devops-daily.com/posts/github-actions-fast.md): How we reduced deployment time from 2 hours to 8 minutes using smart GitHub Actions patterns and parallel execution strategies. - [How do I Run a Command on an Already Existing Docker Container?](https://devops-daily.com/posts/how-do-i-run-a-command-on-an-already-existing-docker-container.md): Need to run commands inside a Docker container that's already running? Here's how to use docker exec to debug, inspect, and interact with your containers. - [How I Finally Understood Docker and Kubernetes](https://devops-daily.com/posts/how-i-finally-understood-docker-and-kubernetes.md): Docker and Kubernetes can feel abstract until you see what problems they actually solve. Here's a practical guide to understanding both tools through real examples. - [How to Remove Local Untracked Files from Git Working Tree](https://devops-daily.com/posts/how-to-remove-local-untracked-files-git.md): Learn how to use git clean to remove untracked files and directories from your Git working tree safely with different options and safety checks. - [How to Push a Git Tag to a Remote Repository](https://devops-daily.com/posts/push-git-tag-to-remote.md): Created a tag locally and need to share it? Learn how to push tags to remote repositories and manage release versions in Git. - [How to Check if a Variable is Set in Bash](https://devops-daily.com/posts/check-if-variable-set-bash.md): Learn multiple methods to check if variables are set, unset, empty, or have specific values in Bash scripts with practical examples and best practices. - [How to Fix Docker: Permission Denied](https://devops-daily.com/posts/fix-docker-permission-denied-error.md): Getting a 'permission denied' error when using Docker can be frustrating. Here's how to fix it depending on the OS, Docker command, and user setup. - [Why Running Postgres on Kubernetes Is Still a Bad Idea (And What to Do Instead)](https://devops-daily.com/posts/postgres-k8s.md): Everyone wants to run databases on Kubernetes, but should you? We explore the real challenges of stateful workloads and better alternatives. - [How to Push a Docker Image to a Private Repository](https://devops-daily.com/posts/push-docker-image-private-repo.md): Learn how to push a Docker image to a private repository, including authentication and best practices for secure image management. - [How to Compare Two Directory Trees and Find Files That Differ by Content](https://devops-daily.com/posts/compare-two-directory-trees-by-content.md): Learn different methods to compare two directory structures and identify which files have different content, using tools like diff, rsync, and custom scripts. - [AWS ASG Launch Templates vs Launch Configurations](https://devops-daily.com/posts/aws-asg-launch-templates-vs-configurations.md): Understand the key differences between AWS Auto Scaling Group Launch Templates and Launch Configurations to make informed decisions for your infrastructure. - [How Can I Expose More Than One Port with Docker?](https://devops-daily.com/posts/expose-multiple-ports-docker.md): Learn how to expose multiple ports in Docker to enable complex containerized applications with multiple services. - [How to List All Pods and Their Nodes in Kubernetes](https://devops-daily.com/posts/kubernetes-list-all-pods-and-nodes.md): Learn how to list all pods in your Kubernetes cluster along with the nodes they're running on, using kubectl and command-line tools for clear, actionable output. - [How to Fix "Argument List Too Long" Error for rm, cp, and mv Commands](https://devops-daily.com/posts/argument-list-too-long-error.md): Solve the 'argument list too long' error when working with thousands of files. Learn to use find, xargs, and loops as alternatives to wildcards for bulk file operations. - [How to Convert Strings to Lowercase in Bash](https://devops-daily.com/posts/convert-string-to-lowercase-in-bash.md): Discover multiple methods to convert strings to lowercase in Bash scripts, from modern parameter expansion to traditional command-line tools, with examples for different use cases and shell compatibility. - [How to Move Uncommitted Work to a New Branch in Git](https://devops-daily.com/posts/move-uncommitted-work-to-new-branch.md): Started working on the wrong branch? Learn how to move your uncommitted changes to a new branch without losing any work. - [How to Remove Old Docker Containers](https://devops-daily.com/posts/remove-old-docker-containers.md): Over time, stopped Docker containers pile up and take up space. Learn how to list, filter, and clean up unused containers safely and efficiently. - [How to Read Environment Variables From a .env File in Terraform](https://devops-daily.com/posts/terraform-read-environment-variables-from-env-file.md): Learn different approaches for loading environment variables from .env files into Terraform, from shell scripts to external data sources. - [How to Attach Multiple IAM Policies to IAM Roles Using Terraform](https://devops-daily.com/posts/attach-multiple-iam-policies.md): Learn how to attach multiple IAM policies to a single IAM role in Terraform to manage permissions effectively. - [How to Check if a String Contains a Substring in Bash](https://devops-daily.com/posts/check-string-contains-substring-bash.md): Learn multiple methods to check for substring presence in Bash, including pattern matching, case-insensitive searches, and practical examples for string validation. - [How to Detect Network Connection Type on Android](https://devops-daily.com/posts/detect-network-connection-type-android.md): Learn how to detect WiFi, cellular, and other network types in Android apps using ConnectivityManager, NetworkCapabilities, and handle network changes with callbacks. - [Docker: Name is Already in Use by Container](https://devops-daily.com/posts/docker-name-already-in-use.md): Encountering the 'name is already in use by container' error in Docker? Learn why it happens and how to resolve it effectively. - [Fixing the "Invalid Legacy Provider Address" Error in Terraform](https://devops-daily.com/posts/invalid-legacy-provider-address.md): Learn how to resolve the 'Invalid legacy provider address' error in Terraform by upgrading your provider configurations. - [How Do I Pass Environment Variables to Docker Containers?](https://devops-daily.com/posts/pass-environment-variables-docker-containers.md): Environment variables are a clean way to configure your Docker containers without hardcoding values. This guide shows different methods and when to use each. - [How to Nuke All AWS Resources in an AWS Account](https://devops-daily.com/posts/nuke-all-aws-resources.md): Learn how to safely and efficiently delete all resources in an AWS account using tools like AWS CLI and Terraform. - [How to Permanently Set $PATH on Linux and Unix](https://devops-daily.com/posts/permanently-set-path-on-linux-unix.md): Learn how to permanently modify your PATH environment variable on Linux and Unix systems so your custom directories persist across shell sessions and reboots. - [How to Undo a Git Rebase with ORIG_HEAD or reflog](https://devops-daily.com/posts/undo-git-rebase.md): Just rebased? Check git log -1 ORIG_HEAD, then run git reset --hard ORIG_HEAD. Otherwise find the old commit in git reflog. Mid-rebase: git rebase --abort. - [How to Force Docker for a Clean Build of an Image](https://devops-daily.com/posts/force-docker-clean-build.md): Docker caches layers to speed up builds, but sometimes you want a completely fresh image build. Here's how to force Docker to skip the cache and build from scratch. - [How to Get List Index When Using for_each in Terraform](https://devops-daily.com/posts/terraform-get-list-index-for-each.md): Learn how to access the index or position when iterating over lists with for_each in Terraform, and understand the differences between for_each and count. - [Determining Minimum AWS Permissions for Terraform Configurations](https://devops-daily.com/posts/minimum-aws-permissions-for-terraform.md): Learn how to identify the minimum AWS permissions required for your Terraform configurations to enhance security and compliance. - [How to Concatenate String Variables in Bash](https://devops-daily.com/posts/concatenate-string-variables-bash.md): Learn multiple ways to combine string variables in Bash scripts, from simple concatenation to complex string operations with practical examples. - [Docker Image vs Container: Key Differences](https://devops-daily.com/posts/docker-image-vs-container.md): Learn the fundamental difference between Docker images and containers through practical examples and real-world scenarios. - [How to Simulate a Slow Internet Connection for Testing](https://devops-daily.com/posts/simulating-slow-internet-connection.md): Learn how to throttle network speed on Linux, macOS, and Windows using tc, Network Link Conditioner, and other tools to test application performance under poor network conditions. - [Git Fetch a Remote Branch and Check It Out Locally](https://devops-daily.com/posts/git-fetch-remote-branch.md): Run git fetch origin branch-name, then git switch branch-name for a local branch that tracks origin/branch-name, or git switch --track origin/branch-name. - [How to Grep a Continuous Stream in Real-Time](https://devops-daily.com/posts/grep-continuous-stream.md): Learn how to filter live log streams with grep, including line-buffering for immediate output, following log files, and monitoring command output as it happens. - [Should I Use Vagrant or Docker for Creating an Isolated Environment?](https://devops-daily.com/posts/vagrant-vs-docker-for-isolated-environments.md): Choosing between Vagrant and Docker depends on your workflow and what kind of isolation you need. This guide walks through real-world use cases to help you decide. - [How to Redirect Output to Both a File and stdout in Bash](https://devops-daily.com/posts/redirect-output-to-file-and-stdout.md): Discover how to use the tee command and other techniques to send command output to both a file and the terminal simultaneously, useful for logging while monitoring script execution. - [How to Prevent Data Loss When Docker Containers Exit](https://devops-daily.com/posts/docker-data-loss-when-container-exits.md): Learn why data disappears when Docker containers stop, how to persist data with volumes and bind mounts, and best practices for managing stateful applications in containers. - [How to Get the Current Time in Seconds Since the Epoch in Bash on Linux](https://devops-daily.com/posts/get-current-time-seconds-since-epoch-bash.md): Learn how to get Unix timestamps in Bash for logging, benchmarking, and time calculations. Includes examples of converting timestamps, measuring elapsed time, and practical use cases. - [How to Update a Kubernetes Secret Generated from a File](https://devops-daily.com/posts/how-to-update-kubernetes-secret-from-file.md): Learn how to update an existing Kubernetes secret when its data comes from a file, with practical kubectl commands and tips for safe secret management. - [How to Stash Only One File in Git](https://devops-daily.com/posts/stash-single-file-git.md): Need to temporarily save changes to just one file? Learn how to stash a single file in Git while leaving other changes in your working directory. - [How to Reference Resources Created With for_each in Terraform](https://devops-daily.com/posts/terraform-referencing-for-each-resources.md): Learn how to reference individual resources and attributes from for_each loops in other Terraform resources, including cross-resource dependencies and data extraction patterns. - [Who is Listening on a Given TCP Port on Mac OS X?](https://devops-daily.com/posts/who-is-listening-on-a-given-tcp-port-on-mac-os-x.md): Need to find out which process is using a specific port on your Mac? Here's how to check which application is listening on a TCP port using built-in macOS tools. - [How to Get a Docker Container's IP Address from the Host](https://devops-daily.com/posts/how-to-get-docker-container-ip-from-host.md): Learn how to find a Docker container's internal IP address from your host machine using simple Docker commands. This is useful for debugging, testing services, or container communication. - [In a Dockerfile, How to Update the PATH Environment Variable?](https://devops-daily.com/posts/dockerfile-update-path.md): Learn how to modify the PATH environment variable in a Dockerfile to include custom directories for executables. - [What Does Cherry-Picking a Commit Mean in Git?](https://devops-daily.com/posts/git-cherry-pick-commit.md): Need to apply a specific commit from one branch to another? Learn how to use git cherry-pick to selectively copy commits without merging entire branches. - [Understanding the Difference Between sh and Bash](https://devops-daily.com/posts/difference-between-sh-and-bash.md): Discover the key differences between sh and Bash shells, including feature compatibility, portability considerations, and when to use each one in your shell scripts and system administration tasks. - [How to Set a Variable to the Output of a Command in Bash](https://devops-daily.com/posts/set-variable-command-output-bash.md): Learn multiple methods to capture command output in Bash variables using command substitution, including best practices and error handling techniques. - [How to Concatenate Lists in Terraform Using concat()](https://devops-daily.com/posts/terraform-concatenate-lists-concat-function.md): Learn how to combine multiple lists in Terraform using the concat() function, plus advanced patterns for merging and manipulating list data. - [How to Clean Up ReplicaSets When Updating Kubernetes Deployments](https://devops-daily.com/posts/clean-up-replicasets-when-updating-deployments.md): Learn how and when to clean up old ReplicaSets after updating Kubernetes Deployments, why they accumulate, and how to manage rollout history for a tidy cluster. - [How to Commit Only Part of a File in Git](https://devops-daily.com/posts/commit-part-of-file-git.md): Need to commit some changes in a file but not others? Learn how to stage and commit specific changes within a file using Git patch mode. - [How to Specify a Private SSH Key for Git Commands](https://devops-daily.com/posts/specify-private-ssh-key-for-git-commands.md): Learn multiple methods to use specific SSH keys with Git operations, from command-line options to SSH config files and environment variables, making it easy to manage multiple keys for different repositories. - [How to Copy Command Output Directly to Your Clipboard in Linux](https://devops-daily.com/posts/copy-command-output-to-clipboard.md): Learn how to pipe command output to your clipboard using xclip, xsel, or pbcopy. Make terminal output available for pasting into applications without selecting and copying manually. - [Docker Security Best Practices](https://devops-daily.com/posts/docker-security-best-practices.md): Secure your Docker environment from development to production with practical techniques for image hardening, runtime protection, and vulnerability management. - [How to Make Git Ignore File Mode Changes](https://devops-daily.com/posts/git-ignore-file-mode-changes.md): Git showing chmod changes you don not care about? Learn how to configure Git to ignore file permission changes while tracking actual code changes. - [How Does cat << EOF Work in Bash?](https://devops-daily.com/posts/how-cat-eof-works-in-bash.md): Understand heredocs in Bash - the << EOF syntax that lets you write multi-line strings, create files with embedded content, and pass complex input to commands. - [How to Check for Input Arguments in Bash Shell Scripts](https://devops-daily.com/posts/check-existence-of-input-argument-in-bash-shell-script.md): Learn different methods to validate command-line arguments in your Bash scripts, from simple existence checks to handling optional and required parameters with practical examples. - [Finding Local IP Addresses Using Python's stdlib](https://devops-daily.com/posts/finding-local-ip-addresses-using-pythons-stdlib.md): Learn how to find the local IP address of your machine using only Python's standard library. No third-party packages required. - [How to Remove a File from Git Without Deleting It Locally](https://devops-daily.com/posts/remove-file-from-git-keep-local.md): Need to stop tracking a file in Git but keep it on your filesystem? Learn how to remove files from Git repository while preserving them locally. - [How to Fix Common Terraform S3 Backend Configuration Errors](https://devops-daily.com/posts/terraform-s3-backend-configuration-errors.md): Learn how to troubleshoot and resolve common errors when configuring Terraform's S3 backend, from access denied issues to state locking problems. - [How to Fix Echo Newline in Bash When It Prints Literal \n](https://devops-daily.com/posts/fix-echo-newline-bash-literal-n.md): Learn why echo sometimes prints literal \n instead of newlines and discover multiple solutions to properly output newline characters in Bash scripts. - [Docker - Ubuntu - bash: ping: command not found [closed]](https://devops-daily.com/posts/docker-ubuntu-ping-not-found.md): Resolve the 'ping: command not found' error in Ubuntu-based Docker containers by installing missing packages. - [How to Parse Command Line Arguments in Bash](https://devops-daily.com/posts/parse-command-line-arguments-bash.md): Learn various methods to parse command line arguments in Bash scripts, including positional parameters, getopts, and advanced argument handling techniques. - [How to Get Your Local IP Address](https://devops-daily.com/posts/how-to-get-local-ip-address.md): Learn multiple methods to find your local IP address using command line tools, programming languages, and system utilities across different operating systems. - [kubectl logs - Continuously](https://devops-daily.com/posts/kubectl-logs-continuously.md): Learn how to use kubectl to stream logs continuously from Kubernetes Pods for real-time monitoring. - [How to Prompt for Yes/No/Cancel Input in a Linux Shell Script](https://devops-daily.com/posts/prompt-for-yes-no-cancel-input-in-linux-shell-script.md): Learn different techniques for creating interactive prompts in your shell scripts, from simple yes/no confirmations to three-way choices with proper input validation and user-friendly interfaces. - [What Is FinOps? A Beginner's Guide to Cloud Cost Management](https://devops-daily.com/posts/what-is-finops-a-beginners-guide-to-cloud-cost-management.md): Discover how FinOps transforms chaotic cloud spending into strategic financial operations, bringing teams together to optimize costs while maintaining innovation speed. - [Kubernetes: How to Make Deployment to Update Image](https://devops-daily.com/posts/kubernetes-how-to-make-deployment-to-update-image.md): Learn how to update the container image in a Kubernetes Deployment using kubectl commands. - [How to Change the Output Color of Echo in Linux](https://devops-daily.com/posts/change-echo-output-color-linux.md): Learn how to add colors to your echo output in Linux and Bash scripts using ANSI escape codes, tput commands, and color variables for better terminal display. - [How to Sign In to the Kubernetes Dashboard](https://devops-daily.com/posts/how-to-sign-in-kubernetes-dashboard.md): Learn how to securely access and sign in to the Kubernetes Dashboard, including token generation, best practices, and troubleshooting common login issues. - [How to Find Which Process Is Listening on a Port in Windows](https://devops-daily.com/posts/find-process-listening-on-port-windows.md): Need to know which application is using a specific TCP or UDP port on Windows? Here's how to check using netstat, tasklist, PowerShell, and Resource Monitor. - [What Is the Quickest Way to HTTP GET in Python?](https://devops-daily.com/posts/what-is-the-quickest-way-to-http-get-in-python.md): Need to make a quick HTTP GET request in Python? Here's how to do it with standard libraries and third-party tools, including pros and tradeoffs. - [How to Create a Folder in an AWS S3 Bucket Using Terraform](https://devops-daily.com/posts/create-folder-in-s3-bucket.md): Learn how to create a folder in an AWS S3 bucket using Terraform with the `aws_s3_object` resource. - [Service Located in Another Namespace](https://devops-daily.com/posts/service-located-in-another-namespace.md): Learn how to access and interact with Kubernetes Services located in different namespaces. - [How to Echo Output to stderr in Bash](https://devops-daily.com/posts/echo-to-stderr-in-bash.md): Learn different methods to send error messages to stderr in Bash scripts, understand why separating error output from standard output matters, and discover best practices for script logging and debugging. - [What is the Runtime Performance Cost of a Docker Container?](https://devops-daily.com/posts/docker-runtime-performance-cost.md): Understand the runtime performance impact of Docker containers compared to virtual machines and bare-metal systems. - [How to Cleanly List All Containers in a Kubernetes Pod](https://devops-daily.com/posts/how-to-list-all-containers-in-kubernetes-pod.md): Learn several ways to list all containers in a Kubernetes pod using kubectl and JSONPath, with practical examples for real-world troubleshooting and automation. - [Listing All Resources in a Namespace](https://devops-daily.com/posts/listing-all-resources-in-a-namespace.md): Learn how to list all resources in a Kubernetes namespace using kubectl commands. - [How to Artificially Create a Connection Timeout Error](https://devops-daily.com/posts/how-to-artificially-create-connection-timeout-error.md): Learn practical methods to simulate connection timeouts for testing error handling, resilience patterns, and timeout configurations in your applications. - [How to Remove Old and Unused Docker Images](https://devops-daily.com/posts/remove-old-unused-docker-images.md): Reclaim disk space efficiently by identifying and removing outdated Docker images while preserving the ones you need for active development and production. - [How to Create a Bash Alias That Accepts Parameters](https://devops-daily.com/posts/create-bash-alias-that-takes-parameters.md): Learn how to create flexible Bash aliases that accept arguments using functions, from simple one-liners to complex commands with multiple parameters and options. - [How to Assign a Port Mapping to an Existing Docker Container](https://devops-daily.com/posts/docker-assign-port-mapping.md): Learn how to assign a port mapping to an already running Docker container using practical workarounds and best practices. - [How to Switch kubectl Clusters Between gcloud and minikube](https://devops-daily.com/posts/how-to-switch-kubectl-clusters-between-gcloud-and-minikube.md): Learn how to seamlessly switch between gcloud and minikube clusters using kubectl commands. - [The provided execution role does not have permissions to call DescribeNetworkInterfaces on EC2](https://devops-daily.com/posts/the-provided-execution-role-does-not-have-permissions-to-call-describenetworkinterfaces-on-ec2.md): Learn how to resolve the 'execution role does not have permissions to call DescribeNetworkInterfaces' error in AWS EC2. - [How to Format Dates as YYYY-MM-DD in Shell Scripts](https://devops-daily.com/posts/format-date-yyyy-mm-dd-in-shell-script.md): Learn how to format dates in shell scripts using the date command, including YYYY-MM-DD format and other common date patterns for logging, file naming, and timestamp generation. - [ps Command Doesn't Work in Docker Container](https://devops-daily.com/posts/ps-command-not-working-docker.md): Why the ps command fails inside Docker containers and how to fix it. Covers minimal images missing procps, alternatives like /proc, and installing the package. - [Checking Kubernetes Pod CPU and Memory Utilization](https://devops-daily.com/posts/checking-kubernetes-pod-cpu-and-memory-utilization.md): Learn how to monitor CPU and memory usage of Kubernetes Pods using kubectl and metrics-server. - [How Can I Keep a Container Running on Kubernetes?](https://devops-daily.com/posts/how-can-i-keep-a-container-running-on-kubernetes.md): Learn how to ensure your container stays running on Kubernetes by using proper configurations and best practices. - [Copy Directory to Another Directory Using ADD Command](https://devops-daily.com/posts/copy-directory-using-add-command.md): Copy directories into a Docker image with the ADD instruction. Covers ADD vs COPY, local paths, remote URLs, tar extraction, and practical Dockerfile examples. - [How to Check if a File Does Not Exist in Bash](https://devops-daily.com/posts/check-file-not-exist-bash.md): Learn various methods to test for file non-existence in Bash scripts, including proper error handling, permission checks, and practical automation examples. - [How to Extract Filename and Extension in Bash](https://devops-daily.com/posts/extract-filename-extension-bash.md): Learn multiple methods to extract filenames, extensions, and directory paths from file paths in Bash using parameter expansion and basename commands. - [How Do I Make a Comment in a Dockerfile?](https://devops-daily.com/posts/comment-in-dockerfile.md): Learn how to add comments in Dockerfiles to document your code and improve readability. - [At Least One Invalid Signature Was Encountered](https://devops-daily.com/posts/at-least-one-invalid-signature-was-encountered.md): Understand the causes of invalid signatures in Kubernetes and learn how to troubleshoot and resolve them. - [How to Delete All Resources from Kubernetes at One Time](https://devops-daily.com/posts/how-to-delete-all-resources-from-kubernetes-one-time.md): Delete every resource in a Kubernetes namespace or whole cluster with kubectl. Covers kubectl delete all, namespace deletion, and cleaning up CRDs safely. - [Docker Can't Connect to Docker Daemon](https://devops-daily.com/posts/docker-cant-connect-to-docker-daemon.md): Learn how to troubleshoot and resolve the Docker can't connect to Docker daemon error effectively. - [What Is the Preferred Bash Shebang?](https://devops-daily.com/posts/preferred-bash-shebang.md): Learn which shebang line to use for Bash scripts, the differences between common options, and how to write portable scripts that work across different Unix-like systems. - [Why Does a Kubernetes Pod Get Recreated When Deleted?](https://devops-daily.com/posts/why-does-kubernetes-pod-get-recreated-when-deleted.md): Learn why Kubernetes automatically recreates Pods when they are deleted, and understand the mechanisms behind this behavior. - [How are data sources used in Terraform?](https://devops-daily.com/posts/how-are-data-sources-used-in-terraform.md): Understand how to use data sources in Terraform to fetch information about existing resources. - [How Does kubectl port-forward Create a Connection?](https://devops-daily.com/posts/how-does-kubectl-port-forward-create-a-connection.md): Understand how kubectl port-forward works to create connections between your local machine and Kubernetes Pods. - [Kubernetes API - Get Pods on Specific Nodes](https://devops-daily.com/posts/kubernetes-api-get-pods-on-specific-nodes.md): Learn how to use the Kubernetes API to retrieve Pods running on specific nodes in your cluster. - [Upgrade Terraform to Specific Version](https://devops-daily.com/posts/upgrade-terraform-to-specific-version.md): Learn how to upgrade Terraform to a specific version on your system, ensuring compatibility with your infrastructure. - [How to Split a String on a Delimiter in Bash](https://devops-daily.com/posts/split-string-delimiter-bash.md): Learn multiple methods to split strings using delimiters in Bash, including IFS, parameter expansion, and array techniques with practical examples. - [How to Run a Docker Image as a Container](https://devops-daily.com/posts/docker-run-image-as-container.md): Learn how to start a container from a Docker image, pass environment variables, map ports, and manage container lifecycle. - [Real-World Kubernetes Deployments](https://devops-daily.com/posts/real-world-k8s.md): Lessons learned from deploying Kubernetes in production environments. - [Terraform Infrastructure as Code Best Practices](https://devops-daily.com/posts/terraform-best-practices.md): Terraform best practices for writing scalable, maintainable infrastructure as code - covering directory structure, state management, modules, and security. - [Get YAML for Deployed Kubernetes Services](https://devops-daily.com/posts/get-yaml-for-deployed-kubernetes-services.md): Learn how to retrieve the YAML configuration for deployed Kubernetes Services using kubectl commands. - [How to Mount a Host Directory in a Docker Container](https://devops-daily.com/posts/docker-mount-host-directory.md): Learn how to mount a local directory into a Docker container for development, data sharing, or configuration. This guide covers syntax, permissions, and real-world use cases. - [What Is the Difference Between a Port and a Socket?](https://devops-daily.com/posts/difference-between-port-and-socket.md): Ports and sockets are often mentioned together in networking, but they serve different roles. This guide breaks down what they are and how they work together. - [How to Check if a Directory Exists in Bash Shell Scripts](https://devops-daily.com/posts/check-directory-exists-bash-script.md): Learn multiple methods to check directory existence in Bash scripts, including proper error handling, permission checks, and practical use cases for reliable automation. - [How Can I Debug "ImagePullBackOff"?](https://devops-daily.com/posts/how-can-i-debug-imagepullbackoff.md): Learn how to troubleshoot and resolve the ImagePullBackOff error in Kubernetes Pods. - [How to Copy Files from Kubernetes Pods to Local System](https://devops-daily.com/posts/how-to-copy-files-from-kubernetes-pods-to-local-system.md): Learn how to use kubectl commands to copy files from Kubernetes Pods to your local system. - [I would like to run Terraform only for a specific resource](https://devops-daily.com/posts/i-would-like-to-run-terraform-only-for-a-specific-resource.md): Learn how to target specific resources in Terraform to save time and avoid unnecessary changes. - [Restart Pods When ConfigMap Updates in Kubernetes](https://devops-daily.com/posts/restart-pods-when-configmap-updates-in-kubernetes.md): Learn how to restart Kubernetes Pods automatically when a ConfigMap is updated. - [How to Redirect and Append Both stdout and stderr to a File in Bash](https://devops-daily.com/posts/bash-redirect-append-stdout-stderr.md): Learn different methods to capture both standard output and error streams in Bash, including appending to files and separating streams for better logging. - [How to Check if a Program Exists from a Bash Script](https://devops-daily.com/posts/check-if-program-exists-bash-script.md): Learn multiple reliable methods to check if a command or program is available on your system from within Bash scripts, including using which, command, and type. - [Docker Push Error: denied: requested access to the resource is denied](https://devops-daily.com/posts/docker-push-denied-access.md): Troubleshoot and resolve the common Docker push error about denied access to a resource. Learn about authentication, repository naming, and permissions. - [Difference Between targetPort and port in Kubernetes Service Definition](https://devops-daily.com/posts/difference-between-targetport-and-port-in-kubernetes-service-definition.md): Understand the distinction between targetPort and port in Kubernetes Service definitions, and learn how they impact your application's networking. - [Terraform - Delete All Resources Except One](https://devops-daily.com/posts/delete-all-resources-except-one.md): Learn how to delete all resources managed by Terraform except for a specific resource by using targeted commands and state manipulation. - [How to Edit a File After You Shell to a Docker Container](https://devops-daily.com/posts/docker-edit-file-in-container.md): Learn how to edit files inside a running Docker container using shell access, text editors, and best practices for persistent changes. - [What Does "2>&1" Mean in Linux and Bash?](https://devops-daily.com/posts/what-does-2-and-1-mean-linux-bash.md): Learn what the 2>&1 redirection operator means in Linux commands, how it works with standard output and error streams, and when to use it effectively. - [How to Count Lines of Code in a Directory Recursively](https://devops-daily.com/posts/count-lines-of-code-recursively.md): Discover multiple methods to count source code lines across entire directory trees, including filtering by file types and excluding specific directories. - [Can Terraform Be Used to Provision On-Premises Servers?](https://devops-daily.com/posts/terraform-on-premises-servers.md): Learn how Terraform can be used to provision on-premises servers by integrating with tools like VMware vSphere, Ansible, and bare-metal providers. - [How to Get the Directory Where a Bash Script is Located](https://devops-daily.com/posts/get-directory-bash-script-location.md): Learn multiple reliable methods to determine the directory path of your Bash script from within the script itself, including handling symbolic links and edge cases. - [How to Get Events Only for a Pod with kubectl](https://devops-daily.com/posts/kubectl-get-events-only-for-pod.md): Learn how to filter and view Kubernetes events for a specific pod using kubectl, with practical examples for troubleshooting and automation. - [Docker: How to Change Repository Name or Rename an Image](https://devops-daily.com/posts/docker-rename-image-repository.md): Learn how to rename a Docker image or change its repository name using simple Docker CLI commands. This guide covers real-world scenarios and best practices. - [How to Set Multiple Commands in One YAML File with Kubernetes](https://devops-daily.com/posts/how-to-set-multiple-commands-in-one-yaml-file-with-kubernetes.md): Learn how to define and run multiple commands in a Kubernetes Pod using a single YAML manifest. This guide covers best practices and real-world examples for multi-step container initialization. - [How to Iterate Over a Range of Numbers in Bash Using Variables](https://devops-daily.com/posts/bash-iterate-number-range-variables.md): Learn different methods to loop through number ranges defined by variables in Bash, from simple for loops to advanced sequence generation techniques. - [How to Remove a Docker Image](https://devops-daily.com/posts/docker-remove-image.md): Learn how to safely remove Docker images, clean up unused layers, and avoid common pitfalls when managing local images. - [How to See Docker Image Contents](https://devops-daily.com/posts/docker-see-image-contents.md): Explore the contents of a Docker image using practical commands. Learn how to inspect layers, browse files, and debug images locally. - [How to Decode a Kubernetes Secret](https://devops-daily.com/posts/how-to-decode-a-kubernetes-secret.md): Kubernetes secrets store sensitive data in base64-encoded form. Learn how to safely decode and inspect these secrets using kubectl and command-line tools. - [How to Reload .bashrc Settings Without Logging Out](https://devops-daily.com/posts/reload-bashrc-without-logout.md): Need to apply changes to your .bashrc file immediately? Learn multiple methods to reload your Bash configuration without restarting your terminal session. - [How to Include Files Outside of Docker's Build Context](https://devops-daily.com/posts/docker-include-files-outside-build-context.md): Learn why Docker restricts file access during builds, and how to work around this limitation to include files outside the build context. - [How to List Containers in Docker](https://devops-daily.com/posts/docker-list-containers.md): Learn how to list running and stopped Docker containers, filter by status, and get useful details for troubleshooting and management. - [Terraform Statefile is Locked: How to Unlock It](https://devops-daily.com/posts/terraform-statefile-locked.md): Learn how to unlock a locked Terraform statefile using the `force-unlock` command and best practices to avoid future locks. - [Looping Through File Content Line by Line in Bash](https://devops-daily.com/posts/bash-loop-through-file-content.md): Learn multiple techniques to read and process file content line by line in Bash scripts, including handling special characters and preserving whitespace. - [How to Manage Multiple Environments in Kubernetes (Staging, QA, Production)](https://devops-daily.com/posts/how-to-manage-multiple-environments-in-kubernetes.md): Learn practical strategies for managing multiple Kubernetes environments like staging, QA, and production. This guide covers namespace organization, configuration management, and deployment workflows. - [How to Restart a Container Within a Kubernetes Pod](https://devops-daily.com/posts/how-to-restart-container-within-pod.md): Learn practical ways to restart a container inside a Kubernetes pod, including when and why you might need to do this, and the best approaches for different scenarios. - [Kubernetes Pods Keep Crashing with CrashLoopBackOff but No Logs Found](https://devops-daily.com/posts/kubernetes-pods-crashloopbackoff-no-logs.md): Troubleshoot Kubernetes pods stuck in CrashLoopBackOff with no logs. Learn why this happens and how to diagnose and resolve the issue. - [Kubernetes Deployments vs StatefulSets](https://devops-daily.com/posts/kubernetes-deployments-vs-statefulsets.md): Understand the differences between Kubernetes Deployments and StatefulSets, when to use each, and how they impact your application's behavior and scaling. ## Exercises - [Email Authentication: Build SPF, DKIM and DMARC, Then Break Them](https://devops-daily.com/exercises/email-authentication-spf-dkim-dmarc): Run a mail server on your laptop, send messages into it, and work out by hand why receivers accept or reject them. You sign a message with DKIM, change one character, and watch the signature fail. You separate the envelope sender from the From header the reader sees, which is the whole point of DMARC alignment. Then you send through a provider and compare its headers with the ones you built yourself. (intermediate, 80 minutes) - [Creating and Connecting to Your First Linux Server](https://devops-daily.com/exercises/cloud-server-setup): Spin up an Ubuntu 24.04 Linux server in the cloud, configure SSH key authentication, and learn to navigate your new server. This exercise uses DigitalOcean but the steps work with any cloud provider. (beginner, 30 minutes) - [Running Docker Containers on Your Linux Server](https://devops-daily.com/exercises/docker-server-deployment): Install Docker and Docker Compose on Ubuntu, run your first container, deploy a WordPress stack with docker-compose, and set up Nginx as a reverse proxy in front of your containers. (intermediate, 60 minutes) - [Securing Your Linux Server: Essential First Steps](https://devops-daily.com/exercises/linux-server-security): Harden a fresh Ubuntu 24.04 server by creating a non-root user, locking down SSH, configuring a firewall with UFW, and setting up fail2ban to block brute-force attacks. (beginner, 45 minutes) - [Deploying a Web Application with Nginx and SSL](https://devops-daily.com/exercises/nginx-web-deployment): Install Nginx on your Ubuntu server, configure server blocks for your domain, and set up free SSL certificates with Let's Encrypt and Certbot. (intermediate, 60 minutes) - [Linux Server Monitoring and Maintenance Essentials](https://devops-daily.com/exercises/server-monitoring-maintenance): Learn to monitor system resources, manage logs, configure automatic security updates, and set up basic alerting with cron jobs on your Ubuntu server. (intermediate, 45 minutes) - [Git Workflow and Collaboration Fundamentals](https://devops-daily.com/exercises/git-workflow-collaboration): Master essential Git workflows, branching strategies, and collaboration techniques used in modern development teams. (beginner, 50 minutes) - [Redis Caching Strategies for Scalable Applications](https://devops-daily.com/exercises/redis-caching-strategies): Implement production-ready caching patterns with Redis to dramatically improve application performance and scalability. (intermediate, 70 minutes) - [Linux Performance Tuning and Troubleshooting](https://devops-daily.com/exercises/linux-performance-troubleshooting): Master essential Linux performance analysis and optimization techniques to diagnose and resolve system bottlenecks. (intermediate, 80 minutes) - [Nginx Load Balancing and Reverse Proxy](https://devops-daily.com/exercises/nginx-load-balancing-reverse-proxy): Master load balancing and reverse proxy patterns with Nginx to build resilient, scalable infrastructure. (intermediate, 75 minutes) - [Complete Web Server Automation with Ansible](https://devops-daily.com/exercises/ansible-web-server-automation): Build a comprehensive Ansible playbook to automate web server deployment, configuration, and security hardening across multiple environments. (intermediate, 75 minutes) - [Deploy a DigitalOcean Droplet with Terraform](https://devops-daily.com/exercises/terraform-digitalocean-droplet): Learn Infrastructure as Code basics by deploying a simple web server on DigitalOcean using Terraform. Perfect for beginners starting their IaC journey. (beginner, 60 minutes) - [Microservices Observability with OpenTelemetry](https://devops-daily.com/exercises/microservices-observability-opentelemetry): Implement comprehensive observability for microservices using OpenTelemetry for distributed tracing, metrics, and logging across multiple services. (advanced, 140 minutes) - [Infrastructure Security with Vault and SOPS](https://devops-daily.com/exercises/infrastructure-security-vault-sops): Implement enterprise-grade secret management using HashiCorp Vault and SOPS for encrypted GitOps workflows. (advanced, 100 minutes) - [GitOps with ArgoCD - Automated Kubernetes Deployments](https://devops-daily.com/exercises/gitops-argocd-deployment): Implement GitOps workflows using ArgoCD for automated, declarative, and auditable Kubernetes application deployments. (advanced, 120 minutes) - [Helm Charts and Kubernetes Package Management](https://devops-daily.com/exercises/helm-kubernetes-packaging): Learn Kubernetes application deployment and management using Helm charts with templates, values, and lifecycle management. (intermediate, 90 minutes) - [Docker Multi-Stage Build Optimization](https://devops-daily.com/exercises/docker-multi-stage-build): Learn to create efficient Docker images using multi-stage builds to reduce image size and improve security. (intermediate, 60 minutes) - [Kubernetes Horizontal Pod Autoscaler](https://devops-daily.com/exercises/kubernetes-hpa-lab): Configure and test Horizontal Pod Autoscaler to automatically scale applications based on CPU and memory usage. (advanced, 90 minutes) - [AWS VPC with Terraform](https://devops-daily.com/exercises/terraform-aws-vpc): Build a complete AWS VPC infrastructure using Terraform with public/private subnets, NAT gateway, and security groups. (intermediate, 120 minutes) - [Complete CI/CD Pipeline with GitHub Actions](https://devops-daily.com/exercises/ci-cd-github-actions): Hands-on lab: build a production CI/CD pipeline with GitHub Actions, including tests, security scanning, container builds, and automated deployment. (intermediate, 90 minutes) - [Complete Monitoring Stack Setup](https://devops-daily.com/exercises/prometheus-grafana-monitoring): Deploy and configure Prometheus and Grafana for comprehensive application and infrastructure monitoring. (advanced, 150 minutes) ## Quizzes - [Ansible Configuration Management Quiz](https://devops-daily.com/quizzes/ansible-quiz): Test your Ansible skills with playbooks, roles, inventory management, and automation scenarios for infrastructure configuration - [GitOps with Argo CD: Multi-Environment Repository Structure Quiz](https://devops-daily.com/quizzes/argocd-multi-environment-quiz): Test your knowledge of structuring Git repositories for Argo CD deployments across dev, staging, and production environments. Covers repo layout patterns, ApplicationSets, Kustomize overlays, Helm value files, and sync policies. - [AWS Cloud Services Quiz](https://devops-daily.com/quizzes/aws-quiz): Master cloud architecture through real-world AWS scenarios covering compute, storage, networking, and best practices - [Back-of-the-Envelope Estimation Quiz](https://devops-daily.com/quizzes/back-of-the-envelope-estimation-quiz): The napkin-math skill that makes or breaks a system design interview: turning users into QPS, data into storage, traffic into bandwidth, and knowing the latency numbers every engineer should have memorised. - [CI/CD Fundamentals Quiz](https://devops-daily.com/quizzes/cicd-fundamentals-quiz): Master the basics of Continuous Integration and Continuous Deployment, including pipelines, version control, automated testing, and deployment strategies - [CI/CD Pipelines Quiz](https://devops-daily.com/quizzes/cicd-pipelines-quiz): Test your CI/CD pipeline knowledge with scenarios covering build stages, artifact promotion, environment strategy, deployment patterns, and rollbacks. - [Cloud Cost Allocation Tags Quiz](https://devops-daily.com/quizzes/cloud-cost-allocation-tags-quiz): Debug tagging gaps, fix broken cost reports, and set up consistent allocation tags across AWS, GCP, and Azure for accurate chargeback and showback - [Cloud Cost Optimization Quiz](https://devops-daily.com/quizzes/cloud-cost-optimization-quiz): Investigate mysterious cost spikes, hunt down wasteful spending, and optimize your cloud bill like a detective solving financial crimes - [Concurrency and Race Conditions Quiz](https://devops-daily.com/quizzes/concurrency-and-race-conditions-quiz): The bugs that only show up under load and never in a debugger: race conditions, deadlocks, memory visibility, lock-free pitfalls, and the difference between code that looks correct and code that is actually thread-safe. - [DevOps Interview Questions Quiz](https://devops-daily.com/quizzes/devops-interview-quiz): Prepare for your DevOps interviews with real questions asked by top companies covering CI/CD, Kubernetes, IaC, monitoring, and incident management - [DevOps Engineering Quiz](https://devops-daily.com/quizzes/devops-quiz): Test your knowledge of DevOps practices with real-world scenarios covering CI/CD, infrastructure, monitoring, and incident response - [Distributed Systems Fundamentals Quiz](https://devops-daily.com/quizzes/distributed-systems-fundamentals-quiz): Test your grasp of the theory that decides whether a distributed system stays correct under stress: CAP and PACELC, consistency models, quorums, consensus, clocks, and the failure modes that only appear at scale. - [Docker Fundamentals Quiz](https://devops-daily.com/quizzes/docker-quiz): Test your Docker knowledge with questions on containers, images, Dockerfile instructions, volumes, networks, Compose, and basic orchestration concepts. - [eBPF for Network Observability and Security Quiz](https://devops-daily.com/quizzes/ebpf-network-observability-quiz): Test your understanding of eBPF with real scenarios covering the verifier, maps, XDP and tc hooks, CO-RE portability, kube-proxy replacement, runtime security, and debugging programs that won't load. - [Git Command Quiz](https://devops-daily.com/quizzes/git-quiz): Test your Git command knowledge with real-world scenarios covering commits, branching, merging, rebasing, remotes, and recovering from common mistakes. - [GitHub Actions Workflows Quiz](https://devops-daily.com/quizzes/github-actions-quiz): Master GitHub Actions workflows, YAML syntax, marketplace actions, and modern CI/CD automation - [Helm Charts & Package Management Quiz](https://devops-daily.com/quizzes/helm-charts-quiz): Master Kubernetes app deployment through real-world Helm scenarios covering chart creation, dependency management, and complex templating challenges - [How Does It Work So Fast? - System Design Speed Tricks](https://devops-daily.com/quizzes/how-does-it-work-fast-quiz): Test your knowledge of the clever algorithms and infrastructure patterns that make everyday features feel instant. Covers credit card validation, bloom filters, tries, URL shorteners, typing indicators, CDNs, DNS caching, and load balancer health checks. - [Production Incident Response Quiz](https://devops-daily.com/quizzes/incident-response-quiz): Test your skills handling real production outages, performance issues, and system failures under pressure - [Building an Internal Developer Platform Quiz](https://devops-daily.com/quizzes/internal-developer-platform-quiz): Test your knowledge of designing and building internal developer platforms that improve developer productivity and self-service capabilities - [Istio Traffic Management Quiz](https://devops-daily.com/quizzes/istio-traffic-management-quiz): Test your knowledge of Istio traffic management with real scenarios covering VirtualServices, DestinationRules, weighted routing, retries, circuit breakers, and production debugging. - [Jenkins CI/CD Pipeline Quiz](https://devops-daily.com/quizzes/jenkins-quiz): Test your Jenkins skills with questions on declarative and scripted pipelines, Groovy syntax, agents, plugins, shared libraries, and CI/CD automation patterns. - [Junior DevOps Engineer Interview Quiz](https://devops-daily.com/quizzes/junior-devops-interview-quiz): Entry-level DevOps interview preparation covering Linux fundamentals, Git basics, Docker essentials, CI/CD concepts, cloud computing, scripting, and monitoring fundamentals - [Kubernetes Operators Interview Quiz](https://devops-daily.com/quizzes/kubernetes-operators-quiz): Test your knowledge of Kubernetes Operators through real-world interview scenarios covering custom resources, controllers, reconciliation loops, and Operator SDK - [Kubernetes Fundamentals Quiz](https://devops-daily.com/quizzes/kubernetes-quiz): Learn Kubernetes concepts through practical scenarios covering pods, services, deployments, and troubleshooting - [Linux Command Line Quiz](https://devops-daily.com/quizzes/linux-quiz): Master the terminal through real-world system administration scenarios covering file management, process control, and troubleshooting - [Running Your First Chaos Experiment with Litmus Quiz](https://devops-daily.com/quizzes/litmus-chaos-engineering-quiz): Test your knowledge of Litmus Chaos with real scenarios covering installation, ChaosEngines, probes, blast radius controls, workflows, and debugging stuck experiments. - [Message Queues and Delivery Guarantees Quiz](https://devops-daily.com/quizzes/message-queues-delivery-guarantees-quiz): At-least-once, at-most-once, and the exactly-once myth: idempotent consumers, visibility timeouts, dead-letter queues, ordering, offset commits, and the outbox pattern that the queue-backed systems you design actually depend on. - [Monitoring Beginner Quiz](https://devops-daily.com/quizzes/monitoring-basics-quiz): Master the fundamentals of monitoring, metrics, logging, alerting, and observability concepts for effective system health management - [Monitoring & Observability Quiz](https://devops-daily.com/quizzes/monitoring-observability-quiz): Master application monitoring, metrics collection, logging, and observability best practices - [Multi-Region Active-Active Architecture on AWS Quiz](https://devops-daily.com/quizzes/multi-region-active-active-aws-quiz): Test how you would design an active-active application across AWS regions: routing with Route 53 and Global Accelerator, multi-region data with DynamoDB global tables and Aurora, conflict resolution, idempotency, and the failover patterns that hold up during a real regional event. - [Network & Security Fundamentals Quiz](https://devops-daily.com/quizzes/network-security-quiz): Test your knowledge of networking protocols, security best practices, firewalls, VPNs, and cloud security for DevOps engineers - [On-Call Rotation and Escalation Policy Quiz](https://devops-daily.com/quizzes/on-call-rotation-quiz): Test your skills designing on-call schedules, escalation paths, and alerting strategies that keep engineers sane and incidents short. - [OpenTelemetry Distributed Tracing Quiz](https://devops-daily.com/quizzes/opentelemetry-distributed-tracing-quiz): Test your knowledge of OpenTelemetry tracing with real scenarios covering instrumentation, context propagation, the Collector, sampling strategies, and reading trace waterfalls in production. - [Python Fundamentals Quiz](https://devops-daily.com/quizzes/python-quiz): Master Python through real-world scenarios covering syntax, data structures, OOP, and advanced concepts - [Rate Limiting for APIs Quiz](https://devops-daily.com/quizzes/rate-limiting-apis-quiz): Test how you would design and run API rate limiting in production: token bucket, leaky bucket, fixed and sliding windows, distributed counters, response headers, and the failure modes that bite at scale. - [Security Incident Response Quiz](https://devops-daily.com/quizzes/security-incident-response-quiz): Test your ability to detect, respond to, and mitigate security incidents including breaches, attacks, and vulnerabilities - [SLOs, SLIs, and Error Budgets Quiz](https://devops-daily.com/quizzes/slos-slis-error-budgets-quiz): Test your ability to define service level objectives, pick the right service level indicators, calculate error budgets, and make real decisions when budget runs low. - [SMTP and Email Deliverability Quiz](https://devops-daily.com/quizzes/smtp-email-deliverability-quiz): Test yourself on the parts of email that actually break: envelope versus header senders, SPF and DKIM alignment, what DMARCbis changed, bounce handling, and why correct records are not the same as good deliverability - [SQL & Database Design Quiz](https://devops-daily.com/quizzes/sql-quiz): Master database design and SQL through real business scenarios covering queries, optimization, design patterns, and data modeling - [Site Reliability Engineering (SRE) Quiz](https://devops-daily.com/quizzes/sre-quiz): Master SRE concepts: service level objectives, error budgets, toil reduction, and incident management for building reliable systems - [System Design Fundamentals Quiz](https://devops-daily.com/quizzes/system-design-quiz): Test your system design skills with questions on load balancing, caching, sharding, replication, queues, consistency models, and distributed system tradeoffs. - [Terraform Fundamentals Quiz](https://devops-daily.com/quizzes/terraform-quiz): Test your Infrastructure as Code knowledge with practical Terraform scenarios and best practices - [HashiCorp Vault Secrets Management Quiz](https://devops-daily.com/quizzes/vault-secrets-management-quiz): Test how you run HashiCorp Vault in production: dynamic database credentials, leases and TTLs, least-privilege policies, AppRole and Kubernetes auth, the Transit engine, auto-unseal, audit logging, and fast revocation when something gets compromised. - [Zero-Downtime PostgreSQL Migrations Quiz](https://devops-daily.com/quizzes/zero-downtime-postgres-migrations-quiz): Test your skills shipping schema changes against a live PostgreSQL database without dropping traffic, breaking deploys, or locking out writers. ## Flashcards - [Ansible Basics](https://devops-daily.com/flashcards/ansible-basics): Learn Ansible automation fundamentals including playbooks, roles, inventory, modules, variables, and configuration management best practices. (14 cards) - [ArgoCD Fundamentals](https://devops-daily.com/flashcards/argocd-fundamentals): Master GitOps principles and ArgoCD essentials including app deployment, sync policies, multi-cluster management, and security best practices. (18 cards) - [AWS Essentials](https://devops-daily.com/flashcards/aws-essentials): Learn core AWS services including EC2, S3, VPC, IAM, and best practices for security, cost optimization, and the Well-Architected Framework. (22 cards) - [AWS Lambda Cold Start Optimization](https://devops-daily.com/flashcards/aws-lambda-cold-start-optimization): How cold starts actually work in AWS Lambda and the techniques that cut them down: runtime and memory choices, code and package tuning, provisioned concurrency, and SnapStart. (18 cards) - [Building an Internal Developer Platform](https://devops-daily.com/flashcards/internal-developer-platform): Step-by-step guide to designing and building an internal developer platform (IDP) that improves developer productivity, self-service capabilities, and platform engineering best practices. (16 cards) - [Chaos Engineering with Litmus](https://devops-daily.com/flashcards/litmus-chaos-engineering): Run your first controlled failure experiments on Kubernetes with Litmus. Covers core concepts, CRDs, the pod-delete experiment, probes, and safe production practice. (16 cards) - [CI/CD Concepts](https://devops-daily.com/flashcards/cicd-concepts): Understand continuous integration and deployment fundamentals including pipeline stages, testing strategies, deployment patterns, and CI/CD tools. (17 cards) - [Cloud Cost Allocation Tags Across AWS, GCP, and Azure](https://devops-daily.com/flashcards/cloud-cost-allocation-tags): Learn how to set up consistent cost allocation tagging strategies across multi-cloud environments for accurate chargeback and showback reporting. (16 cards) - [Designing Rate Limiting for APIs](https://devops-daily.com/flashcards/api-rate-limiting): Token bucket, leaky bucket, fixed and sliding window algorithms, plus the patterns for building rate limiters that work in distributed systems without falling over. (17 cards) - [Distributed Tracing with OpenTelemetry](https://devops-daily.com/flashcards/opentelemetry-distributed-tracing): Learn how OpenTelemetry works end to end: instrumenting services, propagating context, running the Collector, sampling traces, and visualizing them in Jaeger or Tempo. (16 cards) - [Docker Essentials](https://devops-daily.com/flashcards/docker-essentials): Flashcards covering core Docker concepts: containers vs images, layers, volumes, networks, build cache, registries, and the day-to-day Docker CLI. (15 cards) - [Git Fundamentals](https://devops-daily.com/flashcards/git-fundamentals): Master essential Git commands, workflows, and version control concepts. (18 cards) - [GitOps with Argo CD: Structuring Your Repository for Multi-Environment Deployments](https://devops-daily.com/flashcards/gitops-argocd-repo-structure): Best practices for organizing Git repositories when using Argo CD to manage deployments across development, staging, and production environments. (16 cards) - [Helm Fundamentals](https://devops-daily.com/flashcards/helm-fundamentals): Master Helm package manager for Kubernetes including charts, releases, values, templates, hooks, and repository management. (14 cards) - [Implementing Pod Security Standards in Kubernetes](https://devops-daily.com/flashcards/pod-security-standards-kubernetes): Enforce the Baseline, Restricted, and Privileged profiles with the built-in Pod Security Admission controller. Covers namespace labels, modes, version pinning, and where you still need a policy engine. (17 cards) - [Kubernetes Fundamentals](https://devops-daily.com/flashcards/kubernetes-basics): Master essential Kubernetes concepts with these flashcards covering Pods, Services, Deployments, and more. (20 cards) - [Linux Fundamentals](https://devops-daily.com/flashcards/linux-fundamentals): Essential Linux knowledge covering file system hierarchy, process management, permissions, common commands, and system monitoring. (20 cards) - [Monitoring & Observability](https://devops-daily.com/flashcards/monitoring-observability): Learn monitoring fundamentals including metrics, logs, traces, Prometheus, Grafana, alerting strategies, and SLIs/SLOs/SLAs. (16 cards) - [Multi-Region Active-Active Architecture on AWS](https://devops-daily.com/flashcards/aws-multi-region-active-active): Patterns and trade-offs for running active-active workloads across AWS regions: routing, data replication, conflict resolution, and what it actually costs you in complexity. (17 cards) - [On-Call Rotations and Escalation Policies](https://devops-daily.com/flashcards/on-call-rotation-escalation-policy): Practical advice for designing on-call schedules, defining escalation paths, and reducing alert fatigue for engineering teams. (16 cards) - [Secrets Management with HashiCorp Vault](https://devops-daily.com/flashcards/vault-secrets-management): How to run HashiCorp Vault in production: auth and policies, static and dynamic secrets, encryption as a service, and the operational habits that keep a leaked credential from becoming an incident. (18 cards) - [Service Mesh Traffic Management with Istio](https://devops-daily.com/flashcards/istio-traffic-management): Learn how to configure advanced traffic management policies in Istio including weighted routing, automatic retries, and circuit breaker patterns for production services. (16 cards) - [SLOs, SLIs, and Error Budgets](https://devops-daily.com/flashcards/slos-slis-error-budgets): A practical guide to defining service level objectives, choosing meaningful service level indicators, and managing error budgets for production services. (16 cards) - [System Design Speed Tricks - How Things Work So Fast](https://devops-daily.com/flashcards/system-design-speed-tricks): Learn the algorithms, data structures, and infrastructure patterns that make modern systems respond in milliseconds. From client-side validation to global routing, understand why things feel instant. (14 cards) - [Terraform Basics](https://devops-daily.com/flashcards/terraform-basics): Learn Infrastructure as Code fundamentals with Terraform. (16 cards) - [Understanding eBPF for Network Observability and Security](https://devops-daily.com/flashcards/ebpf-network-observability): Learn how eBPF runs verified programs inside the Linux kernel to give you network visibility, low overhead monitoring, and security enforcement without kernel modules or app changes. (16 cards) - [Zero-Downtime Database Migrations for PostgreSQL](https://devops-daily.com/flashcards/postgresql-zero-downtime-migrations): Practical techniques for changing schemas on busy PostgreSQL databases without taking the app down, including expand-and-contract, online DDL, and safe backfills. (17 cards) ## Checklists - [Argo CD Multi-Environment Repository Structure Checklist](https://devops-daily.com/checklists/argocd-multi-environment-repo-structure): How to organize your Git repositories when running Argo CD across dev, staging, and production. Covers folder layout, app-of-apps, ApplicationSets, secrets, RBAC, and promotion flow. - [AWS Security Checklist](https://devops-daily.com/checklists/aws-security): Essential security configuration checklist for AWS cloud environments. - [AWS Well-Architected Review Checklist](https://devops-daily.com/checklists/aws-well-architected): Comprehensive checklist based on AWS Well-Architected Framework covering operational excellence, security, reliability, performance efficiency, cost optimization, and sustainability. - [Building an Internal Developer Platform from Scratch](https://devops-daily.com/checklists/internal-developer-platform): A step-by-step checklist for designing and building an internal developer platform (IDP) that gives your engineers self-service access to infrastructure, environments, and deployments without filing tickets. - [CI/CD Pipeline Setup Checklist](https://devops-daily.com/checklists/cicd-pipeline-setup): Step-by-step checklist for a production-ready CI/CD pipeline: source control, builds, tests, security scans, deploy gates, secrets, and rollback paths. - [Designing Rate Limiting for APIs: Algorithms, Patterns, and Implementation](https://devops-daily.com/checklists/api-rate-limiting): Pick the right rate limiting algorithm for your traffic shape, build it on shared atomic state, and ship it with the response headers, failure modes, and monitoring that keep both your API and your clients working. - [Distributed Tracing with OpenTelemetry: From Instrumentation to Visualization](https://devops-daily.com/checklists/distributed-tracing-opentelemetry): A practical checklist for adding OpenTelemetry tracing to your services, shipping spans through the Collector, and turning that data into something you can actually debug with. - [Docker Security Hardening Checklist](https://devops-daily.com/checklists/docker-security): Comprehensive security checklist for hardening Docker containers, images, and runtime environments. - [GitOps Implementation Checklist](https://devops-daily.com/checklists/gitops-implementation): Comprehensive checklist for implementing GitOps practices with repository structure, sync policies, secret management, and deployment strategies. - [HashiCorp Vault Secrets Management Checklist](https://devops-daily.com/checklists/hashicorp-vault-secrets-management): Set up and run HashiCorp Vault in production: HA storage, TLS, auto-unseal, dynamic secrets, encryption as a service, and the policies, audit, and backups that keep it safe. - [High Availability Architecture Checklist](https://devops-daily.com/checklists/high-availability): Comprehensive checklist for designing and implementing highly available systems with load balancing, failover, and redundancy. - [How to Build an Effective On-Call Rotation and Escalation Policy](https://devops-daily.com/checklists/on-call-rotation-escalation-policy): A practical checklist for designing on-call schedules, defining escalation paths, and cutting alert fatigue so your team can sleep at night and still respond fast when things break. - [How to Implement Progressive Delivery with Feature Flags](https://devops-daily.com/checklists/progressive-delivery-feature-flags): A step-by-step checklist for implementing progressive delivery using feature flags, canary releases, and gradual rollouts so you can ship to production without breaking things. - [How to Set Up Cloud Cost Allocation Tags Across AWS, GCP, and Azure](https://devops-daily.com/checklists/cloud-cost-allocation-tags): A practical guide to implementing consistent cost allocation tagging strategies across multi-cloud environments for accurate chargeback and showback. - [Istio Traffic Management Checklist: Routing, Retries, and Circuit Breaking](https://devops-daily.com/checklists/istio-traffic-management): How to configure traffic management policies in Istio so your services can do canary releases, retry transient failures, and shed load when a downstream service goes bad. Covers VirtualService, DestinationRule, retries, timeouts, circuit breakers, and outlier detection. - [Kubernetes Security Checklist](https://devops-daily.com/checklists/kubernetes-security): Essential security checklist for Kubernetes clusters to ensure production readiness. - [Monitoring & Observability Checklist](https://devops-daily.com/checklists/monitoring-observability): Comprehensive checklist for implementing monitoring, logging, tracing, and alerting across your infrastructure and applications. - [Multi-Region Active-Active Architecture on AWS Checklist](https://devops-daily.com/checklists/multi-region-active-active-aws): A build checklist for running active-active applications across AWS regions: traffic routing, multi-region data and conflict resolution, the application changes that make failover work, and the cost you sign up for. - [Production Deployment Checklist](https://devops-daily.com/checklists/production-deployment): Pre-deployment checklist to ensure safe and successful production releases. - [Running Your First Chaos Engineering Experiment with Litmus](https://devops-daily.com/checklists/litmus-chaos-engineering-experiment): How to install Litmus on Kubernetes and run a controlled failure experiment from a written hypothesis to a verdict you can act on, without breaking production by accident. - [SLOs, SLIs, and Error Budgets: A Practical Implementation Guide](https://devops-daily.com/checklists/slos-slis-error-budgets): A step-by-step checklist for defining service level objectives, picking the right service level indicators, and using error budgets to make better decisions about reliability vs. feature velocity. - [SSH Hardening Checklist](https://devops-daily.com/checklists/ssh-hardening): Comprehensive guide to harden your SSH server configuration and improve security. - [Terraform Repository Structure Checklist](https://devops-daily.com/checklists/terraform-repo-structure): Best practices for organizing and structuring your Terraform projects for maintainability and scalability. - [Zero-Downtime PostgreSQL Migrations in Production](https://devops-daily.com/checklists/zero-downtime-postgres-migrations): How to change a live PostgreSQL schema without taking the app down: the expand-and-contract pattern, online DDL with CONCURRENTLY and NOT VALID, batched backfills, and the lock monitoring that lets you do it with confidence. ## Interview Questions - [Bootstrapping Argo CD and Letting It Manage Itself](https://devops-daily.com/interview-questions/junior/argocd-bootstrapping-self-management): Argo CD manages your apps. Who manages Argo CD? Walk me through how you would bootstrap it from a fresh cluster and where its own config lives in your repo. - [Structuring a Git Repo for Argo CD Multi-Environment Deployments](https://devops-daily.com/interview-questions/junior/argocd-multi-env-repo-structure): How would you structure a Git repo for Argo CD when you have dev, staging, and prod environments? - [AWS VPC Networking Fundamentals](https://devops-daily.com/interview-questions/junior/aws-vpc-networking): Explain the difference between public and private subnets in AWS VPC. How do instances in private subnets access the internet? - [Bash Scripting Basics](https://devops-daily.com/interview-questions/junior/bash-scripting-basics): What is the shebang line and how do you write a basic bash script? - [CI/CD Pipeline Stages](https://devops-daily.com/interview-questions/junior/cicd-pipeline-stages): What are the typical stages of a CI/CD pipeline and why is each stage important? - [Cloud IAM Basics](https://devops-daily.com/interview-questions/junior/cloud-iam-basics): What is IAM in cloud computing? Explain the concepts of users, roles, and policies. - [Cloud Regions and Availability Zones](https://devops-daily.com/interview-questions/junior/cloud-regions-availability-zones): What are cloud regions and availability zones? How do they affect application architecture? - [Configuration Management Basics](https://devops-daily.com/interview-questions/junior/configuration-management-basics): What is configuration management? Why is it important and what tools are commonly used? - [Container Orchestration Basics](https://devops-daily.com/interview-questions/junior/container-orchestration-basics): What is container orchestration and why do we need it? Name some common orchestration platforms. - [Cost Allocation Tags Basics](https://devops-daily.com/interview-questions/junior/cost-allocation-tags-basics): Can you explain what cost allocation tags are and why teams use them across AWS, GCP, and Azure? - [Docker Container Basics](https://devops-daily.com/interview-questions/junior/docker-basics): What is the difference between a Docker image and a container? How do they relate to each other? - [Dockerfile Best Practices](https://devops-daily.com/interview-questions/junior/dockerfile-best-practices): What is the difference between a Docker image and a container? What are some Dockerfile best practices? - [Environment Variables](https://devops-daily.com/interview-questions/junior/environment-variables): What are environment variables and how do you use them in Linux? How do you make them persistent? - [Git Staging and Committing](https://devops-daily.com/interview-questions/junior/git-basics): Explain the Git staging area. What is the difference between git add, git commit, and git push? - [Git Branching Strategies](https://devops-daily.com/interview-questions/junior/git-branching-strategies): What are common Git branching strategies? Describe GitFlow or trunk-based development. - [Git Rebase vs Merge](https://devops-daily.com/interview-questions/junior/git-rebase-vs-merge): What is the difference between git rebase and git merge? When would you use each? - [Git Workflow Strategies](https://devops-daily.com/interview-questions/junior/git-workflow-strategies): Describe some common Git workflows used in team environments. What are the pros and cons of each? - [HTTP Methods and Status Codes](https://devops-daily.com/interview-questions/junior/http-basics): What are the main HTTP methods and what do common status codes like 200, 404, and 500 mean? - [Internal Developer Platform Purpose](https://devops-daily.com/interview-questions/junior/idp-what-and-why): Your team keeps filing tickets for things like creating new services, setting up databases, and getting access to staging environments. Your CTO asks you to fix this. What would you build, and why? - [VirtualService vs DestinationRule](https://devops-daily.com/interview-questions/junior/istio-virtualservice-vs-destinationrule): In Istio, what's the difference between a VirtualService and a DestinationRule? When would you use each? - [Linux File Permissions](https://devops-daily.com/interview-questions/junior/linux-file-permissions): Explain Linux file permissions. What does the permission 'rwxr-xr--' mean? - [Using grep for Text Search](https://devops-daily.com/interview-questions/junior/linux-grep-text-search): How do you use grep to search for text patterns in files? What are some useful flags? - [Linux Package Management](https://devops-daily.com/interview-questions/junior/linux-package-management): How do you install and manage software packages in Linux? What's the difference between apt and yum? - [Linux System Logs](https://devops-daily.com/interview-questions/junior/linux-system-logs): Where are system logs stored in Linux and how do you view them? - [Litmus Building Blocks: ChaosEngine vs ChaosExperiment](https://devops-daily.com/interview-questions/junior/litmus-core-resources-explained): You install Litmus on a cluster and want to kill a pod to see what happens. Walk me through the pieces Litmus gives you, and what is the actual difference between a ChaosExperiment and a ChaosEngine? - [Four Golden Signals of Monitoring](https://devops-daily.com/interview-questions/junior/monitoring-golden-signals): What are the four golden signals of monitoring and why are they important? - [DNS Basics](https://devops-daily.com/interview-questions/junior/networking-basics-dns): What is DNS and how does the DNS resolution process work step by step? - [On-Call Rotation and Escalation Basics](https://devops-daily.com/interview-questions/junior/on-call-rotation-escalation-basics): You're about to go on-call for the first time. In your own words, what is an on-call rotation, and why do teams bother setting up a formal escalation policy instead of just pinging whoever happens to be online when something breaks? - [Traces and Spans Explained](https://devops-daily.com/interview-questions/junior/otel-traces-spans-basics): A request hits your API gateway, which calls two backend services, and one of those queries a database. Walk me through what that looks like as a distributed trace. What is a span, and how do spans connect to each other? - [Progressive Delivery Basics](https://devops-daily.com/interview-questions/junior/progressive-delivery-feature-flags-basics): What is progressive delivery and how does it differ from traditional continuous delivery? - [Shell Scripting Fundamentals](https://devops-daily.com/interview-questions/junior/shell-scripting-fundamentals): What are the essential components of a shell script? Explain variables, conditionals, and loops. - [SLO vs SLI vs SLA Differences](https://devops-daily.com/interview-questions/junior/sre-slo-sli-sla-differences): Your team just launched a new API service. Your manager asks you to set up SLOs for it. Can you walk me through what SLOs, SLIs, and SLAs are, and how they relate to each other? - [SSH Basics and Key Authentication](https://devops-daily.com/interview-questions/junior/ssh-basics): How does SSH key authentication work? How do you set it up? - [DNS Resolution When You Type a URL](https://devops-daily.com/interview-questions/junior/system-design-dns-resolution): Walk me through what happens when you type a URL and press Enter, focusing specifically on the DNS resolution process. - [Instant Credit Card Validation](https://devops-daily.com/interview-questions/junior/system-design-instant-validation): How does a credit card form validate numbers instantly, before even contacting the bank? - [TCP/IP Fundamentals](https://devops-daily.com/interview-questions/junior/tcp-ip-basics): Explain the difference between TCP and UDP. When would you use each? - [YAML and JSON Configuration Formats](https://devops-daily.com/interview-questions/junior/yaml-json-basics): What are YAML and JSON? When would you use each format in DevOps? - [Activating Tags in Billing Reports](https://devops-daily.com/interview-questions/mid/activating-cost-allocation-tags): Your team tagged every resource with team and environment, but the tags are not showing up in cost reports. What is going on, and how is this different on AWS, GCP, and Azure? - [Application Code vs Kubernetes Manifests in Separate Repos](https://devops-daily.com/interview-questions/mid/argocd-app-code-vs-manifests-repo): Should your application source code and Kubernetes manifests live in the same repo or in separate repos? What is your take? - [Helm vs Kustomize for Per-Environment Config](https://devops-daily.com/interview-questions/mid/argocd-helm-vs-kustomize-multi-env): Helm or Kustomize for handling environment differences in an Argo CD repo? Walk me through how you would pick and what the repo layout looks like for each. - [Using Kustomize Overlays for Per-Environment Config](https://devops-daily.com/interview-questions/mid/argocd-kustomize-overlays-environments): Walk me through how you would use Kustomize overlays to handle config that differs between dev and prod in an Argo CD setup. - [Organizing a Shared Manifests Repo for Multiple Teams](https://devops-daily.com/interview-questions/mid/argocd-multi-team-manifests-repo): Three teams share one Argo CD instance and one manifests repo. How do you lay it out so each team can ship without waiting on each other and can't accidentally deploy each other's stuff? - [Handling Secrets in an Argo CD Manifests Repo](https://devops-daily.com/interview-questions/mid/argocd-secrets-in-gitops-repo): Secrets can't go into Git in plaintext. How do you handle them in an Argo CD setup, and what does that look like in your repo structure? - [Blue-Green Deployment Strategy](https://devops-daily.com/interview-questions/mid/cicd-blue-green-deployment): What is a blue-green deployment, and what are its advantages and disadvantages compared to other deployment strategies? - [CI/CD Pipeline Design](https://devops-daily.com/interview-questions/mid/cicd-pipeline-design): How would you design a CI/CD pipeline for a microservices application? What stages would you include? - [Database Backup and Recovery](https://devops-daily.com/interview-questions/mid/database-backup-recovery): Describe database backup strategies and how you would design a recovery plan for production databases. - [Designing an On-Call Schedule](https://devops-daily.com/interview-questions/mid/designing-on-call-schedule-coverage): You've got six engineers split across two time zones and you need 24/7 coverage. How would you actually design the rotation? Walk me through the trade-offs you'd weigh. - [Docker Image Layers and Caching](https://devops-daily.com/interview-questions/mid/docker-layers-caching): How do Docker image layers work, and how can you optimize your Dockerfile to take advantage of layer caching? - [Enforcing Tagging Policies Across Clouds](https://devops-daily.com/interview-questions/mid/enforcing-tagging-policies-multi-cloud): How do you actually enforce that every resource in AWS, GCP, and Azure gets the required tags? Walk me through what you would put in place. - [Designing an Escalation Policy](https://devops-daily.com/interview-questions/mid/escalation-policy-design): An alert fires at 3am and pages the primary on-call. Walk me through what your escalation policy should do from that moment, step by step, and tell me what failure modes you're designing around. - [Essential Tags for Multi-Cloud Cost Allocation](https://devops-daily.com/interview-questions/mid/essential-cloud-cost-tags): If you were designing a tagging standard for a company running on AWS, GCP, and Azure, which tags would you require on every resource and why? - [GitOps Principles and Implementation](https://devops-daily.com/interview-questions/mid/gitops-principles): What is GitOps and how does it differ from traditional CI/CD? Explain the pull-based deployment model. - [Designing Golden Paths](https://devops-daily.com/interview-questions/mid/idp-golden-paths): We want our developers to follow best practices, but we do not want to slow them down with mandatory reviews for every infrastructure change. How would you design 'golden paths' in an internal developer platform? - [Service Catalog and Ownership](https://devops-daily.com/interview-questions/mid/idp-service-catalog-design): You are building a service catalog for your IDP. Your company has 200 microservices, and nobody knows who owns half of them. How do you fix this, and what does a good service catalog look like? - [Immutable Infrastructure](https://devops-daily.com/interview-questions/mid/immutable-infrastructure): Explain immutable infrastructure and its benefits. How does it differ from traditional server management? - [Infrastructure as Code Patterns](https://devops-daily.com/interview-questions/mid/infrastructure-as-code-patterns): What are the key principles and patterns of Infrastructure as Code? How do you structure IaC for multiple environments? - [Istio Retries and Retry Amplification](https://devops-daily.com/interview-questions/mid/istio-retry-policy-pitfalls): How do you configure retries in Istio, and what's the danger of being too aggressive with them? - [Weighted Canary Rollout with Istio](https://devops-daily.com/interview-questions/mid/istio-weighted-canary-rollout): Walk me through how you'd canary a new version of a service with Istio. Say you want to start at 5% traffic to v2 and ramp up. - [Kubernetes Kubelet](https://devops-daily.com/interview-questions/mid/kubernetes-kubelet): What is the role of the kubelet in a Kubernetes cluster? How does it interact with the control plane? - [Kubernetes Pod Lifecycle](https://devops-daily.com/interview-questions/mid/kubernetes-pod-lifecycle): Explain the different phases of a Kubernetes Pod lifecycle and what happens during each phase. - [Kubernetes Services and Networking](https://devops-daily.com/interview-questions/mid/kubernetes-services-networking): Explain the different types of Kubernetes Services (ClusterIP, NodePort, LoadBalancer) and when to use each. - [Running Your First Pod-Delete Experiment Safely](https://devops-daily.com/interview-questions/mid/litmus-first-pod-delete-experiment): I hand you a fresh cluster with a demo nginx deployment. Take me from nothing to a controlled pod-delete experiment. What are the steps, and how do you keep it from turning into an outage? - [How Litmus Decides Pass or Fail: Probes](https://devops-daily.com/interview-questions/mid/litmus-probes-steady-state-validation): Your pod-delete experiment shows Pass, but during the run users got 502s for about 20 seconds. How can the experiment pass while the service was actually down, and how do you fix that? - [Log Aggregation Strategies](https://devops-daily.com/interview-questions/mid/log-aggregation-strategies): How do you implement centralized logging in a distributed system? What are the key components? - [Monitoring and Alerting Strategy](https://devops-daily.com/interview-questions/mid/monitoring-alerting-strategy): How do you design a monitoring and alerting strategy? What metrics would you track and how do you avoid alert fatigue? - [Auto vs Manual Instrumentation](https://devops-daily.com/interview-questions/mid/otel-auto-vs-manual-instrumentation): You need to roll out tracing across 40 services owned by six different teams. Do you go with auto-instrumentation or manual instrumentation, and how do you decide? - [Context Propagation Across Services](https://devops-daily.com/interview-questions/mid/otel-context-propagation): Service A calls service B over HTTP. How does B know the request belongs to an existing trace? What actually travels on the wire? - [Application Performance Optimization](https://devops-daily.com/interview-questions/mid/performance-optimization): How do you identify and resolve performance bottlenecks in a production application? - [Canary Releases in Progressive Delivery](https://devops-daily.com/interview-questions/mid/progressive-delivery-canary-releases): You're deploying a new version of a critical payment service. Walk me through how you'd set up a canary release for it. - [Feature Flag Types and Use Cases](https://devops-daily.com/interview-questions/mid/progressive-delivery-feature-flag-types): Can you walk me through the different types of feature flags and when you'd use each one? - [Secrets Management](https://devops-daily.com/interview-questions/mid/secrets-management): How do you securely manage secrets (passwords, API keys, certificates) in a DevOps environment? - [Service Mesh Concepts](https://devops-daily.com/interview-questions/mid/service-mesh-concepts): What is a service mesh and when would you implement one? Explain the sidecar pattern. - [SLI, SLO, and SLA Definitions](https://devops-daily.com/interview-questions/mid/sli-slo-sla): Explain the difference between SLI, SLO, and SLA with examples. - [Choosing the Right SLIs](https://devops-daily.com/interview-questions/mid/sre-choosing-slis): You're joining a team that runs a checkout service for an e-commerce platform. There are no SLOs yet. How would you decide which SLIs to track? - [Error Budget Management](https://devops-daily.com/interview-questions/mid/sre-error-budget-management): Your service has a 99.9% availability SLO over a 30-day window. How much downtime does that give you, and what do you actually do with that error budget day-to-day? - [Username Availability with Bloom Filters](https://devops-daily.com/interview-questions/mid/system-design-bloom-filters): Explain how you'd check username availability for a service with billions of users without hitting the database on every keystroke. - [CDN Image Delivery Under 50ms](https://devops-daily.com/interview-questions/mid/system-design-cdn-caching): Explain how a CDN serves images to users worldwide in under 50ms. - [Terraform State Management](https://devops-daily.com/interview-questions/mid/terraform-state-management): What is Terraform state, why is it important, and how do you manage state in a team environment? - [App-of-Apps Pattern vs ApplicationSets](https://devops-daily.com/interview-questions/senior/argocd-app-of-apps-vs-applicationsets): Explain the app-of-apps pattern in Argo CD. When would you pick it over ApplicationSets? - [Promoting Changes from Dev to Staging to Prod with Argo CD](https://devops-daily.com/interview-questions/senior/argocd-promotion-dev-staging-prod): Walk me through how a change moves from dev to staging to prod in an Argo CD setup. How do you stop something from slipping into prod that should not be there? - [Scaling a Manifests Repo Across Many Services, Environments, and Clusters](https://devops-daily.com/interview-questions/senior/argocd-scaling-repo-many-services-clusters): You have 15 microservices, 4 environments (dev, staging, preprod, prod), and prod runs in 3 regional clusters. That's potentially 90 Application CRs. How do you structure the manifests repo so it doesn't fall apart? - [Capacity Planning and Scaling](https://devops-daily.com/interview-questions/senior/capacity-planning): How do you approach capacity planning for a growing production system? What metrics and strategies do you use? - [Chaos Engineering Practices](https://devops-daily.com/interview-questions/senior/chaos-engineering): What is chaos engineering and how would you implement it safely in a production environment? - [Chargeback Design for Shared and Untaggable Costs](https://devops-daily.com/interview-questions/senior/chargeback-shared-untaggable-costs): You are designing a chargeback system for 200 teams running across AWS, GCP, and Azure. How do you handle the 15 to 25 percent of the bill that cannot be tagged to a single team, like inter-AZ data transfer, support plans, NAT gateways, and shared Kubernetes clusters? - [Cloud Cost Optimization](https://devops-daily.com/interview-questions/senior/cloud-cost-optimization): How do you approach cloud cost optimization? What strategies and tools would you use? - [Compliance and Governance in Cloud](https://devops-daily.com/interview-questions/senior/compliance-governance): How do you implement compliance and governance controls in a cloud-native environment? - [Disaster Recovery Planning](https://devops-daily.com/interview-questions/senior/disaster-recovery-planning): How do you design a disaster recovery strategy? Explain RPO, RTO, and different DR approaches. - [FinOps and Cloud Cost Management](https://devops-daily.com/interview-questions/senior/finops-cost-management): How do you implement FinOps practices to optimize and manage cloud costs at scale? - [Measuring IDP Success and Adoption](https://devops-daily.com/interview-questions/senior/idp-measuring-platform-success): You have spent six months building an internal developer platform. Your VP of Engineering asks: 'Is this thing actually working? How do we know it was worth the investment?' What do you show them? - [Platform API and Orchestration Layer](https://devops-daily.com/interview-questions/senior/idp-platform-api-orchestration): You are designing the orchestration layer for your IDP. A developer clicks 'Create New Service' and behind the scenes it needs to create a GitHub repo, provision a database, set up a CI/CD pipeline, configure monitoring, and register the service in the catalog. How do you architect this? - [Incident Postmortems](https://devops-daily.com/interview-questions/senior/incident-postmortem): Describe a production incident you handled and how you structured the postmortem. What makes a good blameless postmortem? - [Istio Circuit Breakers and Outlier Detection](https://devops-daily.com/interview-questions/senior/istio-circuit-breaker-outlier-detection): How do you implement a circuit breaker in Istio? Explain the difference between the connection pool limits and outlier detection. - [Debugging an Istio Traffic Policy That Isn't Working](https://devops-daily.com/interview-questions/senior/istio-debugging-traffic-policy): You applied a VirtualService that splits traffic 80/20 between v1 and v2 of a service, but in production all traffic still goes to v1. Walk me through how you'd debug it. - [Linux Process Debugging](https://devops-daily.com/interview-questions/senior/linux-process-debugging): A process is consuming 100% CPU on a Linux server. Walk me through how you would identify and troubleshoot this issue. - [From One Experiment to Continuous Chaos at Scale](https://devops-daily.com/interview-questions/senior/litmus-chaos-at-scale-workflows-gitops): You have proven a single pod-delete works. Leadership now wants chaos as an ongoing practice across dozens of services and several clusters, not a one-off demo. What changes, and what would you do differently at scale? - [Scoping Litmus Safely: RBAC and Blast Radius](https://devops-daily.com/interview-questions/senior/litmus-rbac-blast-radius-safety): Your security team sees that Litmus can delete pods and inject network faults cluster-wide, and they want it gone. How do you scope Litmus so you can still run chaos in production without handing it the keys to the cluster? - [Multi-Cloud Architecture](https://devops-daily.com/interview-questions/senior/multi-cloud-architecture): When would you recommend a multi-cloud strategy? What are the challenges and how do you address them? - [Why Run an OpenTelemetry Collector](https://devops-daily.com/interview-questions/senior/otel-collector-deployment): Why run an OpenTelemetry Collector at all instead of having every application export directly to your tracing backend? And how would you deploy it in Kubernetes? - [Sampling Strategies at Scale](https://devops-daily.com/interview-questions/senior/otel-sampling-strategies): Your platform handles 50,000 requests per second and tracing every one of them is blowing up the observability bill. How do you approach sampling, and what is the tradeoff between head and tail sampling? - [Platform Team Scaling and Processes](https://devops-daily.com/interview-questions/senior/platform-team-scaling): How do you scale a platform/DevOps team to support a growing engineering organization? - [Feature Flag Architecture at Scale](https://devops-daily.com/interview-questions/senior/progressive-delivery-flag-architecture): Your team has 200+ microservices and wants to adopt feature flags across all of them. How would you design the feature flag infrastructure? - [Progressive Delivery Rollback Strategy](https://devops-daily.com/interview-questions/senior/progressive-delivery-rollback-strategy): Your team just enabled a new feature for 20% of users via feature flags, and your monitoring shows a 3x increase in p99 latency for those users. Walk me through exactly what you'd do in the next 10 minutes. - [Reducing On-Call Alert Fatigue](https://devops-daily.com/interview-questions/senior/reducing-on-call-alert-fatigue): Your on-call engineers are burning out. They're getting 40 to 50 pages a shift and they tell you most of it is noise they just ack and ignore. How do you fix this? - [Scaling an On-Call Program Across Many Teams](https://devops-daily.com/interview-questions/senior/scaling-on-call-program): You've been asked to design the on-call program for an org that grew from one team to fifteen in a year. Right now it's a free-for-all. What does a healthy on-call program look like at that scale, and how would you measure whether it's working? - [Security Architecture and DevSecOps](https://devops-daily.com/interview-questions/senior/security-architecture): How do you integrate security into the DevOps pipeline? Describe the key components of a secure architecture. - [Error Budget Burn Investigation](https://devops-daily.com/interview-questions/senior/sre-burn-rate-alerting): It's Monday morning. You check the dashboard and see that your service burned 80% of its monthly error budget over the weekend. Walk me through how you'd investigate this and what you'd do next. - [SLO-Based Alerting and Burn Rates](https://devops-daily.com/interview-questions/senior/sre-slo-alerting): Traditional alerting fires when error rate crosses a static threshold, like 'alert if errors > 1%'. What's wrong with that approach, and how would you set up SLO-based alerting instead? - [Search Autocomplete System Design](https://devops-daily.com/interview-questions/senior/system-design-autocomplete): Design the backend for a search autocomplete system that returns suggestions within 100ms as the user types. - [System Design for Reliability](https://devops-daily.com/interview-questions/senior/system-design-reliability): How would you design a highly available web application? What components and patterns would you use? - [Zero Trust Architecture](https://devops-daily.com/interview-questions/senior/zero-trust-architecture): What is Zero Trust Architecture and how do you implement it in a modern infrastructure? ## Interactive Simulators & Games - [Preview Environment Simulator](https://devops-daily.com/games/preview-environment-simulator): See how a pull request becomes a temporary copy of your app, complete with a private URL, safe test data, review checks, and automatic cleanup. - [Heroku-Style Name Generator](https://devops-daily.com/games/heroku-style-name-generator): Generate names the way Heroku, Docker, Kubernetes, and petname do, see how the word lists combine, and learn when the birthday problem makes random names collide. - [Log Aggregation Pipeline Simulator](https://devops-daily.com/games/log-aggregation-pipeline-simulator): Follow production logs from applications through collection, parsing, filtering, buffering, sharded indexing, and search. Trigger traffic spikes, parser failures, and slow indexing to see where backpressure builds and logs can be lost. - [How Docker Works Under the Hood](https://devops-daily.com/games/docker-under-the-hood-simulator): Watch what really happens when you run docker run -p 8080:80 nginx, one layer at a time. Step down the whole stack: the CLI, the daemon, the registry pull, containerd, the OCI runtime bundle, runc, the running container, and the shared Linux kernel. Every stage shows the real low-level command you can run yourself, so it doubles as a tour of the primitives that make a container: namespaces, cgroups, and runc. A container is not a small VM, and this shows you why. - [Webhook Delivery Simulator](https://devops-daily.com/games/webhook-delivery-simulator): Send a webhook through a production-style delivery flow. Change endpoint responses, watch retries and backoff, inspect real HMAC-SHA256 signatures, and redeliver the same message to see receiver-side deduplication. - [Bounce Triage Simulator](https://devops-daily.com/games/bounce-triage-simulator): Read a real SMTP bounce and decide what it is and what to do about it. Twelve genuine failures from Gmail, Outlook, Postfix and Proofpoint: hard bounces, soft bounces, content blocks, rate limits and spam complaints. Learn why the 4xx and 5xx class digit is a hint rather than the answer, which bounces to suppress permanently, which to retry, and what each mistake costs you in lost subscribers or lost sending reputation. - [Binary Byte Simulator](https://devops-daily.com/games/binary-byte-simulator): Flip eight bits by hand and watch the number change, the way the wooden demonstrators in computing museums do it. Then switch modes and the same tiles become a chmod permission set and a subnet mask, so 755 and /26 stop being things to memorise. Count upward to watch a carry travel along the bits. - [Agentic Loop Simulator](https://devops-daily.com/games/agentic-loop-simulator): Watch a coding agent run an agentic loop, one step at a time. A planner, a builder, and a judge cycle through plan, build, verify, and repeat until the goal is met. Toggle the separate judge off to see why an agent grading its own work ships confident bugs. An animation-first, interactive explainer of loop engineering and how it maps to Claude Code. - [Kubernetes RBAC Simulator](https://devops-daily.com/games/k8s-rbac-simulator): Ask whether a service account can do a verb on a resource in a namespace, and get the reason rather than a yes or no. Covers the ClusterRole bound by a RoleBinding that is silently confined to one namespace, why resourceNames grants get but never list, the dangling roleRef that fails without an error, and the fact that RBAC has no deny rules. Every answer prints the matching kubectl auth can-i command. The engine is real and runs in your browser. - [Cron Expression Simulator](https://devops-daily.com/games/cron-expression-simulator): Type a cron expression and see the next runs as real dates and times, in any timezone. Why */7 is not every 7 minutes, why day-of-month and day-of-week are OR and not AND, what happens to a job scheduled in the hour daylight saving deletes, and which expressions never fire at all. The parser and the schedule are real and run in your browser. - [YAML Parsing Simulator](https://devops-daily.com/games/yaml-parsing-simulator): Edit YAML and watch what the parser actually decides your values are. The Norway problem where NO becomes the boolean false, version 1.10 becoming a lower number than 1.9, leading zeros meaning octal in one spec and decimal in another, empty against null against an empty string, block scalars, and tabs. Every document is read twice, under YAML 1.1 and YAML 1.2, so you can see exactly where the two specs disagree. The parser is real and runs in your browser. - [SQL Terminal Simulator](https://devops-daily.com/games/sql-terminal-simulator): Practice SQL in an interactive browser terminal. Learn SELECT, WHERE, ORDER BY, DISTINCT, aggregates, GROUP BY, HAVING, JOINs, subqueries, and window functions against a small e-commerce schema, with single-table queries evaluated live and verified Postgres output. - [PostgreSQL Terminal Simulator](https://devops-daily.com/games/postgres-terminal-simulator): Practice the psql tool and Postgres engine in an interactive browser terminal. Explore with meta-commands, read real EXPLAIN plans, add an index to turn a sequential scan into a bitmap index scan, and use BEGIN and ROLLBACK to make changes safe, all against a small e-commerce database with verified PostgreSQL output. - [MongoDB Terminal Simulator](https://devops-daily.com/games/mongodb-terminal-simulator): Practice MongoDB queries in an interactive browser terminal. Learn find and projections, query operators like $lt, $gt, and $in, sort, skip, limit, countDocuments, insert, update, delete, and the aggregation pipeline with $match, $group, and $sort, against a small e-commerce dataset that runs live in your browser. - [Fork Bomb Simulator](https://devops-daily.com/games/fork-bomb-simulator): Visualize how the infamous :(){ :|:& };: fork bomb works. Watch processes multiply exponentially, exhaust system resources, and learn how to protect against it with ulimit, cgroups, and systemd. - [AWS VPC Networking Simulator](https://devops-daily.com/games/aws-vpc-simulator): Learn AWS networking fundamentals with an interactive VPC simulator. Visualize how traffic flows through public and private subnets, understand NAT Gateways, Internet Gateways, and route tables. - [DNS Resolution Simulator](https://devops-daily.com/games/dns-simulator): Learn how DNS works with an interactive step-by-step simulator. Visualize the DNS hierarchy, understand caching at different levels, and see the difference between recursive and iterative queries. - [Database Indexing Simulator](https://devops-daily.com/games/db-indexing-simulator): Learn how database indexes work with an interactive simulator. See the difference between full table scans and index seeks, understand B-tree structure, and learn when to create indexes. - [Database Replication, Sharding & Scaling](https://devops-daily.com/games/database-replication-sharding-scaling): Explore database replication, sharding, and scaling with an interactive simulator. Compare sync vs async replication, shard key choices, hot spots, failover behavior, read replicas, write scaling, connection pooling, cost, and latency. - [PostgreSQL Wire Protocol Simulator](https://devops-daily.com/games/postgres-wire-protocol): Visualize the PostgreSQL wire protocol with an interactive simulator. Step through TLS negotiation, StartupMessage, SCRAM authentication, simple queries, extended queries, RowDescription, DataRow streams, ErrorResponse, COPY, and ReadyForQuery. - [Docker Terminal Simulator](https://devops-daily.com/games/docker-terminal-simulator): Practice Docker commands in an interactive browser terminal. Learn images, containers, logs, exec, Dockerfile builds, volumes, networks, and Docker Compose with a live Docker daemon visualization. - [Kubernetes Terminal Simulator](https://devops-daily.com/games/kubernetes-terminal-simulator): Practice Kubernetes commands in an interactive browser terminal. Learn kubectl contexts, nodes, Pods, Deployments, Services, rollouts, logs, exec, events, ConfigMaps, and cleanup workflows with a live cluster visualization. - [Terraform Basics Simulator](https://devops-daily.com/games/terraform-terminal-simulator): Learn Terraform basics in an interactive browser lab. Read and edit the HCL config, run init, validate, plan, apply, and destroy, and watch state react to your edits. A free, hands-on way to learn infrastructure as code with no AWS account. - [P90, P95 & P99 Latency Simulator](https://devops-daily.com/games/latency-percentiles-simulator): Learn latency percentiles with an interactive simulator. Generate request samples, visualize distributions, compare average latency with P50, P90, P95, and P99, and see how tail latency affects real users. - [Kubernetes Networking / CNI Simulator](https://devops-daily.com/games/kubernetes-networking-cni-simulator): Visualize Kubernetes networking and CNI packet paths with an interactive simulator. Learn Pod-to-Pod routing, same-node and cross-node traffic, ClusterIP Services, EndpointSlices, headless Services, LoadBalancer, NodePort, kube-proxy, eBPF service routing, Ingress, NetworkPolicy, and internet egress. - [Git Merge Conflict Simulator](https://devops-daily.com/games/git-merge-conflict-simulator): Resolve Git merge conflicts in a browser lab. Read the conflict markers and the three index stages, edit the file to what it should be, take a side with --ours or --theirs, see why they swap during a rebase, back out with git merge --abort, and catch a clean merge that breaks the build. - [Git Concepts Simulator](https://devops-daily.com/games/git-concepts-simulator): Practice Git in an interactive browser terminal with a visual repository model. Learn the working directory, staging area, local commits, branch pointers, remotes, fast-forward merges, fetch, and rebase. - [JavaScript Promises & Async/Await Simulator](https://devops-daily.com/games/javascript-promises-async-await-simulator): Visualize JavaScript promises, async/await, microtasks, task queues, setTimeout ordering, rejection handling, and Promise.all with an interactive event-loop simulator inspired by classic JavaScript visual guides. - [OAuth/OIDC Flow Simulator](https://devops-daily.com/games/oauth-oidc-flow-simulator): Visualize OAuth 2.0 and OpenID Connect flows with an interactive simulator. Learn authorization code + PKCE, state, nonce, redirect URI checks, ID tokens, access tokens, refresh tokens, scopes, UserInfo, and common auth failure modes. - [SMTP Flow Simulator](https://devops-daily.com/games/smtp-flow-simulator): Visualize how SMTP email delivery works from app submission through EHLO, STARTTLS, AUTH, MAIL FROM, RCPT TO, DATA, SPF, DKIM, DMARC, recipient MX relay, temporary failures and retries, auth failures, and inbox placement. Sponsored by SMTPfast. - [Message Queue Simulator](https://devops-daily.com/games/message-queue-simulator): Visualize how message queues work across Kafka and RabbitMQ patterns. Explore producers, brokers, topics, partitions, exchanges, queues, consumer groups, lag, rebalancing, backpressure, ordering, and dead letter queues. - [Caching Strategies Simulator](https://devops-daily.com/games/caching-simulator): Learn caching fundamentals with an interactive simulator. Visualize cache hits, misses, eviction policies (LRU, LFU, FIFO), and understand write strategies. - [Deployment Strategies Simulator](https://devops-daily.com/games/deployment-strategies): Learn deployment strategies like Blue-Green, Canary, Rolling Updates, and Recreate. Visualize how each strategy handles traffic routing, downtime, and rollbacks. - [REST API vs GraphQL Simulator](https://devops-daily.com/games/rest-vs-graphql): Compare REST and GraphQL side-by-side. Understand over-fetching, under-fetching, the N+1 problem, and when to use each approach with interactive scenarios. - [Horizontal vs Vertical Scaling Simulator](https://devops-daily.com/games/scaling-simulator): Interactive game to learn scaling strategies for web applications. Experiment with horizontal and vertical scaling, see the effects on performance, cost, and reliability with realistic pricing simulation and budget constraints. - [BCDR Simulator](https://devops-daily.com/games/bcdr-simulator): Learn Business Continuity & Disaster Recovery with interactive RTO/RPO planning, failover strategies, and disaster scenarios. Understand hot, warm, and cold DR sites. - [SSL/TLS Handshake Simulator](https://devops-daily.com/games/ssl-tls-handshake): Visualize how SSL/TLS handshakes work with certificate verification, key exchange, and cipher negotiation. Compare TLS 1.2 and 1.3 protocols. - [Learn Linux - Interactive Tutorial](https://devops-daily.com/games/linux-terminal): Master essential Linux commands through interactive lessons. Practice pwd, ls, cd, cat, grep, chmod, pipes, and more in a simulated terminal environment with 6 progressive lessons. - [Load Balancer Algorithm Simulator](https://devops-daily.com/games/load-balancer-simulator): Learn how different load balancing algorithms distribute traffic across servers. Experiment with Round Robin, Least Connections, IP Hash, and more. See how load balancers handle failures and optimize performance. - [Database Management Systems](https://devops-daily.com/games/dbms-simulator): Learn about different database types (SQL, NoSQL, Graph, Time-Series) and their use cases. Explore CAP theorem trade-offs and make informed database choices. - [GitOps Workflow Simulator](https://devops-daily.com/games/gitops-workflow): Learn GitOps principles through interactive scenarios. Understand Git as source of truth, automated sync, and drift detection. - [Bug Hunter](https://devops-daily.com/games/bug-hunter): DevOps-themed Snake game where you control a bug that infects healthy servers. Grow longer with each infection, but avoid crashing into walls or yourself! - [TCP vs UDP Simulator](https://devops-daily.com/games/tcp-vs-udp): Interactive visualization showing the differences between TCP's reliable connection-oriented protocol and UDP's fast connectionless approach. See the 3-way handshake, packet loss, and retransmissions in action. - [DevOps Scorecard](https://devops-daily.com/games/devops-scorecard): Evaluate your DevOps skills across 8 key areas and generate a beautiful, shareable scorecard with personalized insights. - [Microservices Architecture Simulator](https://devops-daily.com/games/microservices-simulator): Design and deploy microservices. See communication patterns, handle failures, and scale independently. Learn when to use microservices and understand the trade-offs. - [Kubernetes Scheduler Challenge](https://devops-daily.com/games/k8s-scheduler): Drag-and-drop Pods onto Nodes while honoring kube scheduling rules: resources, taints/tolerations, selectors, and topology spread. - [Rate Limit Simulator](https://devops-daily.com/games/rate-limit-simulator): Learn API rate limiting, backoff strategies, and throttling with real-time visualization and interactive charts. - [DDoS Attack Simulator](https://devops-daily.com/games/ddos-simulator): Educational simulator to understand how DDoS attacks work with stunning real-time visualizations, multiple attack vectors, and protection mechanisms. - [Scalable Sentry](https://devops-daily.com/games/scalable-sentry): Tower defense game where you defend your infrastructure against waves of network traffic. Deploy servers, manage resources, and survive boss waves! - [Network Packet Journey](https://devops-daily.com/games/packet-journey): Follow a single HTTP/HTTPS packet through the entire network stack with stunning animations. Learn DNS, TCP, TLS, CDN, load balancing, and more! - [CI/CD Stack Generator](https://devops-daily.com/games/cicd-stack-generator): Spin the reels to generate your perfect (or perfectly cursed) DevOps stack! - [Infra Tarot Cards](https://devops-daily.com/games/infra-tarot): Draw mystical cards to discover your infrastructure destiny! Get humorous readings about your DevOps future. - [You Might Be a DevOps Engineer If...](https://devops-daily.com/games/devops-memes): Auto-generating hilarious and painfully accurate DevOps memes. Each reload brings a new dose of reality! - [Cards Against DevOps](https://devops-daily.com/games/cards-against-devops): A hilariously inappropriate DevOps party game. Fill in the blanks with the most outrageous DevOps scenarios! - [Git Command Quiz](https://devops-daily.com/games/git-quiz): Test your Git knowledge with interactive scenarios covering branches, merges, rebases, conflicts, and the recovery commands you reach for under pressure. - [Uptime Defender](https://devops-daily.com/games/uptime-defender): Fast-paced SRE game where you defend your infrastructure uptime! Handle incoming incidents by adding nodes, rotating logs, failing over, restarting pods, and scaling databases. - [Incident Commander Simulator](https://devops-daily.com/games/incident-commander-simulator): Take the page as incident commander. Direct two responders, read the evidence they bring back, choose a mitigation, keep customers updated, and confirm the recovery holds before you resolve. Turn-based, with a review of every decision at the end. - [Terraform State Puzzle](https://devops-daily.com/games/terraform-puzzle): Fix broken Terraform state without destroying production. Eight puzzles with real Terraform output: a rename that would replace a database, an import that forces replacement, a stale lock, drift, count index shifts and more. Choose between moved, import and removed blocks and the state commands. - [Container Security Challenge](https://devops-daily.com/games/docker-escape): Six real docker run commands, each carrying a flag that hands an attacker the host. Click the dangerous ones, then see the actual escape path and what to grant instead. Covers the Docker socket, --privileged, host PID namespace, SYS_ADMIN and unconfined AppArmor, plus one command with nothing wrong with it. - [Prometheus Query Builder (PromQL Playground)](https://devops-daily.com/games/promql-playground): Learn Prometheus Query Language (PromQL) with an interactive playground. Master label filtering, rate calculations, aggregations, and histogram quantiles with real-time query execution. - [Service Mesh Traffic Simulator](https://devops-daily.com/games/service-mesh-simulator): Visualize how service mesh proxies handle traffic between microservices. Learn mTLS, traffic splitting, retries, circuit breakers, and explore Istio and Linkerd patterns. ## News Digests - [DevOps Weekly Digest - Week 43, 2026](https://devops-daily.com/news/2026-week-43): ⚡ Curated updates from Kubernetes, cloud native tooling, CI/CD, IaC, observability, and security - handpicked for DevOps professionals! - [DevOps Weekly Digest - Week 42, 2026](https://devops-daily.com/news/2026-week-42): ⚡ Curated updates from Kubernetes, cloud native tooling, CI/CD, IaC, observability, and security - handpicked for DevOps professionals! - [DevOps Weekly Digest - Week 41, 2026](https://devops-daily.com/news/2026-week-41): ⚡ Curated updates from Kubernetes, cloud native tooling, CI/CD, IaC, observability, and security - handpicked for DevOps professionals! - [DevOps Weekly Digest - Week 40, 2026](https://devops-daily.com/news/2026-week-40): ⚡ Curated updates from Kubernetes, cloud native tooling, CI/CD, IaC, observability, and security - handpicked for DevOps professionals! - [DevOps Weekly Digest - Week 39, 2026](https://devops-daily.com/news/2026-week-39): ⚡ Curated updates from Kubernetes, cloud native tooling, CI/CD, IaC, observability, and security - handpicked for DevOps professionals! - [DevOps Weekly Digest - Week 38, 2026](https://devops-daily.com/news/2026-week-38): ⚡ Curated updates from Kubernetes, cloud native tooling, CI/CD, IaC, observability, and security - handpicked for DevOps professionals! - [DevOps Weekly Digest - Week 37, 2026](https://devops-daily.com/news/2026-week-37): ⚡ Curated updates from Kubernetes, cloud native tooling, CI/CD, IaC, observability, and security - handpicked for DevOps professionals! - [DevOps Weekly Digest - Week 36, 2026](https://devops-daily.com/news/2026-week-36): ⚡ Curated updates from Kubernetes, cloud native tooling, CI/CD, IaC, observability, and security - handpicked for DevOps professionals! - [DevOps Weekly Digest - Week 35, 2026](https://devops-daily.com/news/2026-week-35): ⚡ Curated updates from Kubernetes, cloud native tooling, CI/CD, IaC, observability, and security - handpicked for DevOps professionals! - [DevOps Weekly Digest - Week 34, 2026](https://devops-daily.com/news/2026-week-34): ⚡ Curated updates from Kubernetes, cloud native tooling, CI/CD, IaC, observability, and security - handpicked for DevOps professionals! - [DevOps Weekly Digest - Week 33, 2026](https://devops-daily.com/news/2026-week-33): ⚡ Curated updates from Kubernetes, cloud native tooling, CI/CD, IaC, observability, and security - handpicked for DevOps professionals! - [DevOps Weekly Digest - Week 32, 2026](https://devops-daily.com/news/2026-week-32): ⚡ Curated updates from Kubernetes, cloud native tooling, CI/CD, IaC, observability, and security - handpicked for DevOps professionals! ## Advent of DevOps - [Day 1: Day 1 - Build a Minimal Docker Image](https://devops-daily.com/advent-of-devops/day-1.md): Learn to create the smallest possible Docker image for a Go application. Optimize for size, security, and performance using static compilation. - [Day 2: Day 2 - Fix the Slow Docker Build](https://devops-daily.com/advent-of-devops/day-2.md): Debug and optimize a poorly written Dockerfile to reduce build time by at least 50%. Learn layer caching, build optimization, and best practices. - [Day 3: Day 3 - Add GitHub Actions CI](https://devops-daily.com/advent-of-devops/day-3.md): Set up continuous integration for a repository without automation. Create a GitHub Actions workflow that runs tests on every push. - [Day 4: Day 4 - Speed Up CI with Caching](https://devops-daily.com/advent-of-devops/day-4.md): Optimize a slow GitHub Actions workflow by adding intelligent caching for dependencies. Achieve 40% faster run times. - [Day 5: Day 5 - Debug a Broken Container](https://devops-daily.com/advent-of-devops/day-5.md): Troubleshoot and fix a container that fails to start. Learn essential debugging techniques for containerized applications. - [Day 6: Day 6 - Write a Small Terraform Module](https://devops-daily.com/advent-of-devops/day-6.md): Create your first reusable Terraform module to provision cloud infrastructure. Learn infrastructure as code fundamentals. - [Day 7: Day 7 - Improve the Terraform Module](https://devops-daily.com/advent-of-devops/day-7.md): Enhance your Terraform module with advanced features like testing, documentation, and CI/CD integration. - [Day 8: Day 8 - Deploy a Small App on Kubernetes](https://devops-daily.com/advent-of-devops/day-8.md): Deploy your first application to Kubernetes using Deployments, Services, and ConfigMaps. Learn the fundamentals of K8s. - [Day 9: Day 9 - Fix a Failing Pod](https://devops-daily.com/advent-of-devops/day-9.md): Debug and fix a Kubernetes pod that crashes on startup. Master essential troubleshooting techniques. - [Day 10: Day 10 - Wrap the App in a Helm Chart](https://devops-daily.com/advent-of-devops/day-10.md): Package your Kubernetes application as a Helm chart for easy deployment and management across environments. - [Day 11: Day 11 - Basic Observability](https://devops-daily.com/advent-of-devops/day-11.md): Set up monitoring and logging for your Kubernetes application with Prometheus and Grafana. - [Day 12: Day 12 - Log Parsing](https://devops-daily.com/advent-of-devops/day-12.md): Parse and analyze application logs to extract meaningful insights and debug production issues. - [Day 13: Day 13 - Security Scan](https://devops-daily.com/advent-of-devops/day-13.md): Scan container images and infrastructure code for security vulnerabilities and misconfigurations. - [Day 14: Day 14 - Networking Debugging](https://devops-daily.com/advent-of-devops/day-14.md): Debug network connectivity issues in Kubernetes including DNS, service discovery, and network policies. - [Day 15: Day 15 - Bash Scripting Day](https://devops-daily.com/advent-of-devops/day-15.md): Write a practical bash script to automate common DevOps tasks like deployments, backups, and health checks. - [Day 16: Day 16 - Autoscaling](https://devops-daily.com/advent-of-devops/day-16.md): Configure horizontal pod autoscaling in Kubernetes to automatically scale applications based on CPU and memory usage. - [Day 17: Day 17 - Serverless Deploy](https://devops-daily.com/advent-of-devops/day-17.md): Deploy a serverless function to AWS Lambda with API Gateway, learning modern serverless architecture patterns. - [Day 18: Day 18 - Deploy a Static Site](https://devops-daily.com/advent-of-devops/day-18.md): Deploy a static website to AWS S3 with CloudFront CDN for global performance and HTTPS support. - [Day 19: Day 19 - Load Testing](https://devops-daily.com/advent-of-devops/day-19.md): Perform load testing on your application to identify performance bottlenecks and capacity limits. - [Day 20: Day 20 - Secrets Management](https://devops-daily.com/advent-of-devops/day-20.md): Securely manage application secrets and credentials using AWS Secrets Manager, Kubernetes Secrets, and best practices. - [Day 21: Day 21 - Create a Reusable Template Repo](https://devops-daily.com/advent-of-devops/day-21.md): Build a GitHub template repository with DevOps best practices baked in for quick project bootstrapping. - [Day 22: Day 22 - Run a Local Cluster](https://devops-daily.com/advent-of-devops/day-22.md): Set up a local Kubernetes cluster with Minikube or Kind for development and testing without cloud costs. - [Day 23: Day 23 - Container Networking Puzzle](https://devops-daily.com/advent-of-devops/day-23.md): Solve complex container networking challenges involving multi-container apps, custom networks, and service discovery. - [Day 24: Day 24 - Harden a Config](https://devops-daily.com/advent-of-devops/day-24.md): Apply security hardening best practices to application configurations, containers, and infrastructure. - [Day 25: Day 25 - Write Your DevOps Journey](https://devops-daily.com/advent-of-devops/day-25.md): Reflect on your DevOps learning journey, document what you built, and share your knowledge with the community.