<?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 Samarthya</title><link>https://samarthya.me/tags/devops/</link><description>Recent content in Devops on Samarthya</description><generator>Hugo -- gohugo.io</generator><language>en</language><copyright>© Samarthya 2018-2026. All rights reserved.</copyright><lastBuildDate>Tue, 27 Oct 2026 20:32:15 -0400</lastBuildDate><atom:link href="https://samarthya.me/tags/devops/index.xml" rel="self" type="application/rss+xml"/><item><title>SSDLC when exploits are cheap: a working concept</title><link>https://samarthya.me/posts/ssdlc-in-the-age-of-ai-exploits/</link><pubDate>Tue, 27 Oct 2026 20:32:15 -0400</pubDate><guid>https://samarthya.me/posts/ssdlc-in-the-age-of-ai-exploits/</guid><description>&lt;div class="lead text-neutral-500 dark:text-neutral-400 !mb-9 text-xl"&gt;&#10; A fire inspection once a year works when fires are rare. When sparks are falling every day, you need smoke&#10;detectors in every room, a sprinkler that fixes the small ones by itself, and a person who decides what to do&#10;about the big ones. That is what a secure development life cycle has to become.&#10;&lt;/div&gt;&#10;&#10;&lt;p&gt;These are my notes for a question I keep coming back to: &lt;strong&gt;how do you keep shipping software when new&#10;vulnerabilities arrive faster than you can fix them, and attackers can use an LLM to turn a CVE description into&#10;a working exploit?&lt;/strong&gt; There is no single standard answer. What follows is the concept I would build, with the&#10;evidence behind each choice and the parts where I am still unsure.&lt;/p&gt;</description><media:content xmlns:media="http://search.yahoo.com/mrss/" url="https://samarthya.me/posts/ssdlc-in-the-age-of-ai-exploits/feature.png"/></item><item><title>From finding to fix: Black Duck pull requests on GitHub Enterprise Server</title><link>https://samarthya.me/posts/ghes-blackduck-fix-prs/</link><pubDate>Tue, 27 Oct 2026 20:05:18 -0400</pubDate><guid>https://samarthya.me/posts/ghes-blackduck-fix-prs/</guid><description>&lt;div class="lead text-neutral-500 dark:text-neutral-400 !mb-9 text-xl"&gt;&#10; A vulnerability report that nobody reads is a smoke alarm with no battery. The goal is not more findings. The&#10;goal is a pull request that a developer can review and merge before lunch.&#10;&lt;/div&gt;&#10;&#10;&#10;&lt;h2 class="relative group"&gt;Why this post&#10; &lt;div id="why-this-post" class="anchor"&gt;&lt;/div&gt;&#10; &#10; &lt;span&#10; class="absolute top-0 w-6 transition-opacity opacity-0 -start-6 not-prose group-hover:opacity-100 select-none"&gt;&#10; &lt;a class="text-primary-300 dark:text-neutral-700 !no-underline" href="#why-this-post" aria-label="Anchor"&gt;#&lt;/a&gt;&#10; &lt;/span&gt;&#10; &#10;&lt;/h2&gt;&#10;&lt;p&gt;SentinelOne&amp;rsquo;s&#10;&lt;a href="https://www.sentinelone.com/cybersecurity-101/cybersecurity/github-vulnerability-management/" target="_blank" rel="noreferrer"&gt;overview of GitHub vulnerability management&lt;/a&gt;&#10;describes the job as &amp;ldquo;discovering, triaging, and remediating security vulnerabilities in GitHub repositories,&#10;dependencies, and workflows&amp;rdquo;. It lists the usual native tools: Dependabot, code scanning, secret scanning and&#10;security advisories. It also admits the gaps: no asset inventory or risk scoring, and dependencies that&#10;Dependabot cannot track.&lt;/p&gt;</description><media:content xmlns:media="http://search.yahoo.com/mrss/" url="https://samarthya.me/posts/ghes-blackduck-fix-prs/feature.png"/></item><item><title>Security standards, plainly, part 4: CISA KEV and BOD 26-04</title><link>https://samarthya.me/posts/security-standards-4-cisa-kev-bod-26-04/</link><pubDate>Sun, 25 Oct 2026 19:30:00 -0400</pubDate><guid>https://samarthya.me/posts/security-standards-4-cisa-kev-bod-26-04/</guid><description>&lt;div class="lead text-neutral-500 dark:text-neutral-400 !mb-9 text-xl"&gt;&#10; A hospital emergency room does not treat patients in the order they arrive, or by how loudly they shout. A triage&#10;nurse asks a few quick questions and sends the bleeding patient in first. CISA&amp;rsquo;s KEV catalog and directive&#10;BOD 26-04 are triage for vulnerabilities.&#10;&lt;/div&gt;&#10;&#10;&lt;p&gt;The first three parts of this series, &lt;a href="https://samarthya.me/posts/security-standards-1-nist-ssdf/" &gt;SSDF&lt;/a&gt;,&#10;&lt;a href="https://samarthya.me/posts/security-standards-2-owasp-samm/" &gt;SAMM&lt;/a&gt; and&#10;&lt;a href="https://samarthya.me/posts/security-standards-3-slsa/" &gt;SLSA&lt;/a&gt;, share one gap: none of them says &lt;strong&gt;how fast&lt;/strong&gt; a&#10;vulnerability must be fixed. This part is about the clock.&lt;/p&gt;</description><media:content xmlns:media="http://search.yahoo.com/mrss/" url="https://samarthya.me/posts/security-standards-4-cisa-kev-bod-26-04/feature.png"/></item><item><title>Security standards, plainly, part 3: SLSA v1.2</title><link>https://samarthya.me/posts/security-standards-3-slsa/</link><pubDate>Sat, 24 Oct 2026 19:30:00 -0400</pubDate><guid>https://samarthya.me/posts/security-standards-3-slsa/</guid><description>&lt;div class="lead text-neutral-500 dark:text-neutral-400 !mb-9 text-xl"&gt;&#10; A sealed medicine bottle tells you two things: who made it, and that nobody has opened it since. You do not need&#10;to test the pills yourself. SLSA gives software the same seal and the same label.&#10;&lt;/div&gt;&#10;&#10;&lt;p&gt;&lt;a href="https://samarthya.me/posts/security-standards-1-nist-ssdf/" &gt;Part 1&lt;/a&gt; (SSDF) listed what a secure process should do.&#10;&lt;a href="https://samarthya.me/posts/security-standards-2-owasp-samm/" &gt;Part 2&lt;/a&gt; (SAMM) measured how well you do it. Both mostly&#10;look at the code. SLSA looks at the journey from code to the thing you ship, because attackers have learned that&#10;it is often easier to tamper with a build than to find a bug.&lt;/p&gt;</description><media:content xmlns:media="http://search.yahoo.com/mrss/" url="https://samarthya.me/posts/security-standards-3-slsa/feature.png"/></item><item><title>Security standards, plainly, part 2: OWASP SAMM v2.0</title><link>https://samarthya.me/posts/security-standards-2-owasp-samm/</link><pubDate>Fri, 23 Oct 2026 19:30:00 -0400</pubDate><guid>https://samarthya.me/posts/security-standards-2-owasp-samm/</guid><description>&lt;div class="lead text-neutral-500 dark:text-neutral-400 !mb-9 text-xl"&gt;&#10; A fitness tracker does not make you fit. It tells you where you are today, lets you pick a goal you can reach, and&#10;shows whether you are moving towards it. OWASP SAMM is a fitness tracker for how an organisation builds secure&#10;software.&#10;&lt;/div&gt;&#10;&#10;&lt;p&gt;In &lt;a href="https://samarthya.me/posts/security-standards-1-nist-ssdf/" &gt;part 1&lt;/a&gt; NIST&amp;rsquo;s SSDF gave us a list of &lt;em&gt;what&lt;/em&gt; a secure&#10;development process should include. It did not say how well you do each thing, or what to improve first. That is&#10;the gap SAMM fills.&lt;/p&gt;</description><media:content xmlns:media="http://search.yahoo.com/mrss/" url="https://samarthya.me/posts/security-standards-2-owasp-samm/feature.png"/></item><item><title>Security standards, plainly, part 1: NIST SSDF (SP 800-218)</title><link>https://samarthya.me/posts/security-standards-1-nist-ssdf/</link><pubDate>Thu, 22 Oct 2026 19:30:00 -0400</pubDate><guid>https://samarthya.me/posts/security-standards-1-nist-ssdf/</guid><description>&lt;div class="lead text-neutral-500 dark:text-neutral-400 !mb-9 text-xl"&gt;&#10; A building code does not tell you which bricks to buy. It tells you what a safe building must have: exits,&#10;wiring that will not catch fire, a way to stop the roof falling in. NIST&amp;rsquo;s Secure Software Development Framework&#10;is that code for software teams.&#10;&lt;/div&gt;&#10;&#10;&lt;p&gt;This series explains, for someone who does not live in security, the four names that keep coming up when people&#10;talk about building software safely: &lt;strong&gt;NIST SSDF&lt;/strong&gt;, &lt;strong&gt;OWASP SAMM&lt;/strong&gt;, &lt;strong&gt;SLSA&lt;/strong&gt; and &lt;strong&gt;CISA&amp;rsquo;s KEV catalog with&#10;directive BOD 26-04&lt;/strong&gt;. Each post answers three questions: what is it, what does it ask of a team, and what is it&#10;worth. I lean on all four in&#10;&lt;a href="https://samarthya.me/posts/ssdlc-in-the-age-of-ai-exploits/" &gt;SSDLC when exploits are cheap&lt;/a&gt;.&lt;/p&gt;</description><media:content xmlns:media="http://search.yahoo.com/mrss/" url="https://samarthya.me/posts/security-standards-1-nist-ssdf/feature.png"/></item><item><title>Kafka JMX: What to Enable and What It Actually Measures</title><link>https://samarthya.me/posts/kafka-jmx-monitoring/</link><pubDate>Sat, 11 Oct 2025 00:00:00 +0000</pubDate><guid>https://samarthya.me/posts/kafka-jmx-monitoring/</guid><description>&lt;p&gt;Kafka was running, producers were sending messages, and yet I still felt I was operating it by looking at the console and guessing. I wanted numbers that could tell me whether the broker was busy, whether consumers were falling behind, and whether replication was healthy.&lt;/p&gt;</description></item><item><title>CISM Notes: Connecting Technical Controls to Security Governance</title><link>https://samarthya.me/posts/cism-security-governance-notes/</link><pubDate>Sat, 30 Aug 2025 00:00:00 +0000</pubDate><guid>https://samarthya.me/posts/cism-security-governance-notes/</guid><description>&lt;p&gt;While working with infrastructure, security controls feel very concrete: a certificate expires, a broker needs authorization, or an account has too much access. Studying CISM helped me connect those individual tasks to the larger management context.&lt;/p&gt;</description></item><item><title>Securing Kafka: Start with Identity, Transport, and Authorization</title><link>https://samarthya.me/posts/securing-kafka-basics/</link><pubDate>Sat, 22 Mar 2025 00:00:00 +0000</pubDate><guid>https://samarthya.me/posts/securing-kafka-basics/</guid><description>&lt;p&gt;When I started looking at Kafka security, I found myself jumping straight to configuration properties. That was backwards. I found it easier to ask three questions first:&lt;/p&gt;&#10;&#10; &#10;&#10;&#10;&#10;&lt;div&#10; &#10; class="flex px-4 py-3 rounded-md shadow bg-primary-100 dark:bg-primary-900"&#10; &#10; &gt;&#10; &lt;span&#10; &#10; class="text-primary-400 pe-3 flex items-center"&#10; &#10; &gt;&#10; &lt;span class="relative block icon"&gt;&lt;svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 512 512"&gt;&lt;path fill="currentColor" d="M256 0C114.6 0 0 114.6 0 256s114.6 256 256 256s256-114.6 256-256S397.4 0 256 0zM256 128c17.67 0 32 14.33 32 32c0 17.67-14.33 32-32 32S224 177.7 224 160C224 142.3 238.3 128 256 128zM296 384h-80C202.8 384 192 373.3 192 360s10.75-24 24-24h16v-64H224c-13.25 0-24-10.75-24-24S210.8 224 224 224h32c13.25 0 24 10.75 24 24v88h16c13.25 0 24 10.75 24 24S309.3 384 296 384z"/&gt;&lt;/svg&gt;&#10;&lt;/span&gt;&#10; &lt;/span&gt;&#10;&#10; &lt;span&#10; &#10; class="dark:text-neutral-300"&#10; &#10; &gt;Written up in October 2026 from my notes at the time. The configuration snippets and verification output are illustrative and contain no real credentials.&lt;/span&gt;&#10;&lt;/div&gt;&#10;&#10;&lt;figure&gt;&lt;img&#10; class="my-0 rounded-md"&#10; loading="lazy"&#10; decoding="async"&#10; fetchpriority="low"&#10; alt="Encryption, authentication, and authorization are separate Kafka security layers"&#10; src="https://samarthya.me/posts/securing-kafka-basics/kafka-security-layers.svg"&#10; &gt;&lt;/figure&gt;&#10;&lt;ol&gt;&#10;&lt;li&gt;Can the client prove who it is?&lt;/li&gt;&#10;&lt;li&gt;Can the client communicate privately with the broker?&lt;/li&gt;&#10;&lt;li&gt;Is that identity allowed to perform this operation?&lt;/li&gt;&#10;&lt;/ol&gt;&#10;&lt;p&gt;These are authentication, encryption, and authorization. Configuring one does not automatically provide the others.&lt;/p&gt;</description></item><item><title>Kafka Cluster Fundamentals: Brokers, Topics, and Partitions</title><link>https://samarthya.me/posts/kafka-cluster-fundamentals/</link><pubDate>Sat, 18 Jan 2025 00:00:00 +0000</pubDate><guid>https://samarthya.me/posts/kafka-cluster-fundamentals/</guid><description>&lt;p&gt;I spent a fair amount of time looking at Kafka command output before the vocabulary settled in my head. Once I understood the difference between a broker, a topic, and a partition, the cluster stopped looking like one large mysterious system.&lt;/p&gt;</description></item><item><title>ZooKeeper Explained: Coordination Behind a Kafka Cluster</title><link>https://samarthya.me/posts/zookeeper-coordination-explained/</link><pubDate>Sat, 23 Nov 2024 00:00:00 +0000</pubDate><guid>https://samarthya.me/posts/zookeeper-coordination-explained/</guid><description>&lt;p&gt;When I first came across ZooKeeper in a Kafka deployment, I treated it as another dependency that had to be started before Kafka. That explanation was not good enough. I wanted to know what it was actually doing when a broker disappeared or a controller changed.&lt;/p&gt;</description></item><item><title>A Maintainable Ansible Playbook Structure</title><link>https://samarthya.me/posts/ansible-playbook-structure/</link><pubDate>Sat, 14 Sep 2024 00:00:00 +0000</pubDate><guid>https://samarthya.me/posts/ansible-playbook-structure/</guid><description>&lt;p&gt;My first Ansible playbook was a single file. It installed packages, created users, copied configuration, and restarted services. It was a reasonable starting point. The problem began when every change required editing the same file, which had quietly become a miniature operating system.&lt;/p&gt;</description></item><item><title>Ansible Magic Variables: Useful Context Without Guesswork</title><link>https://samarthya.me/posts/ansible-magic-variables/</link><pubDate>Sat, 08 Jun 2024 00:00:00 +0000</pubDate><guid>https://samarthya.me/posts/ansible-magic-variables/</guid><description>&lt;p&gt;The first time I saw &lt;code&gt;hostvars&lt;/code&gt; inside a Jinja expression I thought Ansible had become much cleverer than I was. It was useful, but it also made the playbook harder to read. After a few such expressions, I went back and learned what Ansible calls magic variables.&lt;/p&gt;</description></item><item><title>Ansible Configuration: Make the Defaults Explicit</title><link>https://samarthya.me/posts/ansible-configuration-basics/</link><pubDate>Sat, 16 Mar 2024 00:00:00 +0000</pubDate><guid>https://samarthya.me/posts/ansible-configuration-basics/</guid><description>&lt;p&gt;When I first used Ansible, I was happy that it worked without a configuration file. Later, the same playbook behaved differently depending on which folder I ran it from. That was the point at which I stopped treating the defaults as magic and created a small project-level &lt;code&gt;ansible.cfg&lt;/code&gt;.&lt;/p&gt;</description></item><item><title>Getting Started with Ansible: From One Command to a Playbook</title><link>https://samarthya.me/posts/getting-started-with-ansible/</link><pubDate>Sun, 21 Jan 2024 00:00:00 +0000</pubDate><guid>https://samarthya.me/posts/getting-started-with-ansible/</guid><description>&lt;p&gt;I had been writing shell commands for every small infrastructure change. It worked, until I needed to repeat the same change on another machine and could no longer remember which command I had run first. That was my reason for starting with Ansible.&lt;/p&gt;</description></item><item><title>Snapshot &amp; Restore</title><link>https://samarthya.me/posts/snapshot-restore/</link><pubDate>Wed, 26 Feb 2020 08:58:21 +0000</pubDate><guid>https://samarthya.me/posts/snapshot-restore/</guid><description>&lt;p&gt;If you have a production grade elastic cluster it is always recommended to do a regular backup as a standard practice.&lt;/p&gt;&#10;&lt;blockquote&gt;&lt;p&gt;Snapshot is a backup of information, that can be be used to restore the last known good state of the system&lt;/p&gt;&#10;&lt;/blockquote&gt;</description></item></channel></rss>