<?xml version="1.0" encoding="utf-8" standalone="yes"?><rss version="2.0" xmlns:atom="http://www.w3.org/2005/Atom"><channel><title>Devops on Dev &amp; Platform Engineering Hub</title><link>https://rhidayat.work/topics/devops/</link><description>Recent content in Devops on Dev &amp; Platform Engineering Hub</description><generator>Hugo -- gohugo.io</generator><language>en</language><copyright>© 2026 Rachmat Hidayat</copyright><lastBuildDate>Mon, 10 Aug 2026 01:15:00 +0000</lastBuildDate><atom:link href="https://rhidayat.work/topics/devops/index.xml" rel="self" type="application/rss+xml"/><item><title>Kubernetes Ep 15: Production Helm Charts &amp; Package Deployment</title><link>https://rhidayat.work/series/kubernetes/15-production-helm-chart-deployment/</link><pubDate>Mon, 10 Aug 2026 01:15:00 +0000</pubDate><guid>https://rhidayat.work/series/kubernetes/15-production-helm-chart-deployment/</guid><description>&lt;div class="lead text-neutral-500 dark:text-neutral-400 !mb-9 text-xl"&gt;
 Managing dozens of static YAML manifests across multiple environments (dev, staging, prod) leads to repetitive code and configuration drift. &lt;strong&gt;Helm&lt;/strong&gt; is the official package manager for Kubernetes, enabling templating, parameterization, versioned releases, and one-click upgrades.
&lt;/div&gt;</description></item><item><title>Kubernetes Ep 14: Health Checks &amp; Zero-Downtime Rolling Updates</title><link>https://rhidayat.work/series/kubernetes/14-probes-healthchecks-and-rolling-updates/</link><pubDate>Mon, 10 Aug 2026 01:10:00 +0000</pubDate><guid>https://rhidayat.work/series/kubernetes/14-probes-healthchecks-and-rolling-updates/</guid><description>&lt;div class="lead text-neutral-500 dark:text-neutral-400 !mb-9 text-xl"&gt;
 In production, a container might be in a &lt;code&gt;Running&lt;/code&gt; state according to Docker, yet completely unable to serve HTTP traffic due to a deadlock, database connection timeout, or slow boot sequence. &lt;strong&gt;Probes&lt;/strong&gt; and &lt;strong&gt;Rolling Updates&lt;/strong&gt; guarantee zero-downtime application deployments.
&lt;/div&gt;</description></item><item><title>Kubernetes Ep 13: RBAC, ServiceAccounts &amp; Security</title><link>https://rhidayat.work/series/kubernetes/13-rbac-service-accounts-and-security/</link><pubDate>Mon, 10 Aug 2026 01:05:00 +0000</pubDate><guid>https://rhidayat.work/series/kubernetes/13-rbac-service-accounts-and-security/</guid><description>&lt;div class="lead text-neutral-500 dark:text-neutral-400 !mb-9 text-xl"&gt;
 Security in Kubernetes follows the Principle of Least Privilege. &lt;strong&gt;Role-Based Access Control (RBAC)&lt;/strong&gt; regulates who (Users, Groups, or ServiceAccounts) can perform which actions (verbs: &lt;code&gt;get&lt;/code&gt;, &lt;code&gt;list&lt;/code&gt;, &lt;code&gt;create&lt;/code&gt;, &lt;code&gt;delete&lt;/code&gt;) on which resources (nouns: &lt;code&gt;pods&lt;/code&gt;, &lt;code&gt;services&lt;/code&gt;, &lt;code&gt;secrets&lt;/code&gt;).
&lt;/div&gt;</description></item><item><title>Kubernetes Ep 12: Namespaces, Resource Quotas &amp; LimitRanges</title><link>https://rhidayat.work/series/kubernetes/12-namespaces-resource-quotas-and-limits/</link><pubDate>Mon, 10 Aug 2026 01:00:00 +0000</pubDate><guid>https://rhidayat.work/series/kubernetes/12-namespaces-resource-quotas-and-limits/</guid><description>&lt;div class="lead text-neutral-500 dark:text-neutral-400 !mb-9 text-xl"&gt;
 In enterprise environments, a single Kubernetes cluster is shared across multiple development teams, environments (dev, staging, prod), and microservices. Without resource governance, a single misbehaving application can consume all cluster CPU and memory, crashing critical workloads.
