Topic

Cloud & DevOps

Hand-picked tutorials, guides and examples on Cloud & DevOps — explained simply.

  • 60 articles
  • 62 min of reading
  • 3 sub-topics
  • 01 Oct, 2026 last updated

Showing 60 articles

Git & GitHubNew 1 min read

Git Essentials Every Developer Should Know

Git records snapshots of your project over time. Once you understand three places (working directory, staging area, repository), the everyday commands make sense. The three areas Working directory - your files as you edit them. Staging area - changes you've se...

30 Sep, 2026 Author 133 62
Read article
GitHub ActionsNew 1 min read

GitHub Actions Tutorial: Your First CI Workflow

GitHub Actions runs automated workflows when things happen in your repository: a push, a pull request, a schedule or a manual click. The most common first use is CI: run tests on every change. Anatomy of a workflow Workflow - a YAML file in .github/workflows/...

29 Sep, 2026 Author 1.28K 106
Read article
Terraform 1 min read

Terraform State: Remote Backends and Locking

The state file is Terraform's memory: which real resources belong to which blocks in your code. For a team, it must be shared, locked during changes and protected, because it can contain secrets. An S3 backend with locking terraform { backend "s3" { bucket = "...

11 Sep, 2026 Author 1.04K 43
Read article
Kubernetes 1 min read

Kubernetes ConfigMaps and Secrets

The same image should run in development, staging and production. What changes between them (URLs, feature flags, credentials) belongs in ConfigMaps and Secrets. ConfigMap for non-sensitive settings apiVersion: v1 kind: ConfigMap metadata: name: api-config dat...

25 Aug, 2026 Author 1.12K 68
Read article
Observability 2 min read

Distributed Tracing Explained

In a system of many services, one slow user request might pass through an API gateway, three services, a queue, two databases and a third-party API. Distributed tracing reconstructs that whole path. Traces and spans A trace is the full journey of one request,...

23 Aug, 2026 Author 1.52K 83
Read article
Docker 1 min read

How to Shrink Docker Images

Smaller images pull faster, start faster, cost less to store and contain fewer packages with vulnerabilities. Going from 1.2 GB to under 200 MB is common. 1. Choose a smaller base image node:22 (Debian full) - large, has build tools. node:22-slim - Debian with...

08 Aug, 2026 Author 418 131
Read article
Git & GitHub 1 min read

git rebase vs git merge: When to Use Each

Both merge and rebase combine work from two branches. They differ in the history they produce. Merge: preserve history as it happened git switch feature/search git merge main # creates a merge commit joining both histories Safe and non-destructive, but frequen...

07 Aug, 2026 Author 600 42
Read article
Terraform 1 min read

Writing Reusable Terraform Modules

A module is a folder of Terraform files used as a building block. Good modules capture your organisation's standards (encryption on, tags set, sensible defaults) so every team gets them for free. Module layout modules/static-site/ main.tf # resources variables...

05 Aug, 2026 Author 330 123
Read article
Docker 1 min read

Docker Networking Explained

Most "it can't connect" problems with Docker come from a few networking rules. Once you know them, they're easy to reason about. User-defined bridge networks docker network create appnet docker run -d --name db --network appnet -e POSTGRES_PASSWORD=secret post...

21 Jul, 2026 Author 552 81
Read article
Terraform 1 min read

Managing Multiple Environments in Terraform

Almost every project needs the same infrastructure in several environments, with small differences: smaller instances in dev, more replicas in prod. There are three common approaches. 1. Separate directories (most common) infra/ modules/ app/ # the shared buil...

18 Jul, 2026 Author 247 82
Read article
Git & GitHub 1 min read

Resolving Git Merge Conflicts Without Panic

A conflict means Git found two changes to the same lines and won't guess which one you want. It's a normal part of teamwork, not an error. 1. See what's conflicted git status # both modified: src/pricing.js 2. Read the markers function shippingFee(total) { <<<...

