<?xml version="1.0" encoding="UTF-8"?>
<rss version="2.0" xmlns:atom="http://www.w3.org/2005/Atom">
  <channel>
    <title>Santhosh Kumar J — Blog</title>
    <link>https://sk-santhosh.info/blogs</link>
    <description>Thoughts on DevOps, platform engineering, Kubernetes, cloud infrastructure and SRE.</description>
    <language>en</language>
    <lastBuildDate>Tue, 21 Jul 2026 00:00:00 GMT</lastBuildDate>
    <atom:link href="https://sk-santhosh.info/rss.xml" rel="self" type="application/rss+xml"/>
    <item>
      <title>Sandboxing serverless workloads with gVisor and Kubernetes RuntimeClass</title>
      <link>https://sk-santhosh.info/blogs/sandboxing-serverless-workloads-with-gvisor</link>
      <guid isPermaLink="true">https://sk-santhosh.info/blogs/sandboxing-serverless-workloads-with-gvisor</guid>
      <pubDate>Tue, 21 Jul 2026 00:00:00 GMT</pubDate>
      <description>A container is not a security boundary — every pod on a node shares one kernel. Adding gVisor to a pod-per-message serverless platform on Kubernetes: how runsc works, wiring RuntimeClass through Helm and an operator, and the loopback gotcha that breaks kubectl port-forward.</description>
      <category>Kubernetes</category>
      <category>Security</category>
      <category>gVisor</category>
      <category>Serverless</category>
    </item>
    <item>
      <title>From branch to production: automating multi-environment deployments with GitHub Actions and Argo CD on EKS</title>
      <link>https://sk-santhosh.info/blogs/from-branch-to-production-multi-env-deployment-automation</link>
      <guid isPermaLink="true">https://sk-santhosh.info/blogs/from-branch-to-production-multi-env-deployment-automation</guid>
      <pubDate>Thu, 02 Jul 2026 00:00:00 GMT</pubDate>
      <description>How I run 20+ developer environments plus testing, staging and production across two AWS accounts with one standalone deploy-pipeline repo whose workflow every microservice reuses — GitHub Actions building images, self-hosted runners reaching private EKS, and per-cluster Argo CD doing the syncs. On-demand dev deploys, auto-drafted releases and a branch-to-production promotion flow that never rebuilds the artefact.</description>
      <category>Kubernetes</category>
      <category>GitOps</category>
      <category>CI/CD</category>
      <category>Platform Engineering</category>
    </item>
    <item>
      <title>Building a Kubernetes operator in Go: automating SPIFFE workload registration</title>
      <link>https://sk-santhosh.info/blogs/kubernetes-operator-spiffe-workload-registration</link>
      <guid isPermaLink="true">https://sk-santhosh.info/blogs/kubernetes-operator-spiffe-workload-registration</guid>
      <pubDate>Mon, 29 Jun 2026 00:00:00 GMT</pubDate>
      <description>In the previous post I registered SPIFFE entries by hand with spire-server entry create. Here I build a Kubernetes operator that automates it — a controller-runtime reconciler that watches Deployments and registers them with the SPIRE Entry API, finalizer cleanup and Prometheus metrics included.</description>
      <category>Kubernetes</category>
      <category>Go</category>
      <category>Operators</category>
      <category>Platform Engineering</category>
    </item>
    <item>
      <title>Implementing zero trust workload identity with SPIFFE/SPIRE on Kubernetes</title>
      <link>https://sk-santhosh.info/blogs/zero-trust-workload-identity-spiffe-spire</link>
      <guid isPermaLink="true">https://sk-santhosh.info/blogs/zero-trust-workload-identity-spiffe-spire</guid>
      <pubDate>Mon, 29 Jun 2026 00:00:00 GMT</pubDate>
      <description>Static API keys and shared secrets don't scale, and they all hit the Secret Zero problem. Here's how SPIFFE and SPIRE give every workload a short-lived, attested identity on Kubernetes — with working manifests, go-spiffe mTLS and the operational considerations the quickstarts skip.</description>
      <category>Kubernetes</category>
      <category>Security</category>
      <category>Zero Trust</category>
      <category>Platform Engineering</category>
    </item>
    <item>
      <title>Beyond 200 OK: connecting LLM traces to business outcomes with OpenTelemetry</title>
      <link>https://sk-santhosh.info/blogs/beyond-200-ok-llm-traces-business-outcomes</link>
      <guid isPermaLink="true">https://sk-santhosh.info/blogs/beyond-200-ok-llm-traces-business-outcomes</guid>
      <pubDate>Mon, 22 Jun 2026 00:00:00 GMT</pubDate>
      <description>The application-level semantic layer of LLM observability: representing user intent, answer quality and business outcomes as telemetry on the trace, and correlating spans with eval results and feedback to see whether the AI served the user.</description>
      <category>AI</category>
      <category>Observability</category>
      <category>OpenTelemetry</category>
      <category>SRE</category>
    </item>
    <item>
      <title>Implementing SLOs and error budgets in production</title>
      <link>https://sk-santhosh.info/blogs/implementing-slos-and-error-budgets</link>
      <guid isPermaLink="true">https://sk-santhosh.info/blogs/implementing-slos-and-error-budgets</guid>
      <pubDate>Tue, 16 Jun 2026 00:00:00 GMT</pubDate>
      <description>How to turn reliability from a gut feeling into a measurable, negotiated target — choosing good SLIs, setting honest SLOs, deriving an error budget and wiring up multi-window burn-rate alerts in Prometheus.</description>
      <category>SRE</category>
      <category>Reliability</category>
      <category>Observability</category>
      <category>Prometheus</category>
    </item>
    <item>
      <title>Building an AI platform on Kubernetes</title>
      <link>https://sk-santhosh.info/blogs/building-an-ai-platform-on-kubernetes</link>
      <guid isPermaLink="true">https://sk-santhosh.info/blogs/building-an-ai-platform-on-kubernetes</guid>
      <pubDate>Sun, 14 Jun 2026 00:00:00 GMT</pubDate>
      <description>Once three teams have each rebuilt GPU scheduling, model serving and RAG plumbing, you don't have an AI strategy — you have three. Here's how to turn that into one paved road on Kubernetes: a gateway, a serving layer, GPU compute and the cross-cutting concerns that make it production-grade.</description>
      <category>AI</category>
      <category>Kubernetes</category>
      <category>Platform Engineering</category>
      <category>MLOps</category>
    </item>
    <item>
      <title>Observability for AI applications with OpenTelemetry</title>
      <link>https://sk-santhosh.info/blogs/observability-for-ai-applications-opentelemetry</link>
      <guid isPermaLink="true">https://sk-santhosh.info/blogs/observability-for-ai-applications-opentelemetry</guid>
      <pubDate>Fri, 12 Jun 2026 00:00:00 GMT</pubDate>
      <description>LLM apps fail in ways ordinary services don't — silent quality drops, runaway token costs, latency you can't explain. Here's how to instrument them with OpenTelemetry's GenAI conventions and see tokens, cost, latency and traces in Grafana.</description>
      <category>AI</category>
      <category>Observability</category>
      <category>OpenTelemetry</category>
      <category>Grafana</category>
    </item>
    <item>
      <title>Zero-downtime Kubernetes upgrades: a production-ready strategy</title>
      <link>https://sk-santhosh.info/blogs/zero-downtime-kubernetes-upgrades</link>
      <guid isPermaLink="true">https://sk-santhosh.info/blogs/zero-downtime-kubernetes-upgrades</guid>
      <pubDate>Thu, 11 Jun 2026 00:00:00 GMT</pubDate>
      <description>Kubernetes ships three releases a year and you can't skip them — here's how to keep clusters current without users ever noticing, covering version skew, pre-flight checks, workload readiness and a careful node rollout.</description>
      <category>Kubernetes</category>
      <category>Reliability</category>
      <category>SRE</category>
      <category>Platform Engineering</category>
    </item>
    <item>
      <title>Spot instances in production: when to use them, when not to and how to maintain availability</title>
      <link>https://sk-santhosh.info/blogs/running-spot-instances-in-production-safely</link>
      <guid isPermaLink="true">https://sk-santhosh.info/blogs/running-spot-instances-in-production-safely</guid>
      <pubDate>Tue, 09 Jun 2026 00:00:00 GMT</pubDate>
      <description>When spot instances are the right call, when not to use them at all, and how to keep a service available even as AWS reclaims nodes underneath it. A workload-by-workload model with the reasoning behind each decision.</description>
      <category>AWS</category>
      <category>Spot Instances</category>
      <category>Reliability</category>
      <category>Cost Optimisation</category>
    </item>
    <item>
      <title>Reducing Kubernetes costs by 35% with Karpenter and spot instances</title>
      <link>https://sk-santhosh.info/blogs/reducing-kubernetes-costs-karpenter-spot</link>
      <guid isPermaLink="true">https://sk-santhosh.info/blogs/reducing-kubernetes-costs-karpenter-spot</guid>
      <pubDate>Mon, 08 Jun 2026 00:00:00 GMT</pubDate>
      <description>How we cut an EKS compute bill by roughly a third — replacing static node groups with Karpenter, running the stateless majority on spot and letting consolidation reclaim idle capacity, without trading away reliability.</description>
      <category>Kubernetes</category>
      <category>AWS</category>
      <category>Karpenter</category>
      <category>Cost Optimisation</category>
    </item>
    <item>
      <title>Analysing incidents in plain language with MCP and AI</title>
      <link>https://sk-santhosh.info/blogs/mcp-observability-assistant</link>
      <guid isPermaLink="true">https://sk-santhosh.info/blogs/mcp-observability-assistant</guid>
      <pubDate>Sat, 06 Jun 2026 00:00:00 GMT</pubDate>
      <description>Investigating incidents by asking questions in plain language — exposing Prometheus, Loki and Tempo as tools an AI assistant calls over the Model Context Protocol, instead of reaching for PromQL, LogQL and TraceQL.</description>
      <category>AI</category>
      <category>MCP</category>
      <category>Observability</category>
      <category>Platform Engineering</category>
    </item>
    <item>
      <title>Building a RAG pipeline with pgvector and vLLM</title>
      <link>https://sk-santhosh.info/blogs/building-a-rag-pipeline</link>
      <guid isPermaLink="true">https://sk-santhosh.info/blogs/building-a-rag-pipeline</guid>
      <pubDate>Tue, 02 Jun 2026 00:00:00 GMT</pubDate>
      <description>How retrieval-augmented generation grounds an LLM in your own data — chunking, embeddings, vector search with pgvector and generation with a self-hosted vLLM endpoint.</description>
      <category>AI</category>
      <category>RAG</category>
      <category>PostgreSQL</category>
      <category>Platform Engineering</category>
    </item>
    <item>
      <title>Private networking on AWS for GDPR and ISO 27001 compliance</title>
      <link>https://sk-santhosh.info/blogs/compliance-private-networking-aws-vpc</link>
      <guid isPermaLink="true">https://sk-santhosh.info/blogs/compliance-private-networking-aws-vpc</guid>
      <pubDate>Tue, 26 May 2026 00:00:00 GMT</pubDate>
      <description>How to design an AWS VPC that keeps workloads private, auditable and aligned with GDPR, ISO 27001 and PCI-DSS — using private subnets, VPC endpoints, flow logs and Terraform.</description>
      <category>AWS</category>
      <category>Networking</category>
      <category>Compliance</category>
      <category>Terraform</category>
    </item>
    <item>
      <title>Application performance monitoring with OpenTelemetry, Grafana and Tempo</title>
      <link>https://sk-santhosh.info/blogs/apm-opentelemetry-grafana-tempo</link>
      <guid isPermaLink="true">https://sk-santhosh.info/blogs/apm-opentelemetry-grafana-tempo</guid>
      <pubDate>Fri, 22 May 2026 00:00:00 GMT</pubDate>
      <description>How to set up application performance monitoring using OpenTelemetry for instrumentation, Tempo for traces and Grafana for unified visibility.</description>
      <category>Observability</category>
      <category>OpenTelemetry</category>
      <category>Grafana</category>
      <category>Platform Engineering</category>
    </item>
    <item>
      <title>Deploying AI inference on Kubernetes</title>
      <link>https://sk-santhosh.info/blogs/deploying-ai-models-on-kubernetes</link>
      <guid isPermaLink="true">https://sk-santhosh.info/blogs/deploying-ai-models-on-kubernetes</guid>
      <pubDate>Tue, 19 May 2026 00:00:00 GMT</pubDate>
      <description>A practical guide to running AI model inference workloads on Kubernetes with vLLM — resource limits, autoscaling and serving at scale.</description>
      <category>Kubernetes</category>
      <category>AI</category>
      <category>Platform Engineering</category>
      <category>DevOps</category>
    </item>
    <item>
      <title>Kubernetes and Cloudflare Tunnel: Zero Trust private networking without a public IP</title>
      <link>https://sk-santhosh.info/blogs/kubernetes-cloudflare-private-networking</link>
      <guid isPermaLink="true">https://sk-santhosh.info/blogs/kubernetes-cloudflare-private-networking</guid>
      <pubDate>Sun, 17 May 2026 00:00:00 GMT</pubDate>
      <description>How to expose Kubernetes services securely using Cloudflare Tunnel and Zero Trust, with no open inbound ports.</description>
      <category>Kubernetes</category>
      <category>Cloudflare</category>
      <category>Networking</category>
      <category>Platform Engineering</category>
    </item>
  </channel>
</rss>
