Galle, LK--:--5/6 sites live

DevOps & reliability

How every project gets from git push to production

A deployment map of the whole portfolio with the real pipeline files, the principles behind them, and the handbook and labs I learned them from.

Deployment map

Where each project runs

10 projects with a documented build-and-deploy pipeline.

ProjectRuns onPipeline
Quintrix ITSO EngineGCP Compute Engine VM · Docker Compose · GitHub Actions
  1. 1Pull request / push to main
  2. 2Install CPU torch + compile check
  3. 3docker compose config + docker build
  4. 4On main: gcloud compute ssh → git reset --hard → docker compose up -d --build
Nora LabsGoogle Cloud Run (us-central1) · Vertex AI · GCS-mounted SQLite
  1. 1git push
  2. 2Cloud Build: docker build (tag :SHORT_SHA + :latest)
  3. 3Push to Artifact Registry
  4. 4gcloud run deploy --max-instances=1
  5. 5Vertex AI credentials via runtime service account
AI Network LabsLocal — uvx cisco-pt-mcp + Packet Tracer extension; course pages on this site
  1. 1Upstream author publishes cisco-pt-mcp releases to PyPI
  2. 2Learners run it on demand with uvx — nothing installed globally
  3. 3Bridge binds to 127.0.0.1 inside Packet Tracer
  4. 4Course and labs ship as static pages with the portfolio
CinePrompt & News StudioSingle Docker image: Vite UI + Express API + Remotion renderer + ffmpeg
  1. 1npm ci with workspace manifests first (layer cache)
  2. 2npx remotion browser ensure
  3. 3Build UI + pre-bundle Remotion project
  4. 4Run as non-root node user with /data volume + healthcheck
Planform StudioStatic Vite build in an Nginx/Node container
  1. 1npm ci
  2. 2tsc -b && vite build
  3. 3Serve dist/
The Part TimerGoogle Cloud Run (API + web) · DigitalOcean App Platform scaffold
  1. 1Push to master
  2. 2dorny/paths-filter decides api / web
  3. 3WIF auth → build → Artifact Registry
  4. 4Deploy only the service that changed
React Content StudioDocker (APP_DIR bind-mounted into the container)
  1. 1APP_DIR=/path/to/app docker compose up --build
  2. 2Studio indexes the mounted codebase
  3. 3UI on :4310, HTTP API + MCP server
Transcript MakerDocker / Gunicorn
  1. 1docker compose up --build
  2. 2Gunicorn serves Flask on :5050
  3. 3Transcript cache persisted on a volume
CryptoEdge & TradeV1 MLGoogle Cloud Run · Secret Manager · keyless Workload Identity Federation
  1. 1Push to main
  2. 2pytest + import/route smoke check
  3. 3Auth to GCP with OIDC (no JSON key)
  4. 4Build & push to Artifact Registry
  5. 5Cloud Run deploy with --min-instances=1 and secrets from Secret Manager
Enterprise Inventory Management SystemDocker Compose: client + server + PostgreSQL
  1. 1docker compose up
  2. 2Prisma migrate on server start
  3. 3React client served separately

Principles

Six rules the pipelines follow

Deploy the commit SHA

Images are tagged :$SHA and :latest; deploys always use the SHA so rollback is “deploy the previous one”.

No long-lived cloud keys

Workload Identity Federation for GCP — nothing to leak from GitHub secrets.

AI is optional

Agent endpoints fall back to deterministic engines, so a model outage degrades quality, not availability.

Limits live next to config

--max-instances=1 # SQLite has a single writer. The reason is in the file, not in someone’s head.

Platform per workload

Cloud Run for bursty APIs, a VM for heavy jobs, static hosting for content, Coolify for small things.

Test before build, build before deploy

Import smoke tests, compile checks and `docker compose config` catch broken deploys in seconds.

Series

Stories: Lessons Learned

All 5 parts

Real incidents and decisions from my projects — Cloud Run problems, a trading bot that lost $67.88, the human effort behind automation, paying for cloud as a student, and zero-cost hosting with a 25-option comparison.

Series

The Distributed Life

All 28 parts