&lt;/div&gt;</description></item><item><title>Kubernetes Ep 11: Jobs, CronJobs &amp; Batch Processing</title><link>https://rhidayat.work/series/kubernetes/11-jobs-cronjobs-and-batch-processing/</link><pubDate>Mon, 10 Aug 2026 00:55:00 +0000</pubDate><guid>https://rhidayat.work/series/kubernetes/11-jobs-cronjobs-and-batch-processing/</guid><description>&lt;div class="lead text-neutral-500 dark:text-neutral-400 !mb-9 text-xl"&gt;
 Unlike Deployments and StatefulSets—which are designed to keep long-running processes alive indefinitely—&lt;strong&gt;Jobs&lt;/strong&gt; and &lt;strong&gt;CronJobs&lt;/strong&gt; are designed for &lt;strong&gt;run-to-completion batch tasks&lt;/strong&gt;. When the workload process terminates with exit code 0, Kubernetes marks the Pod as &lt;code&gt;Completed&lt;/code&gt;.
&lt;/div&gt;</description></item><item><title>Kubernetes Ep 10: DaemonSets &amp; Cluster Node Agents</title><link>https://rhidayat.work/series/kubernetes/10-daemonsets-and-cluster-monitoring/</link><pubDate>Mon, 10 Aug 2026 00:50:00 +0000</pubDate><guid>https://rhidayat.work/series/kubernetes/10-daemonsets-and-cluster-monitoring/</guid><description>&lt;div class="lead text-neutral-500 dark:text-neutral-400 !mb-9 text-xl"&gt;
 While Deployments distribute Pods across nodes based on available capacity, &lt;strong&gt;DaemonSets&lt;/strong&gt; ensure that a copy of a specific Pod runs on &lt;strong&gt;all (or selected) worker nodes&lt;/strong&gt; in the cluster. As nodes are added to or removed from the cluster, DaemonSet Pods are added or garbage-collected automatically.
&lt;/div&gt;</description></item><item><title>Kubernetes Ep 9: StatefulSets &amp; Stateful Database Deployments</title><link>https://rhidayat.work/series/kubernetes/09-statefulsets-and-database-deployments/</link><pubDate>Mon, 10 Aug 2026 00:45:00 +0000</pubDate><guid>https://rhidayat.work/series/kubernetes/09-statefulsets-and-database-deployments/</guid><description>&lt;div class="lead text-neutral-500 dark:text-neutral-400 !mb-9 text-xl"&gt;
 While Deployments are designed for interchangeable, stateless application replicas, stateful workloads like PostgreSQL clusters, Redis Sentinels, Kafka brokers, and Elasticsearch nodes require &lt;strong&gt;stable network identities&lt;/strong&gt;, &lt;strong&gt;dedicated persistent volumes per replica&lt;/strong&gt;, and &lt;strong&gt;strict ordered deployment &amp;amp; scaling&lt;/strong&gt;. This is where &lt;strong&gt;StatefulSets&lt;/strong&gt; shine.
&lt;/div&gt;</description></item><item><title>Kubernetes Ep 8: Persistent Volumes, PVCs &amp; StorageClasses</title><link>https://rhidayat.work/series/kubernetes/08-volumes-pv-pvc-and-storageclass/</link><pubDate>Mon, 10 Aug 2026 00:40:00 +0000</pubDate><guid>https://rhidayat.work/series/kubernetes/08-volumes-pv-pvc-and-storageclass/</guid><description>&lt;div class="lead text-neutral-500 dark:text-neutral-400 !mb-9 text-xl"&gt;
 Containers are designed to be stateless and ephemeral. To run stateful applications like PostgreSQL, MySQL, Redis, or Elasticsearch, Kubernetes provides storage abstractions that decouple persistent storage infrastructure from application workload definitions.
