All guides

DevOps

Focused devops articles with clear context, practical examples, source links where needed, and honest limits.

22 articles in this section.

Run and clean up background services in GitHub Actions jobs

GitHub Actions background steps can be named, awaited, and cancelled while retaining separate logs. Start the service as a background step, wait for an explicit health check, run tests, and cancel it during cleanup.

GitHub Actions 50-rerun limit: fix flaky workflows instead of retrying forever

GitHub limits a workflow run to 50 reruns, including full and partial reruns. Classify failures, use bounded retries around known transient operations, and repair deterministic flakes.

Test GitHub Actions on Ubuntu 26.04 and Windows 11 ARM64 runners

GitHub provides Ubuntu 26.04 x64 and ARM64 plus Windows 11 ARM64 with Visual Studio 2026 in public preview. Add non-blocking matrix jobs first and compare tool versions and artifacts.

Approve bot-created pull requests before running GitHub Actions

Pull requests created by `github-actions[bot]` can run workflows after approval by a user with write access. Require approval for generated code and keep privileged jobs behind stronger environment gates.

GitHub self-hosted runner minimum versions: avoid queued jobs and brownouts

GitHub requires registration on runner 2.329.0 or newer and ongoing updates within 30 days, with enforcement timelines in 2026. Inventory runner versions, update images and bootstrap scripts, and monitor brownout annotations.

Parallel steps in GitHub Actions: use background, wait, and cancel correctly

GitHub Actions adds `background`, `wait`, `wait-all`, `cancel`, and `parallel` workflow controls with separate logs. Parallelize only independent work and name every background step that later steps depend on.

Run Copilot CLI in GitHub Actions without a personal access token

Use Copilot CLI in GitHub Actions with the workflow identity, minimum permissions, protected triggers, and no stored personal access token.

actions/setup-java v5.5 signature verification: secure JDK setup

Use actions/setup-java v5.5 signature verification, pin workflow dependencies, test Maven changes, and reduce JDK supply-chain risk.

npm 2FA-bypass token deprecation: how automated publishing should migrate

Prepare npm publishing automation for 2FA-bypass token restrictions by moving to trusted publishing or staged human approval.

Feature flag cleanup: how temporary switches become permanent bugs

How to manage feature flag debt, ownership, rollout states, cleanup dates, and tests for enabled and disabled paths.

GitHub secret scanning and push protection explained

A practical guide to secret scanning, push protection, token leaks, alert handling, and what to do after accidentally committing a key.

Software Bill of Materials (SBOM): what it is and how to use one

A plain-English SBOM guide: what an SBOM contains, how it differs from a vulnerability scan, and a practical workflow for using one during security incidents.

Secure by Design explained for small software teams

A practical explanation of Secure by Design for small teams: safer defaults, fewer risky choices, transparency, and ownership.

Pin GitHub Actions by SHA: the supply-chain habit most teams skip

Why pinning GitHub Actions to full commit SHAs reduces supply-chain risk, and how to do it without making workflows impossible to maintain.

Vercel vs Render vs Railway for Node.js apps

A practical comparison of Vercel, Render, and Railway for deploying Node.js apps, APIs, background workers, and databases.

Zero-downtime database migrations for Node.js apps

A practical migration strategy for Node.js apps that need to change database schemas without breaking running deployments.

Health checks for Node.js APIs: what should they actually check?

How to design health check endpoints for Node.js APIs without hiding dependency failures or causing extra load.

Logs, metrics, and traces explained for developers

A simple observability guide explaining logs, metrics, traces, and when each one helps debug production systems.

Environment variables across local, staging, and production

How to manage environment variables across local, staging, and production without leaking secrets or breaking deploys.

GitHub Actions for Node.js projects: a clean starter CI

A simple GitHub Actions workflow for Node.js projects that installs dependencies, runs checks, and builds before merge.

Docker Compose with PostgreSQL and Redis for Node.js development

How to use Docker Compose for local Node.js development with PostgreSQL, Redis, environment variables, and repeatable setup.

Docker for Node.js production: the setup that actually matters

A practical Docker setup for Node.js production apps, including small images, dependency installs, env vars, and health checks.