My life operating system in 28 essays — a life vision, 25 long-form essays in five volumes (solitude and sickness, frontier builders, logistics and leverage, social fluidity, Sri Lanka's future) and two field notes, illustrated with my own photos.

Series

Tourism Tech: Build a Travel Platform

All 10 parts

A W3-style course in ten lessons from my tourism work — data models, static pages per place and language, themes as data, search, itineraries, WhatsApp trip requests, route optimisation, pricing and OTA links, an AI planner with a fallback, and owner-editable data.

Series

W3DevOps: The Full Course

All 26 parts

26 lessons from my W3DevOps portal, in order — Linux, Docker, Kubernetes, AWS, Google Cloud, production web and Coolify — with 136 real lab screenshots, commands, configs and a 12-question final exam.

Series

SRE Practical Labs

All 20 parts

Twenty bilingual (English + සිංහල) hands-on labs — from kernel space and syscalls to error budgets, burn rates and the four golden signals. Each lab has step-by-step commands, expected output, practice activities and a knowledge check.

Series

Networking, Bilingual

All 10 parts

Ten long chapters from my COM 3401 notes — foundations, devices, OSI/TCP-IP, IP addressing and subnetting, IPv4 and routing, transport, application protocols, how the internet works, an eight-step network design method with five case studies, and fully worked problems. Every section in English and Sinhala, with redrawn diagrams.

Series

AI Network Labs (cisco-pt-mcp)

All 10 parts

Build, verify and troubleshoot Cisco Packet Tracer networks by prompting an AI client through cisco-pt-mcp — the open-source MCP server by Muhammad Balawal. Setup on every client, six graded labs, a troubleshooting method and a 40-device campus capstone.

Series

ML Playbook: The Full Course

All 64 parts

64 hands-on lessons from Python and data basics to models from scratch, evaluation, deployment and deep learning — every notebook's code and outputs, with bilingual 'why this matters' notes.

Essays

DevOps & SRE writing

DevOps · 11 min

How I Ship 23 Projects: Cloud Build, GitHub Actions, Keyless Auth and Coolify

The deployment map behind my portfolio — which project runs where, the real Cloud Build and GitHub Actions files, Workload Identity Federation, what tokenless PyPI publishing looks like, and five rules I now follow.

20 Oct 2026

DevOps · 4 min

SRE in Practice: Error Budget Math, Burn Rates and Blameless Postmortems

Why 99.99% means 4.38 minutes a month, how burn-rate alerts work, an error budget policy you can adopt, and the postmortem template from my SRE handbook.

6 Oct 2026

DevOps · 4 min

W3DevOps Module · Coolify: A Sub-$10/Month PaaS, Step by Step

Why I run my own Heroku-style PaaS on a single GCP VM, how Coolify works under the hood (Docker + Traefik + SSH), and the five-step process for connecting extra servers — with the real screenshots.

14 Jul 2026

DevOps · 4 min

W3DevOps Module · Production web: DNS, SSH Hardening, Nginx Reverse Proxy, Let's Encrypt and CDNs

How a domain name becomes a running app: DNS resolution, bare metal vs VMs, SSH hardening, a complete Nginx reverse-proxy config with load balancing, TLS and WebSockets, and S3 + CloudFront for static sites.

7 Jul 2026

DevOps · 4 min

W3DevOps Module · Google Cloud: Resource Hierarchy, Compute Engine, Cloud Storage and GKE

The GCP track of my handbook — the platform most of my projects actually run on. Organisation → folders → projects, gcloud, e2 VMs and Managed Instance Groups, GCS storage classes and GKE Autopilot vs Standard.

30 Jun 2026

DevOps · 4 min

W3DevOps Module · AWS: IAM Least Privilege, EC2 + EBS, S3 Hosting, VPC Subnetting and Terraform

The AWS track of my DevOps handbook: root vs IAM users, JSON policies, mounting an EBS volume, EC2 user-data bootstrapping, S3 SPA hosting, CIDR math for VPCs, and a complete Terraform script.

23 Jun 2026

DevOps · 4 min

W3DevOps Module · Kubernetes: Pods, Deployments, Services, Ingress and kubectl

The Kubernetes track of my DevOps handbook — control plane vs worker nodes, CRI/CNI/CSI, zero-downtime Deployments, StatefulSets vs DaemonSets, Services, Ingress and the kubectl commands I reach for when a pod won't start.

16 Jun 2026

DevOps · 4 min

W3DevOps Module · Docker: Containers vs VMs, Layer Caching, Multi-Stage Builds and Compose

Containers are just Linux processes with namespaces and cgroups. This chapter of my DevOps handbook goes from that idea to production Dockerfiles that shrink a 1.2 GB image to 24 MB, and full Compose stacks.

9 Jun 2026

DevOps · 4 min

W3DevOps Module · Linux: The Kernel, the Filesystem and 70 Commands I Actually Use

Every container, VM and CI runner I deploy boots Linux. This is the foundation chapter of my DevOps handbook — architecture, the FHS, streams and redirection, and the 70 commands behind every incident I've debugged.

2 Jun 2026

Toolbox

What I use day to day

DockerDocker ComposeKubernetesGoogle Cloud RunCompute EngineCloud BuildArtifact RegistryAWS EC2 / S3 / VPC / IAMTerraformGitHub ActionsCoolifyNginxLinux
Want to learn this stack?The Self Guide turns the handbook, networking notes and labs into 12 self-paced stages.