&lt;/div&gt;</description></item><item><title>Kubernetes Ep 7: ConfigMaps, Secrets &amp; Environment Variables</title><link>https://rhidayat.work/series/kubernetes/07-configmaps-secrets-and-env-vars/</link><pubDate>Mon, 10 Aug 2026 00:35:00 +0000</pubDate><guid>https://rhidayat.work/series/kubernetes/07-configmaps-secrets-and-env-vars/</guid><description>&lt;div class="lead text-neutral-500 dark:text-neutral-400 !mb-9 text-xl"&gt;
 The Twelve-Factor App methodology mandates strict separation of application code from configuration settings. &lt;strong&gt;ConfigMaps&lt;/strong&gt; store non-sensitive configuration data (URLs, log levels), while &lt;strong&gt;Secrets&lt;/strong&gt; store sensitive values (passwords, API tokens, TLS keys).
&lt;/div&gt;</description></item><item><title>Kubernetes Ep 4: Deployments, ReplicaSets &amp; Self-Healing Scaling</title><link>https://rhidayat.work/series/kubernetes/04-deployments-replicasets-and-scaling/</link><pubDate>Mon, 10 Aug 2026 00:20:00 +0000</pubDate><guid>https://rhidayat.work/series/kubernetes/04-deployments-replicasets-and-scaling/</guid><description>&lt;div class="lead text-neutral-500 dark:text-neutral-400 !mb-9 text-xl"&gt;
 While Pods are the basic building blocks of Kubernetes, you should rarely deploy bare Pods directly. Instead, production applications use &lt;strong&gt;Deployments&lt;/strong&gt;, a higher-level abstraction that manages &lt;strong&gt;ReplicaSets&lt;/strong&gt; to guarantee high availability, self-healing, and seamless scaling.
&lt;/div&gt;</description></item><item><title>Kubernetes Ep 3: kubectl CLI &amp; Launching Your First Pod</title><link>https://rhidayat.work/series/kubernetes/03-kubectl-cli-and-first-pod/</link><pubDate>Mon, 10 Aug 2026 00:15:00 +0000</pubDate><guid>https://rhidayat.work/series/kubernetes/03-kubectl-cli-and-first-pod/</guid><description>&lt;div class="lead text-neutral-500 dark:text-neutral-400 !mb-9 text-xl"&gt;
 The &lt;strong&gt;&lt;code&gt;kubectl&lt;/code&gt;&lt;/strong&gt; command-line interface is the primary tool platform engineers and developers use to interact with Kubernetes clusters. In this episode, we&amp;rsquo;ll configure &lt;code&gt;kubectl&lt;/code&gt; and deploy our first atomic Kubernetes primitive: the &lt;strong&gt;Pod&lt;/strong&gt;.
&lt;/div&gt;</description></item><item><title>Kubernetes Ep 1: Introduction to Kubernetes &amp; Containers</title><link>https://rhidayat.work/series/kubernetes/01-introduction-to-kubernetes-and-containers/</link><pubDate>Mon, 10 Aug 2026 00:05:00 +0000</pubDate><guid>https://rhidayat.work/series/kubernetes/01-introduction-to-kubernetes-and-containers/</guid><description>&lt;div class="lead text-neutral-500 dark:text-neutral-400 !mb-9 text-xl"&gt;
 The evolution of modern infrastructure has transitioned from physical bare-metal servers to Virtual Machines (VMs), lightweight OCI Containers, and ultimately automated Container Orchestration platforms like &lt;strong&gt;Kubernetes&lt;/strong&gt;.
&lt;/div&gt;</description></item><item><title>Terraform Ep 1: Introduction to IaC and the State File</title><link>https://rhidayat.work/series/terraform/fundamental/01-introduction-and-state/</link><pubDate>Sun, 09 Aug 2026 09:10:00 +0000</pubDate><guid>https://rhidayat.work/series/terraform/fundamental/01-introduction-and-state/</guid><description>Stop deploying cloud resources manually. In this first episode, we will transform your approach to cloud architecture by introducing declarative IaC. You will learn how Terraform tracks physical resources using the state file, and execute your first local configuration.</description></item></channel></rss>