01 Jul, 2026 Author 1.51K 97
Read article
Docker 1 min read

Docker Security Best Practices

Containers isolate processes, but a careless image or run command can undo most of that protection. These practices close the common gaps. 1. Don't run as root RUN addgroup -S app && adduser -S app -G app USER app If an attacker exploits your app, they get the...

14 Jun, 2026 Author 829 38
Read article
Git & GitHub 1 min read

Pull Requests That Get Reviewed Quickly

Slow reviews are usually a symptom of hard-to-review pull requests. You can make yours easy to say yes to. 1. Keep it small Aim for changes a reviewer can understand in 15-20 minutes, often under a few hundred lines. Split big work into steps that each make se...

13 Jun, 2026 Author 660 82
Read article
Observability 2 min read

SLOs, SLIs and Error Budgets Explained

"Make it reliable" isn't a goal you can measure. Service level objectives turn reliability into a number that product and engineering can agree on. The terms SLI (indicator) - a measurement of user experience, usually a ratio of good events to total events. Ex...

12 Jun, 2026 Author 551 135
Read article
Docker 1 min read

Container Health Checks and Restart Policies

A running process isn't necessarily a working one. It might be deadlocked, out of database connections or stuck in a crash loop. Health checks and restart policies help Docker notice and react. HEALTHCHECK in a Dockerfile HEALTHCHECK --interval=30s --timeout=3...

27 May, 2026 Author 516 78
Read article
Git & GitHub 1 min read

Find the Commit That Broke Things with git bisect

"It worked last week." Somewhere among 200 commits, something broke. git bisect finds the culprit with a binary search: about 8 checks for 200 commits. Manual bisect git bisect start git bisect bad # the current commit is broken git bisect good v2.3.0 # this r...

26 May, 2026 Author 147 107
Read article
Docker 1 min read

Debugging Docker Containers: A Practical Toolkit

When a container doesn't behave, work from the outside in: what does it log, how did it exit, what does its configuration look like, and what is happening inside? 1. Logs docker logs api # everything written to stdout/stderr docker logs -f --tail 100 api # fol...

09 May, 2026 Author 527 27
Read article
Kubernetes 1 min read

kubectl Debugging Cheat Sheet

When something breaks in Kubernetes, the answer is usually in a handful of commands. Start with the Pod's status, then events, then logs. First look kubectl get pods -n shop -o wide # status, restarts, node kubectl describe pod api-7d9f-x2k -n shop # events at...

09 May, 2026 Author 1.51K 122
Read article
Observability 1 min read

Alerting Without Alert Fatigue

When alerts fire constantly, people stop reading them, and the one that matters gets missed. Good alerting is mostly about deciding what not to page on. 1. Every page must be urgent and actionable Ask: "If this fires at 3 a.m., does someone need to do somethin...

06 May, 2026 Author 1.05K 125
Read article
Docker 1 min read

Docker Volumes vs Bind Mounts vs tmpfs

Containers are disposable, but data often isn't. Docker offers three ways to give a container storage beyond its own temporary layer. Named volumes docker volume create pgdata docker run -d -v pgdata:/var/lib/postgresql/data postgres:17 docker volume ls docker...

21 Apr, 2026 Author 340 46
Read article
Git & GitHub 1 min read

Signing Git Commits with SSH Keys

Anyone can set user.email to your address and make commits that look like yours. Signing commits proves they were made by someone holding your private key. Git supports signing with SSH keys, which is much simpler than setting up GPG. 1. Tell Git to sign with...

20 Apr, 2026 Author 1.19K 28
Read article
Terraform 1 min read

Testing Terraform Code with terraform test

Modules are code that many teams depend on, so they deserve tests. Terraform includes a test framework: .tftest.hcl files with runs and assertions. A plan-only test # tests/naming.tftest.hcl variables { environment = "staging" domain = "shop.example.com" } run...

19 Apr, 2026 Author 1.52K 76
Read article