<?xml version="1.0" encoding="UTF-8"?><rss xmlns:dc="http://purl.org/dc/elements/1.1/" xmlns:content="http://purl.org/rss/1.0/modules/content/" xmlns:atom="http://www.w3.org/2005/Atom" version="2.0" xmlns:itunes="http://www.itunes.com/dtds/podcast-1.0.dtd" xmlns:googleplay="http://www.google.com/schemas/play-podcasts/1.0"><channel><title><![CDATA[DevOps Bulletin]]></title><description><![CDATA[Weekly newsletter with the most original stories, podcasts, and open-source devtools in the DevOps, FinOps, and Security space!]]></description><link>https://www.devopsbulletin.com</link><image><url>https://substackcdn.com/image/fetch/$s_!WEyW!,w_256,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F6c73a12d-9a65-4693-aa0a-3c71b07211fd_1024x1024.png</url><title>DevOps Bulletin</title><link>https://www.devopsbulletin.com</link></image><generator>Substack</generator><lastBuildDate>Sun, 03 May 2026 18:48:15 GMT</lastBuildDate><atom:link href="https://www.devopsbulletin.com/feed" rel="self" type="application/rss+xml"/><copyright><![CDATA[Mohamed Labouardy]]></copyright><language><![CDATA[en]]></language><webMaster><![CDATA[devopsbulletin@substack.com]]></webMaster><itunes:owner><itunes:email><![CDATA[devopsbulletin@substack.com]]></itunes:email><itunes:name><![CDATA[Mohamed Labouardy]]></itunes:name></itunes:owner><itunes:author><![CDATA[Mohamed Labouardy]]></itunes:author><googleplay:owner><![CDATA[devopsbulletin@substack.com]]></googleplay:owner><googleplay:email><![CDATA[devopsbulletin@substack.com]]></googleplay:email><googleplay:author><![CDATA[Mohamed Labouardy]]></googleplay:author><itunes:block><![CDATA[Yes]]></itunes:block><item><title><![CDATA[Digest #212: GitHub Actions Weakest Link, Lambda's Invisible Network, Cloudflare's AI Stack and Terragrunt is Dead]]></title><description><![CDATA[Pulling back the curtain on Lambda's invisible network to GitHub Actions being the biggest CI/CD attack surface. Add Cloudflare sharing the internal AI engineering stack they actually use.]]></description><link>https://www.devopsbulletin.com/p/digest-212-github-actions-weakest</link><guid isPermaLink="false">https://www.devopsbulletin.com/p/digest-212-github-actions-weakest</guid><dc:creator><![CDATA[Mohamed Labouardy]]></dc:creator><pubDate>Fri, 01 May 2026 15:54:24 GMT</pubDate><enclosure url="https://substackcdn.com/image/youtube/w_728,c_limit/P6u0K3-z2p4" length="0" type="image/jpeg"/><content:encoded><![CDATA[<div class="captioned-image-container"><figure><a class="image-link image2" target="_blank" href="https://info.jetbrains.com/teamcity-livestream-may12-2026.html?utm_source=newsletter_devops-bulletin&amp;utm_medium=cpc&amp;utm_campaign=dzone-nl-livestream" data-component-name="Image2ToDOM"><div class="image2-inset"><picture><source type="image/webp" srcset="https://substackcdn.com/image/fetch/$s_!9KW_!,w_424,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F18d00937-2800-4f55-b0e3-505a91de521d_268x76.png 424w, https://substackcdn.com/image/fetch/$s_!9KW_!,w_848,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F18d00937-2800-4f55-b0e3-505a91de521d_268x76.png 848w, https://substackcdn.com/image/fetch/$s_!9KW_!,w_1272,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F18d00937-2800-4f55-b0e3-505a91de521d_268x76.png 1272w, https://substackcdn.com/image/fetch/$s_!9KW_!,w_1456,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F18d00937-2800-4f55-b0e3-505a91de521d_268x76.png 1456w" sizes="100vw"><img src="https://substackcdn.com/image/fetch/$s_!9KW_!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F18d00937-2800-4f55-b0e3-505a91de521d_268x76.png" width="268" height="76" data-attrs="{&quot;src&quot;:&quot;https://substack-post-media.s3.amazonaws.com/public/images/18d00937-2800-4f55-b0e3-505a91de521d_268x76.png&quot;,&quot;srcNoWatermark&quot;:null,&quot;fullscreen&quot;:null,&quot;imageSize&quot;:null,&quot;height&quot;:76,&quot;width&quot;:268,&quot;resizeWidth&quot;:null,&quot;bytes&quot;:5721,&quot;alt&quot;:null,&quot;title&quot;:null,&quot;type&quot;:&quot;image/png&quot;,&quot;href&quot;:&quot;https://info.jetbrains.com/teamcity-livestream-may12-2026.html?utm_source=newsletter_devops-bulletin&amp;utm_medium=cpc&amp;utm_campaign=dzone-nl-livestream&quot;,&quot;belowTheFold&quot;:false,&quot;topImage&quot;:true,&quot;internalRedirect&quot;:&quot;https://www.devopsbulletin.com/i/196123668?img=https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F18d00937-2800-4f55-b0e3-505a91de521d_268x76.png&quot;,&quot;isProcessing&quot;:false,&quot;align&quot;:null,&quot;offset&quot;:false}" class="sizing-normal" alt="" srcset="https://substackcdn.com/image/fetch/$s_!9KW_!,w_424,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F18d00937-2800-4f55-b0e3-505a91de521d_268x76.png 424w, https://substackcdn.com/image/fetch/$s_!9KW_!,w_848,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F18d00937-2800-4f55-b0e3-505a91de521d_268x76.png 848w, https://substackcdn.com/image/fetch/$s_!9KW_!,w_1272,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F18d00937-2800-4f55-b0e3-505a91de521d_268x76.png 1272w, https://substackcdn.com/image/fetch/$s_!9KW_!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F18d00937-2800-4f55-b0e3-505a91de521d_268x76.png 1456w" sizes="100vw" fetchpriority="high"></picture><div></div></div></a></figure></div><p><a href="https://info.jetbrains.com/teamcity-livestream-may12-2026.html?utm_source=newsletter_devops-bulletin&amp;utm_medium=cpc&amp;utm_campaign=dzone-nl-livestream">TeamCity 2026.1</a> introduces a set of focused improvements that make your CI/CD more intuitive, intelligent, and enterprise-ready.</p><p>Werner Vogels published a detailed look at the engineering behind Lambda&#8217;s network. On the security side, GitHub Actions is identified as the weakest link in your CI/CD chain, with a thorough breakdown of how supply chain attacks can move through workflows. Cloudflare shared the internal AI engineering stack they actually run, including how they&#8217;re orchestrating AI code review at scale across their own engineering org. Halodoc documented their migration of AWS MSK from ZooKeeper to KRaft using a canary approach, and one team explains why Dockerfile practices cost you before they ever become a security problem.</p><p>On the tutorial side: a $1,432 to $233/month hosting cut by moving from DigitalOcean to Hetzner with zero downtime, Terraform module design via an AI agent skill built around design decisions first and code generation second, a detailed argument that Terragrunt&#8217;s run-all is broken beyond repair by multi-state transactions, benchmarking workflow execution scalability on Postgres, building a production MCP server in Go, auto-diagnosing Kubernetes alerts with HolmesGPT, and Cloudflare&#8217;s own AI code review pipeline in depth.</p><p>For videos this week: a practical terminal setup combining Tmux, btop, and GPU monitoring into a single system monitoring workflow, a real-world look at what a billion database rows actually looks like in production, and an investigation into why companies spend millions buying GitHub stars.</p><p>This week&#8217;s open source picks include JuiceFS, a Go-based POSIX file system that stores data in S3 and metadata in Redis or MySQL with 10x the sequential throughput of EFS; Gatus, a Go health dashboard that monitors over HTTP, TCP, DNS, gRPC, and 40+ alerting integrations; kured, the CNCF Sandbox Kubernetes daemonset that automates safe node reboots using API server locking; and RedAI, a TypeScript and Python workbench that validates AI-discovered vulnerabilities in live browser and simulator environments before generating reports.</p><h4>AI, Pipelines, and Enterprise CI/CD</h4><div class="captioned-image-container"><figure><a class="image-link image2 is-viewable-img" target="_blank" href="https://info.jetbrains.com/teamcity-livestream-may12-2026.html?utm_source=newsletter_devops-bulletin&amp;utm_medium=cpc&amp;utm_campaign=dzone-nl-livestream" data-component-name="Image2ToDOM"><div class="image2-inset"><picture><source type="image/webp" srcset="https://substackcdn.com/image/fetch/$s_!fBav!,w_424,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F600ad9b6-466d-49a1-94cd-7303adc6786d_2560x1440.png 424w, https://substackcdn.com/image/fetch/$s_!fBav!,w_848,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F600ad9b6-466d-49a1-94cd-7303adc6786d_2560x1440.png 848w, https://substackcdn.com/image/fetch/$s_!fBav!,w_1272,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F600ad9b6-466d-49a1-94cd-7303adc6786d_2560x1440.png 1272w, https://substackcdn.com/image/fetch/$s_!fBav!,w_1456,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F600ad9b6-466d-49a1-94cd-7303adc6786d_2560x1440.png 1456w" sizes="100vw"><img src="https://substackcdn.com/image/fetch/$s_!fBav!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F600ad9b6-466d-49a1-94cd-7303adc6786d_2560x1440.png" width="1456" height="819" data-attrs="{&quot;src&quot;:&quot;https://substack-post-media.s3.amazonaws.com/public/images/600ad9b6-466d-49a1-94cd-7303adc6786d_2560x1440.png&quot;,&quot;srcNoWatermark&quot;:null,&quot;fullscreen&quot;:null,&quot;imageSize&quot;:null,&quot;height&quot;:819,&quot;width&quot;:1456,&quot;resizeWidth&quot;:null,&quot;bytes&quot;:683771,&quot;alt&quot;:null,&quot;title&quot;:null,&quot;type&quot;:&quot;image/png&quot;,&quot;href&quot;:&quot;https://info.jetbrains.com/teamcity-livestream-may12-2026.html?utm_source=newsletter_devops-bulletin&amp;utm_medium=cpc&amp;utm_campaign=dzone-nl-livestream&quot;,&quot;belowTheFold&quot;:false,&quot;topImage&quot;:false,&quot;internalRedirect&quot;:&quot;https://www.devopsbulletin.com/i/196123668?img=https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F600ad9b6-466d-49a1-94cd-7303adc6786d_2560x1440.png&quot;,&quot;isProcessing&quot;:false,&quot;align&quot;:null,&quot;offset&quot;:false}" class="sizing-normal" alt="" srcset="https://substackcdn.com/image/fetch/$s_!fBav!,w_424,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F600ad9b6-466d-49a1-94cd-7303adc6786d_2560x1440.png 424w, https://substackcdn.com/image/fetch/$s_!fBav!,w_848,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F600ad9b6-466d-49a1-94cd-7303adc6786d_2560x1440.png 848w, https://substackcdn.com/image/fetch/$s_!fBav!,w_1272,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F600ad9b6-466d-49a1-94cd-7303adc6786d_2560x1440.png 1272w, https://substackcdn.com/image/fetch/$s_!fBav!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F600ad9b6-466d-49a1-94cd-7303adc6786d_2560x1440.png 1456w" sizes="100vw"></picture><div class="image-link-expand"><div class="pencraft pc-display-flex pc-gap-8 pc-reset"><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container restack-image"><svg role="img" width="20" height="20" viewBox="0 0 20 20" fill="none" stroke-width="1.5" stroke="var(--color-fg-primary)" stroke-linecap="round" stroke-linejoin="round" xmlns="http://www.w3.org/2000/svg"><g><title></title><path d="M2.53001 7.81595C3.49179 4.73911 6.43281 2.5 9.91173 2.5C13.1684 2.5 15.9537 4.46214 17.0852 7.23684L17.6179 8.67647M17.6179 8.67647L18.5002 4.26471M17.6179 8.67647L13.6473 6.91176M17.4995 12.1841C16.5378 15.2609 13.5967 17.5 10.1178 17.5C6.86118 17.5 4.07589 15.5379 2.94432 12.7632L2.41165 11.3235M2.41165 11.3235L1.5293 15.7353M2.41165 11.3235L6.38224 13.0882"></path></g></svg></button><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container view-image"><svg xmlns="http://www.w3.org/2000/svg" width="20" height="20" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="lucide lucide-maximize2 lucide-maximize-2"><polyline points="15 3 21 3 21 9"></polyline><polyline points="9 21 3 21 3 15"></polyline><line x1="21" x2="14" y1="3" y2="10"></line><line x1="3" x2="10" y1="21" y2="14"></line></svg></button></div></div></div></a></figure></div><p>TeamCity 2026.1 introduces a set of focused improvements that make your CI/CD more intuitive, intelligent, and enterprise-ready. <a href="https://info.jetbrains.com/teamcity-livestream-may12-2026.html?utm_source=newsletter_devops-bulletin&amp;utm_medium=cpc&amp;utm_campaign=dzone-nl-livestream">Join us</a> on May 12th for a live walkthrough of the latest updates, including the new TeamCity CLI and MCP support!</p><h4>Newsworthy stories</h4><ul><li><p><strong><a href="https://www.allthingsdistributed.com/2026/04/the-invisible-engineering-behind-lambdas-network.html">The invisible engineering behind Lambda&#8217;s network</a></strong></p></li><li><p><strong><a href="https://nesbitt.io/2026/04/28/github-actions-is-the-weakest-link.html">GitHub Actions is the weakest link</a></strong></p></li><li><p><strong><a href="https://blog.cloudflare.com/internal-ai-engineering-stack">The AI engineering stack we built internally</a></strong></p></li><li><p><strong><a href="https://cloudnativenow.com/contributed-content/dockerfile-practices-are-a-devops-tax-before-they-are-a-security-concern">Dockerfile practices are a DevOps tax before they are a security concern</a></strong></p></li><li><p><strong><a href="https://blogs.halodoc.io/migrating-aws-msk-from-zookeeper-to-kraft-a-canary-approach">Migrating AWS MSK from ZooKeeper to KRaft</a></strong></p></li></ul><h4>Tutorials of the week</h4><ul><li><p><strong><a href="https://thomasthornton.cloud/terraform-module-design-is-the-hard-part-so-i-built-an-agent-skill-for-it/">Terraform module design is the hard part, so I built an agent skill for it</a></strong></p></li></ul><div class="captioned-image-container"><figure><a class="image-link image2 is-viewable-img" target="_blank" href="https://thomasthornton.cloud/terraform-module-design-is-the-hard-part-so-i-built-an-agent-skill-for-it/" data-component-name="Image2ToDOM"><div class="image2-inset"><picture><source type="image/webp" srcset="https://substackcdn.com/image/fetch/$s_!7bwu!,w_424,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F22c301c5-c30b-4eaa-97cc-cd7422a8665d_825x563.png 424w, https://substackcdn.com/image/fetch/$s_!7bwu!,w_848,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F22c301c5-c30b-4eaa-97cc-cd7422a8665d_825x563.png 848w, https://substackcdn.com/image/fetch/$s_!7bwu!,w_1272,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F22c301c5-c30b-4eaa-97cc-cd7422a8665d_825x563.png 1272w, https://substackcdn.com/image/fetch/$s_!7bwu!,w_1456,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F22c301c5-c30b-4eaa-97cc-cd7422a8665d_825x563.png 1456w" sizes="100vw"><img src="https://substackcdn.com/image/fetch/$s_!7bwu!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F22c301c5-c30b-4eaa-97cc-cd7422a8665d_825x563.png" width="825" height="563" data-attrs="{&quot;src&quot;:&quot;https://substack-post-media.s3.amazonaws.com/public/images/22c301c5-c30b-4eaa-97cc-cd7422a8665d_825x563.png&quot;,&quot;srcNoWatermark&quot;:null,&quot;fullscreen&quot;:null,&quot;imageSize&quot;:null,&quot;height&quot;:563,&quot;width&quot;:825,&quot;resizeWidth&quot;:null,&quot;bytes&quot;:null,&quot;alt&quot;:&quot;Diagram showing the MCP Tools integration with Terraform module creator skill&quot;,&quot;title&quot;:null,&quot;type&quot;:null,&quot;href&quot;:&quot;https://thomasthornton.cloud/terraform-module-design-is-the-hard-part-so-i-built-an-agent-skill-for-it/&quot;,&quot;belowTheFold&quot;:true,&quot;topImage&quot;:false,&quot;internalRedirect&quot;:null,&quot;isProcessing&quot;:false,&quot;align&quot;:null,&quot;offset&quot;:false}" class="sizing-normal" alt="Diagram showing the MCP Tools integration with Terraform module creator skill" title="Diagram showing the MCP Tools integration with Terraform module creator skill" srcset="https://substackcdn.com/image/fetch/$s_!7bwu!,w_424,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F22c301c5-c30b-4eaa-97cc-cd7422a8665d_825x563.png 424w, https://substackcdn.com/image/fetch/$s_!7bwu!,w_848,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F22c301c5-c30b-4eaa-97cc-cd7422a8665d_825x563.png 848w, https://substackcdn.com/image/fetch/$s_!7bwu!,w_1272,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F22c301c5-c30b-4eaa-97cc-cd7422a8665d_825x563.png 1272w, https://substackcdn.com/image/fetch/$s_!7bwu!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F22c301c5-c30b-4eaa-97cc-cd7422a8665d_825x563.png 1456w" sizes="100vw" loading="lazy"></picture><div class="image-link-expand"><div class="pencraft pc-display-flex pc-gap-8 pc-reset"><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container restack-image"><svg role="img" width="20" height="20" viewBox="0 0 20 20" fill="none" stroke-width="1.5" stroke="var(--color-fg-primary)" stroke-linecap="round" stroke-linejoin="round" xmlns="http://www.w3.org/2000/svg"><g><title></title><path d="M2.53001 7.81595C3.49179 4.73911 6.43281 2.5 9.91173 2.5C13.1684 2.5 15.9537 4.46214 17.0852 7.23684L17.6179 8.67647M17.6179 8.67647L18.5002 4.26471M17.6179 8.67647L13.6473 6.91176M17.4995 12.1841C16.5378 15.2609 13.5967 17.5 10.1178 17.5C6.86118 17.5 4.07589 15.5379 2.94432 12.7632L2.41165 11.3235M2.41165 11.3235L1.5293 15.7353M2.41165 11.3235L6.38224 13.0882"></path></g></svg></button><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container view-image"><svg xmlns="http://www.w3.org/2000/svg" width="20" height="20" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="lucide lucide-maximize2 lucide-maximize-2"><polyline points="15 3 21 3 21 9"></polyline><polyline points="9 21 3 21 3 15"></polyline><line x1="21" x2="14" y1="3" y2="10"></line><line x1="3" x2="10" y1="21" y2="14"></line></svg></button></div></div></div></a></figure></div><ul><li><p><strong><a href="https://isayeter.com/posts/digitalocean-to-hetzner-migration">Migrating from DigitalOcean to Hetzner: from $1,432 to $233/month with zero downtime</a></strong></p></li><li><p><strong><a href="https://stategraph.com/blog/terragrunt-is-dead">Terragrunt is dead: multi-state transactions killed run-all</a></strong></p></li><li><p><strong><a href="https://www.dbos.dev/blog/benchmarking-workflow-execution-scalability-on-postgres">Does Postgres scale?</a></strong></p></li><li><p><strong><a href="https://blog.cloudflare.com/ai-code-review">Orchestrating AI code review at scale</a></strong></p></li><li><p><strong><a href="https://blog.marcolancini.it/2026/blog-my-claude-code-setup">My Claude Code setup</a></strong></p></li><li><p><strong><a href="https://awsfundamentals.com/blog/aws-devops-agent">AWS DevOps Agent: your AI SRE is now on call</a></strong></p></li><li><p><strong><a href="https://www.cncf.io/blog/2026/04/21/auto-diagnosing-kubernetes-alerts-with-holmesgpt-and-cncf-tools/">Auto-diagnosing Kubernetes alerts with HolmesGPT and CNCF tools</a></strong></p></li><li><p><strong><a href="https://foojay.io/today/dockerizing-a-java-26-project-with-docker-init">Dockerizing a Java 26 project with Docker Init</a></strong></p></li><li><p><strong><a href="https://blog.arcjet.com/building-a-production-mcp-server-in-go">Building a production MCP server in Go</a></strong></p></li></ul><h4>Videos of the week</h4><div id="youtube2-xnQWLPGjcOQ" class="youtube-wrap" data-attrs="{&quot;videoId&quot;:&quot;xnQWLPGjcOQ&quot;,&quot;startTime&quot;:null,&quot;endTime&quot;:null}" data-component-name="Youtube2ToDOM"><div class="youtube-inner"><iframe src="https://www.youtube-nocookie.com/embed/xnQWLPGjcOQ?rel=0&amp;autoplay=0&amp;showinfo=0&amp;enablejsapi=0" frameborder="0" loading="lazy" gesture="media" allow="autoplay; fullscreen" allowautoplay="true" allowfullscreen="true" width="728" height="409"></iframe></div></div><div id="youtube2-sEQ1ecQq0HI" class="youtube-wrap" data-attrs="{&quot;videoId&quot;:&quot;sEQ1ecQq0HI&quot;,&quot;startTime&quot;:null,&quot;endTime&quot;:null}" data-component-name="Youtube2ToDOM"><div class="youtube-inner"><iframe src="https://www.youtube-nocookie.com/embed/sEQ1ecQq0HI?rel=0&amp;autoplay=0&amp;showinfo=0&amp;enablejsapi=0" frameborder="0" loading="lazy" gesture="media" allow="autoplay; fullscreen" allowautoplay="true" allowfullscreen="true" width="728" height="409"></iframe></div></div><div id="youtube2-P6u0K3-z2p4" class="youtube-wrap" data-attrs="{&quot;videoId&quot;:&quot;P6u0K3-z2p4&quot;,&quot;startTime&quot;:null,&quot;endTime&quot;:null}" data-component-name="Youtube2ToDOM"><div class="youtube-inner"><iframe src="https://www.youtube-nocookie.com/embed/P6u0K3-z2p4?rel=0&amp;autoplay=0&amp;showinfo=0&amp;enablejsapi=0" frameborder="0" loading="lazy" gesture="media" allow="autoplay; fullscreen" allowautoplay="true" allowfullscreen="true" width="728" height="409"></iframe></div></div><h4>Projects of the week</h4><ul><li><p><strong><a href="https://github.com/juicedata/juicefs">JuiceFS</a></strong> is a Go-based POSIX distributed file system that stores data in S3 and metadata in Redis or MySQL, with 10x more throughput than EFS.</p></li><li><p><strong><a href="https://github.com/TwiN/gatus">Gatus</a></strong> is a Go health dashboard that monitors services over HTTP, TCP, DNS, gRPC, and SSH with 40+ alerting integrations.</p></li></ul><div class="captioned-image-container"><figure><a class="image-link image2 is-viewable-img" target="_blank" href="https://github.com/TwiN/gatus" data-component-name="Image2ToDOM"><div class="image2-inset"><picture><source type="image/webp" srcset="https://substackcdn.com/image/fetch/$s_!Vfeg!,w_424,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F9952974c-7ae5-4179-b7b7-e8e525a40206_2560x1760.jpeg 424w, https://substackcdn.com/image/fetch/$s_!Vfeg!,w_848,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F9952974c-7ae5-4179-b7b7-e8e525a40206_2560x1760.jpeg 848w, https://substackcdn.com/image/fetch/$s_!Vfeg!,w_1272,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F9952974c-7ae5-4179-b7b7-e8e525a40206_2560x1760.jpeg 1272w, https://substackcdn.com/image/fetch/$s_!Vfeg!,w_1456,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F9952974c-7ae5-4179-b7b7-e8e525a40206_2560x1760.jpeg 1456w" sizes="100vw"><img src="https://substackcdn.com/image/fetch/$s_!Vfeg!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F9952974c-7ae5-4179-b7b7-e8e525a40206_2560x1760.jpeg" width="1456" height="1001" data-attrs="{&quot;src&quot;:&quot;https://substack-post-media.s3.amazonaws.com/public/images/9952974c-7ae5-4179-b7b7-e8e525a40206_2560x1760.jpeg&quot;,&quot;srcNoWatermark&quot;:null,&quot;fullscreen&quot;:null,&quot;imageSize&quot;:null,&quot;height&quot;:1001,&quot;width&quot;:1456,&quot;resizeWidth&quot;:null,&quot;bytes&quot;:548995,&quot;alt&quot;:null,&quot;title&quot;:null,&quot;type&quot;:&quot;image/jpeg&quot;,&quot;href&quot;:&quot;https://github.com/TwiN/gatus&quot;,&quot;belowTheFold&quot;:true,&quot;topImage&quot;:false,&quot;internalRedirect&quot;:&quot;https://www.devopsbulletin.com/i/196123668?img=https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F9952974c-7ae5-4179-b7b7-e8e525a40206_2560x1760.jpeg&quot;,&quot;isProcessing&quot;:false,&quot;align&quot;:null,&quot;offset&quot;:false}" class="sizing-normal" alt="" srcset="https://substackcdn.com/image/fetch/$s_!Vfeg!,w_424,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F9952974c-7ae5-4179-b7b7-e8e525a40206_2560x1760.jpeg 424w, https://substackcdn.com/image/fetch/$s_!Vfeg!,w_848,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F9952974c-7ae5-4179-b7b7-e8e525a40206_2560x1760.jpeg 848w, https://substackcdn.com/image/fetch/$s_!Vfeg!,w_1272,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F9952974c-7ae5-4179-b7b7-e8e525a40206_2560x1760.jpeg 1272w, https://substackcdn.com/image/fetch/$s_!Vfeg!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F9952974c-7ae5-4179-b7b7-e8e525a40206_2560x1760.jpeg 1456w" sizes="100vw" loading="lazy"></picture><div class="image-link-expand"><div class="pencraft pc-display-flex pc-gap-8 pc-reset"><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container restack-image"><svg role="img" width="20" height="20" viewBox="0 0 20 20" fill="none" stroke-width="1.5" stroke="var(--color-fg-primary)" stroke-linecap="round" stroke-linejoin="round" xmlns="http://www.w3.org/2000/svg"><g><title></title><path d="M2.53001 7.81595C3.49179 4.73911 6.43281 2.5 9.91173 2.5C13.1684 2.5 15.9537 4.46214 17.0852 7.23684L17.6179 8.67647M17.6179 8.67647L18.5002 4.26471M17.6179 8.67647L13.6473 6.91176M17.4995 12.1841C16.5378 15.2609 13.5967 17.5 10.1178 17.5C6.86118 17.5 4.07589 15.5379 2.94432 12.7632L2.41165 11.3235M2.41165 11.3235L1.5293 15.7353M2.41165 11.3235L6.38224 13.0882"></path></g></svg></button><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container view-image"><svg xmlns="http://www.w3.org/2000/svg" width="20" height="20" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="lucide lucide-maximize2 lucide-maximize-2"><polyline points="15 3 21 3 21 9"></polyline><polyline points="9 21 3 21 3 15"></polyline><line x1="21" x2="14" y1="3" y2="10"></line><line x1="3" x2="10" y1="21" y2="14"></line></svg></button></div></div></div></a></figure></div><ul><li><p><strong><a href="https://github.com/kernalix7/winpodx">winpodx</a></strong> is a Python tool that runs Windows apps as native Linux windows using FreeRDP RemoteApp and a containerized Windows instance.</p></li><li><p><strong><a href="https://github.com/kubereboot/kured">kured</a></strong> is a Go Kubernetes daemonset that safely reboots nodes one at a time using API server locking. CNCF Sandbox project.</p></li><li><p><strong><a href="https://github.com/kpolley/redai">RedAI</a></strong> is a TypeScript/Python workbench that uses AI agents to find and validate vulnerabilities in live browser and simulator environments.</p></li><li><p><strong><a href="https://github.com/rocky-data/rocky">Rocky</a></strong> is a Rust control plane for data warehouse pipelines with column-level lineage, schema drift detection, and compile-time data contracts.</p></li></ul><h4>Meme of the week</h4><div class="captioned-image-container"><figure><a class="image-link image2 is-viewable-img" target="_blank" href="https://substackcdn.com/image/fetch/$s_!cx3b!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fded75f94-1a1a-4dfd-8183-b3f76414be62_640x803.jpeg" data-component-name="Image2ToDOM"><div class="image2-inset"><picture><source type="image/webp" srcset="https://substackcdn.com/image/fetch/$s_!cx3b!,w_424,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fded75f94-1a1a-4dfd-8183-b3f76414be62_640x803.jpeg 424w, https://substackcdn.com/image/fetch/$s_!cx3b!,w_848,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fded75f94-1a1a-4dfd-8183-b3f76414be62_640x803.jpeg 848w, https://substackcdn.com/image/fetch/$s_!cx3b!,w_1272,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fded75f94-1a1a-4dfd-8183-b3f76414be62_640x803.jpeg 1272w, https://substackcdn.com/image/fetch/$s_!cx3b!,w_1456,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fded75f94-1a1a-4dfd-8183-b3f76414be62_640x803.jpeg 1456w" sizes="100vw"><img src="https://substackcdn.com/image/fetch/$s_!cx3b!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fded75f94-1a1a-4dfd-8183-b3f76414be62_640x803.jpeg" width="340" height="426.59375" data-attrs="{&quot;src&quot;:&quot;https://substack-post-media.s3.amazonaws.com/public/images/ded75f94-1a1a-4dfd-8183-b3f76414be62_640x803.jpeg&quot;,&quot;srcNoWatermark&quot;:null,&quot;fullscreen&quot;:null,&quot;imageSize&quot;:null,&quot;height&quot;:803,&quot;width&quot;:640,&quot;resizeWidth&quot;:340,&quot;bytes&quot;:null,&quot;alt&quot;:&quot;r/ProgrammerHumor - reasonBehindPrematureExhaustionOfTokens&quot;,&quot;title&quot;:null,&quot;type&quot;:null,&quot;href&quot;:null,&quot;belowTheFold&quot;:true,&quot;topImage&quot;:false,&quot;internalRedirect&quot;:null,&quot;isProcessing&quot;:false,&quot;align&quot;:null,&quot;offset&quot;:false}" class="sizing-normal" alt="r/ProgrammerHumor - reasonBehindPrematureExhaustionOfTokens" title="r/ProgrammerHumor - reasonBehindPrematureExhaustionOfTokens" srcset="https://substackcdn.com/image/fetch/$s_!cx3b!,w_424,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fded75f94-1a1a-4dfd-8183-b3f76414be62_640x803.jpeg 424w, https://substackcdn.com/image/fetch/$s_!cx3b!,w_848,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fded75f94-1a1a-4dfd-8183-b3f76414be62_640x803.jpeg 848w, https://substackcdn.com/image/fetch/$s_!cx3b!,w_1272,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fded75f94-1a1a-4dfd-8183-b3f76414be62_640x803.jpeg 1272w, https://substackcdn.com/image/fetch/$s_!cx3b!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fded75f94-1a1a-4dfd-8183-b3f76414be62_640x803.jpeg 1456w" sizes="100vw" loading="lazy"></picture><div class="image-link-expand"><div class="pencraft pc-display-flex pc-gap-8 pc-reset"><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container restack-image"><svg role="img" width="20" height="20" viewBox="0 0 20 20" fill="none" stroke-width="1.5" stroke="var(--color-fg-primary)" stroke-linecap="round" stroke-linejoin="round" xmlns="http://www.w3.org/2000/svg"><g><title></title><path d="M2.53001 7.81595C3.49179 4.73911 6.43281 2.5 9.91173 2.5C13.1684 2.5 15.9537 4.46214 17.0852 7.23684L17.6179 8.67647M17.6179 8.67647L18.5002 4.26471M17.6179 8.67647L13.6473 6.91176M17.4995 12.1841C16.5378 15.2609 13.5967 17.5 10.1178 17.5C6.86118 17.5 4.07589 15.5379 2.94432 12.7632L2.41165 11.3235M2.41165 11.3235L1.5293 15.7353M2.41165 11.3235L6.38224 13.0882"></path></g></svg></button><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container view-image"><svg xmlns="http://www.w3.org/2000/svg" width="20" height="20" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="lucide lucide-maximize2 lucide-maximize-2"><polyline points="15 3 21 3 21 9"></polyline><polyline points="9 21 3 21 3 15"></polyline><line x1="21" x2="14" y1="3" y2="10"></line><line x1="3" x2="10" y1="21" y2="14"></line></svg></button></div></div></div></a></figure></div><div class="pullquote"><p> If you have feedback to share or are interested in <a href="https://www.devopsbulletin.com/p/sponsorships">sponsoring</a> this newsletter, feel free to reach out via <em><a href="https://www.linkedin.com/in/mlabouardy/">LinkedIn</a></em> or simply reply to this email. </p></div><div class="subscription-widget-wrap-editor" data-attrs="{&quot;url&quot;:&quot;https://www.devopsbulletin.com/subscribe?&quot;,&quot;text&quot;:&quot;Subscribe&quot;,&quot;language&quot;:&quot;en&quot;}" data-component-name="SubscribeWidgetToDOM"><div class="subscription-widget show-subscribe"><div class="preamble"><p class="cta-caption">Thanks for reading DevOps Bulletin! Subscribe for free to receive new posts and support my work.</p></div><form class="subscription-widget-subscribe"><input type="email" class="email-input" name="email" placeholder="Type your email&#8230;" tabindex="-1"><input type="submit" class="button primary" value="Subscribe"><div class="fake-input-wrapper"><div class="fake-input"></div><div class="fake-button"></div></div></form></div></div>]]></content:encoded></item><item><title><![CDATA[Digest #211: AWS DevOps Agent, AI Cloud Attacks and Security Skills for AI Agents]]></title><description><![CDATA[LMDeploy CVE exploited in 12 hours, autonomous AI cloud attacks, GitHub Actions threat model, and 7 open source tools for DevOps and security teams.]]></description><link>https://www.devopsbulletin.com/p/digest-211-aws-devops-agent-ai-cloud</link><guid isPermaLink="false">https://www.devopsbulletin.com/p/digest-211-aws-devops-agent-ai-cloud</guid><dc:creator><![CDATA[Mohamed Labouardy]]></dc:creator><pubDate>Wed, 29 Apr 2026 12:31:04 GMT</pubDate><enclosure url="https://substackcdn.com/image/fetch/$s_!QBoN!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F4fde2a46-8724-4570-973a-a08fa97b4296_700x383.jpeg" length="0" type="image/jpeg"/><content:encoded><![CDATA[<div class="captioned-image-container"><figure><a class="image-link image2" target="_blank" href="https://brdta.com/star_cli_devopsbulletin" data-component-name="Image2ToDOM"><div class="image2-inset"><picture><source type="image/webp" srcset="https://substackcdn.com/image/fetch/$s_!Udo0!,w_424,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fd08ee2c2-6f1c-4d62-93e0-236cd2673cc1_268x85.png 424w, https://substackcdn.com/image/fetch/$s_!Udo0!,w_848,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fd08ee2c2-6f1c-4d62-93e0-236cd2673cc1_268x85.png 848w, https://substackcdn.com/image/fetch/$s_!Udo0!,w_1272,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fd08ee2c2-6f1c-4d62-93e0-236cd2673cc1_268x85.png 1272w, https://substackcdn.com/image/fetch/$s_!Udo0!,w_1456,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fd08ee2c2-6f1c-4d62-93e0-236cd2673cc1_268x85.png 1456w" sizes="100vw"><img src="https://substackcdn.com/image/fetch/$s_!Udo0!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fd08ee2c2-6f1c-4d62-93e0-236cd2673cc1_268x85.png" width="268" height="85" data-attrs="{&quot;src&quot;:&quot;https://substack-post-media.s3.amazonaws.com/public/images/d08ee2c2-6f1c-4d62-93e0-236cd2673cc1_268x85.png&quot;,&quot;srcNoWatermark&quot;:null,&quot;fullscreen&quot;:null,&quot;imageSize&quot;:null,&quot;height&quot;:85,&quot;width&quot;:268,&quot;resizeWidth&quot;:null,&quot;bytes&quot;:null,&quot;alt&quot;:null,&quot;title&quot;:null,&quot;type&quot;:null,&quot;href&quot;:&quot;https://brdta.com/star_cli_devopsbulletin&quot;,&quot;belowTheFold&quot;:false,&quot;topImage&quot;:true,&quot;internalRedirect&quot;:null,&quot;isProcessing&quot;:false,&quot;align&quot;:null,&quot;offset&quot;:false}" class="sizing-normal" alt="" srcset="https://substackcdn.com/image/fetch/$s_!Udo0!,w_424,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fd08ee2c2-6f1c-4d62-93e0-236cd2673cc1_268x85.png 424w, https://substackcdn.com/image/fetch/$s_!Udo0!,w_848,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fd08ee2c2-6f1c-4d62-93e0-236cd2673cc1_268x85.png 848w, https://substackcdn.com/image/fetch/$s_!Udo0!,w_1272,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fd08ee2c2-6f1c-4d62-93e0-236cd2673cc1_268x85.png 1272w, https://substackcdn.com/image/fetch/$s_!Udo0!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fd08ee2c2-6f1c-4d62-93e0-236cd2673cc1_268x85.png 1456w" sizes="100vw" fetchpriority="high"></picture><div></div></div></a></figure></div><p><a href="https://brdta.com/star_cli_devopsbulletin">Bright Data CLI</a> gives coding agents (Claude Code, Cursor, Copilot) real-time web scraping and structured data extraction from 40+ platforms, directly from the terminal, at 10-32x the cost of MCP for equivalent tasks.</p><p>Sysdig documented how CVE-2026-33626 enabled a published LMDeploy advisory to become a working SSRF exploit within 12.5 hours, with attackers probing for AWS IMDS credentials, Redis, and MySQL endpoints. Palo Alto&#8217;s Unit 42 took it further, publishing findings from building an autonomous AI agent that attacks cloud infrastructure on its own. Wiz published a detailed GitHub Actions threat model, and Synthesia shared what actually moved the needle when scaling vulnerability management with AI.</p><p>On the tutorial side, we cover migrating from Ingress NGINX to Traefik or Gateway API without the usual pain, building eBPF-based bandwidth limiting in the AWS Network Policy Agent, deploying Docker apps to Linux with K3s, and using Claude Code for DevSecOps on AWS. Plus: automating incident investigation with the AWS DevOps Agent.</p><p>This week&#8217;s open source picks include clawsec, a security suite that protects AI agents from prompt injection; pmg, a Go-based package manager guard that blocks malicious npm, pip, and yarn packages before they run; pgweb, a zero-dependency Postgres web UI that ships as a single Go binary; and GreenKube, a Python tool for tracking and reducing the carbon footprint of Kubernetes clusters. </p><h4>Your AI agent can&#8217;t see the web. Fix that in 30 seconds.</h4><div class="captioned-image-container"><figure><a class="image-link image2 is-viewable-img" target="_blank" href="https://brdta.com/star_cli_devopsbulletin" data-component-name="Image2ToDOM"><div class="image2-inset"><picture><source type="image/webp" srcset="https://substackcdn.com/image/fetch/$s_!W4iF!,w_424,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F4a825f80-91e6-4613-ba7b-a6ba21e2e331_1376x768.png 424w, https://substackcdn.com/image/fetch/$s_!W4iF!,w_848,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F4a825f80-91e6-4613-ba7b-a6ba21e2e331_1376x768.png 848w, https://substackcdn.com/image/fetch/$s_!W4iF!,w_1272,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F4a825f80-91e6-4613-ba7b-a6ba21e2e331_1376x768.png 1272w, https://substackcdn.com/image/fetch/$s_!W4iF!,w_1456,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F4a825f80-91e6-4613-ba7b-a6ba21e2e331_1376x768.png 1456w" sizes="100vw"><img src="https://substackcdn.com/image/fetch/$s_!W4iF!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F4a825f80-91e6-4613-ba7b-a6ba21e2e331_1376x768.png" width="1376" height="768" data-attrs="{&quot;src&quot;:&quot;https://substack-post-media.s3.amazonaws.com/public/images/4a825f80-91e6-4613-ba7b-a6ba21e2e331_1376x768.png&quot;,&quot;srcNoWatermark&quot;:null,&quot;fullscreen&quot;:null,&quot;imageSize&quot;:null,&quot;height&quot;:768,&quot;width&quot;:1376,&quot;resizeWidth&quot;:null,&quot;bytes&quot;:1467094,&quot;alt&quot;:null,&quot;title&quot;:null,&quot;type&quot;:&quot;image/png&quot;,&quot;href&quot;:&quot;https://brdta.com/star_cli_devopsbulletin&quot;,&quot;belowTheFold&quot;:false,&quot;topImage&quot;:false,&quot;internalRedirect&quot;:&quot;https://www.devopsbulletin.com/i/195361000?img=https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F4a825f80-91e6-4613-ba7b-a6ba21e2e331_1376x768.png&quot;,&quot;isProcessing&quot;:false,&quot;align&quot;:null,&quot;offset&quot;:false}" class="sizing-normal" alt="" srcset="https://substackcdn.com/image/fetch/$s_!W4iF!,w_424,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F4a825f80-91e6-4613-ba7b-a6ba21e2e331_1376x768.png 424w, https://substackcdn.com/image/fetch/$s_!W4iF!,w_848,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F4a825f80-91e6-4613-ba7b-a6ba21e2e331_1376x768.png 848w, https://substackcdn.com/image/fetch/$s_!W4iF!,w_1272,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F4a825f80-91e6-4613-ba7b-a6ba21e2e331_1376x768.png 1272w, https://substackcdn.com/image/fetch/$s_!W4iF!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F4a825f80-91e6-4613-ba7b-a6ba21e2e331_1376x768.png 1456w" sizes="100vw"></picture><div class="image-link-expand"><div class="pencraft pc-display-flex pc-gap-8 pc-reset"><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container restack-image"><svg role="img" width="20" height="20" viewBox="0 0 20 20" fill="none" stroke-width="1.5" stroke="var(--color-fg-primary)" stroke-linecap="round" stroke-linejoin="round" xmlns="http://www.w3.org/2000/svg"><g><title></title><path d="M2.53001 7.81595C3.49179 4.73911 6.43281 2.5 9.91173 2.5C13.1684 2.5 15.9537 4.46214 17.0852 7.23684L17.6179 8.67647M17.6179 8.67647L18.5002 4.26471M17.6179 8.67647L13.6473 6.91176M17.4995 12.1841C16.5378 15.2609 13.5967 17.5 10.1178 17.5C6.86118 17.5 4.07589 15.5379 2.94432 12.7632L2.41165 11.3235M2.41165 11.3235L1.5293 15.7353M2.41165 11.3235L6.38224 13.0882"></path></g></svg></button><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container view-image"><svg xmlns="http://www.w3.org/2000/svg" width="20" height="20" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="lucide lucide-maximize2 lucide-maximize-2"><polyline points="15 3 21 3 21 9"></polyline><polyline points="9 21 3 21 3 15"></polyline><line x1="21" x2="14" y1="3" y2="10"></line><line x1="3" x2="10" y1="21" y2="14"></line></svg></button></div></div></div></a></figure></div><p><a href="https://brdta.com/star_cli_devopsbulletin">Bright Data CLI</a> gives coding agents (Claude Code, Cursor, Copilot) real-time web scraping, search, and structured data extraction from 40+ platforms - directly from the terminal. One command. No MCP overhead. No schema bloat. 10-32x cheaper than MCP for equivalent tasks - <a href="https://brdta.com/star_cli_devopsbulletin">Check out the GitHub repo</a></p><h4>Newsworthy stories</h4><ul><li><p><strong><a href="https://www.wiz.io/blog/github-actions-security-threat-model-and-defenses">Primer on GitHub Actions security</a></strong></p></li><li><p><strong><a href="https://unit42.paloaltonetworks.com/autonomous-ai-cloud-attacks">Can AI attack the cloud?</a></strong></p></li><li><p><strong><a href="https://dev.ongoro.top/post/most-devs-ignore-git-worktree-heres-why-theyre-wrong">Most devs ignore git worktree</a></strong></p></li><li><p><strong><a href="https://infrahouse.com/blog/2026-03-28-iso-27001-on-aws/">ISO 27001 on AWS: building compliance into the architecture</a></strong></p></li><li><p><strong><a href="https://www.synthesia.io/post/scaling-vulnerability-management-with-ai-what-actually-worked">Scaling vulnerability management with AI: what actually worked</a></strong></p></li><li><p><strong><a href="https://newsletter.manager.dev/p/the-engineering-manager-s-attention-budget">The engineering manager&#8217;s attention budget</a></strong></p></li></ul><h4>Tutorials of the week</h4><ul><li><p><strong><a href="https://aws.amazon.com/blogs/devops/automating-incident-investigation-with-aws-devops-agent-and-salesforce-mcp-server">Automating incident investigation with AWS DevOps Agent</a></strong></p></li><li><p><strong><a href="https://blog.kubesimplify.com/ing-switch-migrate-from-ingress-nginx-to-traefik-or-gateway-api-in-minutes-not-days">Migrate from Ingress NGINX to Traefik or Gateway API in minutes, not days</a></strong></p></li><li><p><strong><a href="https://spin.atomicobject.com/k3s-deploy-docker-app-linux">A better way to deploy a Docker app to a Linux server</a></strong></p></li><li><p><strong><a href="https://aws.amazon.com/blogs/security/a-framework-for-securely-collecting-forensic-artifacts-into-s3-buckets/">A framework for securely collecting forensic artifacts into S3 buckets</a></strong></p></li><li><p><strong><a href="https://blog.devops.dev/prompt-secure-infrastructure-the-claude-code-devsecops-shift-on-aws-cf0a3ce3f264">The Claude Code DevSecOps shift on AWS</a></strong></p></li></ul><div class="captioned-image-container"><figure><a class="image-link image2 is-viewable-img" target="_blank" href="https://blog.devops.dev/prompt-secure-infrastructure-the-claude-code-devsecops-shift-on-aws-cf0a3ce3f264" data-component-name="Image2ToDOM"><div class="image2-inset"><picture><source type="image/webp" srcset="https://substackcdn.com/image/fetch/$s_!QBoN!,w_424,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F4fde2a46-8724-4570-973a-a08fa97b4296_700x383.jpeg 424w, https://substackcdn.com/image/fetch/$s_!QBoN!,w_848,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F4fde2a46-8724-4570-973a-a08fa97b4296_700x383.jpeg 848w, https://substackcdn.com/image/fetch/$s_!QBoN!,w_1272,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F4fde2a46-8724-4570-973a-a08fa97b4296_700x383.jpeg 1272w, https://substackcdn.com/image/fetch/$s_!QBoN!,w_1456,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F4fde2a46-8724-4570-973a-a08fa97b4296_700x383.jpeg 1456w" sizes="100vw"><img src="https://substackcdn.com/image/fetch/$s_!QBoN!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F4fde2a46-8724-4570-973a-a08fa97b4296_700x383.jpeg" width="700" height="383" data-attrs="{&quot;src&quot;:&quot;https://substack-post-media.s3.amazonaws.com/public/images/4fde2a46-8724-4570-973a-a08fa97b4296_700x383.jpeg&quot;,&quot;srcNoWatermark&quot;:null,&quot;fullscreen&quot;:null,&quot;imageSize&quot;:null,&quot;height&quot;:383,&quot;width&quot;:700,&quot;resizeWidth&quot;:null,&quot;bytes&quot;:null,&quot;alt&quot;:null,&quot;title&quot;:null,&quot;type&quot;:null,&quot;href&quot;:&quot;https://blog.devops.dev/prompt-secure-infrastructure-the-claude-code-devsecops-shift-on-aws-cf0a3ce3f264&quot;,&quot;belowTheFold&quot;:true,&quot;topImage&quot;:false,&quot;internalRedirect&quot;:null,&quot;isProcessing&quot;:false,&quot;align&quot;:null,&quot;offset&quot;:false}" class="sizing-normal" alt="" srcset="https://substackcdn.com/image/fetch/$s_!QBoN!,w_424,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F4fde2a46-8724-4570-973a-a08fa97b4296_700x383.jpeg 424w, https://substackcdn.com/image/fetch/$s_!QBoN!,w_848,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F4fde2a46-8724-4570-973a-a08fa97b4296_700x383.jpeg 848w, https://substackcdn.com/image/fetch/$s_!QBoN!,w_1272,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F4fde2a46-8724-4570-973a-a08fa97b4296_700x383.jpeg 1272w, https://substackcdn.com/image/fetch/$s_!QBoN!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F4fde2a46-8724-4570-973a-a08fa97b4296_700x383.jpeg 1456w" sizes="100vw" loading="lazy"></picture><div class="image-link-expand"><div class="pencraft pc-display-flex pc-gap-8 pc-reset"><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container restack-image"><svg role="img" width="20" height="20" viewBox="0 0 20 20" fill="none" stroke-width="1.5" stroke="var(--color-fg-primary)" stroke-linecap="round" stroke-linejoin="round" xmlns="http://www.w3.org/2000/svg"><g><title></title><path d="M2.53001 7.81595C3.49179 4.73911 6.43281 2.5 9.91173 2.5C13.1684 2.5 15.9537 4.46214 17.0852 7.23684L17.6179 8.67647M17.6179 8.67647L18.5002 4.26471M17.6179 8.67647L13.6473 6.91176M17.4995 12.1841C16.5378 15.2609 13.5967 17.5 10.1178 17.5C6.86118 17.5 4.07589 15.5379 2.94432 12.7632L2.41165 11.3235M2.41165 11.3235L1.5293 15.7353M2.41165 11.3235L6.38224 13.0882"></path></g></svg></button><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container view-image"><svg xmlns="http://www.w3.org/2000/svg" width="20" height="20" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="lucide lucide-maximize2 lucide-maximize-2"><polyline points="15 3 21 3 21 9"></polyline><polyline points="9 21 3 21 3 15"></polyline><line x1="21" x2="14" y1="3" y2="10"></line><line x1="3" x2="10" y1="21" y2="14"></line></svg></button></div></div></div></a></figure></div><ul><li><p><strong><a href="https://medium.com/@jayanthvn_55441/building-ebpf-based-bandwidth-limiting-in-aws-network-policy-agent-why-vibe-coding-isnt-enough-f8c6681aa278">Building eBPF-based bandwidth limiting in AWS Network Policy Agent</a></strong></p></li><li><p><strong><a href="https://webflow.sysdig.com/blog/cve-2026-33626-how-attackers-exploited-lmdeploy-llm-inference-engines-in-12-hours">How attackers exploited LMDeploy LLM inference engines in 12 hours</a></strong></p></li></ul><h4>Videos of the week</h4><div id="youtube2-fFIjrtH6qjc" class="youtube-wrap" data-attrs="{&quot;videoId&quot;:&quot;fFIjrtH6qjc&quot;,&quot;startTime&quot;:null,&quot;endTime&quot;:null}" data-component-name="Youtube2ToDOM"><div class="youtube-inner"><iframe src="https://www.youtube-nocookie.com/embed/fFIjrtH6qjc?rel=0&amp;autoplay=0&amp;showinfo=0&amp;enablejsapi=0" frameborder="0" loading="lazy" gesture="media" allow="autoplay; fullscreen" allowautoplay="true" allowfullscreen="true" width="728" height="409"></iframe></div></div><div id="youtube2-zMpn9ICagdE" class="youtube-wrap" data-attrs="{&quot;videoId&quot;:&quot;zMpn9ICagdE&quot;,&quot;startTime&quot;:null,&quot;endTime&quot;:null}" data-component-name="Youtube2ToDOM"><div class="youtube-inner"><iframe src="https://www.youtube-nocookie.com/embed/zMpn9ICagdE?rel=0&amp;autoplay=0&amp;showinfo=0&amp;enablejsapi=0" frameborder="0" loading="lazy" gesture="media" allow="autoplay; fullscreen" allowautoplay="true" allowfullscreen="true" width="728" height="409"></iframe></div></div><div id="youtube2-kHDrC92UwZE" class="youtube-wrap" data-attrs="{&quot;videoId&quot;:&quot;kHDrC92UwZE&quot;,&quot;startTime&quot;:null,&quot;endTime&quot;:null}" data-component-name="Youtube2ToDOM"><div class="youtube-inner"><iframe src="https://www.youtube-nocookie.com/embed/kHDrC92UwZE?rel=0&amp;autoplay=0&amp;showinfo=0&amp;enablejsapi=0" frameborder="0" loading="lazy" gesture="media" allow="autoplay; fullscreen" allowautoplay="true" allowfullscreen="true" width="728" height="409"></iframe></div></div><h4>Projects of the week</h4><ul><li><p><strong><a href="https://github.com/prompt-security/clawsec">clawsec</a></strong> is a security skill suite for AI agents that defends against prompt injection and provides dedicated protection modules for OpenClaw, NanoClaw, and Hermes.</p></li><li><p><strong><a href="https://github.com/xataio/xata">xata</a></strong> is a cloud-native platform for self-hosting Postgres on Kubernetes with copy-on-write branching (copy TBs in seconds).</p></li><li><p><strong><a href="https://github.com/gabrielsoltz/clauditor">clauditor</a></strong> is a security scanner that audits Claude Code configuration across user, project, local, and managed scopes with 50+ built-in checks, severity ratings, and a hardened settings generator for CI/CD pipelines.</p></li><li><p><strong><a href="https://github.com/safedep/pmg">pmg</a></strong> is a Go-based package manager guard that intercepts npm, pip, yarn, pnpm, bun, and uv installations to block malicious packages using real-time threat intelligence.</p></li></ul><div class="captioned-image-container"><figure><a class="image-link image2 is-viewable-img" target="_blank" href="https://github.com/safedep/pmg" data-component-name="Image2ToDOM"><div class="image2-inset"><picture><source type="image/webp" srcset="https://substackcdn.com/image/fetch/$s_!9DM1!,w_424,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F0c84c063-d4b2-4795-a4ff-707ebc66ce5d_1400x1000.gif 424w, https://substackcdn.com/image/fetch/$s_!9DM1!,w_848,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F0c84c063-d4b2-4795-a4ff-707ebc66ce5d_1400x1000.gif 848w, https://substackcdn.com/image/fetch/$s_!9DM1!,w_1272,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F0c84c063-d4b2-4795-a4ff-707ebc66ce5d_1400x1000.gif 1272w, https://substackcdn.com/image/fetch/$s_!9DM1!,w_1456,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F0c84c063-d4b2-4795-a4ff-707ebc66ce5d_1400x1000.gif 1456w" sizes="100vw"><img src="https://substackcdn.com/image/fetch/$s_!9DM1!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F0c84c063-d4b2-4795-a4ff-707ebc66ce5d_1400x1000.gif" width="1400" height="1000" data-attrs="{&quot;src&quot;:&quot;https://substack-post-media.s3.amazonaws.com/public/images/0c84c063-d4b2-4795-a4ff-707ebc66ce5d_1400x1000.gif&quot;,&quot;srcNoWatermark&quot;:null,&quot;fullscreen&quot;:null,&quot;imageSize&quot;:null,&quot;height&quot;:1000,&quot;width&quot;:1400,&quot;resizeWidth&quot;:null,&quot;bytes&quot;:178185,&quot;alt&quot;:null,&quot;title&quot;:null,&quot;type&quot;:&quot;image/gif&quot;,&quot;href&quot;:&quot;https://github.com/safedep/pmg&quot;,&quot;belowTheFold&quot;:true,&quot;topImage&quot;:false,&quot;internalRedirect&quot;:&quot;https://www.devopsbulletin.com/i/195361000?img=https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F0c84c063-d4b2-4795-a4ff-707ebc66ce5d_1400x1000.gif&quot;,&quot;isProcessing&quot;:false,&quot;align&quot;:null,&quot;offset&quot;:false}" class="sizing-normal" alt="" srcset="https://substackcdn.com/image/fetch/$s_!9DM1!,w_424,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F0c84c063-d4b2-4795-a4ff-707ebc66ce5d_1400x1000.gif 424w, https://substackcdn.com/image/fetch/$s_!9DM1!,w_848,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F0c84c063-d4b2-4795-a4ff-707ebc66ce5d_1400x1000.gif 848w, https://substackcdn.com/image/fetch/$s_!9DM1!,w_1272,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F0c84c063-d4b2-4795-a4ff-707ebc66ce5d_1400x1000.gif 1272w, https://substackcdn.com/image/fetch/$s_!9DM1!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F0c84c063-d4b2-4795-a4ff-707ebc66ce5d_1400x1000.gif 1456w" sizes="100vw" loading="lazy"></picture><div class="image-link-expand"><div class="pencraft pc-display-flex pc-gap-8 pc-reset"><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container restack-image"><svg role="img" width="20" height="20" viewBox="0 0 20 20" fill="none" stroke-width="1.5" stroke="var(--color-fg-primary)" stroke-linecap="round" stroke-linejoin="round" xmlns="http://www.w3.org/2000/svg"><g><title></title><path d="M2.53001 7.81595C3.49179 4.73911 6.43281 2.5 9.91173 2.5C13.1684 2.5 15.9537 4.46214 17.0852 7.23684L17.6179 8.67647M17.6179 8.67647L18.5002 4.26471M17.6179 8.67647L13.6473 6.91176M17.4995 12.1841C16.5378 15.2609 13.5967 17.5 10.1178 17.5C6.86118 17.5 4.07589 15.5379 2.94432 12.7632L2.41165 11.3235M2.41165 11.3235L1.5293 15.7353M2.41165 11.3235L6.38224 13.0882"></path></g></svg></button><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container view-image"><svg xmlns="http://www.w3.org/2000/svg" width="20" height="20" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="lucide lucide-maximize2 lucide-maximize-2"><polyline points="15 3 21 3 21 9"></polyline><polyline points="9 21 3 21 3 15"></polyline><line x1="21" x2="14" y1="3" y2="10"></line><line x1="3" x2="10" y1="21" y2="14"></line></svg></button></div></div></div></a></figure></div><ul><li><p><strong><a href="https://github.com/huggingface/ml-intern">ml-intern</a></strong> is an autonomous ML engineer agent that reads papers, trains models, and ships through a 300-iteration agentic loop.</p></li><li><p><strong><a href="https://github.com/sosedoff/pgweb">pgweb</a></strong> is a web UI for PostgreSQL that ships as a single binary with no dependencies, supporting SSH tunnels, multiple concurrent sessions, and data export.</p></li><li><p><strong><a href="https://github.com/GreenKubeCloud/GreenKube">GreenKube</a></strong> is a tool for monitoring and reducing the carbon footprint of Kubernetes clusters.</p></li></ul><h4>Meme of the week</h4><div class="captioned-image-container"><figure><a class="image-link image2 is-viewable-img" target="_blank" href="https://substackcdn.com/image/fetch/$s_!JLq_!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F25bacb72-92b6-4fba-91cd-aeabb0384fdc_1000x1000.jpeg" data-component-name="Image2ToDOM"><div class="image2-inset"><picture><source type="image/webp" srcset="https://substackcdn.com/image/fetch/$s_!JLq_!,w_424,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F25bacb72-92b6-4fba-91cd-aeabb0384fdc_1000x1000.jpeg 424w, https://substackcdn.com/image/fetch/$s_!JLq_!,w_848,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F25bacb72-92b6-4fba-91cd-aeabb0384fdc_1000x1000.jpeg 848w, https://substackcdn.com/image/fetch/$s_!JLq_!,w_1272,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F25bacb72-92b6-4fba-91cd-aeabb0384fdc_1000x1000.jpeg 1272w, https://substackcdn.com/image/fetch/$s_!JLq_!,w_1456,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F25bacb72-92b6-4fba-91cd-aeabb0384fdc_1000x1000.jpeg 1456w" sizes="100vw"><img src="https://substackcdn.com/image/fetch/$s_!JLq_!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F25bacb72-92b6-4fba-91cd-aeabb0384fdc_1000x1000.jpeg" width="528" height="528" data-attrs="{&quot;src&quot;:&quot;https://substack-post-media.s3.amazonaws.com/public/images/25bacb72-92b6-4fba-91cd-aeabb0384fdc_1000x1000.jpeg&quot;,&quot;srcNoWatermark&quot;:null,&quot;fullscreen&quot;:null,&quot;imageSize&quot;:null,&quot;height&quot;:1000,&quot;width&quot;:1000,&quot;resizeWidth&quot;:528,&quot;bytes&quot;:null,&quot;alt&quot;:&quot;Too Dangerous To Release&quot;,&quot;title&quot;:null,&quot;type&quot;:null,&quot;href&quot;:null,&quot;belowTheFold&quot;:true,&quot;topImage&quot;:false,&quot;internalRedirect&quot;:null,&quot;isProcessing&quot;:false,&quot;align&quot;:null,&quot;offset&quot;:false}" class="sizing-normal" alt="Too Dangerous To Release" title="Too Dangerous To Release" srcset="https://substackcdn.com/image/fetch/$s_!JLq_!,w_424,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F25bacb72-92b6-4fba-91cd-aeabb0384fdc_1000x1000.jpeg 424w, https://substackcdn.com/image/fetch/$s_!JLq_!,w_848,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F25bacb72-92b6-4fba-91cd-aeabb0384fdc_1000x1000.jpeg 848w, https://substackcdn.com/image/fetch/$s_!JLq_!,w_1272,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F25bacb72-92b6-4fba-91cd-aeabb0384fdc_1000x1000.jpeg 1272w, https://substackcdn.com/image/fetch/$s_!JLq_!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F25bacb72-92b6-4fba-91cd-aeabb0384fdc_1000x1000.jpeg 1456w" sizes="100vw" loading="lazy"></picture><div class="image-link-expand"><div class="pencraft pc-display-flex pc-gap-8 pc-reset"><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container restack-image"><svg role="img" width="20" height="20" viewBox="0 0 20 20" fill="none" stroke-width="1.5" stroke="var(--color-fg-primary)" stroke-linecap="round" stroke-linejoin="round" xmlns="http://www.w3.org/2000/svg"><g><title></title><path d="M2.53001 7.81595C3.49179 4.73911 6.43281 2.5 9.91173 2.5C13.1684 2.5 15.9537 4.46214 17.0852 7.23684L17.6179 8.67647M17.6179 8.67647L18.5002 4.26471M17.6179 8.67647L13.6473 6.91176M17.4995 12.1841C16.5378 15.2609 13.5967 17.5 10.1178 17.5C6.86118 17.5 4.07589 15.5379 2.94432 12.7632L2.41165 11.3235M2.41165 11.3235L1.5293 15.7353M2.41165 11.3235L6.38224 13.0882"></path></g></svg></button><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container view-image"><svg xmlns="http://www.w3.org/2000/svg" width="20" height="20" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="lucide lucide-maximize2 lucide-maximize-2"><polyline points="15 3 21 3 21 9"></polyline><polyline points="9 21 3 21 3 15"></polyline><line x1="21" x2="14" y1="3" y2="10"></line><line x1="3" x2="10" y1="21" y2="14"></line></svg></button></div></div></div></a></figure></div><div class="pullquote"><p> If you have feedback to share or are interested in <a href="https://www.devopsbulletin.com/p/sponsorships">sponsoring</a> this newsletter, feel free to reach out via <em><a href="https://www.linkedin.com/in/mlabouardy/">LinkedIn</a></em> or simply reply to this email. </p></div><div class="subscription-widget-wrap-editor" data-attrs="{&quot;url&quot;:&quot;https://www.devopsbulletin.com/subscribe?&quot;,&quot;text&quot;:&quot;Subscribe&quot;,&quot;language&quot;:&quot;en&quot;}" data-component-name="SubscribeWidgetToDOM"><div class="subscription-widget show-subscribe"><div class="preamble"><p class="cta-caption">Thanks for reading DevOps Bulletin! Subscribe for free to receive new posts and support my work.</p></div><form class="subscription-widget-subscribe"><input type="email" class="email-input" name="email" placeholder="Type your email&#8230;" tabindex="-1"><input type="submit" class="button primary" value="Subscribe"><div class="fake-input-wrapper"><div class="fake-input"></div><div class="fake-button"></div></div></form></div></div>]]></content:encoded></item><item><title><![CDATA[Digest #210: Claude Code Security Bypass, prt-scan Supply Chain Attack, Duolingo EKS Migration and Cloudflare Artifacts]]></title><description><![CDATA[Claude Code security bypass, GitHub Actions supply chain attack, Duolingo's EKS migration, Cloudflare Artifacts for agents, MCP on ECS, and 8 open source DevOps tools.]]></description><link>https://www.devopsbulletin.com/p/digest-210-claude-code-security-bypass</link><guid isPermaLink="false">https://www.devopsbulletin.com/p/digest-210-claude-code-security-bypass</guid><dc:creator><![CDATA[Mohamed Labouardy]]></dc:creator><pubDate>Fri, 17 Apr 2026 16:57:43 GMT</pubDate><enclosure url="https://substackcdn.com/image/youtube/w_728,c_limit/TdondBmyNXc" length="0" type="image/jpeg"/><content:encoded><![CDATA[<div class="captioned-image-container"><figure><a class="image-link image2" target="_blank" href="https://www.iacconf.com/iacconf-2026?refid=DevOps-Bulletin&amp;utm_campaign=40984474-FY26%20-%20WW%20-%20Virtual%20Event%20-%20IaCConf%20-%20May%202026&amp;utm_source=DevOps-Bulletin&amp;utm_medium=paid_newsletter" data-component-name="Image2ToDOM"><div class="image2-inset"><picture><source type="image/webp" srcset="https://substackcdn.com/image/fetch/$s_!cMSn!,w_424,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F3a6c02f1-19c9-4125-b185-7abd26d37a72_268x83.png 424w, https://substackcdn.com/image/fetch/$s_!cMSn!,w_848,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F3a6c02f1-19c9-4125-b185-7abd26d37a72_268x83.png 848w, https://substackcdn.com/image/fetch/$s_!cMSn!,w_1272,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F3a6c02f1-19c9-4125-b185-7abd26d37a72_268x83.png 1272w, https://substackcdn.com/image/fetch/$s_!cMSn!,w_1456,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F3a6c02f1-19c9-4125-b185-7abd26d37a72_268x83.png 1456w" sizes="100vw"><img src="https://substackcdn.com/image/fetch/$s_!cMSn!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F3a6c02f1-19c9-4125-b185-7abd26d37a72_268x83.png" width="268" height="83" data-attrs="{&quot;src&quot;:&quot;https://substack-post-media.s3.amazonaws.com/public/images/3a6c02f1-19c9-4125-b185-7abd26d37a72_268x83.png&quot;,&quot;srcNoWatermark&quot;:null,&quot;fullscreen&quot;:null,&quot;imageSize&quot;:null,&quot;height&quot;:83,&quot;width&quot;:268,&quot;resizeWidth&quot;:null,&quot;bytes&quot;:null,&quot;alt&quot;:null,&quot;title&quot;:null,&quot;type&quot;:null,&quot;href&quot;:&quot;https://www.iacconf.com/iacconf-2026?refid=DevOps-Bulletin&amp;utm_campaign=40984474-FY26%20-%20WW%20-%20Virtual%20Event%20-%20IaCConf%20-%20May%202026&amp;utm_source=DevOps-Bulletin&amp;utm_medium=paid_newsletter&quot;,&quot;belowTheFold&quot;:false,&quot;topImage&quot;:true,&quot;internalRedirect&quot;:null,&quot;isProcessing&quot;:false,&quot;align&quot;:null,&quot;offset&quot;:false}" class="sizing-normal" alt="" srcset="https://substackcdn.com/image/fetch/$s_!cMSn!,w_424,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F3a6c02f1-19c9-4125-b185-7abd26d37a72_268x83.png 424w, https://substackcdn.com/image/fetch/$s_!cMSn!,w_848,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F3a6c02f1-19c9-4125-b185-7abd26d37a72_268x83.png 848w, https://substackcdn.com/image/fetch/$s_!cMSn!,w_1272,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F3a6c02f1-19c9-4125-b185-7abd26d37a72_268x83.png 1272w, https://substackcdn.com/image/fetch/$s_!cMSn!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F3a6c02f1-19c9-4125-b185-7abd26d37a72_268x83.png 1456w" sizes="100vw" fetchpriority="high"></picture><div></div></div></a></figure></div><p>IaCConf 2026 is back on May 14, free and virtual. Corey Quinn is keynoting on <a href="https://www.iacconf.com/iacconf-2026?refid=DevOps-Bulletin&amp;utm_campaign=40984474-FY26%20-%20WW%20-%20Virtual%20Event%20-%20IaCConf%20-%20May%202026&amp;utm_source=DevOps-Bulletin&amp;utm_medium=paid_newsletter">AI writing Terraform code</a>, and if that&#8217;s part of your stack, it&#8217;s worth the two hours.</p><p>Wiz traced a GitHub Actions supply chain campaign to six accounts pushing AI-generated malicious packages under the prt-scan name. A researcher also found that Claude Code&#8217;s deny rules are silently bypassed when the token cost of running security checks gets too high. Cloudflare shipped Artifacts, versioned storage that speaks Git and targets agent workflows, and Duolingo walked through migrating 500+ backend services from ECS to EKS with Argo CD and IPv6-only pod networking.</p><p>On the tutorial side: Grafana&#8217;s Kubernetes monitoring Helm chart v4, deploying MCP servers on Amazon ECS, how Slack manages context in long-running agentic applications, Cloudflare&#8217;s reference architecture for safer enterprise MCP deployments, and a straight question: do you even need a database?</p><p>Open source this week includes codeburn, a terminal dashboard tracking AI coding token costs across Claude Code, Codex, Cursor, and Copilot, tigerfs for mounting PostgreSQL as a filesystem you can browse with ls and cat, mergetopus for parallelizing large Git merges across multiple developers, and aimock, a single-package mock for LLM APIs, MCP, vector DBs, and search.</p><h4><strong>Join the IaCConf 2026 Keynote: &#8220;AI Speaks Terraform Like a Tourist&#8221;</strong></h4><div class="captioned-image-container"><figure><a class="image-link image2 is-viewable-img" target="_blank" href="https://www.iacconf.com/iacconf-2026?refid=DevOps-Bulletin&amp;utm_campaign=40984474-FY26%20-%20WW%20-%20Virtual%20Event%20-%20IaCConf%20-%20May%202026&amp;utm_source=DevOps-Bulletin&amp;utm_medium=paid_newsletter" data-component-name="Image2ToDOM"><div class="image2-inset"><picture><source type="image/webp" srcset="https://substackcdn.com/image/fetch/$s_!iD1q!,w_424,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F23194e7d-8d30-4ba9-b0f1-cbcbd1dbc727_1200x640.png 424w, https://substackcdn.com/image/fetch/$s_!iD1q!,w_848,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F23194e7d-8d30-4ba9-b0f1-cbcbd1dbc727_1200x640.png 848w, https://substackcdn.com/image/fetch/$s_!iD1q!,w_1272,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F23194e7d-8d30-4ba9-b0f1-cbcbd1dbc727_1200x640.png 1272w, https://substackcdn.com/image/fetch/$s_!iD1q!,w_1456,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F23194e7d-8d30-4ba9-b0f1-cbcbd1dbc727_1200x640.png 1456w" sizes="100vw"><img src="https://substackcdn.com/image/fetch/$s_!iD1q!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F23194e7d-8d30-4ba9-b0f1-cbcbd1dbc727_1200x640.png" width="1200" height="640" data-attrs="{&quot;src&quot;:&quot;https://substack-post-media.s3.amazonaws.com/public/images/23194e7d-8d30-4ba9-b0f1-cbcbd1dbc727_1200x640.png&quot;,&quot;srcNoWatermark&quot;:null,&quot;fullscreen&quot;:null,&quot;imageSize&quot;:null,&quot;height&quot;:640,&quot;width&quot;:1200,&quot;resizeWidth&quot;:null,&quot;bytes&quot;:639331,&quot;alt&quot;:null,&quot;title&quot;:null,&quot;type&quot;:&quot;image/png&quot;,&quot;href&quot;:&quot;https://www.iacconf.com/iacconf-2026?refid=DevOps-Bulletin&amp;utm_campaign=40984474-FY26%20-%20WW%20-%20Virtual%20Event%20-%20IaCConf%20-%20May%202026&amp;utm_source=DevOps-Bulletin&amp;utm_medium=paid_newsletter&quot;,&quot;belowTheFold&quot;:false,&quot;topImage&quot;:false,&quot;internalRedirect&quot;:&quot;https://www.devopsbulletin.com/i/194526182?img=https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F23194e7d-8d30-4ba9-b0f1-cbcbd1dbc727_1200x640.png&quot;,&quot;isProcessing&quot;:false,&quot;align&quot;:null,&quot;offset&quot;:false}" class="sizing-normal" alt="" srcset="https://substackcdn.com/image/fetch/$s_!iD1q!,w_424,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F23194e7d-8d30-4ba9-b0f1-cbcbd1dbc727_1200x640.png 424w, https://substackcdn.com/image/fetch/$s_!iD1q!,w_848,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F23194e7d-8d30-4ba9-b0f1-cbcbd1dbc727_1200x640.png 848w, https://substackcdn.com/image/fetch/$s_!iD1q!,w_1272,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F23194e7d-8d30-4ba9-b0f1-cbcbd1dbc727_1200x640.png 1272w, https://substackcdn.com/image/fetch/$s_!iD1q!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F23194e7d-8d30-4ba9-b0f1-cbcbd1dbc727_1200x640.png 1456w" sizes="100vw"></picture><div class="image-link-expand"><div class="pencraft pc-display-flex pc-gap-8 pc-reset"><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container restack-image"><svg role="img" width="20" height="20" viewBox="0 0 20 20" fill="none" stroke-width="1.5" stroke="var(--color-fg-primary)" stroke-linecap="round" stroke-linejoin="round" xmlns="http://www.w3.org/2000/svg"><g><title></title><path d="M2.53001 7.81595C3.49179 4.73911 6.43281 2.5 9.91173 2.5C13.1684 2.5 15.9537 4.46214 17.0852 7.23684L17.6179 8.67647M17.6179 8.67647L18.5002 4.26471M17.6179 8.67647L13.6473 6.91176M17.4995 12.1841C16.5378 15.2609 13.5967 17.5 10.1178 17.5C6.86118 17.5 4.07589 15.5379 2.94432 12.7632L2.41165 11.3235M2.41165 11.3235L1.5293 15.7353M2.41165 11.3235L6.38224 13.0882"></path></g></svg></button><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container view-image"><svg xmlns="http://www.w3.org/2000/svg" width="20" height="20" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="lucide lucide-maximize2 lucide-maximize-2"><polyline points="15 3 21 3 21 9"></polyline><polyline points="9 21 3 21 3 15"></polyline><line x1="21" x2="14" y1="3" y2="10"></line><line x1="3" x2="10" y1="21" y2="14"></line></svg></button></div></div></div></a></figure></div><p>Nobody calls out cloud infrastructure nonsense quite like Corey Quinn. If your team is using AI to write infrastructure code, you NEED to come hear this. <a href="https://www.iacconf.com/iacconf-2026?refid=DevOps-Bulletin&amp;utm_campaign=40984474-FY26%20-%20WW%20-%20Virtual%20Event%20-%20IaCConf%20-%20May%202026&amp;utm_source=DevOps-Bulletin&amp;utm_medium=paid_newsletter">Join us for his keynote</a> at the free virtual conference built for engineers who manage infrastructure at scale - <strong><a href="https://www.iacconf.com/iacconf-2026?refid=DevOps-Bulletin&amp;utm_campaign=40984474-FY26%20-%20WW%20-%20Virtual%20Event%20-%20IaCConf%20-%20May%202026&amp;utm_source=DevOps-Bulletin&amp;utm_medium=paid_newsletter">Grab your free spot</a></strong></p><h4>Newsworthy stories</h4><ul><li><p><strong><a href="https://www.wiz.io/blog/six-accounts-one-actor-inside-the-prt-scan-supply-chain-campaign">Inside the prt-scan supply chain campaign</a></strong></p></li><li><p><strong><a href="https://github.blog/engineering/infrastructure/how-github-uses-ebpf-to-improve-deployment-safety/">How GitHub uses eBPF to improve deployment safety</a></strong></p></li><li><p><strong><a href="https://shatteredsilicon.net/aws-lambda-kiss-of-death/">The AWS Lambda &#8220;kiss of death&#8221;</a></strong></p></li><li><p><strong><a href="https://oseifert.ch/blog/linux-kernel-pgit">I imported the Linux kernel into PostgreSQL</a></strong></p></li><li><p><strong><a href="https://blog.cloudflare.com/artifacts-git-for-agents-beta/">Versioned storage that speaks Git</a></strong></p></li><li><p><strong><a href="https://www.infoq.com/presentations/duolingo-eks-kubernetes">Duolingo&#8217;s Kubernetes leap</a></strong></p></li><li><p><strong><a href="https://adversa.ai/blog/claude-code-security-bypass-deny-rules-disabled/">Critical Claude Code vulnerability</a></strong></p></li><li><p><strong><a href="https://sockpuppet.org/blog/2026/03/30/vulnerability-research-is-cooked/">Vulnerability research is cooked</a></strong></p></li></ul><h4>Tutorials of the week</h4><ul><li><p><strong><a href="https://grafana.com/blog/kubernetes-monitoring-helm-chart-v4-biggest-update-ever-">Kubernetes monitoring Helm chart v4</a></strong></p></li><li><p><strong><a href="https://build5nines.com/stop-wasting-hours-writing-unit-tests-use-github-copilot-to-explode-code-coverage-fast/">Using GitHub Copilot to write unit tests fast</a></strong></p></li><li><p><strong><a href="https://blog.devops.dev/prompt-secure-infrastructure-the-claude-code-devsecops-shift-on-aws-cf0a3ce3f264">The Claude Code DevSecOps shift on AWS</a></strong></p></li><li><p><strong><a href="https://aws.amazon.com/blogs/aws-cloud-financial-management/transforming-finops-with-the-latest-amazon-q-cost-capabilities/">Transforming FinOps with the latest Amazon Q cost capabilities</a></strong></p></li></ul><div class="captioned-image-container"><figure><a class="image-link image2 is-viewable-img" target="_blank" href="https://aws.amazon.com/blogs/aws-cloud-financial-management/transforming-finops-with-the-latest-amazon-q-cost-capabilities/" data-component-name="Image2ToDOM"><div class="image2-inset"><picture><source type="image/webp" srcset="https://substackcdn.com/image/fetch/$s_!YvdH!,w_424,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fd2ebfb12-7847-4f6b-87ef-3d8a62e07487_3192x1390.png 424w, https://substackcdn.com/image/fetch/$s_!YvdH!,w_848,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fd2ebfb12-7847-4f6b-87ef-3d8a62e07487_3192x1390.png 848w, https://substackcdn.com/image/fetch/$s_!YvdH!,w_1272,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fd2ebfb12-7847-4f6b-87ef-3d8a62e07487_3192x1390.png 1272w, https://substackcdn.com/image/fetch/$s_!YvdH!,w_1456,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fd2ebfb12-7847-4f6b-87ef-3d8a62e07487_3192x1390.png 1456w" sizes="100vw"><img src="https://substackcdn.com/image/fetch/$s_!YvdH!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fd2ebfb12-7847-4f6b-87ef-3d8a62e07487_3192x1390.png" width="1456" height="634" data-attrs="{&quot;src&quot;:&quot;https://substack-post-media.s3.amazonaws.com/public/images/d2ebfb12-7847-4f6b-87ef-3d8a62e07487_3192x1390.png&quot;,&quot;srcNoWatermark&quot;:null,&quot;fullscreen&quot;:null,&quot;imageSize&quot;:null,&quot;height&quot;:634,&quot;width&quot;:1456,&quot;resizeWidth&quot;:null,&quot;bytes&quot;:null,&quot;alt&quot;:&quot;Figure 3 - Example of clicking the &#8216;View in Cost Explorer&#8217; link&quot;,&quot;title&quot;:null,&quot;type&quot;:null,&quot;href&quot;:&quot;https://aws.amazon.com/blogs/aws-cloud-financial-management/transforming-finops-with-the-latest-amazon-q-cost-capabilities/&quot;,&quot;belowTheFold&quot;:true,&quot;topImage&quot;:false,&quot;internalRedirect&quot;:null,&quot;isProcessing&quot;:false,&quot;align&quot;:null,&quot;offset&quot;:false}" class="sizing-normal" alt="Figure 3 - Example of clicking the &#8216;View in Cost Explorer&#8217; link" title="Figure 3 - Example of clicking the &#8216;View in Cost Explorer&#8217; link" srcset="https://substackcdn.com/image/fetch/$s_!YvdH!,w_424,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fd2ebfb12-7847-4f6b-87ef-3d8a62e07487_3192x1390.png 424w, https://substackcdn.com/image/fetch/$s_!YvdH!,w_848,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fd2ebfb12-7847-4f6b-87ef-3d8a62e07487_3192x1390.png 848w, https://substackcdn.com/image/fetch/$s_!YvdH!,w_1272,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fd2ebfb12-7847-4f6b-87ef-3d8a62e07487_3192x1390.png 1272w, https://substackcdn.com/image/fetch/$s_!YvdH!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fd2ebfb12-7847-4f6b-87ef-3d8a62e07487_3192x1390.png 1456w" sizes="100vw" loading="lazy"></picture><div class="image-link-expand"><div class="pencraft pc-display-flex pc-gap-8 pc-reset"><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container restack-image"><svg role="img" width="20" height="20" viewBox="0 0 20 20" fill="none" stroke-width="1.5" stroke="var(--color-fg-primary)" stroke-linecap="round" stroke-linejoin="round" xmlns="http://www.w3.org/2000/svg"><g><title></title><path d="M2.53001 7.81595C3.49179 4.73911 6.43281 2.5 9.91173 2.5C13.1684 2.5 15.9537 4.46214 17.0852 7.23684L17.6179 8.67647M17.6179 8.67647L18.5002 4.26471M17.6179 8.67647L13.6473 6.91176M17.4995 12.1841C16.5378 15.2609 13.5967 17.5 10.1178 17.5C6.86118 17.5 4.07589 15.5379 2.94432 12.7632L2.41165 11.3235M2.41165 11.3235L1.5293 15.7353M2.41165 11.3235L6.38224 13.0882"></path></g></svg></button><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container view-image"><svg xmlns="http://www.w3.org/2000/svg" width="20" height="20" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="lucide lucide-maximize2 lucide-maximize-2"><polyline points="15 3 21 3 21 9"></polyline><polyline points="9 21 3 21 3 15"></polyline><line x1="21" x2="14" y1="3" y2="10"></line><line x1="3" x2="10" y1="21" y2="14"></line></svg></button></div></div></div></a></figure></div><ul><li><p><strong><a href="https://www.dbpro.app/blog/do-you-even-need-a-database">Do you even need a database?</a></strong></p></li><li><p><strong><a href="https://aws.amazon.com/blogs/containers/deploying-model-context-protocol-mcp-servers-on-amazon-ecs/">Deploying MCP servers on Amazon ECS</a></strong></p></li><li><p><strong><a href="https://slack.engineering/managing-context-in-long-run-agentic-applications/">Managing context in long-run agentic applications</a></strong></p></li><li><p><strong><a href="https://blog.cloudflare.com/enterprise-mcp">Reference architecture for enterprise deployments of MCP</a></strong></p></li><li><p><strong><a href="https://blog.frankel.ch/agentic-github-workflows">A GitHub agentic workflow</a></strong></p></li><li><p><strong><a href="https://blog.alexewerlof.com/p/multi-agent-system-reliability">Multi-agent system reliability</a></strong></p></li></ul><h4>Videos of the week</h4><div id="youtube2-u3GjIXP9N0s" class="youtube-wrap" data-attrs="{&quot;videoId&quot;:&quot;u3GjIXP9N0s&quot;,&quot;startTime&quot;:null,&quot;endTime&quot;:null}" data-component-name="Youtube2ToDOM"><div class="youtube-inner"><iframe src="https://www.youtube-nocookie.com/embed/u3GjIXP9N0s?rel=0&amp;autoplay=0&amp;showinfo=0&amp;enablejsapi=0" frameborder="0" loading="lazy" gesture="media" allow="autoplay; fullscreen" allowautoplay="true" allowfullscreen="true" width="728" height="409"></iframe></div></div><div id="youtube2-TdondBmyNXc" class="youtube-wrap" data-attrs="{&quot;videoId&quot;:&quot;TdondBmyNXc&quot;,&quot;startTime&quot;:null,&quot;endTime&quot;:null}" data-component-name="Youtube2ToDOM"><div class="youtube-inner"><iframe src="https://www.youtube-nocookie.com/embed/TdondBmyNXc?rel=0&amp;autoplay=0&amp;showinfo=0&amp;enablejsapi=0" frameborder="0" loading="lazy" gesture="media" allow="autoplay; fullscreen" allowautoplay="true" allowfullscreen="true" width="728" height="409"></iframe></div></div><h4>Projects of the week</h4><ul><li><p><strong><a href="https://github.com/pompelmi/pompelmi">pompelmi</a></strong> is a minimal Node.js wrapper around ClamAV that scans any file for malware.</p></li><li><p><strong><a href="https://github.com/SethPyle376/hiraeth">hiraeth</a></strong> is a local AWS emulator built for fast SQS integration testing, with SQLite state persistence and a built-in web debugging interface.</p></li><li><p><strong><a href="https://github.com/AgentSeal/codeburn">codeburn</a></strong> is a terminal UI dashboard that tracks AI coding token usage and costs across Claude Code, Codex, Cursor, and GitHub Copilot.</p></li></ul><div class="captioned-image-container"><figure><a class="image-link image2 is-viewable-img" target="_blank" href="https://github.com/AgentSeal/codeburn" data-component-name="Image2ToDOM"><div class="image2-inset"><picture><source type="image/webp" srcset="https://substackcdn.com/image/fetch/$s_!ELsj!,w_424,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F8602865c-9855-4134-981c-c7b05b892a41_3840x2880.jpeg 424w, https://substackcdn.com/image/fetch/$s_!ELsj!,w_848,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F8602865c-9855-4134-981c-c7b05b892a41_3840x2880.jpeg 848w, https://substackcdn.com/image/fetch/$s_!ELsj!,w_1272,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F8602865c-9855-4134-981c-c7b05b892a41_3840x2880.jpeg 1272w, https://substackcdn.com/image/fetch/$s_!ELsj!,w_1456,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F8602865c-9855-4134-981c-c7b05b892a41_3840x2880.jpeg 1456w" sizes="100vw"><img src="https://substackcdn.com/image/fetch/$s_!ELsj!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F8602865c-9855-4134-981c-c7b05b892a41_3840x2880.jpeg" width="584" height="438" data-attrs="{&quot;src&quot;:&quot;https://substack-post-media.s3.amazonaws.com/public/images/8602865c-9855-4134-981c-c7b05b892a41_3840x2880.jpeg&quot;,&quot;srcNoWatermark&quot;:null,&quot;fullscreen&quot;:null,&quot;imageSize&quot;:null,&quot;height&quot;:1092,&quot;width&quot;:1456,&quot;resizeWidth&quot;:584,&quot;bytes&quot;:509309,&quot;alt&quot;:null,&quot;title&quot;:null,&quot;type&quot;:&quot;image/jpeg&quot;,&quot;href&quot;:&quot;https://github.com/AgentSeal/codeburn&quot;,&quot;belowTheFold&quot;:true,&quot;topImage&quot;:false,&quot;internalRedirect&quot;:&quot;https://www.devopsbulletin.com/i/194526182?img=https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F8602865c-9855-4134-981c-c7b05b892a41_3840x2880.jpeg&quot;,&quot;isProcessing&quot;:false,&quot;align&quot;:null,&quot;offset&quot;:false}" class="sizing-normal" alt="" srcset="https://substackcdn.com/image/fetch/$s_!ELsj!,w_424,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F8602865c-9855-4134-981c-c7b05b892a41_3840x2880.jpeg 424w, https://substackcdn.com/image/fetch/$s_!ELsj!,w_848,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F8602865c-9855-4134-981c-c7b05b892a41_3840x2880.jpeg 848w, https://substackcdn.com/image/fetch/$s_!ELsj!,w_1272,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F8602865c-9855-4134-981c-c7b05b892a41_3840x2880.jpeg 1272w, https://substackcdn.com/image/fetch/$s_!ELsj!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F8602865c-9855-4134-981c-c7b05b892a41_3840x2880.jpeg 1456w" sizes="100vw" loading="lazy"></picture><div class="image-link-expand"><div class="pencraft pc-display-flex pc-gap-8 pc-reset"><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container restack-image"><svg role="img" width="20" height="20" viewBox="0 0 20 20" fill="none" stroke-width="1.5" stroke="var(--color-fg-primary)" stroke-linecap="round" stroke-linejoin="round" xmlns="http://www.w3.org/2000/svg"><g><title></title><path d="M2.53001 7.81595C3.49179 4.73911 6.43281 2.5 9.91173 2.5C13.1684 2.5 15.9537 4.46214 17.0852 7.23684L17.6179 8.67647M17.6179 8.67647L18.5002 4.26471M17.6179 8.67647L13.6473 6.91176M17.4995 12.1841C16.5378 15.2609 13.5967 17.5 10.1178 17.5C6.86118 17.5 4.07589 15.5379 2.94432 12.7632L2.41165 11.3235M2.41165 11.3235L1.5293 15.7353M2.41165 11.3235L6.38224 13.0882"></path></g></svg></button><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container view-image"><svg xmlns="http://www.w3.org/2000/svg" width="20" height="20" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="lucide lucide-maximize2 lucide-maximize-2"><polyline points="15 3 21 3 21 9"></polyline><polyline points="9 21 3 21 3 15"></polyline><line x1="21" x2="14" y1="3" y2="10"></line><line x1="3" x2="10" y1="21" y2="14"></line></svg></button></div></div></div></a></figure></div><ul><li><p><strong><a href="https://github.com/mwallner/mergetopus">mergetopus</a></strong> is a tool that untangles complex Git merges by splitting conflicted files into parallel slice branches, letting multiple developers resolve different conflicts at the same time.</p></li><li><p><strong><a href="https://github.com/timescale/tigerfs">tigerfs</a></strong> is a Go filesystem interface backed by PostgreSQL that lets you mount a database and browse it with standard Unix tools.</p></li><li><p><strong><a href="https://github.com/google/osv.dev">osv.dev</a></strong> is Google&#8217;s open source vulnerability database and triage service, tracking vulnerabilities across multiple package ecosystems.</p></li></ul><h4>Meme of the week</h4><div class="captioned-image-container"><figure><a class="image-link image2 is-viewable-img" target="_blank" href="https://substackcdn.com/image/fetch/$s_!51-A!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F83ae8081-fe48-459e-8dcf-0887a60175a2_959x1121.jpeg" data-component-name="Image2ToDOM"><div class="image2-inset"><picture><source type="image/webp" srcset="https://substackcdn.com/image/fetch/$s_!51-A!,w_424,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F83ae8081-fe48-459e-8dcf-0887a60175a2_959x1121.jpeg 424w, https://substackcdn.com/image/fetch/$s_!51-A!,w_848,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F83ae8081-fe48-459e-8dcf-0887a60175a2_959x1121.jpeg 848w, https://substackcdn.com/image/fetch/$s_!51-A!,w_1272,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F83ae8081-fe48-459e-8dcf-0887a60175a2_959x1121.jpeg 1272w, https://substackcdn.com/image/fetch/$s_!51-A!,w_1456,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F83ae8081-fe48-459e-8dcf-0887a60175a2_959x1121.jpeg 1456w" sizes="100vw"><img src="https://substackcdn.com/image/fetch/$s_!51-A!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F83ae8081-fe48-459e-8dcf-0887a60175a2_959x1121.jpeg" width="440" height="514.3274244004172" data-attrs="{&quot;src&quot;:&quot;https://substack-post-media.s3.amazonaws.com/public/images/83ae8081-fe48-459e-8dcf-0887a60175a2_959x1121.jpeg&quot;,&quot;srcNoWatermark&quot;:null,&quot;fullscreen&quot;:null,&quot;imageSize&quot;:null,&quot;height&quot;:1121,&quot;width&quot;:959,&quot;resizeWidth&quot;:440,&quot;bytes&quot;:null,&quot;alt&quot;:&quot;The Age Of AI&quot;,&quot;title&quot;:null,&quot;type&quot;:null,&quot;href&quot;:null,&quot;belowTheFold&quot;:true,&quot;topImage&quot;:false,&quot;internalRedirect&quot;:null,&quot;isProcessing&quot;:false,&quot;align&quot;:null,&quot;offset&quot;:false}" class="sizing-normal" alt="The Age Of AI" title="The Age Of AI" srcset="https://substackcdn.com/image/fetch/$s_!51-A!,w_424,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F83ae8081-fe48-459e-8dcf-0887a60175a2_959x1121.jpeg 424w, https://substackcdn.com/image/fetch/$s_!51-A!,w_848,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F83ae8081-fe48-459e-8dcf-0887a60175a2_959x1121.jpeg 848w, https://substackcdn.com/image/fetch/$s_!51-A!,w_1272,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F83ae8081-fe48-459e-8dcf-0887a60175a2_959x1121.jpeg 1272w, https://substackcdn.com/image/fetch/$s_!51-A!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F83ae8081-fe48-459e-8dcf-0887a60175a2_959x1121.jpeg 1456w" sizes="100vw" loading="lazy"></picture><div class="image-link-expand"><div class="pencraft pc-display-flex pc-gap-8 pc-reset"><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container restack-image"><svg role="img" width="20" height="20" viewBox="0 0 20 20" fill="none" stroke-width="1.5" stroke="var(--color-fg-primary)" stroke-linecap="round" stroke-linejoin="round" xmlns="http://www.w3.org/2000/svg"><g><title></title><path d="M2.53001 7.81595C3.49179 4.73911 6.43281 2.5 9.91173 2.5C13.1684 2.5 15.9537 4.46214 17.0852 7.23684L17.6179 8.67647M17.6179 8.67647L18.5002 4.26471M17.6179 8.67647L13.6473 6.91176M17.4995 12.1841C16.5378 15.2609 13.5967 17.5 10.1178 17.5C6.86118 17.5 4.07589 15.5379 2.94432 12.7632L2.41165 11.3235M2.41165 11.3235L1.5293 15.7353M2.41165 11.3235L6.38224 13.0882"></path></g></svg></button><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container view-image"><svg xmlns="http://www.w3.org/2000/svg" width="20" height="20" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="lucide lucide-maximize2 lucide-maximize-2"><polyline points="15 3 21 3 21 9"></polyline><polyline points="9 21 3 21 3 15"></polyline><line x1="21" x2="14" y1="3" y2="10"></line><line x1="3" x2="10" y1="21" y2="14"></line></svg></button></div></div></div></a></figure></div><div class="pullquote"><p> If you have feedback to share or are interested in <a href="https://www.devopsbulletin.com/p/sponsorships">sponsoring</a> this newsletter, feel free to reach out via <em><a href="https://www.linkedin.com/in/mlabouardy/">LinkedIn</a></em> or simply reply to this email. </p></div><div class="subscription-widget-wrap-editor" data-attrs="{&quot;url&quot;:&quot;https://www.devopsbulletin.com/subscribe?&quot;,&quot;text&quot;:&quot;Subscribe&quot;,&quot;language&quot;:&quot;en&quot;}" data-component-name="SubscribeWidgetToDOM"><div class="subscription-widget show-subscribe"><div class="preamble"><p class="cta-caption">Thanks for reading DevOps Bulletin! Subscribe for free to receive new posts and support my work.</p></div><form class="subscription-widget-subscribe"><input type="email" class="email-input" name="email" placeholder="Type your email&#8230;" tabindex="-1"><input type="submit" class="button primary" value="Subscribe"><div class="fake-input-wrapper"><div class="fake-input"></div><div class="fake-button"></div></div></form></div></div>]]></content:encoded></item><item><title><![CDATA[Digest #209: OpenAI Codex Command Injection, Live Kubernetes Migration and SRE Agents]]></title><description><![CDATA[From Claude Code's source code being exposed through npm source maps, to a command injection flaw in OpenAI Codex leaking GitHub tokens.]]></description><link>https://www.devopsbulletin.com/p/digest-209-openai-codex-command-injection</link><guid isPermaLink="false">https://www.devopsbulletin.com/p/digest-209-openai-codex-command-injection</guid><dc:creator><![CDATA[Mohamed Labouardy]]></dc:creator><pubDate>Fri, 10 Apr 2026 14:02:01 GMT</pubDate><enclosure url="https://substackcdn.com/image/youtube/w_728,c_limit/S7sJA51CxIo" length="0" type="image/jpeg"/><content:encoded><![CDATA[<div class="captioned-image-container"><figure><a class="image-link image2" target="_blank" href="https://noros.ai/?utm_source=sponsorship&amp;utm_medium=tldrdevops&amp;utm_campaign=nmrk-tldrdevops-awareness-devops-us-noros2&amp;utm_content=lp_north" data-component-name="Image2ToDOM"><div class="image2-inset"><picture><source type="image/webp" srcset="https://substackcdn.com/image/fetch/$s_!sRnV!,w_424,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Ffb90984c-fac6-468b-98f5-e653d7b5f0fe_268x71.png 424w, https://substackcdn.com/image/fetch/$s_!sRnV!,w_848,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Ffb90984c-fac6-468b-98f5-e653d7b5f0fe_268x71.png 848w, https://substackcdn.com/image/fetch/$s_!sRnV!,w_1272,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Ffb90984c-fac6-468b-98f5-e653d7b5f0fe_268x71.png 1272w, https://substackcdn.com/image/fetch/$s_!sRnV!,w_1456,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Ffb90984c-fac6-468b-98f5-e653d7b5f0fe_268x71.png 1456w" sizes="100vw"><img src="https://substackcdn.com/image/fetch/$s_!sRnV!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Ffb90984c-fac6-468b-98f5-e653d7b5f0fe_268x71.png" width="268" height="71" data-attrs="{&quot;src&quot;:&quot;https://substack-post-media.s3.amazonaws.com/public/images/fb90984c-fac6-468b-98f5-e653d7b5f0fe_268x71.png&quot;,&quot;srcNoWatermark&quot;:null,&quot;fullscreen&quot;:null,&quot;imageSize&quot;:null,&quot;height&quot;:71,&quot;width&quot;:268,&quot;resizeWidth&quot;:null,&quot;bytes&quot;:9154,&quot;alt&quot;:null,&quot;title&quot;:null,&quot;type&quot;:&quot;image/png&quot;,&quot;href&quot;:&quot;https://noros.ai/?utm_source=sponsorship&amp;utm_medium=tldrdevops&amp;utm_campaign=nmrk-tldrdevops-awareness-devops-us-noros2&amp;utm_content=lp_north&quot;,&quot;belowTheFold&quot;:false,&quot;topImage&quot;:true,&quot;internalRedirect&quot;:&quot;https://www.devopsbulletin.com/i/193781366?img=https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Ffb90984c-fac6-468b-98f5-e653d7b5f0fe_268x71.png&quot;,&quot;isProcessing&quot;:false,&quot;align&quot;:null,&quot;offset&quot;:false}" class="sizing-normal" alt="" srcset="https://substackcdn.com/image/fetch/$s_!sRnV!,w_424,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Ffb90984c-fac6-468b-98f5-e653d7b5f0fe_268x71.png 424w, https://substackcdn.com/image/fetch/$s_!sRnV!,w_848,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Ffb90984c-fac6-468b-98f5-e653d7b5f0fe_268x71.png 848w, https://substackcdn.com/image/fetch/$s_!sRnV!,w_1272,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Ffb90984c-fac6-468b-98f5-e653d7b5f0fe_268x71.png 1272w, https://substackcdn.com/image/fetch/$s_!sRnV!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Ffb90984c-fac6-468b-98f5-e653d7b5f0fe_268x71.png 1456w" sizes="100vw" fetchpriority="high"></picture><div></div></div></a></figure></div><p>Noros connects to your AWS, GCP, and Azure accounts in 5 minutes and answers questions like &#8220;why did my spend spike this month?&#8221; in seconds. DevOps Bulletin readers get a <a href="https://noros.ai/?utm_source=sponsorship&amp;utm_medium=tldrdevops&amp;utm_campaign=nmrk-tldrdevops-awareness-devops-us-noros2&amp;utm_content=lp_north">free month</a> at launch.</p><p>This week, BeyondTrust uncovered a command injection flaw in OpenAI Codex that exposed GitHub tokens, and Claude Code&#8217;s source code was leaked through npm source maps. Giant Swarm detailed how they live-migrated hundreds of Kubernetes clusters to the Cluster API with zero downtime.</p><p>On the tutorial side: AWS launched S3 Files to let you mount buckets as file systems; Ingress NGINX hit EOL, and Datadog walks through migrating to Kubernetes Gateway API; SpecterOps shows how Claude Code raises the bar for secure code reviews in pentesting engagements. Plus: why you should never let AI near your production database, how Slack replaced custom network tooling with Prometheus for HTTP/3 readiness, a complete Terraform setup for EKS Auto Mode, and the Git commands worth running before touching any unfamiliar codebase.</p><p>This week&#8217;s open source picks include PentAGI, a fully autonomous AI pentest agent in Go with 14.7k stars; Gardener, which manages Kubernetes clusters at scale across any infrastructure using hosted control planes; keeper, a Go cryptographic secret store; and skrun, which deploys agent skills defined in SKILL.md files as callable REST APIs.</p><h4>What if you could ask your cloud bill anything?</h4><div class="captioned-image-container"><figure><a class="image-link image2 is-viewable-img" target="_blank" href="https://noros.ai/?utm_source=sponsorship&amp;utm_medium=tldrdevops&amp;utm_campaign=nmrk-tldrdevops-awareness-devops-us-noros2&amp;utm_content=lp_north" data-component-name="Image2ToDOM"><div class="image2-inset"><picture><source type="image/webp" srcset="https://substackcdn.com/image/fetch/$s_!SqeB!,w_424,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fb348c902-1910-4ef5-a4c1-73a3ee2e3096_1200x640.png 424w, https://substackcdn.com/image/fetch/$s_!SqeB!,w_848,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fb348c902-1910-4ef5-a4c1-73a3ee2e3096_1200x640.png 848w, https://substackcdn.com/image/fetch/$s_!SqeB!,w_1272,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fb348c902-1910-4ef5-a4c1-73a3ee2e3096_1200x640.png 1272w, https://substackcdn.com/image/fetch/$s_!SqeB!,w_1456,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fb348c902-1910-4ef5-a4c1-73a3ee2e3096_1200x640.png 1456w" sizes="100vw"><img src="https://substackcdn.com/image/fetch/$s_!SqeB!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fb348c902-1910-4ef5-a4c1-73a3ee2e3096_1200x640.png" width="1200" height="640" data-attrs="{&quot;src&quot;:&quot;https://substack-post-media.s3.amazonaws.com/public/images/b348c902-1910-4ef5-a4c1-73a3ee2e3096_1200x640.png&quot;,&quot;srcNoWatermark&quot;:null,&quot;fullscreen&quot;:null,&quot;imageSize&quot;:null,&quot;height&quot;:640,&quot;width&quot;:1200,&quot;resizeWidth&quot;:null,&quot;bytes&quot;:186555,&quot;alt&quot;:null,&quot;title&quot;:null,&quot;type&quot;:&quot;image/png&quot;,&quot;href&quot;:&quot;https://noros.ai/?utm_source=sponsorship&amp;utm_medium=tldrdevops&amp;utm_campaign=nmrk-tldrdevops-awareness-devops-us-noros2&amp;utm_content=lp_north&quot;,&quot;belowTheFold&quot;:false,&quot;topImage&quot;:false,&quot;internalRedirect&quot;:&quot;https://www.devopsbulletin.com/i/193781366?img=https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fb348c902-1910-4ef5-a4c1-73a3ee2e3096_1200x640.png&quot;,&quot;isProcessing&quot;:false,&quot;align&quot;:null,&quot;offset&quot;:false}" class="sizing-normal" alt="" srcset="https://substackcdn.com/image/fetch/$s_!SqeB!,w_424,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fb348c902-1910-4ef5-a4c1-73a3ee2e3096_1200x640.png 424w, https://substackcdn.com/image/fetch/$s_!SqeB!,w_848,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fb348c902-1910-4ef5-a4c1-73a3ee2e3096_1200x640.png 848w, https://substackcdn.com/image/fetch/$s_!SqeB!,w_1272,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fb348c902-1910-4ef5-a4c1-73a3ee2e3096_1200x640.png 1272w, https://substackcdn.com/image/fetch/$s_!SqeB!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fb348c902-1910-4ef5-a4c1-73a3ee2e3096_1200x640.png 1456w" sizes="100vw"></picture><div class="image-link-expand"><div class="pencraft pc-display-flex pc-gap-8 pc-reset"><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container restack-image"><svg role="img" width="20" height="20" viewBox="0 0 20 20" fill="none" stroke-width="1.5" stroke="var(--color-fg-primary)" stroke-linecap="round" stroke-linejoin="round" xmlns="http://www.w3.org/2000/svg"><g><title></title><path d="M2.53001 7.81595C3.49179 4.73911 6.43281 2.5 9.91173 2.5C13.1684 2.5 15.9537 4.46214 17.0852 7.23684L17.6179 8.67647M17.6179 8.67647L18.5002 4.26471M17.6179 8.67647L13.6473 6.91176M17.4995 12.1841C16.5378 15.2609 13.5967 17.5 10.1178 17.5C6.86118 17.5 4.07589 15.5379 2.94432 12.7632L2.41165 11.3235M2.41165 11.3235L1.5293 15.7353M2.41165 11.3235L6.38224 13.0882"></path></g></svg></button><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container view-image"><svg xmlns="http://www.w3.org/2000/svg" width="20" height="20" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="lucide lucide-maximize2 lucide-maximize-2"><polyline points="15 3 21 3 21 9"></polyline><polyline points="9 21 3 21 3 15"></polyline><line x1="21" x2="14" y1="3" y2="10"></line><line x1="3" x2="10" y1="21" y2="14"></line></svg></button></div></div></div></a></figure></div><p>Why is my spend 5% higher this month?&#8221; Noros is the AI agent that answers in seconds. Ask about anomalies, overprovisioned instances, cost spikes, and more across AWS, GCP, and Azure. DevOps Bulletin readers get a <a href="https://noros.ai/?utm_source=sponsorship&amp;utm_medium=tldrdevops&amp;utm_campaign=nmrk-tldrdevops-awareness-devops-us-noros2&amp;utm_content=lp_north">free month</a> at launch.</p><p><a href="https://noros.ai/?utm_source=sponsorship&amp;utm_medium=tldrdevops&amp;utm_campaign=nmrk-tldrdevops-awareness-devops-us-noros2&amp;utm_content=lp_north">Join the waitlist.</a></p><h4>Newsworthy stories</h4><ul><li><p><strong><a href="https://astral.sh/blog/open-source-security-at-astral">Open source security at Astral</a></strong></p></li><li><p><strong><a href="https://www.giantswarm.io/blog/live-migrating-hundreds-of-kubernetes-clusters-to-cluster-api">Live migrating hundreds of Kubernetes clusters to Cluster API</a></strong></p></li><li><p><strong><a href="https://www.beyondtrust.com/blog/entry/openai-codex-command-injection-vulnerability-github-token">OpenAI Codex command injection vulnerability exposes GitHub tokens</a></strong></p></li><li><p><strong><a href="https://devops-daily.com/posts/claude-code-source-leak-what-devops-engineers-should-learn">Claude Code source leaked via npm source maps: lessons for every DevOps team</a></strong></p></li><li><p><strong><a href="https://codecraftdiary.com/2026/04/04/trunk-based-development-why-most-teams-think-they-use-it-but-dont">Trunk-based development: why most teams think they use it (but don&#8217;t)</a></strong></p></li><li><p><strong><a href="https://www.datadoghq.com/blog/engineering/bits-ai-eval-platform">How we built a real-world evaluation platform for autonomous SRE agents at scale</a></strong></p></li></ul><h4>Tutorials of the week</h4><ul><li><p><strong><a href="https://sonraisecurity.com/enforcing-ai-governance-across-aws-orgs">Enforcing AI governance across AWS organizations</a></strong></p></li><li><p><strong><a href="https://aws.amazon.com/blogs/aws/launching-s3-files-making-s3-buckets-accessible-as-file-systems">Launching S3 Files, making S3 buckets accessible as file systems</a></strong></p></li></ul><div class="captioned-image-container"><figure><a class="image-link image2 is-viewable-img" target="_blank" href="https://aws.amazon.com/blogs/aws/launching-s3-files-making-s3-buckets-accessible-as-file-systems/" data-component-name="Image2ToDOM"><div class="image2-inset"><picture><source type="image/webp" srcset="https://substackcdn.com/image/fetch/$s_!09Lo!,w_424,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fd78b3f81-fbd8-45db-99b2-4dc507f6f8b5_1024x542.png 424w, https://substackcdn.com/image/fetch/$s_!09Lo!,w_848,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fd78b3f81-fbd8-45db-99b2-4dc507f6f8b5_1024x542.png 848w, https://substackcdn.com/image/fetch/$s_!09Lo!,w_1272,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fd78b3f81-fbd8-45db-99b2-4dc507f6f8b5_1024x542.png 1272w, https://substackcdn.com/image/fetch/$s_!09Lo!,w_1456,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fd78b3f81-fbd8-45db-99b2-4dc507f6f8b5_1024x542.png 1456w" sizes="100vw"><img src="https://substackcdn.com/image/fetch/$s_!09Lo!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fd78b3f81-fbd8-45db-99b2-4dc507f6f8b5_1024x542.png" width="1024" height="542" data-attrs="{&quot;src&quot;:&quot;https://substack-post-media.s3.amazonaws.com/public/images/d78b3f81-fbd8-45db-99b2-4dc507f6f8b5_1024x542.png&quot;,&quot;srcNoWatermark&quot;:null,&quot;fullscreen&quot;:null,&quot;imageSize&quot;:null,&quot;height&quot;:542,&quot;width&quot;:1024,&quot;resizeWidth&quot;:null,&quot;bytes&quot;:82166,&quot;alt&quot;:&quot;S3 Files demo architecture&quot;,&quot;title&quot;:null,&quot;type&quot;:&quot;image/png&quot;,&quot;href&quot;:&quot;https://aws.amazon.com/blogs/aws/launching-s3-files-making-s3-buckets-accessible-as-file-systems/&quot;,&quot;belowTheFold&quot;:true,&quot;topImage&quot;:false,&quot;internalRedirect&quot;:null,&quot;isProcessing&quot;:false,&quot;align&quot;:null,&quot;offset&quot;:false}" class="sizing-normal" alt="S3 Files demo architecture" title="S3 Files demo architecture" srcset="https://substackcdn.com/image/fetch/$s_!09Lo!,w_424,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fd78b3f81-fbd8-45db-99b2-4dc507f6f8b5_1024x542.png 424w, https://substackcdn.com/image/fetch/$s_!09Lo!,w_848,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fd78b3f81-fbd8-45db-99b2-4dc507f6f8b5_1024x542.png 848w, https://substackcdn.com/image/fetch/$s_!09Lo!,w_1272,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fd78b3f81-fbd8-45db-99b2-4dc507f6f8b5_1024x542.png 1272w, https://substackcdn.com/image/fetch/$s_!09Lo!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fd78b3f81-fbd8-45db-99b2-4dc507f6f8b5_1024x542.png 1456w" sizes="100vw" loading="lazy"></picture><div class="image-link-expand"><div class="pencraft pc-display-flex pc-gap-8 pc-reset"><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container restack-image"><svg role="img" width="20" height="20" viewBox="0 0 20 20" fill="none" stroke-width="1.5" stroke="var(--color-fg-primary)" stroke-linecap="round" stroke-linejoin="round" xmlns="http://www.w3.org/2000/svg"><g><title></title><path d="M2.53001 7.81595C3.49179 4.73911 6.43281 2.5 9.91173 2.5C13.1684 2.5 15.9537 4.46214 17.0852 7.23684L17.6179 8.67647M17.6179 8.67647L18.5002 4.26471M17.6179 8.67647L13.6473 6.91176M17.4995 12.1841C16.5378 15.2609 13.5967 17.5 10.1178 17.5C6.86118 17.5 4.07589 15.5379 2.94432 12.7632L2.41165 11.3235M2.41165 11.3235L1.5293 15.7353M2.41165 11.3235L6.38224 13.0882"></path></g></svg></button><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container view-image"><svg xmlns="http://www.w3.org/2000/svg" width="20" height="20" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="lucide lucide-maximize2 lucide-maximize-2"><polyline points="15 3 21 3 21 9"></polyline><polyline points="9 21 3 21 3 15"></polyline><line x1="21" x2="14" y1="3" y2="10"></line><line x1="3" x2="10" y1="21" y2="14"></line></svg></button></div></div></div></a></figure></div><ul><li><p><strong><a href="https://boringsql.com/posts/dont-let-ai-to-prod/">Don&#8217;t let AI touch your production database</a></strong></p></li><li><p><strong><a href="https://www.xda-developers.com/i-replaced-portainer-grafana-and-prometheus-with-this-stack">I replaced Portainer, Grafana, and Prometheus with this stack</a></strong></p></li><li><p><strong><a href="https://specterops.io/blog/2026/03/26/leveling-up-secure-code-reviews-with-claude-code">Leveling up secure code reviews with Claude Code</a></strong></p></li><li><p><strong><a href="https://piechowski.io/post/git-commands-before-reading-code/">The Git commands I run before reading any code</a></strong></p></li></ul><div class="pullquote"><p><strong>Enjoying the Bulletin?</strong> Consider supporting it with a <a href="https://www.devopsbulletin.com/subscribe">paid subscription</a>. You&#8217;ll keep the free Friday issues <em>and</em> get extras like bonus deep-dives, templates, and the full archive.</p></div><ul><li><p><strong><a href="https://blog.logrocket.com/claude-pr-review-caught-vs-missed">I let Claude review my PRs: what it caught and missed</a></strong></p></li><li><p><strong><a href="https://www.datadoghq.com/blog/migrate-to-gateway-api">A practical guide for migrating to Kubernetes Gateway API</a></strong></p></li><li><p><strong><a href="https://darryl-ruggles.cloud/a-complete-terraform-setup-for-eks-auto-mode-is-it-right-for-you">A complete Terraform setup for EKS Auto Mode: is it right for you?</a></strong></p></li><li><p><strong><a href="https://slack.engineering/from-custom-to-open-scalable-network-probing-and-http-3-readiness-with-prometheus">Scalable network probing and HTTP/3 readiness with Prometheus</a></strong></p></li><li><p><strong><a href="https://www.josephspurrier.com/google-cloud-run-deployment">Deploying Go apps to Google Cloud Run</a></strong></p></li></ul><h4>Videos of the week</h4><div id="youtube2-S7sJA51CxIo" class="youtube-wrap" data-attrs="{&quot;videoId&quot;:&quot;S7sJA51CxIo&quot;,&quot;startTime&quot;:null,&quot;endTime&quot;:null}" data-component-name="Youtube2ToDOM"><div class="youtube-inner"><iframe src="https://www.youtube-nocookie.com/embed/S7sJA51CxIo?rel=0&amp;autoplay=0&amp;showinfo=0&amp;enablejsapi=0" frameborder="0" loading="lazy" gesture="media" allow="autoplay; fullscreen" allowautoplay="true" allowfullscreen="true" width="728" height="409"></iframe></div></div><h4>Projects of the week</h4><ul><li><p><strong><a href="https://github.com/agberohq/keeper">keeper</a></strong> is a Go cryptographic secret store that encrypts payloads at rest.</p></li><li><p><strong><a href="https://github.com/lirantal/npm-security-best-practices">npm-security-best-practices</a></strong> is a list of security best practices across supply chain attack mitigation, dependency resolution, and vulnerability scanning.</p></li><li><p><strong><a href="https://github.com/vxcontrol/pentagi">PentAGI</a></strong> is a fully autonomous AI agent system for penetration testing, packing 20+ built-in security tools.</p></li><li><p><strong><a href="https://github.com/onesuper/tui-use">tui-use</a></strong> is a tool that lets AI agents control interactive terminal programs (REPLs, debuggers, TUI apps) that normally require a human at the keyboard.</p></li><li><p><strong><a href="https://github.com/drifthoundhq/drifthound">DriftHound</a></strong> is an app that receives Terraform drift reports via API and provides a centralized dashboard for tracking infrastructure drift across projects.</p></li><li><p><strong><a href="https://github.com/gardener/gardener">Gardener</a></strong> is a Go platform for managing homogeneous Kubernetes clusters at scale across any infrastructure using hosted control planes.</p></li><li><p><strong><a href="https://github.com/skrun-dev/skrun">skrun</a></strong> is a framework that deploys agent skills defined in SKILL.md files as callable REST APIs.</p></li></ul><h4>Meme of the week</h4><div class="captioned-image-container"><figure><a class="image-link image2 is-viewable-img" target="_blank" href="https://substackcdn.com/image/fetch/$s_!Vrb4!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F30d91fdc-3167-4466-803e-f913a5c74757_864x877.png" data-component-name="Image2ToDOM"><div class="image2-inset"><picture><source type="image/webp" srcset="https://substackcdn.com/image/fetch/$s_!Vrb4!,w_424,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F30d91fdc-3167-4466-803e-f913a5c74757_864x877.png 424w, https://substackcdn.com/image/fetch/$s_!Vrb4!,w_848,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F30d91fdc-3167-4466-803e-f913a5c74757_864x877.png 848w, https://substackcdn.com/image/fetch/$s_!Vrb4!,w_1272,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F30d91fdc-3167-4466-803e-f913a5c74757_864x877.png 1272w, https://substackcdn.com/image/fetch/$s_!Vrb4!,w_1456,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F30d91fdc-3167-4466-803e-f913a5c74757_864x877.png 1456w" sizes="100vw"><img src="https://substackcdn.com/image/fetch/$s_!Vrb4!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F30d91fdc-3167-4466-803e-f913a5c74757_864x877.png" width="432" height="438.5" data-attrs="{&quot;src&quot;:&quot;https://substack-post-media.s3.amazonaws.com/public/images/30d91fdc-3167-4466-803e-f913a5c74757_864x877.png&quot;,&quot;srcNoWatermark&quot;:null,&quot;fullscreen&quot;:null,&quot;imageSize&quot;:null,&quot;height&quot;:877,&quot;width&quot;:864,&quot;resizeWidth&quot;:432,&quot;bytes&quot;:null,&quot;alt&quot;:&quot;Average Windows Experience&quot;,&quot;title&quot;:null,&quot;type&quot;:null,&quot;href&quot;:null,&quot;belowTheFold&quot;:true,&quot;topImage&quot;:false,&quot;internalRedirect&quot;:null,&quot;isProcessing&quot;:false,&quot;align&quot;:null,&quot;offset&quot;:false}" class="sizing-normal" alt="Average Windows Experience" title="Average Windows Experience" srcset="https://substackcdn.com/image/fetch/$s_!Vrb4!,w_424,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F30d91fdc-3167-4466-803e-f913a5c74757_864x877.png 424w, https://substackcdn.com/image/fetch/$s_!Vrb4!,w_848,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F30d91fdc-3167-4466-803e-f913a5c74757_864x877.png 848w, https://substackcdn.com/image/fetch/$s_!Vrb4!,w_1272,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F30d91fdc-3167-4466-803e-f913a5c74757_864x877.png 1272w, https://substackcdn.com/image/fetch/$s_!Vrb4!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F30d91fdc-3167-4466-803e-f913a5c74757_864x877.png 1456w" sizes="100vw" loading="lazy"></picture><div class="image-link-expand"><div class="pencraft pc-display-flex pc-gap-8 pc-reset"><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container restack-image"><svg role="img" width="20" height="20" viewBox="0 0 20 20" fill="none" stroke-width="1.5" stroke="var(--color-fg-primary)" stroke-linecap="round" stroke-linejoin="round" xmlns="http://www.w3.org/2000/svg"><g><title></title><path d="M2.53001 7.81595C3.49179 4.73911 6.43281 2.5 9.91173 2.5C13.1684 2.5 15.9537 4.46214 17.0852 7.23684L17.6179 8.67647M17.6179 8.67647L18.5002 4.26471M17.6179 8.67647L13.6473 6.91176M17.4995 12.1841C16.5378 15.2609 13.5967 17.5 10.1178 17.5C6.86118 17.5 4.07589 15.5379 2.94432 12.7632L2.41165 11.3235M2.41165 11.3235L1.5293 15.7353M2.41165 11.3235L6.38224 13.0882"></path></g></svg></button><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container view-image"><svg xmlns="http://www.w3.org/2000/svg" width="20" height="20" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="lucide lucide-maximize2 lucide-maximize-2"><polyline points="15 3 21 3 21 9"></polyline><polyline points="9 21 3 21 3 15"></polyline><line x1="21" x2="14" y1="3" y2="10"></line><line x1="3" x2="10" y1="21" y2="14"></line></svg></button></div></div></div></a></figure></div><div class="pullquote"><p> If you have feedback to share or are interested in <a href="https://www.devopsbulletin.com/p/sponsorships">sponsoring</a> this newsletter, feel free to reach out via <em><a href="https://www.linkedin.com/in/mlabouardy/">LinkedIn</a></em> or simply reply to this email. </p></div><div class="subscription-widget-wrap-editor" data-attrs="{&quot;url&quot;:&quot;https://www.devopsbulletin.com/subscribe?&quot;,&quot;text&quot;:&quot;Subscribe&quot;,&quot;language&quot;:&quot;en&quot;}" data-component-name="SubscribeWidgetToDOM"><div class="subscription-widget show-subscribe"><div class="preamble"><p class="cta-caption">Thanks for reading DevOps Bulletin! Subscribe for free to receive new posts and support my work.</p></div><form class="subscription-widget-subscribe"><input type="email" class="email-input" name="email" placeholder="Type your email&#8230;" tabindex="-1"><input type="submit" class="button primary" value="Subscribe"><div class="fake-input-wrapper"><div class="fake-input"></div><div class="fake-button"></div></div></form></div></div>]]></content:encoded></item><item><title><![CDATA[Digest #208: Axios Supply Chain Attack, Agentic Incident Response, LLMs on Kubernetes and VSCode Malwares]]></title><description><![CDATA[A critical axios npm compromise affecting millions of downloads, while teams began automating incident response with AI agents.]]></description><link>https://www.devopsbulletin.com/p/digest-208-axios-supply-chain-attack</link><guid isPermaLink="false">https://www.devopsbulletin.com/p/digest-208-axios-supply-chain-attack</guid><dc:creator><![CDATA[Mohamed Labouardy]]></dc:creator><pubDate>Fri, 03 Apr 2026 18:40:03 GMT</pubDate><enclosure url="https://substackcdn.com/image/fetch/$s_!ycLG!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F6ce7b762-e00a-441c-a96f-464632aa2bfd_544x500.png" length="0" type="image/jpeg"/><content:encoded><![CDATA[<div class="captioned-image-container"><figure><a class="image-link image2" target="_blank" href="https://www.iacconf.com/iacconf-2026?refid=DevOps-Bulletin&amp;utm_campaign=40984474-FY26%20-%20WW%20-%20Virtual%20Event%20-%20IaCConf%20-%20May%202026&amp;utm_source=DevOps-Bulletin&amp;utm_medium=paid_newsletter" data-component-name="Image2ToDOM"><div class="image2-inset"><picture><source type="image/webp" srcset="https://substackcdn.com/image/fetch/$s_!cMSn!,w_424,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F3a6c02f1-19c9-4125-b185-7abd26d37a72_268x83.png 424w, https://substackcdn.com/image/fetch/$s_!cMSn!,w_848,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F3a6c02f1-19c9-4125-b185-7abd26d37a72_268x83.png 848w, https://substackcdn.com/image/fetch/$s_!cMSn!,w_1272,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F3a6c02f1-19c9-4125-b185-7abd26d37a72_268x83.png 1272w, https://substackcdn.com/image/fetch/$s_!cMSn!,w_1456,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F3a6c02f1-19c9-4125-b185-7abd26d37a72_268x83.png 1456w" sizes="100vw"><img src="https://substackcdn.com/image/fetch/$s_!cMSn!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F3a6c02f1-19c9-4125-b185-7abd26d37a72_268x83.png" width="268" height="83" data-attrs="{&quot;src&quot;:&quot;https://substack-post-media.s3.amazonaws.com/public/images/3a6c02f1-19c9-4125-b185-7abd26d37a72_268x83.png&quot;,&quot;srcNoWatermark&quot;:null,&quot;fullscreen&quot;:null,&quot;imageSize&quot;:null,&quot;height&quot;:83,&quot;width&quot;:268,&quot;resizeWidth&quot;:null,&quot;bytes&quot;:null,&quot;alt&quot;:null,&quot;title&quot;:null,&quot;type&quot;:null,&quot;href&quot;:&quot;https://www.iacconf.com/iacconf-2026?refid=DevOps-Bulletin&amp;utm_campaign=40984474-FY26%20-%20WW%20-%20Virtual%20Event%20-%20IaCConf%20-%20May%202026&amp;utm_source=DevOps-Bulletin&amp;utm_medium=paid_newsletter&quot;,&quot;belowTheFold&quot;:false,&quot;topImage&quot;:true,&quot;internalRedirect&quot;:null,&quot;isProcessing&quot;:false,&quot;align&quot;:null,&quot;offset&quot;:false}" class="sizing-normal" alt="" srcset="https://substackcdn.com/image/fetch/$s_!cMSn!,w_424,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F3a6c02f1-19c9-4125-b185-7abd26d37a72_268x83.png 424w, https://substackcdn.com/image/fetch/$s_!cMSn!,w_848,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F3a6c02f1-19c9-4125-b185-7abd26d37a72_268x83.png 848w, https://substackcdn.com/image/fetch/$s_!cMSn!,w_1272,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F3a6c02f1-19c9-4125-b185-7abd26d37a72_268x83.png 1272w, https://substackcdn.com/image/fetch/$s_!cMSn!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F3a6c02f1-19c9-4125-b185-7abd26d37a72_268x83.png 1456w" sizes="100vw" fetchpriority="high"></picture><div></div></div></a></figure></div><p>Welcome to this week&#8217;s edition of the DevOps Bulletin.</p><p>The Axios npm library was compromised through a targeted attack on the maintainer&#8217;s computer, exposing how vulnerable open-source projects can be. At the same time, developers are switching from traditional SSH keys to certificates for better security, and attackers are using fake VS Code alerts on GitHub to trick developers into clicking malicious links.</p><p>On the practical side, teams are using AI agents to automatically respond to incidents, securing LLM running on Kubernetes against injection attacks and model tampering, and learning how to use AWS KMS to mitigate ransomware attacks. Plus guides on running Terraform generation locally with open source tools, using Atlantis and GitHub Actions together for infrastructure changes, and securing Kubernetes clusters for payment compliance.</p><p>This week&#8217;s open source picks include SQLite with built-in JSON and search features; rpg, a Postgres client with AI built in; zerobox, a tool to safely run untrusted code; and argo-rollouts for smoother Kubernetes deployments. Plus coasts for running isolated development environments, databend for analytics and AI, and nushell for a better shell. </p><p>All this and more in this week&#8217;s DevOps Bulletin, don&#8217;t miss out!</p><h4>Is your infrastructure keeping pace with AI?</h4><div class="captioned-image-container"><figure><a class="image-link image2 is-viewable-img" target="_blank" href="https://www.iacconf.com/iacconf-2026?refid=DevOps-Bulletin&amp;utm_campaign=40984474-FY26%20-%20WW%20-%20Virtual%20Event%20-%20IaCConf%20-%20May%202026&amp;utm_source=DevOps-Bulletin&amp;utm_medium=paid_newsletter" data-component-name="Image2ToDOM"><div class="image2-inset"><picture><source type="image/webp" srcset="https://substackcdn.com/image/fetch/$s_!ehu0!,w_424,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F5ab585d0-6651-4e43-b238-08f68f29f3b2_1200x640.png 424w, https://substackcdn.com/image/fetch/$s_!ehu0!,w_848,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F5ab585d0-6651-4e43-b238-08f68f29f3b2_1200x640.png 848w, https://substackcdn.com/image/fetch/$s_!ehu0!,w_1272,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F5ab585d0-6651-4e43-b238-08f68f29f3b2_1200x640.png 1272w, https://substackcdn.com/image/fetch/$s_!ehu0!,w_1456,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F5ab585d0-6651-4e43-b238-08f68f29f3b2_1200x640.png 1456w" sizes="100vw"><img src="https://substackcdn.com/image/fetch/$s_!ehu0!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F5ab585d0-6651-4e43-b238-08f68f29f3b2_1200x640.png" width="1200" height="640" data-attrs="{&quot;src&quot;:&quot;https://substack-post-media.s3.amazonaws.com/public/images/5ab585d0-6651-4e43-b238-08f68f29f3b2_1200x640.png&quot;,&quot;srcNoWatermark&quot;:null,&quot;fullscreen&quot;:null,&quot;imageSize&quot;:null,&quot;height&quot;:640,&quot;width&quot;:1200,&quot;resizeWidth&quot;:null,&quot;bytes&quot;:331164,&quot;alt&quot;:null,&quot;title&quot;:null,&quot;type&quot;:&quot;image/png&quot;,&quot;href&quot;:&quot;https://www.iacconf.com/iacconf-2026?refid=DevOps-Bulletin&amp;utm_campaign=40984474-FY26%20-%20WW%20-%20Virtual%20Event%20-%20IaCConf%20-%20May%202026&amp;utm_source=DevOps-Bulletin&amp;utm_medium=paid_newsletter&quot;,&quot;belowTheFold&quot;:false,&quot;topImage&quot;:false,&quot;internalRedirect&quot;:&quot;https://www.devopsbulletin.com/i/193080591?img=https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F5ab585d0-6651-4e43-b238-08f68f29f3b2_1200x640.png&quot;,&quot;isProcessing&quot;:false,&quot;align&quot;:null,&quot;offset&quot;:false}" class="sizing-normal" alt="" srcset="https://substackcdn.com/image/fetch/$s_!ehu0!,w_424,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F5ab585d0-6651-4e43-b238-08f68f29f3b2_1200x640.png 424w, https://substackcdn.com/image/fetch/$s_!ehu0!,w_848,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F5ab585d0-6651-4e43-b238-08f68f29f3b2_1200x640.png 848w, https://substackcdn.com/image/fetch/$s_!ehu0!,w_1272,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F5ab585d0-6651-4e43-b238-08f68f29f3b2_1200x640.png 1272w, https://substackcdn.com/image/fetch/$s_!ehu0!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F5ab585d0-6651-4e43-b238-08f68f29f3b2_1200x640.png 1456w" sizes="100vw"></picture><div class="image-link-expand"><div class="pencraft pc-display-flex pc-gap-8 pc-reset"><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container restack-image"><svg role="img" width="20" height="20" viewBox="0 0 20 20" fill="none" stroke-width="1.5" stroke="var(--color-fg-primary)" stroke-linecap="round" stroke-linejoin="round" xmlns="http://www.w3.org/2000/svg"><g><title></title><path d="M2.53001 7.81595C3.49179 4.73911 6.43281 2.5 9.91173 2.5C13.1684 2.5 15.9537 4.46214 17.0852 7.23684L17.6179 8.67647M17.6179 8.67647L18.5002 4.26471M17.6179 8.67647L13.6473 6.91176M17.4995 12.1841C16.5378 15.2609 13.5967 17.5 10.1178 17.5C6.86118 17.5 4.07589 15.5379 2.94432 12.7632L2.41165 11.3235M2.41165 11.3235L1.5293 15.7353M2.41165 11.3235L6.38224 13.0882"></path></g></svg></button><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container view-image"><svg xmlns="http://www.w3.org/2000/svg" width="20" height="20" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="lucide lucide-maximize2 lucide-maximize-2"><polyline points="15 3 21 3 21 9"></polyline><polyline points="9 21 3 21 3 15"></polyline><line x1="21" x2="14" y1="3" y2="10"></line><line x1="3" x2="10" y1="21" y2="14"></line></svg></button></div></div></div></a></figure></div><p>IaCConf 2026 is the annual virtual event for all things infrastructure-as-code. This year's theme: keeping pace. Hear real stories from practitioners, demos of what platform teams are building, and discussions from those leading IaC initiatives.</p><p><a href="https://www.iacconf.com/iacconf-2026?refid=DevOps-Bulletin&amp;utm_campaign=40984474-FY26%20-%20WW%20-%20Virtual%20Event%20-%20IaCConf%20-%20May%202026&amp;utm_source=DevOps-Bulletin&amp;utm_medium=paid_newsletter">Register for free today</a></p><h4>Newsworthy stories</h4><ul><li><p><strong><a href="https://jpmens.net/2026/04/03/ssh-certificates-the-better-ssh-experience/">SSH certificates: the better SSH experience</a></strong></p></li><li><p><strong><a href="https://slicker.me/sqlite/features.htm">Modern SQLite features you didn&#8217;t know it had</a></strong></p></li><li><p><strong><a href="https://www.reddit.com/r/aws/comments/1s4yrtn/devops_ai_where_are_we_headed_need_honest/">DevOps AI: Where are we headed? </a></strong></p></li><li><p><strong><a href="https://github.com/axios/axios/issues/10636">Post Mortem: axios npm supply chain compromise</a></strong></p></li><li><p><strong><a href="https://engineering.salesforce.com/how-automated-release-approvals-slashed-deployment-latency-to-seconds-across-800-releases/">How automated release approvals reduced deployment latency to seconds</a></strong></p></li><li><p><strong><a href="https://socket.dev/blog/widespread-github-campaign-uses-fake-vs-code-security-alerts-to-deliver-malware">Widespread GitHub campaign uses fake VSCode security alerts</a></strong></p></li></ul><h4>Tutorials of the week</h4><ul><li><p><strong><a href="https://aws.amazon.com/blogs/devops/leverage-agentic-ai-for-autonomous-incident-response-with-aws-devops-agent/">Leverage agentic AI for autonomous incident response with AWS DevOps agent</a></strong></p></li><li><p><strong><a href="https://heilancoos.github.io/research/2025/09/02/aws-kms-ransomware.html">Simulating ransomware with AWS KMS</a></strong></p></li></ul><div class="captioned-image-container"><figure><a class="image-link image2 is-viewable-img" target="_blank" href="https://heilancoos.github.io/research/2025/09/02/aws-kms-ransomware.html" data-component-name="Image2ToDOM"><div class="image2-inset"><picture><source type="image/webp" srcset="https://substackcdn.com/image/fetch/$s_!oW5s!,w_424,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F22e0938d-b9f1-4f0e-84fc-1ba753c0764c_1920x617.png 424w, https://substackcdn.com/image/fetch/$s_!oW5s!,w_848,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F22e0938d-b9f1-4f0e-84fc-1ba753c0764c_1920x617.png 848w, https://substackcdn.com/image/fetch/$s_!oW5s!,w_1272,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F22e0938d-b9f1-4f0e-84fc-1ba753c0764c_1920x617.png 1272w, https://substackcdn.com/image/fetch/$s_!oW5s!,w_1456,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F22e0938d-b9f1-4f0e-84fc-1ba753c0764c_1920x617.png 1456w" sizes="100vw"><img src="https://substackcdn.com/image/fetch/$s_!oW5s!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F22e0938d-b9f1-4f0e-84fc-1ba753c0764c_1920x617.png" width="1920" height="617" data-attrs="{&quot;src&quot;:&quot;https://substack-post-media.s3.amazonaws.com/public/images/22e0938d-b9f1-4f0e-84fc-1ba753c0764c_1920x617.png&quot;,&quot;srcNoWatermark&quot;:null,&quot;fullscreen&quot;:null,&quot;imageSize&quot;:null,&quot;height&quot;:617,&quot;width&quot;:1920,&quot;resizeWidth&quot;:null,&quot;bytes&quot;:182866,&quot;alt&quot;:&quot;image01&quot;,&quot;title&quot;:null,&quot;type&quot;:&quot;image/png&quot;,&quot;href&quot;:&quot;https://heilancoos.github.io/research/2025/09/02/aws-kms-ransomware.html&quot;,&quot;belowTheFold&quot;:true,&quot;topImage&quot;:false,&quot;internalRedirect&quot;:null,&quot;isProcessing&quot;:false,&quot;align&quot;:null,&quot;offset&quot;:false}" class="sizing-normal" alt="image01" title="image01" srcset="https://substackcdn.com/image/fetch/$s_!oW5s!,w_424,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F22e0938d-b9f1-4f0e-84fc-1ba753c0764c_1920x617.png 424w, https://substackcdn.com/image/fetch/$s_!oW5s!,w_848,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F22e0938d-b9f1-4f0e-84fc-1ba753c0764c_1920x617.png 848w, https://substackcdn.com/image/fetch/$s_!oW5s!,w_1272,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F22e0938d-b9f1-4f0e-84fc-1ba753c0764c_1920x617.png 1272w, https://substackcdn.com/image/fetch/$s_!oW5s!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F22e0938d-b9f1-4f0e-84fc-1ba753c0764c_1920x617.png 1456w" sizes="100vw" loading="lazy"></picture><div class="image-link-expand"><div class="pencraft pc-display-flex pc-gap-8 pc-reset"><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container restack-image"><svg role="img" width="20" height="20" viewBox="0 0 20 20" fill="none" stroke-width="1.5" stroke="var(--color-fg-primary)" stroke-linecap="round" stroke-linejoin="round" xmlns="http://www.w3.org/2000/svg"><g><title></title><path d="M2.53001 7.81595C3.49179 4.73911 6.43281 2.5 9.91173 2.5C13.1684 2.5 15.9537 4.46214 17.0852 7.23684L17.6179 8.67647M17.6179 8.67647L18.5002 4.26471M17.6179 8.67647L13.6473 6.91176M17.4995 12.1841C16.5378 15.2609 13.5967 17.5 10.1178 17.5C6.86118 17.5 4.07589 15.5379 2.94432 12.7632L2.41165 11.3235M2.41165 11.3235L1.5293 15.7353M2.41165 11.3235L6.38224 13.0882"></path></g></svg></button><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container view-image"><svg xmlns="http://www.w3.org/2000/svg" width="20" height="20" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="lucide lucide-maximize2 lucide-maximize-2"><polyline points="15 3 21 3 21 9"></polyline><polyline points="9 21 3 21 3 15"></polyline><line x1="21" x2="14" y1="3" y2="10"></line><line x1="3" x2="10" y1="21" y2="14"></line></svg></button></div></div></div></a></figure></div><ul><li><p><strong><a href="https://www.cncf.io/blog/2026/03/30/llms-on-kubernetes-part-1-understanding-the-threat-model">LLMs on Kubernetes</a></strong></p></li><li><p><strong><a href="https://aws.amazon.com/blogs/architecture/6000-aws-accounts-three-people-one-platform-lessons-learned/">6,000 AWS accounts, three people, one platform</a></strong></p></li><li><p><strong><a href="https://dev.to/joatmon08/using-ai-for-terraform-running-a-locally-with-langflow-opensearch-ollama-5co6">Using AI for Terraform</a></strong></p></li></ul><div class="pullquote"><p><strong>Enjoying the Bulletin?</strong> Consider supporting it with a <a href="https://www.devopsbulletin.com/subscribe">paid subscription</a>. You&#8217;ll keep the free Friday issues <em>and</em> get extras like bonus deep-dives, templates, and the full archive.</p></div><ul><li><p><strong><a href="https://spacelift.io/blog/atlantis-github-actions">How to use Atlantis with GitHub Actions for Terraform</a></strong></p></li><li><p><strong><a href="https://aws.amazon.com/blogs/containers/building-pci-dss-compliant-architectures-on-amazon-eks/">Building PCI DSS-compliant architectures on Amazon EKS</a></strong></p></li><li><p><strong><a href="https://www.reddit.com/r/aws/comments/1samam0/best_way_to_upload_2530_tb_data_from_a_hdd_to_s3/">Best way to upload 25-30 TB data from a HDD to S3</a></strong></p></li></ul><h4>Videos of the week</h4><div id="youtube2-odZ4WclCX5s" class="youtube-wrap" data-attrs="{&quot;videoId&quot;:&quot;odZ4WclCX5s&quot;,&quot;startTime&quot;:null,&quot;endTime&quot;:null}" data-component-name="Youtube2ToDOM"><div class="youtube-inner"><iframe src="https://www.youtube-nocookie.com/embed/odZ4WclCX5s?rel=0&amp;autoplay=0&amp;showinfo=0&amp;enablejsapi=0" frameborder="0" loading="lazy" gesture="media" allow="autoplay; fullscreen" allowautoplay="true" allowfullscreen="true" width="728" height="409"></iframe></div></div><div id="youtube2-l14vedMOLwQ" class="youtube-wrap" data-attrs="{&quot;videoId&quot;:&quot;l14vedMOLwQ&quot;,&quot;startTime&quot;:null,&quot;endTime&quot;:null}" data-component-name="Youtube2ToDOM"><div class="youtube-inner"><iframe src="https://www.youtube-nocookie.com/embed/l14vedMOLwQ?rel=0&amp;autoplay=0&amp;showinfo=0&amp;enablejsapi=0" frameborder="0" loading="lazy" gesture="media" allow="autoplay; fullscreen" allowautoplay="true" allowfullscreen="true" width="728" height="409"></iframe></div></div><h4>Projects of the week</h4><ul><li><p><strong><a href="https://github.com/NikolayS/rpg">rpg</a></strong> is a PostgreSQL terminal client written in Rust that brings AI diagnostics and schema-aware completion to psql, with 15+ DBA tools built in.</p></li><li><p><strong><a href="https://github.com/afshinm/zerobox">zerobox</a></strong> is a cross-platform process sandbox in Rust that restricts file, network, and credential access for safely running AI-generated code.</p></li></ul><div class="captioned-image-container"><figure><a class="image-link image2 is-viewable-img" target="_blank" href="https://github.com/afshinm/zerobox" data-component-name="Image2ToDOM"><div class="image2-inset"><picture><source type="image/webp" srcset="https://substackcdn.com/image/fetch/$s_!TAQP!,w_424,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F108e7f41-f7b4-4253-bba0-5bdcc73ec3f0_744x457.png 424w, https://substackcdn.com/image/fetch/$s_!TAQP!,w_848,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F108e7f41-f7b4-4253-bba0-5bdcc73ec3f0_744x457.png 848w, https://substackcdn.com/image/fetch/$s_!TAQP!,w_1272,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F108e7f41-f7b4-4253-bba0-5bdcc73ec3f0_744x457.png 1272w, https://substackcdn.com/image/fetch/$s_!TAQP!,w_1456,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F108e7f41-f7b4-4253-bba0-5bdcc73ec3f0_744x457.png 1456w" sizes="100vw"><img src="https://substackcdn.com/image/fetch/$s_!TAQP!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F108e7f41-f7b4-4253-bba0-5bdcc73ec3f0_744x457.png" width="744" height="457" data-attrs="{&quot;src&quot;:&quot;https://substack-post-media.s3.amazonaws.com/public/images/108e7f41-f7b4-4253-bba0-5bdcc73ec3f0_744x457.png&quot;,&quot;srcNoWatermark&quot;:null,&quot;fullscreen&quot;:null,&quot;imageSize&quot;:null,&quot;height&quot;:457,&quot;width&quot;:744,&quot;resizeWidth&quot;:null,&quot;bytes&quot;:44934,&quot;alt&quot;:null,&quot;title&quot;:null,&quot;type&quot;:&quot;image/png&quot;,&quot;href&quot;:&quot;https://github.com/afshinm/zerobox&quot;,&quot;belowTheFold&quot;:true,&quot;topImage&quot;:false,&quot;internalRedirect&quot;:&quot;https://www.devopsbulletin.com/i/193080591?img=https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F108e7f41-f7b4-4253-bba0-5bdcc73ec3f0_744x457.png&quot;,&quot;isProcessing&quot;:false,&quot;align&quot;:null,&quot;offset&quot;:false}" class="sizing-normal" alt="" srcset="https://substackcdn.com/image/fetch/$s_!TAQP!,w_424,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F108e7f41-f7b4-4253-bba0-5bdcc73ec3f0_744x457.png 424w, https://substackcdn.com/image/fetch/$s_!TAQP!,w_848,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F108e7f41-f7b4-4253-bba0-5bdcc73ec3f0_744x457.png 848w, https://substackcdn.com/image/fetch/$s_!TAQP!,w_1272,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F108e7f41-f7b4-4253-bba0-5bdcc73ec3f0_744x457.png 1272w, https://substackcdn.com/image/fetch/$s_!TAQP!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F108e7f41-f7b4-4253-bba0-5bdcc73ec3f0_744x457.png 1456w" sizes="100vw" loading="lazy"></picture><div class="image-link-expand"><div class="pencraft pc-display-flex pc-gap-8 pc-reset"><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container restack-image"><svg role="img" width="20" height="20" viewBox="0 0 20 20" fill="none" stroke-width="1.5" stroke="var(--color-fg-primary)" stroke-linecap="round" stroke-linejoin="round" xmlns="http://www.w3.org/2000/svg"><g><title></title><path d="M2.53001 7.81595C3.49179 4.73911 6.43281 2.5 9.91173 2.5C13.1684 2.5 15.9537 4.46214 17.0852 7.23684L17.6179 8.67647M17.6179 8.67647L18.5002 4.26471M17.6179 8.67647L13.6473 6.91176M17.4995 12.1841C16.5378 15.2609 13.5967 17.5 10.1178 17.5C6.86118 17.5 4.07589 15.5379 2.94432 12.7632L2.41165 11.3235M2.41165 11.3235L1.5293 15.7353M2.41165 11.3235L6.38224 13.0882"></path></g></svg></button><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container view-image"><svg xmlns="http://www.w3.org/2000/svg" width="20" height="20" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="lucide lucide-maximize2 lucide-maximize-2"><polyline points="15 3 21 3 21 9"></polyline><polyline points="9 21 3 21 3 15"></polyline><line x1="21" x2="14" y1="3" y2="10"></line><line x1="3" x2="10" y1="21" y2="14"></line></svg></button></div></div></div></a></figure></div><ul><li><p><strong><a href="https://github.com/argoproj/argo-rollouts">argo-rollouts</a></strong> is a Kubernetes controller enabling blue-green, canary, and progressive delivery strategies with automated metric-driven promotion.</p></li><li><p><strong><a href="https://github.com/alejandrobailo/agents-anywhere">agents-anywhere</a></strong> syncs AI agent configs, skills, and instructions across 10+ tools (Claude Code, Cursor, Windsurf, Gemini) from a single git repo.</p></li><li><p><strong><a href="https://github.com/coast-guard/coasts">coasts</a></strong> runs isolated development environments in containerized worktrees on a single machine with a local observability UI, integrating with existing Docker Compose setups.</p></li><li><p><strong><a href="https://github.com/nushell/nushell">nushell</a></strong> is a shell written in Rust that treats data as structured objects instead of text streams, enabling more powerful pipelines and type-aware operations.</p></li></ul><h4>Meme of the week</h4><div class="captioned-image-container"><figure><a class="image-link image2 is-viewable-img" target="_blank" href="https://substackcdn.com/image/fetch/$s_!ycLG!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F6ce7b762-e00a-441c-a96f-464632aa2bfd_544x500.png" data-component-name="Image2ToDOM"><div class="image2-inset"><picture><source type="image/webp" srcset="https://substackcdn.com/image/fetch/$s_!ycLG!,w_424,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F6ce7b762-e00a-441c-a96f-464632aa2bfd_544x500.png 424w, https://substackcdn.com/image/fetch/$s_!ycLG!,w_848,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F6ce7b762-e00a-441c-a96f-464632aa2bfd_544x500.png 848w, https://substackcdn.com/image/fetch/$s_!ycLG!,w_1272,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F6ce7b762-e00a-441c-a96f-464632aa2bfd_544x500.png 1272w, https://substackcdn.com/image/fetch/$s_!ycLG!,w_1456,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F6ce7b762-e00a-441c-a96f-464632aa2bfd_544x500.png 1456w" sizes="100vw"><img src="https://substackcdn.com/image/fetch/$s_!ycLG!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F6ce7b762-e00a-441c-a96f-464632aa2bfd_544x500.png" width="466" height="428.30882352941177" data-attrs="{&quot;src&quot;:&quot;https://substack-post-media.s3.amazonaws.com/public/images/6ce7b762-e00a-441c-a96f-464632aa2bfd_544x500.png&quot;,&quot;srcNoWatermark&quot;:null,&quot;fullscreen&quot;:null,&quot;imageSize&quot;:null,&quot;height&quot;:500,&quot;width&quot;:544,&quot;resizeWidth&quot;:466,&quot;bytes&quot;:null,&quot;alt&quot;:&quot;There's A Mastermind Or A Dumbass Behind This Drama&quot;,&quot;title&quot;:null,&quot;type&quot;:null,&quot;href&quot;:null,&quot;belowTheFold&quot;:true,&quot;topImage&quot;:false,&quot;internalRedirect&quot;:null,&quot;isProcessing&quot;:false,&quot;align&quot;:null,&quot;offset&quot;:false}" class="sizing-normal" alt="There's A Mastermind Or A Dumbass Behind This Drama" title="There's A Mastermind Or A Dumbass Behind This Drama" srcset="https://substackcdn.com/image/fetch/$s_!ycLG!,w_424,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F6ce7b762-e00a-441c-a96f-464632aa2bfd_544x500.png 424w, https://substackcdn.com/image/fetch/$s_!ycLG!,w_848,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F6ce7b762-e00a-441c-a96f-464632aa2bfd_544x500.png 848w, https://substackcdn.com/image/fetch/$s_!ycLG!,w_1272,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F6ce7b762-e00a-441c-a96f-464632aa2bfd_544x500.png 1272w, https://substackcdn.com/image/fetch/$s_!ycLG!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F6ce7b762-e00a-441c-a96f-464632aa2bfd_544x500.png 1456w" sizes="100vw" loading="lazy"></picture><div class="image-link-expand"><div class="pencraft pc-display-flex pc-gap-8 pc-reset"><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container restack-image"><svg role="img" width="20" height="20" viewBox="0 0 20 20" fill="none" stroke-width="1.5" stroke="var(--color-fg-primary)" stroke-linecap="round" stroke-linejoin="round" xmlns="http://www.w3.org/2000/svg"><g><title></title><path d="M2.53001 7.81595C3.49179 4.73911 6.43281 2.5 9.91173 2.5C13.1684 2.5 15.9537 4.46214 17.0852 7.23684L17.6179 8.67647M17.6179 8.67647L18.5002 4.26471M17.6179 8.67647L13.6473 6.91176M17.4995 12.1841C16.5378 15.2609 13.5967 17.5 10.1178 17.5C6.86118 17.5 4.07589 15.5379 2.94432 12.7632L2.41165 11.3235M2.41165 11.3235L1.5293 15.7353M2.41165 11.3235L6.38224 13.0882"></path></g></svg></button><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container view-image"><svg xmlns="http://www.w3.org/2000/svg" width="20" height="20" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="lucide lucide-maximize2 lucide-maximize-2"><polyline points="15 3 21 3 21 9"></polyline><polyline points="9 21 3 21 3 15"></polyline><line x1="21" x2="14" y1="3" y2="10"></line><line x1="3" x2="10" y1="21" y2="14"></line></svg></button></div></div></div></a></figure></div><div class="pullquote"><p> If you have feedback to share or are interested in <a href="https://www.devopsbulletin.com/p/sponsorships">sponsoring</a> this newsletter, feel free to reach out via <em><a href="https://www.linkedin.com/in/mlabouardy/">LinkedIn</a></em> or simply reply to this email. </p></div><div class="subscription-widget-wrap-editor" data-attrs="{&quot;url&quot;:&quot;https://www.devopsbulletin.com/subscribe?&quot;,&quot;text&quot;:&quot;Subscribe&quot;,&quot;language&quot;:&quot;en&quot;}" data-component-name="SubscribeWidgetToDOM"><div class="subscription-widget show-subscribe"><div class="preamble"><p class="cta-caption">Thanks for reading DevOps Bulletin! Subscribe for free to receive new posts and support my work.</p></div><form class="subscription-widget-subscribe"><input type="email" class="email-input" name="email" placeholder="Type your email&#8230;" tabindex="-1"><input type="submit" class="button primary" value="Subscribe"><div class="fake-input-wrapper"><div class="fake-input"></div><div class="fake-button"></div></div></form></div></div>]]></content:encoded></item><item><title><![CDATA[Digest #207: LiteLLM Malware Attack, Dropbox 87GB monorepo, Cursor's Security Agents and K8s One-Line Fix]]></title><description><![CDATA[The LiteLLM supply chain attack, Dropbox monorepo optimization, Postgres WAL debugging, Kubernetes performance fixes, and open source tools for LLM security.]]></description><link>https://www.devopsbulletin.com/p/digest-207-litellm-malware-attack</link><guid isPermaLink="false">https://www.devopsbulletin.com/p/digest-207-litellm-malware-attack</guid><dc:creator><![CDATA[Mohamed Labouardy]]></dc:creator><pubDate>Fri, 27 Mar 2026 16:41:51 GMT</pubDate><enclosure url="https://substackcdn.com/image/youtube/w_728,c_limit/wfeiCZK0mNs" length="0" type="image/jpeg"/><content:encoded><![CDATA[<div class="captioned-image-container"><figure><a class="image-link image2" target="_blank" href="https://www.iacconf.com/iacconf-2026?refid=DevOps-Bulletin&amp;utm_campaign=40984474-FY26%20-%20WW%20-%20Virtual%20Event%20-%20IaCConf%20-%20May%202026&amp;utm_source=DevOps-Bulletin&amp;utm_medium=paid_newsletter" data-component-name="Image2ToDOM"><div class="image2-inset"><picture><source type="image/webp" srcset="https://substackcdn.com/image/fetch/$s_!cMSn!,w_424,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F3a6c02f1-19c9-4125-b185-7abd26d37a72_268x83.png 424w, https://substackcdn.com/image/fetch/$s_!cMSn!,w_848,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F3a6c02f1-19c9-4125-b185-7abd26d37a72_268x83.png 848w, https://substackcdn.com/image/fetch/$s_!cMSn!,w_1272,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F3a6c02f1-19c9-4125-b185-7abd26d37a72_268x83.png 1272w, https://substackcdn.com/image/fetch/$s_!cMSn!,w_1456,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F3a6c02f1-19c9-4125-b185-7abd26d37a72_268x83.png 1456w" sizes="100vw"><img src="https://substackcdn.com/image/fetch/$s_!cMSn!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F3a6c02f1-19c9-4125-b185-7abd26d37a72_268x83.png" width="268" height="83" data-attrs="{&quot;src&quot;:&quot;https://substack-post-media.s3.amazonaws.com/public/images/3a6c02f1-19c9-4125-b185-7abd26d37a72_268x83.png&quot;,&quot;srcNoWatermark&quot;:null,&quot;fullscreen&quot;:null,&quot;imageSize&quot;:null,&quot;height&quot;:83,&quot;width&quot;:268,&quot;resizeWidth&quot;:null,&quot;bytes&quot;:null,&quot;alt&quot;:null,&quot;title&quot;:null,&quot;type&quot;:null,&quot;href&quot;:&quot;https://www.iacconf.com/iacconf-2026?refid=DevOps-Bulletin&amp;utm_campaign=40984474-FY26%20-%20WW%20-%20Virtual%20Event%20-%20IaCConf%20-%20May%202026&amp;utm_source=DevOps-Bulletin&amp;utm_medium=paid_newsletter&quot;,&quot;belowTheFold&quot;:false,&quot;topImage&quot;:true,&quot;internalRedirect&quot;:null,&quot;isProcessing&quot;:false,&quot;align&quot;:null,&quot;offset&quot;:false}" class="sizing-normal" alt="" srcset="https://substackcdn.com/image/fetch/$s_!cMSn!,w_424,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F3a6c02f1-19c9-4125-b185-7abd26d37a72_268x83.png 424w, https://substackcdn.com/image/fetch/$s_!cMSn!,w_848,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F3a6c02f1-19c9-4125-b185-7abd26d37a72_268x83.png 848w, https://substackcdn.com/image/fetch/$s_!cMSn!,w_1272,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F3a6c02f1-19c9-4125-b185-7abd26d37a72_268x83.png 1272w, https://substackcdn.com/image/fetch/$s_!cMSn!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F3a6c02f1-19c9-4125-b185-7abd26d37a72_268x83.png 1456w" sizes="100vw" fetchpriority="high"></picture><div></div></div></a></figure></div><p>Welcome to this week&#8217;s edition of the DevOps Bulletin.</p><p>Malware hit PyPI through a poisoned LiteLLM package last week, and the full minute-by-minute response took just 72 minutes from discovery to public disclosure. Dropbox shrank its server monorepo from 87 GB to 20 GB. BeyondTrust got a full DNS reverse shell running inside AWS AgentCore&#8217;s supposedly isolated sandbox. And Cursor now has autonomous security agents reviewing over 3,000 PRs a week. Also, <a href="https://www.iacconf.com/iacconf-2026?refid=DevOps-Bulletin&amp;utm_campaign=40984474-FY26%20-%20WW%20-%20Virtual%20Event%20-%20IaCConf%20-%20May%202026&amp;utm_source=DevOps-Bulletin&amp;utm_medium=paid_newsletter">IaCConf</a> is back for year two on May 14. If you work with IaC at any level, this is where the real conversations happen.</p><p>Tutorials this week cover a one-line Kubernetes fix that saved Cloudflare 600 hours a year, a Postgres upsert that silently quadrupled WAL syncs on every no-op write, simplifying containers with Cloudflare Sandboxes, Terraform drift detection with GitHub Actions, pentesting AWS&#8217;s own Security Agent and a practical guide to Go naming conventions.</p><p>Open source picks include Augustus, a Go-based LLM vulnerability scanner with 210+ adversarial probes; OpenSandbox from Alibaba for isolated AI agent workloads; TerraVision for automatically generating architecture diagrams from Terraform; LayerLeak for scanning Docker images for leaked secrets; and CISO Assistant, which covers 100+ compliance frameworks in one platform. </p><p>All this and more in this week&#8217;s DevOps Bulletin, don&#8217;t miss out!</p><h4>IaCConf is the only conference built entirely around infrastructure as code</h4><div class="captioned-image-container"><figure><a class="image-link image2 is-viewable-img" target="_blank" href="https://www.iacconf.com/iacconf-2026?refid=DevOps-Bulletin&amp;utm_campaign=40984474-FY26%20-%20WW%20-%20Virtual%20Event%20-%20IaCConf%20-%20May%202026&amp;utm_source=DevOps-Bulletin&amp;utm_medium=paid_newsletter" data-component-name="Image2ToDOM"><div class="image2-inset"><picture><source type="image/webp" srcset="https://substackcdn.com/image/fetch/$s_!ZMEB!,w_424,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Ffe4583cf-13b4-4b26-b107-d6f4fb28cb94_1200x640.png 424w, https://substackcdn.com/image/fetch/$s_!ZMEB!,w_848,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Ffe4583cf-13b4-4b26-b107-d6f4fb28cb94_1200x640.png 848w, https://substackcdn.com/image/fetch/$s_!ZMEB!,w_1272,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Ffe4583cf-13b4-4b26-b107-d6f4fb28cb94_1200x640.png 1272w, https://substackcdn.com/image/fetch/$s_!ZMEB!,w_1456,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Ffe4583cf-13b4-4b26-b107-d6f4fb28cb94_1200x640.png 1456w" sizes="100vw"><img src="https://substackcdn.com/image/fetch/$s_!ZMEB!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Ffe4583cf-13b4-4b26-b107-d6f4fb28cb94_1200x640.png" width="1200" height="640" data-attrs="{&quot;src&quot;:&quot;https://substack-post-media.s3.amazonaws.com/public/images/fe4583cf-13b4-4b26-b107-d6f4fb28cb94_1200x640.png&quot;,&quot;srcNoWatermark&quot;:null,&quot;fullscreen&quot;:null,&quot;imageSize&quot;:null,&quot;height&quot;:640,&quot;width&quot;:1200,&quot;resizeWidth&quot;:null,&quot;bytes&quot;:332490,&quot;alt&quot;:null,&quot;title&quot;:null,&quot;type&quot;:&quot;image/png&quot;,&quot;href&quot;:&quot;https://www.iacconf.com/iacconf-2026?refid=DevOps-Bulletin&amp;utm_campaign=40984474-FY26%20-%20WW%20-%20Virtual%20Event%20-%20IaCConf%20-%20May%202026&amp;utm_source=DevOps-Bulletin&amp;utm_medium=paid_newsletter&quot;,&quot;belowTheFold&quot;:false,&quot;topImage&quot;:false,&quot;internalRedirect&quot;:&quot;https://www.devopsbulletin.com/i/192308970?img=https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Ffe4583cf-13b4-4b26-b107-d6f4fb28cb94_1200x640.png&quot;,&quot;isProcessing&quot;:false,&quot;align&quot;:null,&quot;offset&quot;:false}" class="sizing-normal" alt="" srcset="https://substackcdn.com/image/fetch/$s_!ZMEB!,w_424,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Ffe4583cf-13b4-4b26-b107-d6f4fb28cb94_1200x640.png 424w, https://substackcdn.com/image/fetch/$s_!ZMEB!,w_848,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Ffe4583cf-13b4-4b26-b107-d6f4fb28cb94_1200x640.png 848w, https://substackcdn.com/image/fetch/$s_!ZMEB!,w_1272,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Ffe4583cf-13b4-4b26-b107-d6f4fb28cb94_1200x640.png 1272w, https://substackcdn.com/image/fetch/$s_!ZMEB!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Ffe4583cf-13b4-4b26-b107-d6f4fb28cb94_1200x640.png 1456w" sizes="100vw"></picture><div class="image-link-expand"><div class="pencraft pc-display-flex pc-gap-8 pc-reset"><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container restack-image"><svg role="img" width="20" height="20" viewBox="0 0 20 20" fill="none" stroke-width="1.5" stroke="var(--color-fg-primary)" stroke-linecap="round" stroke-linejoin="round" xmlns="http://www.w3.org/2000/svg"><g><title></title><path d="M2.53001 7.81595C3.49179 4.73911 6.43281 2.5 9.91173 2.5C13.1684 2.5 15.9537 4.46214 17.0852 7.23684L17.6179 8.67647M17.6179 8.67647L18.5002 4.26471M17.6179 8.67647L13.6473 6.91176M17.4995 12.1841C16.5378 15.2609 13.5967 17.5 10.1178 17.5C6.86118 17.5 4.07589 15.5379 2.94432 12.7632L2.41165 11.3235M2.41165 11.3235L1.5293 15.7353M2.41165 11.3235L6.38224 13.0882"></path></g></svg></button><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container view-image"><svg xmlns="http://www.w3.org/2000/svg" width="20" height="20" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="lucide lucide-maximize2 lucide-maximize-2"><polyline points="15 3 21 3 21 9"></polyline><polyline points="9 21 3 21 3 15"></polyline><line x1="21" x2="14" y1="3" y2="10"></line><line x1="3" x2="10" y1="21" y2="14"></line></svg></button></div></div></div></a></figure></div><p>Year two is here. Come meet your peers who are doing this work at the highest level. Learn what&#8217;s actually working and join these real conversations that don't happen at other virtual DevOps events. <a href="https://www.iacconf.com/iacconf-2026?refid=DevOps-Bulletin&amp;utm_campaign=40984474-FY26%20-%20WW%20-%20Virtual%20Event%20-%20IaCConf%20-%20May%202026&amp;utm_source=DevOps-Bulletin&amp;utm_medium=paid_newsletter">Don&#8217;t miss out. Register now.</a></p><h4>Newsworthy stories</h4><ul><li><p><strong><a href="https://futuresearch.ai/blog/litellm-attack-transcript/">My minute-by-minute response to the LiteLLM malware attack</a></strong></p></li><li><p><strong><a href="https://aws.plainenglish.io/stop-enabling-every-aws-security-service-fb171635a25c">Stop enabling every AWS security service</a></strong></p></li><li><p><strong><a href="https://dropbox.tech/infrastructure/reducing-our-monorepo-size-to-improve-developer-velocity">Reducing our monorepo size to improve developer velocity</a></strong></p></li><li><p><strong><a href="https://cursor.com/blog/security-agents">Securing our codebase with autonomous agents</a></strong></p></li><li><p><strong><a href="https://www.beyondtrust.com/blog/entry/pwning-aws-agentcore-code-interpreter">Pwning AWS AgentCore code interpreter</a></strong></p></li><li><p><strong><a href="https://stealthymcstealth.com/#/">The incident challenge</a></strong></p></li><li><p><strong><a href="https://www.datadoghq.com/blog/engineering/debugging-postgres-performance">Debugging Postgres performance</a></strong></p></li><li><p><strong><a href="https://www.anthropic.com/engineering/harness-design-long-running-apps">Harness design for long-running application development</a></strong></p></li></ul><h4>Tutorials of the week</h4><ul><li><p><strong><a href="https://kentcdodds.com/blog/simplifying-containers-with-cloudflare-sandboxes">Simplifying containers with Cloudflare Sandboxes</a></strong></p></li><li><p><strong><a href="https://rosesecurity.dev/2025/12/11/terraform-drift-detection-with-github-actions.html">Terraform drift detection with GitHub Actions</a></strong></p></li><li><p><strong><a href="https://blog.cloudflare.com/one-line-kubernetes-fix-saved-600-hours-a-year">A one-line Kubernetes fix that saved 600 hours a year</a></strong></p></li><li><p><strong><a href="https://spacelift.io/missionguide/audit-ready-infrastructure">Audit-ready infrastructure</a></strong></p></li><li><p><strong><a href="https://infosecwriteups.com/insecure-output-handling-sql-injection-through-llm-output-part-2-1cb4f931c31a">SQL injection through LLM output</a></strong></p></li><li><p><strong><a href="https://blog.richardfan.xyz/2026/03/14/pentesting-a-pentest-agent-heres-what-ive-found-in-aws-security-agent.html">Pentesting a pentest agent: here&#8217;s what I&#8217;ve found in AWS Security Agent</a></strong></p><div class="captioned-image-container"><figure><a class="image-link image2 is-viewable-img" target="_blank" href="https://blog.richardfan.xyz/2026/03/14/pentesting-a-pentest-agent-heres-what-ive-found-in-aws-security-agent.html" data-component-name="Image2ToDOM"><div class="image2-inset"><picture><source type="image/webp" srcset="https://substackcdn.com/image/fetch/$s_!HyFC!,w_424,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F5e4feba1-2c5b-4f46-84f4-cad310ab69ce_2885x1355.png 424w, https://substackcdn.com/image/fetch/$s_!HyFC!,w_848,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F5e4feba1-2c5b-4f46-84f4-cad310ab69ce_2885x1355.png 848w, https://substackcdn.com/image/fetch/$s_!HyFC!,w_1272,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F5e4feba1-2c5b-4f46-84f4-cad310ab69ce_2885x1355.png 1272w, https://substackcdn.com/image/fetch/$s_!HyFC!,w_1456,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F5e4feba1-2c5b-4f46-84f4-cad310ab69ce_2885x1355.png 1456w" sizes="100vw"><img src="https://substackcdn.com/image/fetch/$s_!HyFC!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F5e4feba1-2c5b-4f46-84f4-cad310ab69ce_2885x1355.png" width="1456" height="684" data-attrs="{&quot;src&quot;:&quot;https://substack-post-media.s3.amazonaws.com/public/images/5e4feba1-2c5b-4f46-84f4-cad310ab69ce_2885x1355.png&quot;,&quot;srcNoWatermark&quot;:null,&quot;fullscreen&quot;:null,&quot;imageSize&quot;:null,&quot;height&quot;:684,&quot;width&quot;:1456,&quot;resizeWidth&quot;:null,&quot;bytes&quot;:593438,&quot;alt&quot;:null,&quot;title&quot;:null,&quot;type&quot;:&quot;image/png&quot;,&quot;href&quot;:&quot;https://blog.richardfan.xyz/2026/03/14/pentesting-a-pentest-agent-heres-what-ive-found-in-aws-security-agent.html&quot;,&quot;belowTheFold&quot;:true,&quot;topImage&quot;:false,&quot;internalRedirect&quot;:&quot;https://www.devopsbulletin.com/i/192308970?img=https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F5e4feba1-2c5b-4f46-84f4-cad310ab69ce_2885x1355.png&quot;,&quot;isProcessing&quot;:false,&quot;align&quot;:null,&quot;offset&quot;:false}" class="sizing-normal" alt="" srcset="https://substackcdn.com/image/fetch/$s_!HyFC!,w_424,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F5e4feba1-2c5b-4f46-84f4-cad310ab69ce_2885x1355.png 424w, https://substackcdn.com/image/fetch/$s_!HyFC!,w_848,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F5e4feba1-2c5b-4f46-84f4-cad310ab69ce_2885x1355.png 848w, https://substackcdn.com/image/fetch/$s_!HyFC!,w_1272,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F5e4feba1-2c5b-4f46-84f4-cad310ab69ce_2885x1355.png 1272w, https://substackcdn.com/image/fetch/$s_!HyFC!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F5e4feba1-2c5b-4f46-84f4-cad310ab69ce_2885x1355.png 1456w" sizes="100vw" loading="lazy"></picture><div class="image-link-expand"><div class="pencraft pc-display-flex pc-gap-8 pc-reset"><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container restack-image"><svg role="img" width="20" height="20" viewBox="0 0 20 20" fill="none" stroke-width="1.5" stroke="var(--color-fg-primary)" stroke-linecap="round" stroke-linejoin="round" xmlns="http://www.w3.org/2000/svg"><g><title></title><path d="M2.53001 7.81595C3.49179 4.73911 6.43281 2.5 9.91173 2.5C13.1684 2.5 15.9537 4.46214 17.0852 7.23684L17.6179 8.67647M17.6179 8.67647L18.5002 4.26471M17.6179 8.67647L13.6473 6.91176M17.4995 12.1841C16.5378 15.2609 13.5967 17.5 10.1178 17.5C6.86118 17.5 4.07589 15.5379 2.94432 12.7632L2.41165 11.3235M2.41165 11.3235L1.5293 15.7353M2.41165 11.3235L6.38224 13.0882"></path></g></svg></button><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container view-image"><svg xmlns="http://www.w3.org/2000/svg" width="20" height="20" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="lucide lucide-maximize2 lucide-maximize-2"><polyline points="15 3 21 3 21 9"></polyline><polyline points="9 21 3 21 3 15"></polyline><line x1="21" x2="14" y1="3" y2="10"></line><line x1="3" x2="10" y1="21" y2="14"></line></svg></button></div></div></div></a></figure></div></li></ul><div class="pullquote"><p><strong>Enjoying the Bulletin?</strong> Consider supporting it with a <a href="https://www.devopsbulletin.com/subscribe">paid subscription</a>. You&#8217;ll keep the free Friday issues <em>and</em> get extras like bonus deep-dives, templates, and the full archive.</p></div><ul><li><p><strong><a href="https://itnext.io/kubernetes-strategic-merge-patch-4bdd19b48789">Kubernetes strategic merge patch</a></strong></p></li><li><p><strong><a href="https://drew.silcock.dev/blog/artisanal-git/">Artisanal handcrafted Git repositories</a></strong></p></li><li><p><strong><a href="https://techcommunity.microsoft.com/blog/azureinfrastructureblog/building-reusable-custom-images-for-azure-confidential-vms-using-azure-compute-g/4500880">Building reusable custom images for Azure VMs</a></strong></p></li><li><p><strong><a href="https://www.alexedwards.net/blog/go-naming-conventions">Go naming conventions</a></strong></p></li></ul><h4>Videos of the week</h4><div id="youtube2-1D2bLTh3oyE" class="youtube-wrap" data-attrs="{&quot;videoId&quot;:&quot;1D2bLTh3oyE&quot;,&quot;startTime&quot;:null,&quot;endTime&quot;:null}" data-component-name="Youtube2ToDOM"><div class="youtube-inner"><iframe src="https://www.youtube-nocookie.com/embed/1D2bLTh3oyE?rel=0&amp;autoplay=0&amp;showinfo=0&amp;enablejsapi=0" frameborder="0" loading="lazy" gesture="media" allow="autoplay; fullscreen" allowautoplay="true" allowfullscreen="true" width="728" height="409"></iframe></div></div><div id="youtube2-wfeiCZK0mNs" class="youtube-wrap" data-attrs="{&quot;videoId&quot;:&quot;wfeiCZK0mNs&quot;,&quot;startTime&quot;:null,&quot;endTime&quot;:null}" data-component-name="Youtube2ToDOM"><div class="youtube-inner"><iframe src="https://www.youtube-nocookie.com/embed/wfeiCZK0mNs?rel=0&amp;autoplay=0&amp;showinfo=0&amp;enablejsapi=0" frameborder="0" loading="lazy" gesture="media" allow="autoplay; fullscreen" allowautoplay="true" allowfullscreen="true" width="728" height="409"></iframe></div></div><h4>Projects of the week</h4><ul><li><p><strong><a href="https://github.com/patrickchugh/terravision">TerraVision</a></strong> converts Terraform code into professional cloud architecture diagrams using official AWS, GCP, and Azure icons. </p></li><li><p><strong><a href="https://github.com/jonwiggins/optio">Optio</a></strong> is a workflow orchestration platform for AI coding agents that takes tasks from GitHub Issues or Linear tickets and drives them through to merged PRs, automatically handling CI failures and code review feedback.</p></li></ul><div class="captioned-image-container"><figure><a class="image-link image2 is-viewable-img" target="_blank" href="https://github.com/jonwiggins/optio" data-component-name="Image2ToDOM"><div class="image2-inset"><picture><source type="image/webp" srcset="https://substackcdn.com/image/fetch/$s_!C3eG!,w_424,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F2cf33bfe-b776-4ced-ae21-a276ba36aad1_3024x1676.png 424w, https://substackcdn.com/image/fetch/$s_!C3eG!,w_848,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F2cf33bfe-b776-4ced-ae21-a276ba36aad1_3024x1676.png 848w, https://substackcdn.com/image/fetch/$s_!C3eG!,w_1272,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F2cf33bfe-b776-4ced-ae21-a276ba36aad1_3024x1676.png 1272w, https://substackcdn.com/image/fetch/$s_!C3eG!,w_1456,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F2cf33bfe-b776-4ced-ae21-a276ba36aad1_3024x1676.png 1456w" sizes="100vw"><img src="https://substackcdn.com/image/fetch/$s_!C3eG!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F2cf33bfe-b776-4ced-ae21-a276ba36aad1_3024x1676.png" width="1456" height="807" data-attrs="{&quot;src&quot;:&quot;https://substack-post-media.s3.amazonaws.com/public/images/2cf33bfe-b776-4ced-ae21-a276ba36aad1_3024x1676.png&quot;,&quot;srcNoWatermark&quot;:null,&quot;fullscreen&quot;:null,&quot;imageSize&quot;:null,&quot;height&quot;:807,&quot;width&quot;:1456,&quot;resizeWidth&quot;:null,&quot;bytes&quot;:null,&quot;alt&quot;:&quot;Optio dashboard showing 10 running tasks, 19 completed, with Claude Max usage, active pods, and recent task activity&quot;,&quot;title&quot;:null,&quot;type&quot;:null,&quot;href&quot;:&quot;https://github.com/jonwiggins/optio&quot;,&quot;belowTheFold&quot;:true,&quot;topImage&quot;:false,&quot;internalRedirect&quot;:null,&quot;isProcessing&quot;:false,&quot;align&quot;:null,&quot;offset&quot;:false}" class="sizing-normal" alt="Optio dashboard showing 10 running tasks, 19 completed, with Claude Max usage, active pods, and recent task activity" title="Optio dashboard showing 10 running tasks, 19 completed, with Claude Max usage, active pods, and recent task activity" srcset="https://substackcdn.com/image/fetch/$s_!C3eG!,w_424,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F2cf33bfe-b776-4ced-ae21-a276ba36aad1_3024x1676.png 424w, https://substackcdn.com/image/fetch/$s_!C3eG!,w_848,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F2cf33bfe-b776-4ced-ae21-a276ba36aad1_3024x1676.png 848w, https://substackcdn.com/image/fetch/$s_!C3eG!,w_1272,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F2cf33bfe-b776-4ced-ae21-a276ba36aad1_3024x1676.png 1272w, https://substackcdn.com/image/fetch/$s_!C3eG!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F2cf33bfe-b776-4ced-ae21-a276ba36aad1_3024x1676.png 1456w" sizes="100vw" loading="lazy"></picture><div class="image-link-expand"><div class="pencraft pc-display-flex pc-gap-8 pc-reset"><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container restack-image"><svg role="img" width="20" height="20" viewBox="0 0 20 20" fill="none" stroke-width="1.5" stroke="var(--color-fg-primary)" stroke-linecap="round" stroke-linejoin="round" xmlns="http://www.w3.org/2000/svg"><g><title></title><path d="M2.53001 7.81595C3.49179 4.73911 6.43281 2.5 9.91173 2.5C13.1684 2.5 15.9537 4.46214 17.0852 7.23684L17.6179 8.67647M17.6179 8.67647L18.5002 4.26471M17.6179 8.67647L13.6473 6.91176M17.4995 12.1841C16.5378 15.2609 13.5967 17.5 10.1178 17.5C6.86118 17.5 4.07589 15.5379 2.94432 12.7632L2.41165 11.3235M2.41165 11.3235L1.5293 15.7353M2.41165 11.3235L6.38224 13.0882"></path></g></svg></button><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container view-image"><svg xmlns="http://www.w3.org/2000/svg" width="20" height="20" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="lucide lucide-maximize2 lucide-maximize-2"><polyline points="15 3 21 3 21 9"></polyline><polyline points="9 21 3 21 3 15"></polyline><line x1="21" x2="14" y1="3" y2="10"></line><line x1="3" x2="10" y1="21" y2="14"></line></svg></button></div></div></div></a></figure></div><ul><li><p><strong><a href="https://github.com/millionco/expect">Expect</a></strong> lets AI agents test your code in a real browser. It scans git diffs, generates a test plan, and executes it via Playwright with recorded sessions for replay.</p></li><li><p><strong><a href="https://github.com/elastic/agent-skills">Elastic Agent Skills</a></strong> is the official skills library that teaches AI coding agents how to work correctly with Elasticsearch, Kibana, and Elastic&#8217;s observability and security APIs.</p></li><li><p><strong><a href="https://github.com/intuitem/ciso-assistant-community">CISO Assistant</a></strong> is an open-source GRC platform covering risk assessments, compliance tracking across 100+ frameworks, and third-party risk management in a single interface.</p></li><li><p><strong><a href="https://github.com/Brumbelow/layerleak">LayerLeak</a></strong> is a Docker Hub and OCI image secret scanner written in Go that analyzes image layers, config metadata, and build history without requiring a local Docker daemon.</p></li><li><p><strong><a href="https://github.com/praetorian-inc/augustus">Augustus</a></strong> is a Go-based LLM vulnerability scanner that runs 210+ adversarial probes across 47 attack categories, including jailbreaks, prompt injection, and data extraction.</p></li><li><p><strong><a href="https://github.com/alibaba/OpenSandbox">OpenSandbox</a></strong> is Alibaba&#8217;s sandbox platform for AI agent workloads, providing isolated code execution with gVisor, Kata Containers, and Firecracker microVMs. </p></li></ul><h4>Meme of the week</h4><div class="captioned-image-container"><figure><a class="image-link image2 is-viewable-img" target="_blank" href="https://substackcdn.com/image/fetch/$s_!XEjg!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fd3a28dd1-84c3-4f59-b9a3-cbd2b0b0a87f_688x363.jpeg" data-component-name="Image2ToDOM"><div class="image2-inset"><picture><source type="image/webp" srcset="https://substackcdn.com/image/fetch/$s_!XEjg!,w_424,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fd3a28dd1-84c3-4f59-b9a3-cbd2b0b0a87f_688x363.jpeg 424w, https://substackcdn.com/image/fetch/$s_!XEjg!,w_848,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fd3a28dd1-84c3-4f59-b9a3-cbd2b0b0a87f_688x363.jpeg 848w, https://substackcdn.com/image/fetch/$s_!XEjg!,w_1272,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fd3a28dd1-84c3-4f59-b9a3-cbd2b0b0a87f_688x363.jpeg 1272w, https://substackcdn.com/image/fetch/$s_!XEjg!,w_1456,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fd3a28dd1-84c3-4f59-b9a3-cbd2b0b0a87f_688x363.jpeg 1456w" sizes="100vw"><img src="https://substackcdn.com/image/fetch/$s_!XEjg!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fd3a28dd1-84c3-4f59-b9a3-cbd2b0b0a87f_688x363.jpeg" width="514" height="271.19476744186045" data-attrs="{&quot;src&quot;:&quot;https://substack-post-media.s3.amazonaws.com/public/images/d3a28dd1-84c3-4f59-b9a3-cbd2b0b0a87f_688x363.jpeg&quot;,&quot;srcNoWatermark&quot;:null,&quot;fullscreen&quot;:null,&quot;imageSize&quot;:null,&quot;height&quot;:363,&quot;width&quot;:688,&quot;resizeWidth&quot;:514,&quot;bytes&quot;:null,&quot;alt&quot;:&quot;Every project maintainer after the LiteLLM pwn : r/programminghumor&quot;,&quot;title&quot;:null,&quot;type&quot;:null,&quot;href&quot;:null,&quot;belowTheFold&quot;:true,&quot;topImage&quot;:false,&quot;internalRedirect&quot;:null,&quot;isProcessing&quot;:false,&quot;align&quot;:null,&quot;offset&quot;:false}" class="sizing-normal" alt="Every project maintainer after the LiteLLM pwn : r/programminghumor" title="Every project maintainer after the LiteLLM pwn : r/programminghumor" srcset="https://substackcdn.com/image/fetch/$s_!XEjg!,w_424,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fd3a28dd1-84c3-4f59-b9a3-cbd2b0b0a87f_688x363.jpeg 424w, https://substackcdn.com/image/fetch/$s_!XEjg!,w_848,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fd3a28dd1-84c3-4f59-b9a3-cbd2b0b0a87f_688x363.jpeg 848w, https://substackcdn.com/image/fetch/$s_!XEjg!,w_1272,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fd3a28dd1-84c3-4f59-b9a3-cbd2b0b0a87f_688x363.jpeg 1272w, https://substackcdn.com/image/fetch/$s_!XEjg!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fd3a28dd1-84c3-4f59-b9a3-cbd2b0b0a87f_688x363.jpeg 1456w" sizes="100vw" loading="lazy"></picture><div class="image-link-expand"><div class="pencraft pc-display-flex pc-gap-8 pc-reset"><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container restack-image"><svg role="img" width="20" height="20" viewBox="0 0 20 20" fill="none" stroke-width="1.5" stroke="var(--color-fg-primary)" stroke-linecap="round" stroke-linejoin="round" xmlns="http://www.w3.org/2000/svg"><g><title></title><path d="M2.53001 7.81595C3.49179 4.73911 6.43281 2.5 9.91173 2.5C13.1684 2.5 15.9537 4.46214 17.0852 7.23684L17.6179 8.67647M17.6179 8.67647L18.5002 4.26471M17.6179 8.67647L13.6473 6.91176M17.4995 12.1841C16.5378 15.2609 13.5967 17.5 10.1178 17.5C6.86118 17.5 4.07589 15.5379 2.94432 12.7632L2.41165 11.3235M2.41165 11.3235L1.5293 15.7353M2.41165 11.3235L6.38224 13.0882"></path></g></svg></button><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container view-image"><svg xmlns="http://www.w3.org/2000/svg" width="20" height="20" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="lucide lucide-maximize2 lucide-maximize-2"><polyline points="15 3 21 3 21 9"></polyline><polyline points="9 21 3 21 3 15"></polyline><line x1="21" x2="14" y1="3" y2="10"></line><line x1="3" x2="10" y1="21" y2="14"></line></svg></button></div></div></div></a></figure></div><div class="pullquote"><p> If you have feedback to share or are interested in <a href="https://www.devopsbulletin.com/p/sponsorships">sponsoring</a> this newsletter, feel free to reach out via <em><a href="https://www.linkedin.com/in/mlabouardy/">LinkedIn</a></em> or simply reply to this email. </p></div><div class="subscription-widget-wrap-editor" data-attrs="{&quot;url&quot;:&quot;https://www.devopsbulletin.com/subscribe?&quot;,&quot;text&quot;:&quot;Subscribe&quot;,&quot;language&quot;:&quot;en&quot;}" data-component-name="SubscribeWidgetToDOM"><div class="subscription-widget show-subscribe"><div class="preamble"><p class="cta-caption">Thanks for reading DevOps Bulletin! Subscribe for free to receive new posts and support my work.</p></div><form class="subscription-widget-subscribe"><input type="email" class="email-input" name="email" placeholder="Type your email&#8230;" tabindex="-1"><input type="submit" class="button primary" value="Subscribe"><div class="fake-input-wrapper"><div class="fake-input"></div><div class="fake-button"></div></div></form></div></div>]]></content:encoded></item><item><title><![CDATA[Digest #206: S3 Bucketsquatting Dead, AI Agents Writing Go, Reddit Kafka Migration and CI/CD Security]]></title><description><![CDATA[AWS S3 namespace protection, Reddit's petabyte Kafka migration to Kubernetes, AI agents writing Go, CI/CD pipeline security scanning, and AWS phishing campaigns.]]></description><link>https://www.devopsbulletin.com/p/digest-206-s3-bucketsquatting-dead</link><guid isPermaLink="false">https://www.devopsbulletin.com/p/digest-206-s3-bucketsquatting-dead</guid><dc:creator><![CDATA[Mohamed Labouardy]]></dc:creator><pubDate>Mon, 23 Mar 2026 09:11:42 GMT</pubDate><enclosure url="https://substackcdn.com/image/fetch/$s_!7cWE!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fb9d2fc5f-351f-4707-a8a1-39d9eded7427_2972x1522.jpeg" length="0" type="image/jpeg"/><content:encoded><![CDATA[<p>Welcome to this week&#8217;s edition of the DevOps Bulletin.</p><p>From S3 bucketsquatting finally being dead after a decade of exploitation, to Reddit migrating petabyte-scale Kafka from EC2 to Kubernetes with zero downtime, and an active phishing campaign targeting AWS console credentials using adversary-in-the-middle proxies.</p><p>On the tutorial side, we look at how AI agents write Go, vibe coding&#8217;s attribution problem, why git blame matters more than ever, and how Datadog caught an AI-powered bot trying to inject malicious code into their open-source repos. Plus a $7 Lightsail setup that replaces your local AI agent, and a deep dive into when Kubernetes actually restarts your pod.</p><p>This week&#8217;s open source picks feature Serie, a Rust-based terminal tool for clean Git commit graphs, Bromure, a macOS app that runs each browser session inside a disposable Linux virtual machine, and Trajan, a scanner that detects vulnerabilities across platforms like GitHub Actions, GitLab CI, Azure DevOps, Jenkins, and JFrog.</p><p>All this and more in this week&#8217;s DevOps Bulletin, don&#8217;t miss out!</p><h4>Building an IDP from Scratch - Live Workshop</h4><div class="captioned-image-container"><figure><a class="image-link image2 is-viewable-img" target="_blank" href="https://www.eventbrite.com/e/building-an-internal-developer-platform-from-scratch-tickets-1978960034736?aff=devopsbulletin" data-component-name="Image2ToDOM"><div class="image2-inset"><picture><source type="image/webp" srcset="https://substackcdn.com/image/fetch/$s_!tFJy!,w_424,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fb5e56a30-e4ec-462c-8759-89bb46004923_940x470.jpeg 424w, https://substackcdn.com/image/fetch/$s_!tFJy!,w_848,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fb5e56a30-e4ec-462c-8759-89bb46004923_940x470.jpeg 848w, https://substackcdn.com/image/fetch/$s_!tFJy!,w_1272,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fb5e56a30-e4ec-462c-8759-89bb46004923_940x470.jpeg 1272w, https://substackcdn.com/image/fetch/$s_!tFJy!,w_1456,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fb5e56a30-e4ec-462c-8759-89bb46004923_940x470.jpeg 1456w" sizes="100vw"><img src="https://substackcdn.com/image/fetch/$s_!tFJy!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fb5e56a30-e4ec-462c-8759-89bb46004923_940x470.jpeg" width="940" height="470" data-attrs="{&quot;src&quot;:&quot;https://substack-post-media.s3.amazonaws.com/public/images/b5e56a30-e4ec-462c-8759-89bb46004923_940x470.jpeg&quot;,&quot;srcNoWatermark&quot;:null,&quot;fullscreen&quot;:null,&quot;imageSize&quot;:null,&quot;height&quot;:470,&quot;width&quot;:940,&quot;resizeWidth&quot;:null,&quot;bytes&quot;:null,&quot;alt&quot;:null,&quot;title&quot;:null,&quot;type&quot;:null,&quot;href&quot;:&quot;https://www.eventbrite.com/e/building-an-internal-developer-platform-from-scratch-tickets-1978960034736?aff=devopsbulletin&quot;,&quot;belowTheFold&quot;:false,&quot;topImage&quot;:true,&quot;internalRedirect&quot;:null,&quot;isProcessing&quot;:false,&quot;align&quot;:null,&quot;offset&quot;:false}" class="sizing-normal" alt="" srcset="https://substackcdn.com/image/fetch/$s_!tFJy!,w_424,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fb5e56a30-e4ec-462c-8759-89bb46004923_940x470.jpeg 424w, https://substackcdn.com/image/fetch/$s_!tFJy!,w_848,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fb5e56a30-e4ec-462c-8759-89bb46004923_940x470.jpeg 848w, https://substackcdn.com/image/fetch/$s_!tFJy!,w_1272,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fb5e56a30-e4ec-462c-8759-89bb46004923_940x470.jpeg 1272w, https://substackcdn.com/image/fetch/$s_!tFJy!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fb5e56a30-e4ec-462c-8759-89bb46004923_940x470.jpeg 1456w" sizes="100vw" fetchpriority="high"></picture><div class="image-link-expand"><div class="pencraft pc-display-flex pc-gap-8 pc-reset"><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container restack-image"><svg role="img" width="20" height="20" viewBox="0 0 20 20" fill="none" stroke-width="1.5" stroke="var(--color-fg-primary)" stroke-linecap="round" stroke-linejoin="round" xmlns="http://www.w3.org/2000/svg"><g><title></title><path d="M2.53001 7.81595C3.49179 4.73911 6.43281 2.5 9.91173 2.5C13.1684 2.5 15.9537 4.46214 17.0852 7.23684L17.6179 8.67647M17.6179 8.67647L18.5002 4.26471M17.6179 8.67647L13.6473 6.91176M17.4995 12.1841C16.5378 15.2609 13.5967 17.5 10.1178 17.5C6.86118 17.5 4.07589 15.5379 2.94432 12.7632L2.41165 11.3235M2.41165 11.3235L1.5293 15.7353M2.41165 11.3235L6.38224 13.0882"></path></g></svg></button><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container view-image"><svg xmlns="http://www.w3.org/2000/svg" width="20" height="20" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="lucide lucide-maximize2 lucide-maximize-2"><polyline points="15 3 21 3 21 9"></polyline><polyline points="9 21 3 21 3 15"></polyline><line x1="21" x2="14" y1="3" y2="10"></line><line x1="3" x2="10" y1="21" y2="14"></line></svg></button></div></div></div></a></figure></div><p>Design and build an <a href="https://www.eventbrite.com/e/building-an-internal-developer-platform-from-scratch-tickets-1978960034736?aff=devopsbulletin">Internal Developer Platform</a> that scales and gets adopted. This hands-on, 2-day workshop covers platform-as-a-product thinking, cloud-native architecture, IaC, automation patterns, and production readiness. Ideal for platform engineers, DevOps teams, and engineering leaders building IDPs. Exclusive 40% discount code: <strong><a href="https://www.eventbrite.com/e/building-an-internal-developer-platform-from-scratch-tickets-1978960034736?aff=devopsbulletin">DEVOPSBULLETIN</a></strong></p><h4>Newsworthy stories</h4><ul><li><p><strong><a href="https://onecloudplease.com/blog/bucketsquatting-is-finally-dead">S3 bucketsquatting is finally dead</a></strong></p></li><li><p><strong><a href="https://github.blog/ai-and-ml/generative-ai/under-the-hood-security-architecture-of-github-agentic-workflows/">Security architecture of GitHub agentic workflows</a></strong></p></li><li><p><strong><a href="https://blog.bytebytego.com/p/how-reddit-migrated-petabyte-scale">How Reddit migrated Petabyte-scale Kafka from EC2 to Kubernetes</a></strong></p></li><li><p><strong><a href="https://devblogs.microsoft.com/devops/azure-devops-remote-mcp-server-public-preview/">Azure DevOps remote MCP server</a></strong></p></li><li><p><strong><a href="https://oseifert.ch/blog/building-pgit">What if your Git history were a SQL database?</a></strong></p></li><li><p><strong><a href="https://securitylabs.datadoghq.com/articles/behind-the-console-aws-aitm-phishing-campaign/">Active phishing campaign targeting AWS console credentials</a></strong></p></li><li><p><strong><a href="https://viggy28.dev/article/postgres-gateway-drug/">Postgres is the Gateway drug</a></strong></p></li><li><p><strong><a href="https://reactdevelopment.substack.com/p/when-to-use-bff-and-should-it-replace">When should you use BFF, and should it replace API Gateway?</a></strong></p></li></ul><h4>Tutorials of the week</h4><ul><li><p><strong><a href="https://awsfundamentals.com/blog/lightsail-openclaw">The $7 AWS setup that replaced my local OpenClaw</a></strong></p></li></ul><div class="captioned-image-container"><figure><a class="image-link image2 is-viewable-img" target="_blank" href="https://awsfundamentals.com/blog/lightsail-openclaw" data-component-name="Image2ToDOM"><div class="image2-inset"><picture><source type="image/webp" srcset="https://substackcdn.com/image/fetch/$s_!7cWE!,w_424,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fb9d2fc5f-351f-4707-a8a1-39d9eded7427_2972x1522.jpeg 424w, https://substackcdn.com/image/fetch/$s_!7cWE!,w_848,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fb9d2fc5f-351f-4707-a8a1-39d9eded7427_2972x1522.jpeg 848w, https://substackcdn.com/image/fetch/$s_!7cWE!,w_1272,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fb9d2fc5f-351f-4707-a8a1-39d9eded7427_2972x1522.jpeg 1272w, https://substackcdn.com/image/fetch/$s_!7cWE!,w_1456,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fb9d2fc5f-351f-4707-a8a1-39d9eded7427_2972x1522.jpeg 1456w" sizes="100vw"><img src="https://substackcdn.com/image/fetch/$s_!7cWE!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fb9d2fc5f-351f-4707-a8a1-39d9eded7427_2972x1522.jpeg" width="1456" height="746" data-attrs="{&quot;src&quot;:&quot;https://substack-post-media.s3.amazonaws.com/public/images/b9d2fc5f-351f-4707-a8a1-39d9eded7427_2972x1522.jpeg&quot;,&quot;srcNoWatermark&quot;:null,&quot;fullscreen&quot;:null,&quot;imageSize&quot;:null,&quot;height&quot;:746,&quot;width&quot;:1456,&quot;resizeWidth&quot;:null,&quot;bytes&quot;:null,&quot;alt&quot;:&quot;Running OpenClaw on AWS Lightsail&quot;,&quot;title&quot;:null,&quot;type&quot;:null,&quot;href&quot;:&quot;https://awsfundamentals.com/blog/lightsail-openclaw&quot;,&quot;belowTheFold&quot;:true,&quot;topImage&quot;:false,&quot;internalRedirect&quot;:null,&quot;isProcessing&quot;:false,&quot;align&quot;:null,&quot;offset&quot;:false}" class="sizing-normal" alt="Running OpenClaw on AWS Lightsail" title="Running OpenClaw on AWS Lightsail" srcset="https://substackcdn.com/image/fetch/$s_!7cWE!,w_424,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fb9d2fc5f-351f-4707-a8a1-39d9eded7427_2972x1522.jpeg 424w, https://substackcdn.com/image/fetch/$s_!7cWE!,w_848,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fb9d2fc5f-351f-4707-a8a1-39d9eded7427_2972x1522.jpeg 848w, https://substackcdn.com/image/fetch/$s_!7cWE!,w_1272,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fb9d2fc5f-351f-4707-a8a1-39d9eded7427_2972x1522.jpeg 1272w, https://substackcdn.com/image/fetch/$s_!7cWE!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fb9d2fc5f-351f-4707-a8a1-39d9eded7427_2972x1522.jpeg 1456w" sizes="100vw" loading="lazy"></picture><div class="image-link-expand"><div class="pencraft pc-display-flex pc-gap-8 pc-reset"><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container restack-image"><svg role="img" width="20" height="20" viewBox="0 0 20 20" fill="none" stroke-width="1.5" stroke="var(--color-fg-primary)" stroke-linecap="round" stroke-linejoin="round" xmlns="http://www.w3.org/2000/svg"><g><title></title><path d="M2.53001 7.81595C3.49179 4.73911 6.43281 2.5 9.91173 2.5C13.1684 2.5 15.9537 4.46214 17.0852 7.23684L17.6179 8.67647M17.6179 8.67647L18.5002 4.26471M17.6179 8.67647L13.6473 6.91176M17.4995 12.1841C16.5378 15.2609 13.5967 17.5 10.1178 17.5C6.86118 17.5 4.07589 15.5379 2.94432 12.7632L2.41165 11.3235M2.41165 11.3235L1.5293 15.7353M2.41165 11.3235L6.38224 13.0882"></path></g></svg></button><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container view-image"><svg xmlns="http://www.w3.org/2000/svg" width="20" height="20" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="lucide lucide-maximize2 lucide-maximize-2"><polyline points="15 3 21 3 21 9"></polyline><polyline points="9 21 3 21 3 15"></polyline><line x1="21" x2="14" y1="3" y2="10"></line><line x1="3" x2="10" y1="21" y2="14"></line></svg></button></div></div></div></a></figure></div><ul><li><p><strong><a href="https://www.datadoghq.com/blog/engineering/stopping-hackerbot-claw-with-bewaire/">Catching malicious contributions in Datadog&#8217;s open source repos</a></strong></p></li><li><p><strong><a href="https://quesma.com/blog/vibe-code-git-blame/">Vibe coding needs git blame</a></strong></p></li><li><p><strong><a href="https://github.com/ehlesp/smallab-k8s-pve-guide">Building a virtualized Kubernetes homelab</a></strong></p></li><li><p><strong><a href="https://encore.dev/blog/golang-ai">How AI agents want to write Go</a></strong></p></li><li><p><strong><a href="https://www.cncf.io/blog/2026/03/17/when-kubernetes-restarts-your-pod-and-when-it-doesnt/">When Kubernetes restarts your pod</a></strong></p></li></ul><div class="pullquote"><p><strong>Enjoying the Bulletin?</strong> Consider supporting it with a <a href="https://www.devopsbulletin.com/subscribe">paid subscription</a>. You&#8217;ll keep the free Friday issues <em>and</em> get extras like bonus deep-dives, templates, and the full archive.</p></div><ul><li><p><strong><a href="https://itnext.io/hosting-and-scaling-eks-hybrid-nodes-with-kubevirt-and-kube-ovn-cni-a9305d1290f8">Hosting and scaling EKS hybrid nodes</a></strong></p></li><li><p><strong><a href="https://darryl-ruggles.cloud/elastic-container-service-ecs-my-default-choice-for-containers-on-aws">Complete guide to AWS ECS</a></strong></p></li><li><p><strong><a href="https://immrbhattarai.medium.com/mastering-gke-multi-tenancy-the-power-of-namespaces-rbac-and-quotas-0a01d69dca87">Mastering GKE multi-tenancy</a></strong></p></li></ul><h4>Videos of the week</h4><div id="youtube2-oVvuHhm0WYU" class="youtube-wrap" data-attrs="{&quot;videoId&quot;:&quot;oVvuHhm0WYU&quot;,&quot;startTime&quot;:null,&quot;endTime&quot;:null}" data-component-name="Youtube2ToDOM"><div class="youtube-inner"><iframe src="https://www.youtube-nocookie.com/embed/oVvuHhm0WYU?rel=0&amp;autoplay=0&amp;showinfo=0&amp;enablejsapi=0" frameborder="0" loading="lazy" gesture="media" allow="autoplay; fullscreen" allowautoplay="true" allowfullscreen="true" width="728" height="409"></iframe></div></div><div id="youtube2-uHNOqKdqQas" class="youtube-wrap" data-attrs="{&quot;videoId&quot;:&quot;uHNOqKdqQas&quot;,&quot;startTime&quot;:null,&quot;endTime&quot;:null}" data-component-name="Youtube2ToDOM"><div class="youtube-inner"><iframe src="https://www.youtube-nocookie.com/embed/uHNOqKdqQas?rel=0&amp;autoplay=0&amp;showinfo=0&amp;enablejsapi=0" frameborder="0" loading="lazy" gesture="media" allow="autoplay; fullscreen" allowautoplay="true" allowfullscreen="true" width="728" height="409"></iframe></div></div><h4>Projects of the week</h4><ul><li><p><strong><a href="https://github.com/lusingander/serie">Serie</a></strong> is a TUI application that renders Git commit graphs with rich visuals using the terminal&#8217;s image display protocol.</p></li><li><p><strong><a href="https://www.gitquest.dev/">Git Quest</a></strong> is a web-based RPG game that converts your GitHub commit history into character progression and in-game resources.</p></li><li><p><strong><a href="https://github.com/rupert648/pertmux">Pertmux</a></strong> is a terminal dashboard that unifies merge requests, git worktrees, tmux sessions, and AI coding agents into a single real-time monitoring interface.</p></li></ul><div class="captioned-image-container"><figure><a class="image-link image2 is-viewable-img" target="_blank" href="https://github.com/rupert648/pertmux" data-component-name="Image2ToDOM"><div class="image2-inset"><picture><source type="image/webp" srcset="https://substackcdn.com/image/fetch/$s_!ZH-Y!,w_424,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F78466fb8-a581-4236-9726-6a81cdd26b6d_800x499.gif 424w, https://substackcdn.com/image/fetch/$s_!ZH-Y!,w_848,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F78466fb8-a581-4236-9726-6a81cdd26b6d_800x499.gif 848w, https://substackcdn.com/image/fetch/$s_!ZH-Y!,w_1272,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F78466fb8-a581-4236-9726-6a81cdd26b6d_800x499.gif 1272w, https://substackcdn.com/image/fetch/$s_!ZH-Y!,w_1456,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F78466fb8-a581-4236-9726-6a81cdd26b6d_800x499.gif 1456w" sizes="100vw"><img src="https://substackcdn.com/image/fetch/$s_!ZH-Y!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F78466fb8-a581-4236-9726-6a81cdd26b6d_800x499.gif" width="800" height="499" data-attrs="{&quot;src&quot;:&quot;https://substack-post-media.s3.amazonaws.com/public/images/78466fb8-a581-4236-9726-6a81cdd26b6d_800x499.gif&quot;,&quot;srcNoWatermark&quot;:null,&quot;fullscreen&quot;:null,&quot;imageSize&quot;:null,&quot;height&quot;:499,&quot;width&quot;:800,&quot;resizeWidth&quot;:null,&quot;bytes&quot;:935800,&quot;alt&quot;:null,&quot;title&quot;:null,&quot;type&quot;:&quot;image/gif&quot;,&quot;href&quot;:&quot;https://github.com/rupert648/pertmux&quot;,&quot;belowTheFold&quot;:true,&quot;topImage&quot;:false,&quot;internalRedirect&quot;:&quot;https://www.devopsbulletin.com/i/191461432?img=https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F78466fb8-a581-4236-9726-6a81cdd26b6d_800x499.gif&quot;,&quot;isProcessing&quot;:false,&quot;align&quot;:null,&quot;offset&quot;:false}" class="sizing-normal" alt="" srcset="https://substackcdn.com/image/fetch/$s_!ZH-Y!,w_424,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F78466fb8-a581-4236-9726-6a81cdd26b6d_800x499.gif 424w, https://substackcdn.com/image/fetch/$s_!ZH-Y!,w_848,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F78466fb8-a581-4236-9726-6a81cdd26b6d_800x499.gif 848w, https://substackcdn.com/image/fetch/$s_!ZH-Y!,w_1272,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F78466fb8-a581-4236-9726-6a81cdd26b6d_800x499.gif 1272w, https://substackcdn.com/image/fetch/$s_!ZH-Y!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F78466fb8-a581-4236-9726-6a81cdd26b6d_800x499.gif 1456w" sizes="100vw" loading="lazy"></picture><div class="image-link-expand"><div class="pencraft pc-display-flex pc-gap-8 pc-reset"><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container restack-image"><svg role="img" width="20" height="20" viewBox="0 0 20 20" fill="none" stroke-width="1.5" stroke="var(--color-fg-primary)" stroke-linecap="round" stroke-linejoin="round" xmlns="http://www.w3.org/2000/svg"><g><title></title><path d="M2.53001 7.81595C3.49179 4.73911 6.43281 2.5 9.91173 2.5C13.1684 2.5 15.9537 4.46214 17.0852 7.23684L17.6179 8.67647M17.6179 8.67647L18.5002 4.26471M17.6179 8.67647L13.6473 6.91176M17.4995 12.1841C16.5378 15.2609 13.5967 17.5 10.1178 17.5C6.86118 17.5 4.07589 15.5379 2.94432 12.7632L2.41165 11.3235M2.41165 11.3235L1.5293 15.7353M2.41165 11.3235L6.38224 13.0882"></path></g></svg></button><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container view-image"><svg xmlns="http://www.w3.org/2000/svg" width="20" height="20" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="lucide lucide-maximize2 lucide-maximize-2"><polyline points="15 3 21 3 21 9"></polyline><polyline points="9 21 3 21 3 15"></polyline><line x1="21" x2="14" y1="3" y2="10"></line><line x1="3" x2="10" y1="21" y2="14"></line></svg></button></div></div></div></a></figure></div><ul><li><p><strong><a href="https://github.com/synacktiv/nord-stream">Nord Stream</a></strong> is a security testing tool that extracts secrets from CI/CD environments by deploying malicious pipelines across Azure DevOps, GitHub, and GitLab.</p></li><li><p><strong><a href="https://github.com/praetorian-inc/trajan">Trajan</a></strong> is a security scanner that identifies vulnerabilities in CI/CD pipeline configurations across GitHub Actions, GitLab CI, Azure DevOps, Jenkins, and JFrog.</p></li><li><p><strong><a href="https://github.com/rderaison/bromure">Bromure</a></strong> is a native macOS app that runs every browser session inside a lightweight, disposable Linux virtual machine for full isolation.</p></li></ul><h4>Meme of the week</h4><div class="captioned-image-container"><figure><a class="image-link image2 is-viewable-img" target="_blank" href="https://substackcdn.com/image/fetch/$s_!yOby!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F74335fdf-9eee-42da-9db1-4ea7905431bd_1008x1417.png" data-component-name="Image2ToDOM"><div class="image2-inset"><picture><source type="image/webp" srcset="https://substackcdn.com/image/fetch/$s_!yOby!,w_424,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F74335fdf-9eee-42da-9db1-4ea7905431bd_1008x1417.png 424w, https://substackcdn.com/image/fetch/$s_!yOby!,w_848,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F74335fdf-9eee-42da-9db1-4ea7905431bd_1008x1417.png 848w, https://substackcdn.com/image/fetch/$s_!yOby!,w_1272,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F74335fdf-9eee-42da-9db1-4ea7905431bd_1008x1417.png 1272w, https://substackcdn.com/image/fetch/$s_!yOby!,w_1456,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F74335fdf-9eee-42da-9db1-4ea7905431bd_1008x1417.png 1456w" sizes="100vw"><img src="https://substackcdn.com/image/fetch/$s_!yOby!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F74335fdf-9eee-42da-9db1-4ea7905431bd_1008x1417.png" width="342" height="480.76785714285717" data-attrs="{&quot;src&quot;:&quot;https://substack-post-media.s3.amazonaws.com/public/images/74335fdf-9eee-42da-9db1-4ea7905431bd_1008x1417.png&quot;,&quot;srcNoWatermark&quot;:null,&quot;fullscreen&quot;:null,&quot;imageSize&quot;:null,&quot;height&quot;:1417,&quot;width&quot;:1008,&quot;resizeWidth&quot;:342,&quot;bytes&quot;:null,&quot;alt&quot;:&quot;When Life Imitates Memes&quot;,&quot;title&quot;:null,&quot;type&quot;:null,&quot;href&quot;:null,&quot;belowTheFold&quot;:true,&quot;topImage&quot;:false,&quot;internalRedirect&quot;:null,&quot;isProcessing&quot;:false,&quot;align&quot;:null,&quot;offset&quot;:false}" class="sizing-normal" alt="When Life Imitates Memes" title="When Life Imitates Memes" srcset="https://substackcdn.com/image/fetch/$s_!yOby!,w_424,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F74335fdf-9eee-42da-9db1-4ea7905431bd_1008x1417.png 424w, https://substackcdn.com/image/fetch/$s_!yOby!,w_848,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F74335fdf-9eee-42da-9db1-4ea7905431bd_1008x1417.png 848w, https://substackcdn.com/image/fetch/$s_!yOby!,w_1272,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F74335fdf-9eee-42da-9db1-4ea7905431bd_1008x1417.png 1272w, https://substackcdn.com/image/fetch/$s_!yOby!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F74335fdf-9eee-42da-9db1-4ea7905431bd_1008x1417.png 1456w" sizes="100vw" loading="lazy"></picture><div class="image-link-expand"><div class="pencraft pc-display-flex pc-gap-8 pc-reset"><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container restack-image"><svg role="img" width="20" height="20" viewBox="0 0 20 20" fill="none" stroke-width="1.5" stroke="var(--color-fg-primary)" stroke-linecap="round" stroke-linejoin="round" xmlns="http://www.w3.org/2000/svg"><g><title></title><path d="M2.53001 7.81595C3.49179 4.73911 6.43281 2.5 9.91173 2.5C13.1684 2.5 15.9537 4.46214 17.0852 7.23684L17.6179 8.67647M17.6179 8.67647L18.5002 4.26471M17.6179 8.67647L13.6473 6.91176M17.4995 12.1841C16.5378 15.2609 13.5967 17.5 10.1178 17.5C6.86118 17.5 4.07589 15.5379 2.94432 12.7632L2.41165 11.3235M2.41165 11.3235L1.5293 15.7353M2.41165 11.3235L6.38224 13.0882"></path></g></svg></button><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container view-image"><svg xmlns="http://www.w3.org/2000/svg" width="20" height="20" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="lucide lucide-maximize2 lucide-maximize-2"><polyline points="15 3 21 3 21 9"></polyline><polyline points="9 21 3 21 3 15"></polyline><line x1="21" x2="14" y1="3" y2="10"></line><line x1="3" x2="10" y1="21" y2="14"></line></svg></button></div></div></div></a></figure></div><div class="pullquote"><p> If you have feedback to share or are interested in <a href="https://www.devopsbulletin.com/p/sponsorships">sponsoring</a> this newsletter, feel free to reach out via <em><a href="https://www.linkedin.com/in/mlabouardy/">LinkedIn</a></em> or simply reply to this email. </p></div><div class="subscription-widget-wrap-editor" data-attrs="{&quot;url&quot;:&quot;https://www.devopsbulletin.com/subscribe?&quot;,&quot;text&quot;:&quot;Subscribe&quot;,&quot;language&quot;:&quot;en&quot;}" data-component-name="SubscribeWidgetToDOM"><div class="subscription-widget show-subscribe"><div class="preamble"><p class="cta-caption">Thanks for reading DevOps Bulletin! Subscribe for free to receive new posts and support my work.</p></div><form class="subscription-widget-subscribe"><input type="email" class="email-input" name="email" placeholder="Type your email&#8230;" tabindex="-1"><input type="submit" class="button primary" value="Subscribe"><div class="fake-input-wrapper"><div class="fake-input"></div><div class="fake-button"></div></div></form></div></div>]]></content:encoded></item><item><title><![CDATA[Digest #205: GitHub Actions Exploitation, Terraform Internals, Passkeys Warning and Go Runtime]]></title><description><![CDATA[A bot exploiting GitHub Actions across Microsoft and CNCF projects, Terraform internals deep-dive, npm token theft via CI, and Go runtime scheduler explained.]]></description><link>https://www.devopsbulletin.com/p/digest-205-github-actions-exploitation</link><guid isPermaLink="false">https://www.devopsbulletin.com/p/digest-205-github-actions-exploitation</guid><dc:creator><![CDATA[Mohamed Labouardy]]></dc:creator><pubDate>Fri, 13 Mar 2026 19:04:44 GMT</pubDate><enclosure url="https://substackcdn.com/image/fetch/$s_!iZ1J!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F46c67a81-a47a-42af-9c05-a761173e7711_1999x1091.png" length="0" type="image/jpeg"/><content:encoded><![CDATA[<p>Welcome to this week&#8217;s edition of the DevOps Bulletin.</p><p>An autonomous bot spent 7 days exploiting GitHub Actions across Microsoft, DataDog, Aqua Security, and CNCF projects &#8212; exfiltrating tokens with write permissions from awesome-go (140K stars) and fully compromising Trivy&#8217;s releases. Meanwhile, new research shows that roughly half of SWE-bench-passing AI PRs would be rejected by actual maintainers, and Uber shares how it replaced thousands of individual Kafka policies with a single CEL-based access control rule.</p><p>On the tutorial side, a HashiCorp Core team engineer breaks down Terraform internals from addressing to expansion logic, while a researcher shows how opening a GitHub issue let them steal npm publish tokens from Cline&#8217;s CI &#8212; poisoning 4,000 machines before detection. Plus: why you should turn Dependabot off, how a Rust rewrite cut batch jobs from 30 minutes to under 5, and how ParadeDB optimized top-K queries from 37 seconds to 300ms.</p><p>This week&#8217;s open source picks include Terrapod &#8212; an open-source Terraform Enterprise replacement with built-in governance, PipeStep &#8212; a debugger that lets you step through GitHub Actions workflows locally in Docker, and Aegis &#8212; an EDR tool that monitors AI agent behavior in real time. </p><p>All this and more in this week&#8217;s DevOps Bulletin, don&#8217;t miss out!</p><h4>Newsworthy stories</h4><ul><li><p><strong><a href="https://muratbuffalo.blogspot.com/2026/03/building-database-on-s3.html">Building a database on S3</a></strong></p></li><li><p><strong><a href="https://www.stepsecurity.io/blog/hackerbot-claw-github-actions-exploitation">A bot actively exploiting GitHub Actions - Microsoft, DataDog, and CNCF projects</a></strong></p></li><li><p><strong><a href="https://devops-daily.com/posts/when-kubernetes-is-wrong-default">When Kubernetes is the wrong default</a></strong></p></li><li><p><strong><a href="https://metr.org/notes/2026-03-10-many-swe-bench-passing-prs-would-not-be-merged-into-main/">Many SWE-bench-passing PRs would not be merged into main</a></strong></p></li><li><p><strong><a href="https://www.praetorian.com/blog/how-ai-agents-automate-cve-vulnerability-research">How AI agents automate CVE vulnerability research</a></strong></p></li><li><p><strong><a href="https://blog.timcappalli.me/p/passkeys-prf-warning/">Please, please, please stop using passkeys for encrypting user data</a></strong></p></li><li><p><strong><a href="https://alexeyondata.substack.com/p/how-i-dropped-our-production-database">How I dropped our production database and now pay 10% more for AWS</a></strong></p></li><li><p><strong><a href="https://blog.bytebytego.com/p/how-uber-reinvented-access-control">How Uber reinvented access control for microservices</a></strong></p></li></ul><h4>Tutorials of the week</h4><ul><li><p><strong><a href="https://argos-ci.com/blog/heroku-to-aws-migration">Migrating from Heroku to AWS</a></strong></p></li><li><p><strong><a href="https://dispatch.thorcollective.com/p/how-i-use-llms-for-security-work">How I use LLMs for security work</a></strong></p></li><li><p><strong><a href="https://www.docker.com/blog/building-ai-teams-docker-sandboxes-agent/">Building AI teams with Docker sandboxes</a></strong></p></li></ul><div class="captioned-image-container"><figure><a class="image-link image2 is-viewable-img" target="_blank" href="https://www.docker.com/blog/building-ai-teams-docker-sandboxes-agent/" data-component-name="Image2ToDOM"><div class="image2-inset"><picture><source type="image/webp" srcset="https://substackcdn.com/image/fetch/$s_!iZ1J!,w_424,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F46c67a81-a47a-42af-9c05-a761173e7711_1999x1091.png 424w, https://substackcdn.com/image/fetch/$s_!iZ1J!,w_848,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F46c67a81-a47a-42af-9c05-a761173e7711_1999x1091.png 848w, https://substackcdn.com/image/fetch/$s_!iZ1J!,w_1272,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F46c67a81-a47a-42af-9c05-a761173e7711_1999x1091.png 1272w, https://substackcdn.com/image/fetch/$s_!iZ1J!,w_1456,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F46c67a81-a47a-42af-9c05-a761173e7711_1999x1091.png 1456w" sizes="100vw"><img src="https://substackcdn.com/image/fetch/$s_!iZ1J!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F46c67a81-a47a-42af-9c05-a761173e7711_1999x1091.png" width="484" height="264.27197802197804" data-attrs="{&quot;src&quot;:&quot;https://substack-post-media.s3.amazonaws.com/public/images/46c67a81-a47a-42af-9c05-a761173e7711_1999x1091.png&quot;,&quot;srcNoWatermark&quot;:null,&quot;fullscreen&quot;:null,&quot;imageSize&quot;:null,&quot;height&quot;:795,&quot;width&quot;:1456,&quot;resizeWidth&quot;:484,&quot;bytes&quot;:null,&quot;alt&quot;:&quot;image1&quot;,&quot;title&quot;:null,&quot;type&quot;:null,&quot;href&quot;:&quot;https://www.docker.com/blog/building-ai-teams-docker-sandboxes-agent/&quot;,&quot;belowTheFold&quot;:true,&quot;topImage&quot;:false,&quot;internalRedirect&quot;:null,&quot;isProcessing&quot;:false,&quot;align&quot;:null,&quot;offset&quot;:false}" class="sizing-normal" alt="image1" title="image1" srcset="https://substackcdn.com/image/fetch/$s_!iZ1J!,w_424,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F46c67a81-a47a-42af-9c05-a761173e7711_1999x1091.png 424w, https://substackcdn.com/image/fetch/$s_!iZ1J!,w_848,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F46c67a81-a47a-42af-9c05-a761173e7711_1999x1091.png 848w, https://substackcdn.com/image/fetch/$s_!iZ1J!,w_1272,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F46c67a81-a47a-42af-9c05-a761173e7711_1999x1091.png 1272w, https://substackcdn.com/image/fetch/$s_!iZ1J!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F46c67a81-a47a-42af-9c05-a761173e7711_1999x1091.png 1456w" sizes="100vw" loading="lazy"></picture><div class="image-link-expand"><div class="pencraft pc-display-flex pc-gap-8 pc-reset"><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container restack-image"><svg role="img" width="20" height="20" viewBox="0 0 20 20" fill="none" stroke-width="1.5" stroke="var(--color-fg-primary)" stroke-linecap="round" stroke-linejoin="round" xmlns="http://www.w3.org/2000/svg"><g><title></title><path d="M2.53001 7.81595C3.49179 4.73911 6.43281 2.5 9.91173 2.5C13.1684 2.5 15.9537 4.46214 17.0852 7.23684L17.6179 8.67647M17.6179 8.67647L18.5002 4.26471M17.6179 8.67647L13.6473 6.91176M17.4995 12.1841C16.5378 15.2609 13.5967 17.5 10.1178 17.5C6.86118 17.5 4.07589 15.5379 2.94432 12.7632L2.41165 11.3235M2.41165 11.3235L1.5293 15.7353M2.41165 11.3235L6.38224 13.0882"></path></g></svg></button><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container view-image"><svg xmlns="http://www.w3.org/2000/svg" width="20" height="20" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="lucide lucide-maximize2 lucide-maximize-2"><polyline points="15 3 21 3 21 9"></polyline><polyline points="9 21 3 21 3 15"></polyline><line x1="21" x2="14" y1="3" y2="10"></line><line x1="3" x2="10" y1="21" y2="14"></line></svg></button></div></div></div></a></figure></div><ul><li><p><strong><a href="https://danielmschmidt.de/posts/2025-11-21-inside-terraform/">A series about the internals of Terraform</a></strong></p></li><li><p><strong><a href="https://neciudan.dev/cline-ci-got-compromised-here-is-how">How to steal npm publish tokens by opening GitHub issues</a></strong></p></li><li><p><strong><a href="https://words.filippo.io/dependabot/">Turn Dependabot off</a></strong></p></li><li><p><strong><a href="https://kerkour.com/rust-postgres-everything">Using Rust and Postgres for everything</a></strong></p></li><li><p><strong><a href="https://aws.amazon.com/blogs/security/inside-aws-security-agent-a-multi-agent-architecture-for-automated-penetration-testing/">A multi-agent architecture for automated penetration testing</a></strong></p></li></ul><div class="pullquote"><p><strong>Enjoying the Bulletin?</strong> Consider supporting it with a <a href="https://www.devopsbulletin.com/subscribe">paid subscription</a>. You&#8217;ll keep the free Friday issues <em>and</em> get extras like bonus deep-dives, templates, and the full archive.</p></div><ul><li><p><strong><a href="https://internals-for-interns.com/posts/go-runtime-scheduler/">Understanding the Go runtime</a></strong></p></li><li><p><strong><a href="https://devops-daily.com/posts/introduction-to-argocd">Getting started with GitOps</a></strong></p></li><li><p><strong><a href="https://www.paradedb.com/blog/optimizing-top-k">How we optimized top K in Postgres</a></strong></p></li><li><p><strong><a href="https://growingswe.com/blog/ldap">How LDAP works</a></strong></p></li></ul><h4>Videos of the week</h4><div id="youtube2-sTnB8w2xnDY" class="youtube-wrap" data-attrs="{&quot;videoId&quot;:&quot;sTnB8w2xnDY&quot;,&quot;startTime&quot;:null,&quot;endTime&quot;:null}" data-component-name="Youtube2ToDOM"><div class="youtube-inner"><iframe src="https://www.youtube-nocookie.com/embed/sTnB8w2xnDY?rel=0&amp;autoplay=0&amp;showinfo=0&amp;enablejsapi=0" frameborder="0" loading="lazy" gesture="media" allow="autoplay; fullscreen" allowautoplay="true" allowfullscreen="true" width="728" height="409"></iframe></div></div><div id="youtube2-_XTT6xMbwtc" class="youtube-wrap" data-attrs="{&quot;videoId&quot;:&quot;_XTT6xMbwtc&quot;,&quot;startTime&quot;:null,&quot;endTime&quot;:null}" data-component-name="Youtube2ToDOM"><div class="youtube-inner"><iframe src="https://www.youtube-nocookie.com/embed/_XTT6xMbwtc?rel=0&amp;autoplay=0&amp;showinfo=0&amp;enablejsapi=0" frameborder="0" loading="lazy" gesture="media" allow="autoplay; fullscreen" allowautoplay="true" allowfullscreen="true" width="728" height="409"></iframe></div></div><h4>Projects of the week</h4><ul><li><p><strong><a href="https://github.com/gotempsh/temps">Temps</a></strong> is a self-hosted deployment platform that combines app hosting, monitoring, and infra management in a single binary.</p></li><li><p><strong><a href="https://github.com/m1k1o/neko">Neko</a></strong> is a self-hosted, Dockerized virtual browser that uses WebRTC for multi-user collaborative browsing.</p></li><li><p><strong><a href="https://github.com/mattrobinsonsre/terrapod">Terrapod</a></strong> is an open-source Terraform Enterprise replacement with built-in collaboration, governance, and state management.</p></li><li><p><strong><a href="https://github.com/Photobombastic/pipestep">PipeStep</a></strong> is a debugger for GitHub Actions that lets you step through CI workflows locally in Docker.</p></li><li><p><strong><a href="https://github.com/onecli/onecli">OneCLI</a></strong> is a credential gateway that transparently injects API keys into AI agent requests so agents never touch secrets.</p></li><li><p><strong><a href="https://github.com/doctly/switchboard">Switchboard</a></strong> is a desktop app that lets you manage all your Claude Code sessions from a single, unified interface.</p></li></ul><div class="captioned-image-container"><figure><a class="image-link image2 is-viewable-img" target="_blank" href="https://github.com/doctly/switchboard" data-component-name="Image2ToDOM"><div class="image2-inset"><picture><source type="image/webp" srcset="https://substackcdn.com/image/fetch/$s_!Jvl1!,w_424,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fa2b0a2c7-3ea5-405c-9d62-4fdcb11f590f_1240x509.png 424w, https://substackcdn.com/image/fetch/$s_!Jvl1!,w_848,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fa2b0a2c7-3ea5-405c-9d62-4fdcb11f590f_1240x509.png 848w, https://substackcdn.com/image/fetch/$s_!Jvl1!,w_1272,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fa2b0a2c7-3ea5-405c-9d62-4fdcb11f590f_1240x509.png 1272w, https://substackcdn.com/image/fetch/$s_!Jvl1!,w_1456,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fa2b0a2c7-3ea5-405c-9d62-4fdcb11f590f_1240x509.png 1456w" sizes="100vw"><img src="https://substackcdn.com/image/fetch/$s_!Jvl1!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fa2b0a2c7-3ea5-405c-9d62-4fdcb11f590f_1240x509.png" width="1240" height="509" data-attrs="{&quot;src&quot;:&quot;https://substack-post-media.s3.amazonaws.com/public/images/a2b0a2c7-3ea5-405c-9d62-4fdcb11f590f_1240x509.png&quot;,&quot;srcNoWatermark&quot;:null,&quot;fullscreen&quot;:null,&quot;imageSize&quot;:null,&quot;height&quot;:509,&quot;width&quot;:1240,&quot;resizeWidth&quot;:null,&quot;bytes&quot;:262314,&quot;alt&quot;:null,&quot;title&quot;:null,&quot;type&quot;:&quot;image/png&quot;,&quot;href&quot;:&quot;https://github.com/doctly/switchboard&quot;,&quot;belowTheFold&quot;:true,&quot;topImage&quot;:false,&quot;internalRedirect&quot;:&quot;https://www.devopsbulletin.com/i/190825036?img=https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fa2b0a2c7-3ea5-405c-9d62-4fdcb11f590f_1240x509.png&quot;,&quot;isProcessing&quot;:false,&quot;align&quot;:null,&quot;offset&quot;:false}" class="sizing-normal" alt="" srcset="https://substackcdn.com/image/fetch/$s_!Jvl1!,w_424,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fa2b0a2c7-3ea5-405c-9d62-4fdcb11f590f_1240x509.png 424w, https://substackcdn.com/image/fetch/$s_!Jvl1!,w_848,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fa2b0a2c7-3ea5-405c-9d62-4fdcb11f590f_1240x509.png 848w, https://substackcdn.com/image/fetch/$s_!Jvl1!,w_1272,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fa2b0a2c7-3ea5-405c-9d62-4fdcb11f590f_1240x509.png 1272w, https://substackcdn.com/image/fetch/$s_!Jvl1!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fa2b0a2c7-3ea5-405c-9d62-4fdcb11f590f_1240x509.png 1456w" sizes="100vw" loading="lazy"></picture><div class="image-link-expand"><div class="pencraft pc-display-flex pc-gap-8 pc-reset"><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container restack-image"><svg role="img" width="20" height="20" viewBox="0 0 20 20" fill="none" stroke-width="1.5" stroke="var(--color-fg-primary)" stroke-linecap="round" stroke-linejoin="round" xmlns="http://www.w3.org/2000/svg"><g><title></title><path d="M2.53001 7.81595C3.49179 4.73911 6.43281 2.5 9.91173 2.5C13.1684 2.5 15.9537 4.46214 17.0852 7.23684L17.6179 8.67647M17.6179 8.67647L18.5002 4.26471M17.6179 8.67647L13.6473 6.91176M17.4995 12.1841C16.5378 15.2609 13.5967 17.5 10.1178 17.5C6.86118 17.5 4.07589 15.5379 2.94432 12.7632L2.41165 11.3235M2.41165 11.3235L1.5293 15.7353M2.41165 11.3235L6.38224 13.0882"></path></g></svg></button><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container view-image"><svg xmlns="http://www.w3.org/2000/svg" width="20" height="20" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="lucide lucide-maximize2 lucide-maximize-2"><polyline points="15 3 21 3 21 9"></polyline><polyline points="9 21 3 21 3 15"></polyline><line x1="21" x2="14" y1="3" y2="10"></line><line x1="3" x2="10" y1="21" y2="14"></line></svg></button></div></div></div></a></figure></div><ul><li><p><strong><a href="https://github.com/1Password/load-secrets-action">load-secrets-action</a></strong> is a GitHub Action to load 1Password secrets into workflow environment variables.</p></li><li><p><strong><a href="https://github.com/antropos17/Aegis">Aegis</a></strong> is an EDR tool that monitors AI agent behavior, tracking processes, file access, and network activity in real time.</p></li></ul><h4>Meme of the week</h4><div class="captioned-image-container"><figure><a class="image-link image2 is-viewable-img" target="_blank" href="https://substackcdn.com/image/fetch/$s_!9Nns!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F844d2eca-bc94-4893-8e5e-26cdaaf637f5_1004x1456.png" data-component-name="Image2ToDOM"><div class="image2-inset"><picture><source type="image/webp" srcset="https://substackcdn.com/image/fetch/$s_!9Nns!,w_424,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F844d2eca-bc94-4893-8e5e-26cdaaf637f5_1004x1456.png 424w, https://substackcdn.com/image/fetch/$s_!9Nns!,w_848,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F844d2eca-bc94-4893-8e5e-26cdaaf637f5_1004x1456.png 848w, https://substackcdn.com/image/fetch/$s_!9Nns!,w_1272,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F844d2eca-bc94-4893-8e5e-26cdaaf637f5_1004x1456.png 1272w, https://substackcdn.com/image/fetch/$s_!9Nns!,w_1456,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F844d2eca-bc94-4893-8e5e-26cdaaf637f5_1004x1456.png 1456w" sizes="100vw"><img src="https://substackcdn.com/image/fetch/$s_!9Nns!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F844d2eca-bc94-4893-8e5e-26cdaaf637f5_1004x1456.png" width="380" height="551.0756972111553" data-attrs="{&quot;src&quot;:&quot;https://substack-post-media.s3.amazonaws.com/public/images/844d2eca-bc94-4893-8e5e-26cdaaf637f5_1004x1456.png&quot;,&quot;srcNoWatermark&quot;:null,&quot;fullscreen&quot;:null,&quot;imageSize&quot;:null,&quot;height&quot;:1456,&quot;width&quot;:1004,&quot;resizeWidth&quot;:380,&quot;bytes&quot;:713319,&quot;alt&quot;:null,&quot;title&quot;:null,&quot;type&quot;:&quot;image/png&quot;,&quot;href&quot;:null,&quot;belowTheFold&quot;:true,&quot;topImage&quot;:false,&quot;internalRedirect&quot;:&quot;https://www.devopsbulletin.com/i/190825036?img=https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F844d2eca-bc94-4893-8e5e-26cdaaf637f5_1004x1456.png&quot;,&quot;isProcessing&quot;:false,&quot;align&quot;:null,&quot;offset&quot;:false}" class="sizing-normal" alt="" srcset="https://substackcdn.com/image/fetch/$s_!9Nns!,w_424,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F844d2eca-bc94-4893-8e5e-26cdaaf637f5_1004x1456.png 424w, https://substackcdn.com/image/fetch/$s_!9Nns!,w_848,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F844d2eca-bc94-4893-8e5e-26cdaaf637f5_1004x1456.png 848w, https://substackcdn.com/image/fetch/$s_!9Nns!,w_1272,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F844d2eca-bc94-4893-8e5e-26cdaaf637f5_1004x1456.png 1272w, https://substackcdn.com/image/fetch/$s_!9Nns!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F844d2eca-bc94-4893-8e5e-26cdaaf637f5_1004x1456.png 1456w" sizes="100vw" loading="lazy"></picture><div class="image-link-expand"><div class="pencraft pc-display-flex pc-gap-8 pc-reset"><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container restack-image"><svg role="img" width="20" height="20" viewBox="0 0 20 20" fill="none" stroke-width="1.5" stroke="var(--color-fg-primary)" stroke-linecap="round" stroke-linejoin="round" xmlns="http://www.w3.org/2000/svg"><g><title></title><path d="M2.53001 7.81595C3.49179 4.73911 6.43281 2.5 9.91173 2.5C13.1684 2.5 15.9537 4.46214 17.0852 7.23684L17.6179 8.67647M17.6179 8.67647L18.5002 4.26471M17.6179 8.67647L13.6473 6.91176M17.4995 12.1841C16.5378 15.2609 13.5967 17.5 10.1178 17.5C6.86118 17.5 4.07589 15.5379 2.94432 12.7632L2.41165 11.3235M2.41165 11.3235L1.5293 15.7353M2.41165 11.3235L6.38224 13.0882"></path></g></svg></button><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container view-image"><svg xmlns="http://www.w3.org/2000/svg" width="20" height="20" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="lucide lucide-maximize2 lucide-maximize-2"><polyline points="15 3 21 3 21 9"></polyline><polyline points="9 21 3 21 3 15"></polyline><line x1="21" x2="14" y1="3" y2="10"></line><line x1="3" x2="10" y1="21" y2="14"></line></svg></button></div></div></div></a></figure></div><div class="pullquote"><p> If you have feedback to share or are interested in <a href="https://www.devopsbulletin.com/p/sponsorships">sponsoring</a> this newsletter, feel free to reach out via <em><a href="https://www.linkedin.com/in/mlabouardy/">LinkedIn</a></em> or simply reply to this email. </p></div><div class="subscription-widget-wrap-editor" data-attrs="{&quot;url&quot;:&quot;https://www.devopsbulletin.com/subscribe?&quot;,&quot;text&quot;:&quot;Subscribe&quot;,&quot;language&quot;:&quot;en&quot;}" data-component-name="SubscribeWidgetToDOM"><div class="subscription-widget show-subscribe"><div class="preamble"><p class="cta-caption">Thanks for reading DevOps Bulletin! Subscribe for free to receive new posts and support my work.</p></div><form class="subscription-widget-subscribe"><input type="email" class="email-input" name="email" placeholder="Type your email&#8230;" tabindex="-1"><input type="submit" class="button primary" value="Subscribe"><div class="fake-input-wrapper"><div class="fake-input"></div><div class="fake-button"></div></div></form></div></div>]]></content:encoded></item><item><title><![CDATA[Digest #204: AWS Data Centers Hit, Kubernetes Full Course, LLM Caching and AI Pentesting]]></title><description><![CDATA[AWS data centers struck by drones in UAE, 2,863 Google API keys exposed to Gemini, LLM caching architectures, Terraform feature flags, and AI pentesting tools.]]></description><link>https://www.devopsbulletin.com/p/digest-204-aws-data-centers-hit-kubernetes</link><guid isPermaLink="false">https://www.devopsbulletin.com/p/digest-204-aws-data-centers-hit-kubernetes</guid><dc:creator><![CDATA[Mohamed Labouardy]]></dc:creator><pubDate>Fri, 06 Mar 2026 19:21:50 GMT</pubDate><enclosure url="https://substackcdn.com/image/youtube/w_728,c_limit/V-lI7AmusGs" length="0" type="image/jpeg"/><content:encoded><![CDATA[<div class="captioned-image-container"><figure><a class="image-link image2" target="_blank" href="https://events.spacelift.io/multiplayer-iac-solving-state-people-and-system-level-iac-challenge?refid=DevOps-Bulletin&amp;utm_campaign=37789623-FY26%20-%20Webinar%20-%20Multiplayer%20IaC&amp;utm_source=DevOps-Bulletin&amp;utm_medium=paid_newsletter" data-component-name="Image2ToDOM"><div class="image2-inset"><picture><source type="image/webp" srcset="https://substackcdn.com/image/fetch/$s_!cMSn!,w_424,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F3a6c02f1-19c9-4125-b185-7abd26d37a72_268x83.png 424w, https://substackcdn.com/image/fetch/$s_!cMSn!,w_848,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F3a6c02f1-19c9-4125-b185-7abd26d37a72_268x83.png 848w, https://substackcdn.com/image/fetch/$s_!cMSn!,w_1272,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F3a6c02f1-19c9-4125-b185-7abd26d37a72_268x83.png 1272w, https://substackcdn.com/image/fetch/$s_!cMSn!,w_1456,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F3a6c02f1-19c9-4125-b185-7abd26d37a72_268x83.png 1456w" sizes="100vw"><img src="https://substackcdn.com/image/fetch/$s_!cMSn!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F3a6c02f1-19c9-4125-b185-7abd26d37a72_268x83.png" width="268" height="83" data-attrs="{&quot;src&quot;:&quot;https://substack-post-media.s3.amazonaws.com/public/images/3a6c02f1-19c9-4125-b185-7abd26d37a72_268x83.png&quot;,&quot;srcNoWatermark&quot;:null,&quot;fullscreen&quot;:null,&quot;imageSize&quot;:null,&quot;height&quot;:83,&quot;width&quot;:268,&quot;resizeWidth&quot;:null,&quot;bytes&quot;:7558,&quot;alt&quot;:null,&quot;title&quot;:null,&quot;type&quot;:&quot;image/png&quot;,&quot;href&quot;:&quot;https://events.spacelift.io/multiplayer-iac-solving-state-people-and-system-level-iac-challenge?refid=DevOps-Bulletin&amp;utm_campaign=37789623-FY26%20-%20Webinar%20-%20Multiplayer%20IaC&amp;utm_source=DevOps-Bulletin&amp;utm_medium=paid_newsletter&quot;,&quot;belowTheFold&quot;:false,&quot;topImage&quot;:true,&quot;internalRedirect&quot;:&quot;https://www.devopsbulletin.com/i/190122742?img=https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F3a6c02f1-19c9-4125-b185-7abd26d37a72_268x83.png&quot;,&quot;isProcessing&quot;:false,&quot;align&quot;:null,&quot;offset&quot;:false}" class="sizing-normal" alt="" srcset="https://substackcdn.com/image/fetch/$s_!cMSn!,w_424,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F3a6c02f1-19c9-4125-b185-7abd26d37a72_268x83.png 424w, https://substackcdn.com/image/fetch/$s_!cMSn!,w_848,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F3a6c02f1-19c9-4125-b185-7abd26d37a72_268x83.png 848w, https://substackcdn.com/image/fetch/$s_!cMSn!,w_1272,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F3a6c02f1-19c9-4125-b185-7abd26d37a72_268x83.png 1272w, https://substackcdn.com/image/fetch/$s_!cMSn!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F3a6c02f1-19c9-4125-b185-7abd26d37a72_268x83.png 1456w" sizes="100vw" fetchpriority="high"></picture><div></div></div></a></figure></div><p>Welcome to this week&#8217;s edition of the DevOps Bulletin.</p><p>From Iranian drone strikes taking down AWS data centers in the UAE and Bahrain, to Truffle Security finding 2,863 live Google API keys on the public internet that now silently authenticate to Gemini.</p><p>On the tutorial side, we get into designing caching architectures that cut LLM costs by 30% through semantic deduplication, building AI agents for infrastructure teams with proper safety guardrails, and a hands-on guide to <em>pg_semantic_cache</em> in Postgres that achieves 60-80% cache hit rates. Plus: debugging Go memory leaks with pprof, secure error-handling patterns in Go, and AWS cost optimization with up to 72% savings.</p><p>This week&#8217;s open-source picks include Shannon - an autonomous AI pentesting framework that validates vulnerabilities using real exploits, Titus - a high-performance secrets scanner with 487 detection rules, and safe-chain &#8212; a local proxy that blocks malicious npm and PyPI packages before installation.</p><p>All this and more in this week&#8217;s DevOps Bulletin, don&#8217;t miss out!</p><h4>Your Terraform Plan passed. Your app just broke. Here's why.</h4><div class="captioned-image-container"><figure><a class="image-link image2 is-viewable-img" target="_blank" href="https://events.spacelift.io/multiplayer-iac-solving-state-people-and-system-level-iac-challenge?refid=DevOps-Bulletin&amp;utm_campaign=37789623-FY26%20-%20Webinar%20-%20Multiplayer%20IaC&amp;utm_source=DevOps-Bulletin&amp;utm_medium=paid_newsletter" data-component-name="Image2ToDOM"><div class="image2-inset"><picture><source type="image/webp" srcset="https://substackcdn.com/image/fetch/$s_!HyEn!,w_424,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F8b798510-649e-4429-b397-5d4599a24395_2072x1036.png 424w, https://substackcdn.com/image/fetch/$s_!HyEn!,w_848,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F8b798510-649e-4429-b397-5d4599a24395_2072x1036.png 848w, https://substackcdn.com/image/fetch/$s_!HyEn!,w_1272,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F8b798510-649e-4429-b397-5d4599a24395_2072x1036.png 1272w, https://substackcdn.com/image/fetch/$s_!HyEn!,w_1456,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F8b798510-649e-4429-b397-5d4599a24395_2072x1036.png 1456w" sizes="100vw"><img src="https://substackcdn.com/image/fetch/$s_!HyEn!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F8b798510-649e-4429-b397-5d4599a24395_2072x1036.png" width="1456" height="728" data-attrs="{&quot;src&quot;:&quot;https://substack-post-media.s3.amazonaws.com/public/images/8b798510-649e-4429-b397-5d4599a24395_2072x1036.png&quot;,&quot;srcNoWatermark&quot;:null,&quot;fullscreen&quot;:null,&quot;imageSize&quot;:null,&quot;height&quot;:728,&quot;width&quot;:1456,&quot;resizeWidth&quot;:null,&quot;bytes&quot;:1724779,&quot;alt&quot;:null,&quot;title&quot;:null,&quot;type&quot;:&quot;image/png&quot;,&quot;href&quot;:&quot;https://events.spacelift.io/multiplayer-iac-solving-state-people-and-system-level-iac-challenge?refid=DevOps-Bulletin&amp;utm_campaign=37789623-FY26%20-%20Webinar%20-%20Multiplayer%20IaC&amp;utm_source=DevOps-Bulletin&amp;utm_medium=paid_newsletter&quot;,&quot;belowTheFold&quot;:false,&quot;topImage&quot;:false,&quot;internalRedirect&quot;:&quot;https://www.devopsbulletin.com/i/190122742?img=https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F8b798510-649e-4429-b397-5d4599a24395_2072x1036.png&quot;,&quot;isProcessing&quot;:false,&quot;align&quot;:null,&quot;offset&quot;:false}" class="sizing-normal" alt="" srcset="https://substackcdn.com/image/fetch/$s_!HyEn!,w_424,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F8b798510-649e-4429-b397-5d4599a24395_2072x1036.png 424w, https://substackcdn.com/image/fetch/$s_!HyEn!,w_848,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F8b798510-649e-4429-b397-5d4599a24395_2072x1036.png 848w, https://substackcdn.com/image/fetch/$s_!HyEn!,w_1272,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F8b798510-649e-4429-b397-5d4599a24395_2072x1036.png 1272w, https://substackcdn.com/image/fetch/$s_!HyEn!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F8b798510-649e-4429-b397-5d4599a24395_2072x1036.png 1456w" sizes="100vw"></picture><div class="image-link-expand"><div class="pencraft pc-display-flex pc-gap-8 pc-reset"><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container restack-image"><svg role="img" width="20" height="20" viewBox="0 0 20 20" fill="none" stroke-width="1.5" stroke="var(--color-fg-primary)" stroke-linecap="round" stroke-linejoin="round" xmlns="http://www.w3.org/2000/svg"><g><title></title><path d="M2.53001 7.81595C3.49179 4.73911 6.43281 2.5 9.91173 2.5C13.1684 2.5 15.9537 4.46214 17.0852 7.23684L17.6179 8.67647M17.6179 8.67647L18.5002 4.26471M17.6179 8.67647L13.6473 6.91176M17.4995 12.1841C16.5378 15.2609 13.5967 17.5 10.1178 17.5C6.86118 17.5 4.07589 15.5379 2.94432 12.7632L2.41165 11.3235M2.41165 11.3235L1.5293 15.7353M2.41165 11.3235L6.38224 13.0882"></path></g></svg></button><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container view-image"><svg xmlns="http://www.w3.org/2000/svg" width="20" height="20" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="lucide lucide-maximize2 lucide-maximize-2"><polyline points="15 3 21 3 21 9"></polyline><polyline points="9 21 3 21 3 15"></polyline><line x1="21" x2="14" y1="3" y2="10"></line><line x1="3" x2="10" y1="21" y2="14"></line></svg></button></div></div></div></a></figure></div><p>Clean plan. Successful apply. App down two hours later. Sound familiar? Learn how platform teams scale IaC without the chaos.</p><p><a href="https://events.spacelift.io/multiplayer-iac-solving-state-people-and-system-level-iac-challenge?refid=DevOps-Bulletin&amp;utm_campaign=37789623-FY26%20-%20Webinar%20-%20Multiplayer%20IaC&amp;utm_source=DevOps-Bulletin&amp;utm_medium=paid_newsletter">Free virtual event, March 12 at 12 PM ET. Register now.</a></p><h4>Newsworthy stories</h4><ul><li><p><strong><a href="https://pybit.es/articles/how-even-senior-developers-mess-up-their-git-workflow/">How even senior developers mess up their Git workflow</a></strong></p></li><li><p><strong><a href="https://www.businessinsider.com/amazon-web-services-data-center-fire-objects-middle-east-strikes-2026-3">Amazon says it could take at least a day to restore data centers hit by &#8216;objects&#8217; in the UAE</a></strong></p></li><li><p><strong><a href="https://ninad.pundaliks.in/blog/2026/02/terraform-and-feature-flags/">Terraform, feature flags, and configurability</a></strong></p></li><li><p><strong><a href="https://towardsdatascience.com/zero-waste-agentic-rag-designing-caching-architectures-to-minimize-latency-and-llm-costs-at-scale/">Designing caching architectures to minimize latency and LLM costs at scale</a></strong></p></li><li><p><strong><a href="https://trufflesecurity.com/blog/google-api-keys-werent-secrets-but-then-gemini-changed-the-rules">Google API keys weren&#8217;t secrets. But then Gemini changed the rules</a></strong></p></li><li><p><strong><a href="https://bigdataboutique.com/blog/kfc-architecture-blueprint-kafka-flink-and-clickhouse">The KFC architecture blueprint: Kafka, Flink, and ClickHouse</a></strong></p></li></ul><h4>Tutorials of the week</h4><ul><li><p><strong><a href="https://github.com/Cloudgeni-ai/infrastructure-agents-guide">How to design, build, and operate AI agents for infrastructure teams</a></strong></p></li><li><p><strong><a href="https://thomasthornton.cloud/draw-io-mcp-for-diagram-generation-why-its-worth-using/">Draw.io MCP for DevOps diagrams generation</a></strong></p></li></ul><div class="captioned-image-container"><figure><a class="image-link image2 is-viewable-img" target="_blank" href="https://thomasthornton.cloud/draw-io-mcp-for-diagram-generation-why-its-worth-using/" data-component-name="Image2ToDOM"><div class="image2-inset"><picture><source type="image/webp" srcset="https://substackcdn.com/image/fetch/$s_!zrnV!,w_424,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F2feda8ee-fd92-479f-9d45-cfdd8ee6d771_825x466.png 424w, https://substackcdn.com/image/fetch/$s_!zrnV!,w_848,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F2feda8ee-fd92-479f-9d45-cfdd8ee6d771_825x466.png 848w, https://substackcdn.com/image/fetch/$s_!zrnV!,w_1272,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F2feda8ee-fd92-479f-9d45-cfdd8ee6d771_825x466.png 1272w, https://substackcdn.com/image/fetch/$s_!zrnV!,w_1456,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F2feda8ee-fd92-479f-9d45-cfdd8ee6d771_825x466.png 1456w" sizes="100vw"><img src="https://substackcdn.com/image/fetch/$s_!zrnV!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F2feda8ee-fd92-479f-9d45-cfdd8ee6d771_825x466.png" width="825" height="466" data-attrs="{&quot;src&quot;:&quot;https://substack-post-media.s3.amazonaws.com/public/images/2feda8ee-fd92-479f-9d45-cfdd8ee6d771_825x466.png&quot;,&quot;srcNoWatermark&quot;:null,&quot;fullscreen&quot;:null,&quot;imageSize&quot;:null,&quot;height&quot;:466,&quot;width&quot;:825,&quot;resizeWidth&quot;:null,&quot;bytes&quot;:null,&quot;alt&quot;:&quot;Image showing creation using draw.io and github copilot custom skill for image creation&quot;,&quot;title&quot;:null,&quot;type&quot;:null,&quot;href&quot;:&quot;https://thomasthornton.cloud/draw-io-mcp-for-diagram-generation-why-its-worth-using/&quot;,&quot;belowTheFold&quot;:true,&quot;topImage&quot;:false,&quot;internalRedirect&quot;:null,&quot;isProcessing&quot;:false,&quot;align&quot;:null,&quot;offset&quot;:false}" class="sizing-normal" alt="Image showing creation using draw.io and github copilot custom skill for image creation" title="Image showing creation using draw.io and github copilot custom skill for image creation" srcset="https://substackcdn.com/image/fetch/$s_!zrnV!,w_424,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F2feda8ee-fd92-479f-9d45-cfdd8ee6d771_825x466.png 424w, https://substackcdn.com/image/fetch/$s_!zrnV!,w_848,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F2feda8ee-fd92-479f-9d45-cfdd8ee6d771_825x466.png 848w, https://substackcdn.com/image/fetch/$s_!zrnV!,w_1272,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F2feda8ee-fd92-479f-9d45-cfdd8ee6d771_825x466.png 1272w, https://substackcdn.com/image/fetch/$s_!zrnV!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F2feda8ee-fd92-479f-9d45-cfdd8ee6d771_825x466.png 1456w" sizes="100vw" loading="lazy"></picture><div class="image-link-expand"><div class="pencraft pc-display-flex pc-gap-8 pc-reset"><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container restack-image"><svg role="img" width="20" height="20" viewBox="0 0 20 20" fill="none" stroke-width="1.5" stroke="var(--color-fg-primary)" stroke-linecap="round" stroke-linejoin="round" xmlns="http://www.w3.org/2000/svg"><g><title></title><path d="M2.53001 7.81595C3.49179 4.73911 6.43281 2.5 9.91173 2.5C13.1684 2.5 15.9537 4.46214 17.0852 7.23684L17.6179 8.67647M17.6179 8.67647L18.5002 4.26471M17.6179 8.67647L13.6473 6.91176M17.4995 12.1841C16.5378 15.2609 13.5967 17.5 10.1178 17.5C6.86118 17.5 4.07589 15.5379 2.94432 12.7632L2.41165 11.3235M2.41165 11.3235L1.5293 15.7353M2.41165 11.3235L6.38224 13.0882"></path></g></svg></button><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container view-image"><svg xmlns="http://www.w3.org/2000/svg" width="20" height="20" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="lucide lucide-maximize2 lucide-maximize-2"><polyline points="15 3 21 3 21 9"></polyline><polyline points="9 21 3 21 3 15"></polyline><line x1="21" x2="14" y1="3" y2="10"></line><line x1="3" x2="10" y1="21" y2="14"></line></svg></button></div></div></div></a></figure></div><ul><li><p><strong><a href="https://www.freecodecamp.org/news/master-kubernetes-through-production-ready-practice/">Master Kubernetes through production-ready practice</a></strong></p></li><li><p><strong><a href="https://www.microsoft.com/en-us/security/blog/2026/02/19/running-openclaw-safely-identity-isolation-runtime-risk/">Running OpenClaw safely</a></strong></p></li><li><p><strong><a href="https://www.tsukie.com/en/technologies/use-cli-like-a-modern-tech-bro/">Use CLI like a modern tech bro</a></strong></p></li><li><p><strong><a href="https://productsecurity.ghost.io/semgrep-ai-for-infrastructure-as-code-targeted-iac-security-without-the-noise/">Semgrep + AI for Infrastructure as Code</a></strong></p></li></ul><div class="pullquote"><p><strong>Enjoying the Bulletin?</strong> Consider supporting it with a <a href="https://www.devopsbulletin.com/subscribe">paid subscription</a>. You&#8217;ll keep the free Friday issues <em>and</em> get extras like bonus deep-dives, templates, and the full archive.</p></div><ul><li><p><strong><a href="https://medium.com/trendyol-tech/debugging-a-go-memory-leak-from-oom-to-stable-with-pprof-7b3808d76890">Debugging a Go memory leak</a></strong></p></li><li><p><strong><a href="https://towardsthecloud.com/blog/aws-cost-optimization-best-practices">AWS cost optimization best practices</a></strong></p></li><li><p><strong><a href="https://www.pgedge.com/blog/semantic-caching-in-postgresql-a-hands-on-guide-to-pg_semantic_cache">A hands-on guide to Postgres caching</a></strong></p></li><li><p><strong><a href="https://blog.jetbrains.com/go/2026/03/02/secure-go-error-handling-best-practices/">Best practices for secure error handling in Go</a></strong></p></li></ul><h4>Videos of the week</h4><iframe class="spotify-wrap podcast" data-attrs="{&quot;image&quot;:&quot;https://i.scdn.co/image/ab6765630000ba8aafa182733bb2332aae8c75aa&quot;,&quot;title&quot;:&quot;The AI Broke Production But Please Don't Tell Anyone&quot;,&quot;subtitle&quot;:&quot;Corey Quinn&quot;,&quot;description&quot;:&quot;Episode&quot;,&quot;url&quot;:&quot;https://open.spotify.com/episode/6LzOYWpBghb4V0Vk0vBFK7&quot;,&quot;belowTheFold&quot;:true,&quot;noScroll&quot;:false}" src="https://open.spotify.com/embed/episode/6LzOYWpBghb4V0Vk0vBFK7" frameborder="0" gesture="media" allowfullscreen="true" allow="encrypted-media" loading="lazy" data-component-name="Spotify2ToDOM"></iframe><div id="youtube2-V-lI7AmusGs" class="youtube-wrap" data-attrs="{&quot;videoId&quot;:&quot;V-lI7AmusGs&quot;,&quot;startTime&quot;:null,&quot;endTime&quot;:null}" data-component-name="Youtube2ToDOM"><div class="youtube-inner"><iframe src="https://www.youtube-nocookie.com/embed/V-lI7AmusGs?rel=0&amp;autoplay=0&amp;showinfo=0&amp;enablejsapi=0" frameborder="0" loading="lazy" gesture="media" allow="autoplay; fullscreen" allowautoplay="true" allowfullscreen="true" width="728" height="409"></iframe></div></div><h4>Projects of the week</h4><ul><li><p><strong><a href="https://github.com/coder/coder">Self-hosted platform</a></strong> for provisioning secure cloud development environments and workspaces defined with Terraform and accessed through remote IDEs.</p></li><li><p><strong><a href="https://github.com/KeygraphHQ/shannon">Autonomous AI pentesting framework </a></strong>that analyzes source code, discovers attack paths, and executes real exploits to validate web app vulnerabilities.</p></li><li><p><strong><a href="https://github.com/AikidoSec/safe-chain">Local proxy </a></strong>that protects developers and CI pipelines by scanning npm and PyPI packages for malware and blocking risky or newly published dependencies before installation.</p></li><li><p><strong><a href="https://github.com/awslabs/threat-designer">AI-powered threat modeling tool</a></strong>&nbsp;that analyzes system architectures and generates security threat models using LLM agents.</p></li></ul><div class="captioned-image-container"><figure><a class="image-link image2 is-viewable-img" target="_blank" href="https://github.com/awslabs/threat-designer" data-component-name="Image2ToDOM"><div class="image2-inset"><picture><source type="image/webp" srcset="https://substackcdn.com/image/fetch/$s_!uNR-!,w_424,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F64fe81e0-0035-40b3-aa6f-4db54e8e16d9_3024x1722.png 424w, https://substackcdn.com/image/fetch/$s_!uNR-!,w_848,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F64fe81e0-0035-40b3-aa6f-4db54e8e16d9_3024x1722.png 848w, https://substackcdn.com/image/fetch/$s_!uNR-!,w_1272,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F64fe81e0-0035-40b3-aa6f-4db54e8e16d9_3024x1722.png 1272w, https://substackcdn.com/image/fetch/$s_!uNR-!,w_1456,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F64fe81e0-0035-40b3-aa6f-4db54e8e16d9_3024x1722.png 1456w" sizes="100vw"><img src="https://substackcdn.com/image/fetch/$s_!uNR-!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F64fe81e0-0035-40b3-aa6f-4db54e8e16d9_3024x1722.png" width="1456" height="829" data-attrs="{&quot;src&quot;:&quot;https://substack-post-media.s3.amazonaws.com/public/images/64fe81e0-0035-40b3-aa6f-4db54e8e16d9_3024x1722.png&quot;,&quot;srcNoWatermark&quot;:null,&quot;fullscreen&quot;:null,&quot;imageSize&quot;:null,&quot;height&quot;:829,&quot;width&quot;:1456,&quot;resizeWidth&quot;:null,&quot;bytes&quot;:997293,&quot;alt&quot;:null,&quot;title&quot;:null,&quot;type&quot;:&quot;image/png&quot;,&quot;href&quot;:&quot;https://github.com/awslabs/threat-designer&quot;,&quot;belowTheFold&quot;:true,&quot;topImage&quot;:false,&quot;internalRedirect&quot;:&quot;https://www.devopsbulletin.com/i/190122742?img=https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F64fe81e0-0035-40b3-aa6f-4db54e8e16d9_3024x1722.png&quot;,&quot;isProcessing&quot;:false,&quot;align&quot;:null,&quot;offset&quot;:false}" class="sizing-normal" alt="" srcset="https://substackcdn.com/image/fetch/$s_!uNR-!,w_424,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F64fe81e0-0035-40b3-aa6f-4db54e8e16d9_3024x1722.png 424w, https://substackcdn.com/image/fetch/$s_!uNR-!,w_848,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F64fe81e0-0035-40b3-aa6f-4db54e8e16d9_3024x1722.png 848w, https://substackcdn.com/image/fetch/$s_!uNR-!,w_1272,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F64fe81e0-0035-40b3-aa6f-4db54e8e16d9_3024x1722.png 1272w, https://substackcdn.com/image/fetch/$s_!uNR-!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F64fe81e0-0035-40b3-aa6f-4db54e8e16d9_3024x1722.png 1456w" sizes="100vw" loading="lazy"></picture><div class="image-link-expand"><div class="pencraft pc-display-flex pc-gap-8 pc-reset"><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container restack-image"><svg role="img" width="20" height="20" viewBox="0 0 20 20" fill="none" stroke-width="1.5" stroke="var(--color-fg-primary)" stroke-linecap="round" stroke-linejoin="round" xmlns="http://www.w3.org/2000/svg"><g><title></title><path d="M2.53001 7.81595C3.49179 4.73911 6.43281 2.5 9.91173 2.5C13.1684 2.5 15.9537 4.46214 17.0852 7.23684L17.6179 8.67647M17.6179 8.67647L18.5002 4.26471M17.6179 8.67647L13.6473 6.91176M17.4995 12.1841C16.5378 15.2609 13.5967 17.5 10.1178 17.5C6.86118 17.5 4.07589 15.5379 2.94432 12.7632L2.41165 11.3235M2.41165 11.3235L1.5293 15.7353M2.41165 11.3235L6.38224 13.0882"></path></g></svg></button><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container view-image"><svg xmlns="http://www.w3.org/2000/svg" width="20" height="20" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="lucide lucide-maximize2 lucide-maximize-2"><polyline points="15 3 21 3 21 9"></polyline><polyline points="9 21 3 21 3 15"></polyline><line x1="21" x2="14" y1="3" y2="10"></line><line x1="3" x2="10" y1="21" y2="14"></line></svg></button></div></div></div></a></figure></div><ul><li><p><strong><a href="https://github.com/ray-project/kuberay">A Kubernetes operator&nbsp;</a></strong>that deploys, autoscales, and manages Ray clusters and workloads for distributed AI and machine learning on Kubernetes.</p></li><li><p><strong><a href="https://github.com/k1LoW/runn">YAML-driven CLI</a></strong> for scenario-based testing, API automation, and load testing across HTTP, gRPC, databases, browsers, SSH, and local commands</p></li><li><p><strong><a href="https://github.com/praetorian-inc/titus">High-performance secrets scanner </a></strong>that detects and validates API keys, tokens, and credentials across source code, git history, binaries, and web traffic</p></li><li><p><strong><a href="https://github.com/volcano-sh/volcano">Kubernetes native batch scheduler</a></strong> designed for AI, ML, big data, and HPC workloads with advanced resource scheduling and queue management</p></li></ul><h4>Meme of the week</h4><div class="captioned-image-container"><figure><a class="image-link image2 is-viewable-img" target="_blank" href="https://substackcdn.com/image/fetch/$s_!jVjQ!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fe20ca3b3-faa4-489a-8af7-b0bc47a76841_635x529.png" data-component-name="Image2ToDOM"><div class="image2-inset"><picture><source type="image/webp" srcset="https://substackcdn.com/image/fetch/$s_!jVjQ!,w_424,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fe20ca3b3-faa4-489a-8af7-b0bc47a76841_635x529.png 424w, https://substackcdn.com/image/fetch/$s_!jVjQ!,w_848,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fe20ca3b3-faa4-489a-8af7-b0bc47a76841_635x529.png 848w, https://substackcdn.com/image/fetch/$s_!jVjQ!,w_1272,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fe20ca3b3-faa4-489a-8af7-b0bc47a76841_635x529.png 1272w, https://substackcdn.com/image/fetch/$s_!jVjQ!,w_1456,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fe20ca3b3-faa4-489a-8af7-b0bc47a76841_635x529.png 1456w" sizes="100vw"><img src="https://substackcdn.com/image/fetch/$s_!jVjQ!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fe20ca3b3-faa4-489a-8af7-b0bc47a76841_635x529.png" width="515" height="429.0314960629921" data-attrs="{&quot;src&quot;:&quot;https://substack-post-media.s3.amazonaws.com/public/images/e20ca3b3-faa4-489a-8af7-b0bc47a76841_635x529.png&quot;,&quot;srcNoWatermark&quot;:null,&quot;fullscreen&quot;:null,&quot;imageSize&quot;:null,&quot;height&quot;:529,&quot;width&quot;:635,&quot;resizeWidth&quot;:515,&quot;bytes&quot;:null,&quot;alt&quot;:&quot;Vibe Debugging Be Like&quot;,&quot;title&quot;:null,&quot;type&quot;:null,&quot;href&quot;:null,&quot;belowTheFold&quot;:true,&quot;topImage&quot;:false,&quot;internalRedirect&quot;:null,&quot;isProcessing&quot;:false,&quot;align&quot;:null,&quot;offset&quot;:false}" class="sizing-normal" alt="Vibe Debugging Be Like" title="Vibe Debugging Be Like" srcset="https://substackcdn.com/image/fetch/$s_!jVjQ!,w_424,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fe20ca3b3-faa4-489a-8af7-b0bc47a76841_635x529.png 424w, https://substackcdn.com/image/fetch/$s_!jVjQ!,w_848,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fe20ca3b3-faa4-489a-8af7-b0bc47a76841_635x529.png 848w, https://substackcdn.com/image/fetch/$s_!jVjQ!,w_1272,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fe20ca3b3-faa4-489a-8af7-b0bc47a76841_635x529.png 1272w, https://substackcdn.com/image/fetch/$s_!jVjQ!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fe20ca3b3-faa4-489a-8af7-b0bc47a76841_635x529.png 1456w" sizes="100vw" loading="lazy"></picture><div class="image-link-expand"><div class="pencraft pc-display-flex pc-gap-8 pc-reset"><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container restack-image"><svg role="img" width="20" height="20" viewBox="0 0 20 20" fill="none" stroke-width="1.5" stroke="var(--color-fg-primary)" stroke-linecap="round" stroke-linejoin="round" xmlns="http://www.w3.org/2000/svg"><g><title></title><path d="M2.53001 7.81595C3.49179 4.73911 6.43281 2.5 9.91173 2.5C13.1684 2.5 15.9537 4.46214 17.0852 7.23684L17.6179 8.67647M17.6179 8.67647L18.5002 4.26471M17.6179 8.67647L13.6473 6.91176M17.4995 12.1841C16.5378 15.2609 13.5967 17.5 10.1178 17.5C6.86118 17.5 4.07589 15.5379 2.94432 12.7632L2.41165 11.3235M2.41165 11.3235L1.5293 15.7353M2.41165 11.3235L6.38224 13.0882"></path></g></svg></button><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container view-image"><svg xmlns="http://www.w3.org/2000/svg" width="20" height="20" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="lucide lucide-maximize2 lucide-maximize-2"><polyline points="15 3 21 3 21 9"></polyline><polyline points="9 21 3 21 3 15"></polyline><line x1="21" x2="14" y1="3" y2="10"></line><line x1="3" x2="10" y1="21" y2="14"></line></svg></button></div></div></div></a></figure></div><div class="pullquote"><p> If you have feedback to share or are interested in <a href="https://www.devopsbulletin.com/p/sponsorships">sponsoring</a> this newsletter, feel free to reach out via <em><a href="https://www.linkedin.com/in/mlabouardy/">LinkedIn</a></em> or simply reply to this email. </p></div><div class="subscription-widget-wrap-editor" data-attrs="{&quot;url&quot;:&quot;https://www.devopsbulletin.com/subscribe?&quot;,&quot;text&quot;:&quot;Subscribe&quot;,&quot;language&quot;:&quot;en&quot;}" data-component-name="SubscribeWidgetToDOM"><div class="subscription-widget show-subscribe"><div class="preamble"><p class="cta-caption">Thanks for reading DevOps Bulletin! Subscribe for free to receive new posts and support my work.</p></div><form class="subscription-widget-subscribe"><input type="email" class="email-input" name="email" placeholder="Type your email&#8230;" tabindex="-1"><input type="submit" class="button primary" value="Subscribe"><div class="fake-input-wrapper"><div class="fake-input"></div><div class="fake-button"></div></div></form></div></div>]]></content:encoded></item><item><title><![CDATA[Digest #203: AWS 100K Credits, Scaling GitOps, Git inside Postgres and OpenClaw Security]]></title><description><![CDATA[Reducing Go agent binaries by 77% and saving 70% on S3 at petabyte scale, to automating RDS to Aurora migrations and scaling GitOps in the enterprise. Also, MCP server security and scaling GitOps.]]></description><link>https://www.devopsbulletin.com/p/digest-203-aws-100k-credits-scaling</link><guid isPermaLink="false">https://www.devopsbulletin.com/p/digest-203-aws-100k-credits-scaling</guid><dc:creator><![CDATA[Mohamed Labouardy]]></dc:creator><pubDate>Fri, 27 Feb 2026 16:37:30 GMT</pubDate><enclosure url="https://substackcdn.com/image/youtube/w_728,c_limit/GQ6piqfwr5c" length="0" type="image/jpeg"/><content:encoded><![CDATA[<div class="captioned-image-container"><figure><a class="image-link image2" target="_blank" href="https://hubs.li/Q044vwL-0" data-component-name="Image2ToDOM"><div class="image2-inset"><picture><source type="image/webp" srcset="https://substackcdn.com/image/fetch/$s_!e7pv!,w_424,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fcecb7aea-d306-4ac3-98b1-f33ec3c0cb99_268x77.png 424w, https://substackcdn.com/image/fetch/$s_!e7pv!,w_848,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fcecb7aea-d306-4ac3-98b1-f33ec3c0cb99_268x77.png 848w, https://substackcdn.com/image/fetch/$s_!e7pv!,w_1272,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fcecb7aea-d306-4ac3-98b1-f33ec3c0cb99_268x77.png 1272w, https://substackcdn.com/image/fetch/$s_!e7pv!,w_1456,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fcecb7aea-d306-4ac3-98b1-f33ec3c0cb99_268x77.png 1456w" sizes="100vw"><img src="https://substackcdn.com/image/fetch/$s_!e7pv!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fcecb7aea-d306-4ac3-98b1-f33ec3c0cb99_268x77.png" width="228" height="65.50746268656717" data-attrs="{&quot;src&quot;:&quot;https://substack-post-media.s3.amazonaws.com/public/images/cecb7aea-d306-4ac3-98b1-f33ec3c0cb99_268x77.png&quot;,&quot;srcNoWatermark&quot;:null,&quot;fullscreen&quot;:null,&quot;imageSize&quot;:null,&quot;height&quot;:77,&quot;width&quot;:268,&quot;resizeWidth&quot;:228,&quot;bytes&quot;:9407,&quot;alt&quot;:null,&quot;title&quot;:null,&quot;type&quot;:&quot;image/png&quot;,&quot;href&quot;:&quot;https://hubs.li/Q044vwL-0&quot;,&quot;belowTheFold&quot;:false,&quot;topImage&quot;:true,&quot;internalRedirect&quot;:&quot;https://www.devopsbulletin.com/i/189230465?img=https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fcecb7aea-d306-4ac3-98b1-f33ec3c0cb99_268x77.png&quot;,&quot;isProcessing&quot;:false,&quot;align&quot;:null,&quot;offset&quot;:false}" class="sizing-normal" alt="" srcset="https://substackcdn.com/image/fetch/$s_!e7pv!,w_424,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fcecb7aea-d306-4ac3-98b1-f33ec3c0cb99_268x77.png 424w, https://substackcdn.com/image/fetch/$s_!e7pv!,w_848,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fcecb7aea-d306-4ac3-98b1-f33ec3c0cb99_268x77.png 848w, https://substackcdn.com/image/fetch/$s_!e7pv!,w_1272,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fcecb7aea-d306-4ac3-98b1-f33ec3c0cb99_268x77.png 1272w, https://substackcdn.com/image/fetch/$s_!e7pv!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fcecb7aea-d306-4ac3-98b1-f33ec3c0cb99_268x77.png 1456w" sizes="100vw" fetchpriority="high"></picture><div></div></div></a></figure></div><p>Welcome to this week&#8217;s edition of the DevOps Bulletin.</p><p>Big news this week includes an exclusive offer for DevOps Bulletin subscribers: up to <a href="https://hubs.li/Q044vwL-0">$100k in free credits</a> for building or scaling your stack on AWS. Our curated stories share how Datadog reduced its Go agent binaries by 77%, Netflix&#8217;s journey migrating RDS Postgres workloads to Aurora, enterprise strategies for scaling GitOps, rendering 100 million pixels per second over SSH, FinOps tips to reduce 70% of S3 cost, running Git inside Postgres, and why securing OpenClaw may be the wrong problem to solve.</p><p>Tutorials this week go deep into Postgres fundamentals, Docker BuildKit, and hard lessons from real-world SQL queries, as well as building Terraform review agents with Gemini, designing secure agent skills and MCP servers, and deploying a production-ready, scalable code modernization platform. </p><p>The open source picks include an autonomous Claude powered multi agent system that turns Linear issues into reviewed pull requests, a PostgreSQL proxy with connection pooling and sharding, a terminal dashboard for managing cron jobs over SSH, a VSCode extension that visualizes SQL lineage and dependencies, a local first AI agent task manager, and an S3 native Kafka compatible event streaming server built as a single Rust binary.</p><p>All this and more in this week&#8217;s DevOps Bulletin, don&#8217;t miss out!</p><h4>Get up to $100k in FREE AWS credits</h4><div class="captioned-image-container"><figure><a class="image-link image2 is-viewable-img" target="_blank" href="https://hubs.li/Q044vwL-0" data-component-name="Image2ToDOM"><div class="image2-inset"><picture><source type="image/webp" srcset="https://substackcdn.com/image/fetch/$s_!H1jZ!,w_424,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fc754b3b9-5bae-4e4e-82a3-0368aaf0825e_2560x1280.png 424w, https://substackcdn.com/image/fetch/$s_!H1jZ!,w_848,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fc754b3b9-5bae-4e4e-82a3-0368aaf0825e_2560x1280.png 848w, https://substackcdn.com/image/fetch/$s_!H1jZ!,w_1272,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fc754b3b9-5bae-4e4e-82a3-0368aaf0825e_2560x1280.png 1272w, https://substackcdn.com/image/fetch/$s_!H1jZ!,w_1456,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fc754b3b9-5bae-4e4e-82a3-0368aaf0825e_2560x1280.png 1456w" sizes="100vw"><img src="https://substackcdn.com/image/fetch/$s_!H1jZ!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fc754b3b9-5bae-4e4e-82a3-0368aaf0825e_2560x1280.png" width="1456" height="728" data-attrs="{&quot;src&quot;:&quot;https://substack-post-media.s3.amazonaws.com/public/images/c754b3b9-5bae-4e4e-82a3-0368aaf0825e_2560x1280.png&quot;,&quot;srcNoWatermark&quot;:null,&quot;fullscreen&quot;:null,&quot;imageSize&quot;:null,&quot;height&quot;:728,&quot;width&quot;:1456,&quot;resizeWidth&quot;:null,&quot;bytes&quot;:1109338,&quot;alt&quot;:null,&quot;title&quot;:null,&quot;type&quot;:&quot;image/png&quot;,&quot;href&quot;:&quot;https://hubs.li/Q044vwL-0&quot;,&quot;belowTheFold&quot;:false,&quot;topImage&quot;:false,&quot;internalRedirect&quot;:&quot;https://www.devopsbulletin.com/i/189230465?img=https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fc754b3b9-5bae-4e4e-82a3-0368aaf0825e_2560x1280.png&quot;,&quot;isProcessing&quot;:false,&quot;align&quot;:null,&quot;offset&quot;:false}" class="sizing-normal" alt="" srcset="https://substackcdn.com/image/fetch/$s_!H1jZ!,w_424,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fc754b3b9-5bae-4e4e-82a3-0368aaf0825e_2560x1280.png 424w, https://substackcdn.com/image/fetch/$s_!H1jZ!,w_848,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fc754b3b9-5bae-4e4e-82a3-0368aaf0825e_2560x1280.png 848w, https://substackcdn.com/image/fetch/$s_!H1jZ!,w_1272,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fc754b3b9-5bae-4e4e-82a3-0368aaf0825e_2560x1280.png 1272w, https://substackcdn.com/image/fetch/$s_!H1jZ!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fc754b3b9-5bae-4e4e-82a3-0368aaf0825e_2560x1280.png 1456w" sizes="100vw"></picture><div class="image-link-expand"><div class="pencraft pc-display-flex pc-gap-8 pc-reset"><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container restack-image"><svg role="img" width="20" height="20" viewBox="0 0 20 20" fill="none" stroke-width="1.5" stroke="var(--color-fg-primary)" stroke-linecap="round" stroke-linejoin="round" xmlns="http://www.w3.org/2000/svg"><g><title></title><path d="M2.53001 7.81595C3.49179 4.73911 6.43281 2.5 9.91173 2.5C13.1684 2.5 15.9537 4.46214 17.0852 7.23684L17.6179 8.67647M17.6179 8.67647L18.5002 4.26471M17.6179 8.67647L13.6473 6.91176M17.4995 12.1841C16.5378 15.2609 13.5967 17.5 10.1178 17.5C6.86118 17.5 4.07589 15.5379 2.94432 12.7632L2.41165 11.3235M2.41165 11.3235L1.5293 15.7353M2.41165 11.3235L6.38224 13.0882"></path></g></svg></button><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container view-image"><svg xmlns="http://www.w3.org/2000/svg" width="20" height="20" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="lucide lucide-maximize2 lucide-maximize-2"><polyline points="15 3 21 3 21 9"></polyline><polyline points="9 21 3 21 3 15"></polyline><line x1="21" x2="14" y1="3" y2="10"></line><line x1="3" x2="10" y1="21" y2="14"></line></svg></button></div></div></div></a></figure></div><p>How to reduce your AWS expenses without compromising your product's potential? <strong><a href="https://hubs.li/Q044vwL-0">Spendbase</a></strong>, in partnership with AWS, offers up to $100k in free AWS credits for DevOps Bulletin subscribers. The application process is simple: new &amp; existing AWS users are eligible (even if you've received credits before). Everything you need is a startup under 10 years old with a corporate website.</p><p><strong><a href="https://hubs.li/Q044vwL-0">Claim your credits now!</a></strong></p><h4>Newsworthy stories</h4><ul><li><p><strong><a href="https://www.datadoghq.com/blog/engineering/agent-go-binaries/">How we reduced the size of our Agent Go binaries by up to 77%</a></strong></p></li><li><p><strong><a href="https://netflixtechblog.com/automating-rds-postgres-to-aurora-postgres-migration-261ca045447f">Automating RDS Postgres to Aurora Postgres migration</a></strong></p></li><li><p><strong><a href="https://platformengineering.org/blog/how-to-scale-gitops-in-the-enterprise">How to scale GitOps in the enterprise</a></strong></p></li><li><p><strong><a href="https://eieio.games/blog/secure-massively-multiplayer-snake/">Rendering 100M pixels a second over SSH</a></strong></p></li><li><p><strong><a href="https://aws.amazon.com/blogs/aws-cloud-financial-management/petabyte-scale-cost-optimization-how-a-video-hosting-platform-saved-70-on-s3/">How a video hosting platform saved 70% on S3</a></strong></p></li><li><p><strong><a href="https://nesbitt.io/2026/02/26/git-in-postgres.html">Git in Postgres</a></strong></p></li><li><p><strong><a href="https://www.aikido.dev/blog/why-trying-to-secure-openclaw-is-ridiculous">Why is trying to secure OpenClaw ridiculous</a></strong></p></li></ul><h4>Tutorials of the week</h4><ul><li><p><strong><a href="https://youjustneedpostgres.com/">You just need Postgres</a></strong></p></li><li><p><strong><a href="https://github.com/vercel-labs/just-bash">Bash for agents</a></strong></p></li><li><p><strong><a href="https://medium.com/@m0ps/beyond-the-fix-building-an-in-house-terraform-review-agent-with-gemini-cli-2632f2bcaf73">Building an in-house Terraform review agent with Gemini CLI</a></strong></p></li><li><p><strong><a href="https://aws.amazon.com/blogs/devops/building-a-scalable-code-modernization-solution-with-aws-transform-custom/">Building a scalable code modernization solution with AWS Transform custom</a></strong></p></li><li><p><strong><a href="https://tuananh.net/2026/02/25/buildkit-docker-hidden-gem/">Docker&#8217;s hidden gem that can build almost anything</a></strong></p></li><li><p><strong><a href="https://medium.com/@syedmuhammad1422/from-ctes-to-collation-hard-lessons-from-a-real-sql-query-10a00cc91d1d">Hard lessons from a real SQL query</a></strong></p></li><li><p><strong><a href="https://www.praetorian.com/blog/mcp-server-security-the-hidden-ai-attack-surface">MCP server security</a></strong></p></li></ul><div class="pullquote"><p><strong>Enjoying the Bulletin?</strong> Consider supporting it with a <a href="https://www.devopsbulletin.com/subscribe">paid subscription</a>. You&#8217;ll keep the free Friday issues <em>and</em> get extras like bonus deep-dives, templates, and the full archive.</p></div><ul><li><p><strong><a href="https://engineering.block.xyz/blog/3-principles-for-designing-agent-skills">3 principles for designing agent skills</a></strong></p></li><li><p><strong><a href="https://aws.amazon.com/blogs/containers/migrate-amazon-ec2-to-ecs-express-mode-using-kiro-cli-and-mcp-servers/">Migrate Amazon EC2 to ECS Express Mode using Kiro CLI and MCP servers</a></strong></p></li><li><p><strong><a href="https://www.cncf.io/blog/2026/02/24/making-harbor-production-ready-essential-considerations-for-deployment/">Making Harbor production-ready</a></strong></p></li></ul><h4>Videos of the week</h4><div id="youtube2-GQ6piqfwr5c" class="youtube-wrap" data-attrs="{&quot;videoId&quot;:&quot;GQ6piqfwr5c&quot;,&quot;startTime&quot;:null,&quot;endTime&quot;:null}" data-component-name="Youtube2ToDOM"><div class="youtube-inner"><iframe src="https://www.youtube-nocookie.com/embed/GQ6piqfwr5c?rel=0&amp;autoplay=0&amp;showinfo=0&amp;enablejsapi=0" frameborder="0" loading="lazy" gesture="media" allow="autoplay; fullscreen" allowautoplay="true" allowfullscreen="true" width="728" height="409"></iframe></div></div><div id="youtube2-vtWMgVCMsx8" class="youtube-wrap" data-attrs="{&quot;videoId&quot;:&quot;vtWMgVCMsx8&quot;,&quot;startTime&quot;:null,&quot;endTime&quot;:null}" data-component-name="Youtube2ToDOM"><div class="youtube-inner"><iframe src="https://www.youtube-nocookie.com/embed/vtWMgVCMsx8?rel=0&amp;autoplay=0&amp;showinfo=0&amp;enablejsapi=0" frameborder="0" loading="lazy" gesture="media" allow="autoplay; fullscreen" allowautoplay="true" allowfullscreen="true" width="728" height="409"></iframe></div></div><h4>Projects of the week</h4><ul><li><p>An autonomous <strong><a href="https://github.com/Intrect-io/OpenSwarm">Claude-powered multi-agent</a></strong> system that turns Linear issues into reviewed, tested, and merged pull requests.</p></li><li><p><strong><a href="https://github.com/antoniorodr/cronboard">Terminal dashboard</a></strong> for managing and scheduling local and remote cron jobs over SSH with validation and autocompletion.</p></li><li><p><strong><a href="https://github.com/buva7687/sql-crack">VSCode extension</a></strong> that turns SQL queries and whole workspaces into interactive execution flow, lineage, and dependency diagrams.</p></li><li><p><strong><a href="https://github.com/pgdogdev/pgdog">PostgreSQL proxy</a></strong> that provides connection pooling, query-aware load balancing, health checks, and built-in database sharding.</p></li><li><p>Local first AI agent <strong><a href="https://github.com/MeisnerDan/mission-control">task manager</a></strong> that organizes, prioritizes, and orchestrates multiple coding agents with a dashboard.</p></li><li><p>S3 native Kafka-compatible <strong><a href="https://github.com/gbram1/streamhouse">event streaming server</a></strong> that stores data directly in object storage with a single Rust binary and no broker fleet.</p></li></ul><h4>Meme of the week</h4><div class="captioned-image-container"><figure><a class="image-link image2 is-viewable-img" target="_blank" href="https://substackcdn.com/image/fetch/$s_!Get7!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F2b747667-4e54-4d54-a872-144795864ec0_1343x2109.png" data-component-name="Image2ToDOM"><div class="image2-inset"><picture><source type="image/webp" srcset="https://substackcdn.com/image/fetch/$s_!Get7!,w_424,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F2b747667-4e54-4d54-a872-144795864ec0_1343x2109.png 424w, https://substackcdn.com/image/fetch/$s_!Get7!,w_848,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F2b747667-4e54-4d54-a872-144795864ec0_1343x2109.png 848w, https://substackcdn.com/image/fetch/$s_!Get7!,w_1272,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F2b747667-4e54-4d54-a872-144795864ec0_1343x2109.png 1272w, https://substackcdn.com/image/fetch/$s_!Get7!,w_1456,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F2b747667-4e54-4d54-a872-144795864ec0_1343x2109.png 1456w" sizes="100vw"><img src="https://substackcdn.com/image/fetch/$s_!Get7!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F2b747667-4e54-4d54-a872-144795864ec0_1343x2109.png" width="400" height="628.1459419210722" data-attrs="{&quot;src&quot;:&quot;https://substack-post-media.s3.amazonaws.com/public/images/2b747667-4e54-4d54-a872-144795864ec0_1343x2109.png&quot;,&quot;srcNoWatermark&quot;:null,&quot;fullscreen&quot;:null,&quot;imageSize&quot;:null,&quot;height&quot;:2109,&quot;width&quot;:1343,&quot;resizeWidth&quot;:400,&quot;bytes&quot;:null,&quot;alt&quot;:&quot;Every Startup Right Now&quot;,&quot;title&quot;:null,&quot;type&quot;:null,&quot;href&quot;:null,&quot;belowTheFold&quot;:true,&quot;topImage&quot;:false,&quot;internalRedirect&quot;:null,&quot;isProcessing&quot;:false,&quot;align&quot;:null,&quot;offset&quot;:false}" class="sizing-normal" alt="Every Startup Right Now" title="Every Startup Right Now" srcset="https://substackcdn.com/image/fetch/$s_!Get7!,w_424,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F2b747667-4e54-4d54-a872-144795864ec0_1343x2109.png 424w, https://substackcdn.com/image/fetch/$s_!Get7!,w_848,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F2b747667-4e54-4d54-a872-144795864ec0_1343x2109.png 848w, https://substackcdn.com/image/fetch/$s_!Get7!,w_1272,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F2b747667-4e54-4d54-a872-144795864ec0_1343x2109.png 1272w, https://substackcdn.com/image/fetch/$s_!Get7!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F2b747667-4e54-4d54-a872-144795864ec0_1343x2109.png 1456w" sizes="100vw" loading="lazy"></picture><div class="image-link-expand"><div class="pencraft pc-display-flex pc-gap-8 pc-reset"><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container restack-image"><svg role="img" width="20" height="20" viewBox="0 0 20 20" fill="none" stroke-width="1.5" stroke="var(--color-fg-primary)" stroke-linecap="round" stroke-linejoin="round" xmlns="http://www.w3.org/2000/svg"><g><title></title><path d="M2.53001 7.81595C3.49179 4.73911 6.43281 2.5 9.91173 2.5C13.1684 2.5 15.9537 4.46214 17.0852 7.23684L17.6179 8.67647M17.6179 8.67647L18.5002 4.26471M17.6179 8.67647L13.6473 6.91176M17.4995 12.1841C16.5378 15.2609 13.5967 17.5 10.1178 17.5C6.86118 17.5 4.07589 15.5379 2.94432 12.7632L2.41165 11.3235M2.41165 11.3235L1.5293 15.7353M2.41165 11.3235L6.38224 13.0882"></path></g></svg></button><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container view-image"><svg xmlns="http://www.w3.org/2000/svg" width="20" height="20" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="lucide lucide-maximize2 lucide-maximize-2"><polyline points="15 3 21 3 21 9"></polyline><polyline points="9 21 3 21 3 15"></polyline><line x1="21" x2="14" y1="3" y2="10"></line><line x1="3" x2="10" y1="21" y2="14"></line></svg></button></div></div></div></a></figure></div><div class="pullquote"><p> If you have feedback to share or are interested in <a href="https://www.devopsbulletin.com/p/sponsorships">sponsoring</a> this newsletter, feel free to reach out via <em><a href="https://www.linkedin.com/in/mlabouardy/">LinkedIn</a></em> or simply reply to this email. </p></div><div class="subscription-widget-wrap-editor" data-attrs="{&quot;url&quot;:&quot;https://www.devopsbulletin.com/subscribe?&quot;,&quot;text&quot;:&quot;Subscribe&quot;,&quot;language&quot;:&quot;en&quot;}" data-component-name="SubscribeWidgetToDOM"><div class="subscription-widget show-subscribe"><div class="preamble"><p class="cta-caption">Thanks for reading DevOps Bulletin! Subscribe for free to receive new posts and support my work.</p></div><form class="subscription-widget-subscribe"><input type="email" class="email-input" name="email" placeholder="Type your email&#8230;" tabindex="-1"><input type="submit" class="button primary" value="Subscribe"><div class="fake-input-wrapper"><div class="fake-input"></div><div class="fake-button"></div></div></form></div></div>]]></content:encoded></item><item><title><![CDATA[Digest #202: Terraform Claude Skills, FinOps FOCUS 1.2, AI Fatigue for Cloud Engineers, and MCP for Web Data Extraction]]></title><description><![CDATA[Gaps in FOCUS 1.2 billing data, the truth about AI fatigue for cloud engineers, and the three AI skills that matter most. Plus, latest DevOps, FinOps, cloud security, Postgres, Docker, and projects.]]></description><link>https://www.devopsbulletin.com/p/digest-202-terraform-claude-skills</link><guid isPermaLink="false">https://www.devopsbulletin.com/p/digest-202-terraform-claude-skills</guid><dc:creator><![CDATA[Mohamed Labouardy]]></dc:creator><pubDate>Fri, 20 Feb 2026 16:28:30 GMT</pubDate><enclosure url="https://substackcdn.com/image/youtube/w_728,c_limit/yP8ELodU0zs" length="0" type="image/jpeg"/><content:encoded><![CDATA[<div class="captioned-image-container"><figure><a class="image-link image2" target="_blank" href="https://brightdata.com/ai/mcp-server?utm_source=brand&amp;utm_campaign=brnd-mkt_newsletter_devopsbulletin" data-component-name="Image2ToDOM"><div class="image2-inset"><picture><source type="image/webp" srcset="https://substackcdn.com/image/fetch/$s_!Udo0!,w_424,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fd08ee2c2-6f1c-4d62-93e0-236cd2673cc1_268x85.png 424w, https://substackcdn.com/image/fetch/$s_!Udo0!,w_848,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fd08ee2c2-6f1c-4d62-93e0-236cd2673cc1_268x85.png 848w, https://substackcdn.com/image/fetch/$s_!Udo0!,w_1272,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fd08ee2c2-6f1c-4d62-93e0-236cd2673cc1_268x85.png 1272w, https://substackcdn.com/image/fetch/$s_!Udo0!,w_1456,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fd08ee2c2-6f1c-4d62-93e0-236cd2673cc1_268x85.png 1456w" sizes="100vw"><img src="https://substackcdn.com/image/fetch/$s_!Udo0!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fd08ee2c2-6f1c-4d62-93e0-236cd2673cc1_268x85.png" width="268" height="85" data-attrs="{&quot;src&quot;:&quot;https://substack-post-media.s3.amazonaws.com/public/images/d08ee2c2-6f1c-4d62-93e0-236cd2673cc1_268x85.png&quot;,&quot;srcNoWatermark&quot;:null,&quot;fullscreen&quot;:null,&quot;imageSize&quot;:null,&quot;height&quot;:85,&quot;width&quot;:268,&quot;resizeWidth&quot;:null,&quot;bytes&quot;:10218,&quot;alt&quot;:null,&quot;title&quot;:null,&quot;type&quot;:&quot;image/png&quot;,&quot;href&quot;:&quot;https://brightdata.com/ai/mcp-server?utm_source=brand&amp;utm_campaign=brnd-mkt_newsletter_devopsbulletin&quot;,&quot;belowTheFold&quot;:false,&quot;topImage&quot;:true,&quot;internalRedirect&quot;:&quot;https://www.devopsbulletin.com/i/188620508?img=https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fd08ee2c2-6f1c-4d62-93e0-236cd2673cc1_268x85.png&quot;,&quot;isProcessing&quot;:false,&quot;align&quot;:null,&quot;offset&quot;:false}" class="sizing-normal" alt="" srcset="https://substackcdn.com/image/fetch/$s_!Udo0!,w_424,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fd08ee2c2-6f1c-4d62-93e0-236cd2673cc1_268x85.png 424w, https://substackcdn.com/image/fetch/$s_!Udo0!,w_848,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fd08ee2c2-6f1c-4d62-93e0-236cd2673cc1_268x85.png 848w, https://substackcdn.com/image/fetch/$s_!Udo0!,w_1272,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fd08ee2c2-6f1c-4d62-93e0-236cd2673cc1_268x85.png 1272w, https://substackcdn.com/image/fetch/$s_!Udo0!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fd08ee2c2-6f1c-4d62-93e0-236cd2673cc1_268x85.png 1456w" sizes="100vw" fetchpriority="high"></picture><div></div></div></a></figure></div><p>Welcome to this week&#8217;s edition of the DevOps Bulletin.</p><p>In this week&#8217;s news, we unpack the hidden friction inside FOCUS 1.2 and what happens when a clean FinOps specification collides with messy real b&#8230;</p>
      <p>
          <a href="https://www.devopsbulletin.com/p/digest-202-terraform-claude-skills">
              Read more
          </a>
      </p>
   ]]></content:encoded></item><item><title><![CDATA[Digest #201: Heroku Shutdown, GitLab at Scale, DDoS with Golang, and AI Agents Security]]></title><description><![CDATA[Heroku&#8217;s effective shutdown, how GitLab deploys at massive scale, why Postgres postmaster doesn&#8217;t scale, scaling Kubernetes from zero, AWS Cost Categories, Terraform PR reviews and AI agents security.]]></description><link>https://www.devopsbulletin.com/p/digest-201-heroku-shutdown-gitlab</link><guid isPermaLink="false">https://www.devopsbulletin.com/p/digest-201-heroku-shutdown-gitlab</guid><dc:creator><![CDATA[Mohamed Labouardy]]></dc:creator><pubDate>Fri, 13 Feb 2026 17:13:53 GMT</pubDate><enclosure url="https://substack-post-media.s3.amazonaws.com/public/images/0d439215-a74e-4062-8e85-16417b0ad191_697x500.png" length="0" type="image/jpeg"/><content:encoded><![CDATA[<p>Welcome to this week&#8217;s edition of the DevOps Bulletin.</p><p>In this week&#8217;s news, we look at what Heroku&#8217;s &#8220;sustaining engineering&#8221; announcement really means for teams still running production workloads the&#8230;</p>
      <p>
          <a href="https://www.devopsbulletin.com/p/digest-201-heroku-shutdown-gitlab">
              Read more
          </a>
      </p>
   ]]></content:encoded></item><item><title><![CDATA[Digest #200: Kubernetes in Container, Git Shitstorm, $5M Data Centers and SDLC Threat Framework]]></title><description><![CDATA[Why GitHub Actions is slowing teams down, what it really takes to run a $5M private data center. We also break down a new SDLC threat framework, why AI-driven SRE needs system topology, real-world Terraform practices at Preply, and deep technical guides on Kubernetes, PostgreSQL, supply-chain security, and production reliability.]]></description><link>https://www.devopsbulletin.com/p/digest-200-kubernetes-in-container</link><guid isPermaLink="false">https://www.devopsbulletin.com/p/digest-200-kubernetes-in-container</guid><dc:creator><![CDATA[Mohamed Labouardy]]></dc:creator><pubDate>Fri, 06 Feb 2026 16:18:17 GMT</pubDate><enclosure url="https://substack-post-media.s3.amazonaws.com/public/images/041b1c16-3f2c-461c-bd45-b85f63ea03aa_675x499.jpeg" length="0" type="image/jpeg"/><content:encoded><![CDATA[<p>Welcome to this week&#8217;s edition of the DevOps Bulletin.</p><p>In this week&#8217;s news, we look at why GitHub Actions is becoming a serious productivity bottleneck for many teams, what it actually takes to own a &#8230;</p>
      <p>
          <a href="https://www.devopsbulletin.com/p/digest-200-kubernetes-in-container">
              Read more
          </a>
      </p>
   ]]></content:encoded></item><item><title><![CDATA[Digest #199: Claude Skill for Terraform, Google SRE with Gemini, Postgres Tips and Moltbot Security]]></title><description><![CDATA[Why SRE may be replacing traditional software engineering, and how teams are improving Docker, Kubernetes, and cloud cost efficiency in production. We also cover Postgres best practices for AI agents.]]></description><link>https://www.devopsbulletin.com/p/digest-199-claude-skill-for-terraform</link><guid isPermaLink="false">https://www.devopsbulletin.com/p/digest-199-claude-skill-for-terraform</guid><dc:creator><![CDATA[Mohamed Labouardy]]></dc:creator><pubDate>Fri, 30 Jan 2026 20:12:17 GMT</pubDate><enclosure url="https://substackcdn.com/image/youtube/w_728,c_limit/kSno1-xOjwI" length="0" type="image/jpeg"/><content:encoded><![CDATA[<div class="captioned-image-container"><figure><a class="image-link image2" target="_blank" href="https://events.cyberhaven.com/winter-2026-launch/?utm_campaign=wbn-2026-02-03-product-launch-winter-2026&amp;utm_source=passionfroot&amp;utm_medium=paid-influencers&amp;utm_content=devopsbulletin" data-component-name="Image2ToDOM"><div class="image2-inset"><picture><source type="image/webp" srcset="https://substackcdn.com/image/fetch/$s_!Ag2e!,w_424,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fb0198cdc-2b06-4a9c-8a44-322cb3f843dd_268x87.png 424w, https://substackcdn.com/image/fetch/$s_!Ag2e!,w_848,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fb0198cdc-2b06-4a9c-8a44-322cb3f843dd_268x87.png 848w, https://substackcdn.com/image/fetch/$s_!Ag2e!,w_1272,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fb0198cdc-2b06-4a9c-8a44-322cb3f843dd_268x87.png 1272w, https://substackcdn.com/image/fetch/$s_!Ag2e!,w_1456,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fb0198cdc-2b06-4a9c-8a44-322cb3f843dd_268x87.png 1456w" sizes="100vw"><img src="https://substackcdn.com/image/fetch/$s_!Ag2e!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fb0198cdc-2b06-4a9c-8a44-322cb3f843dd_268x87.png" width="268" height="87" data-attrs="{&quot;src&quot;:&quot;https://substack-post-media.s3.amazonaws.com/public/images/b0198cdc-2b06-4a9c-8a44-322cb3f843dd_268x87.png&quot;,&quot;srcNoWatermark&quot;:null,&quot;fullscreen&quot;:null,&quot;imageSize&quot;:null,&quot;height&quot;:87,&quot;width&quot;:268,&quot;resizeWidth&quot;:null,&quot;bytes&quot;:8764,&quot;alt&quot;:null,&quot;title&quot;:null,&quot;type&quot;:&quot;image/png&quot;,&quot;href&quot;:&quot;https://events.cyberhaven.com/winter-2026-launch/?utm_campaign=wbn-2026-02-03-product-launch-winter-2026&amp;utm_source=passionfroot&amp;utm_medium=paid-influencers&amp;utm_content=devopsbulletin&quot;,&quot;belowTheFold&quot;:false,&quot;topImage&quot;:true,&quot;internalRedirect&quot;:&quot;https://www.devopsbulletin.com/i/186314049?img=https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fb0198cdc-2b06-4a9c-8a44-322cb3f843dd_268x87.png&quot;,&quot;isProcessing&quot;:false,&quot;align&quot;:null,&quot;offset&quot;:false}" class="sizing-normal" alt="" srcset="https://substackcdn.com/image/fetch/$s_!Ag2e!,w_424,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fb0198cdc-2b06-4a9c-8a44-322cb3f843dd_268x87.png 424w, https://substackcdn.com/image/fetch/$s_!Ag2e!,w_848,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fb0198cdc-2b06-4a9c-8a44-322cb3f843dd_268x87.png 848w, https://substackcdn.com/image/fetch/$s_!Ag2e!,w_1272,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fb0198cdc-2b06-4a9c-8a44-322cb3f843dd_268x87.png 1272w, https://substackcdn.com/image/fetch/$s_!Ag2e!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fb0198cdc-2b06-4a9c-8a44-322cb3f843dd_268x87.png 1456w" sizes="100vw" fetchpriority="high"></picture><div></div></div></a></figure></div><p>Welcome to this week&#8217;s edition of the DevOps Bulletin.</p><p>We open with a growing problem security teams are quietly struggling with. AI tools are <a href="https://events.cyberhaven.com/winter-2026-launch/?utm_campaign=wbn-2026-02-03-product-launch-winter-2026&amp;utm_source=passionfroot&amp;utm_medium=paid-influencers&amp;utm_content=devopsbulletin">moving sensitive data</a> across SaaS and internal systems in&#8230;</p>
      <p>
          <a href="https://www.devopsbulletin.com/p/digest-199-claude-skill-for-terraform">
              Read more
          </a>
      </p>
   ]]></content:encoded></item><item><title><![CDATA[Digest #198: Kubernetes Security, Scaling Postgres at OpenAI and AI in Infra-as-Code]]></title><description><![CDATA[Scaling PostgreSQL to millions of users, new attack paths via GitHub Actions runners, Docker&#8217;s shifting role, and why some teams are ditching Redis for Postgres. Open-source tools worth trying.]]></description><link>https://www.devopsbulletin.com/p/digest-198-kubernetes-security-scaling</link><guid isPermaLink="false">https://www.devopsbulletin.com/p/digest-198-kubernetes-security-scaling</guid><dc:creator><![CDATA[Mohamed Labouardy]]></dc:creator><pubDate>Fri, 23 Jan 2026 15:27:20 GMT</pubDate><enclosure url="https://substackcdn.com/image/youtube/w_728,c_limit/odP153inZUo" length="0" type="image/jpeg"/><content:encoded><![CDATA[<div class="captioned-image-container"><figure><a class="image-link image2" target="_blank" href="https://events.iacconf.com/spotlight-ai-iac-january-2026/?refid=DevOps+Bulletin&amp;utm_campaign=27865146-FY25+-+WW+-+Virtual+Event+-+IaCConf+Spotlight+AI+January+2026&amp;utm_source=devopsbulletin&amp;utm_medium=paid_newsletter&amp;utm_content=IaCConf+Spotlight+AI+in+IaC" data-component-name="Image2ToDOM"><div class="image2-inset"><picture><source type="image/webp" srcset="https://substackcdn.com/image/fetch/$s_!PnLK!,w_424,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fcff0333a-2cd3-4d6a-80d0-b3b31198bbbc_268x106.png 424w, https://substackcdn.com/image/fetch/$s_!PnLK!,w_848,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fcff0333a-2cd3-4d6a-80d0-b3b31198bbbc_268x106.png 848w, https://substackcdn.com/image/fetch/$s_!PnLK!,w_1272,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fcff0333a-2cd3-4d6a-80d0-b3b31198bbbc_268x106.png 1272w, https://substackcdn.com/image/fetch/$s_!PnLK!,w_1456,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fcff0333a-2cd3-4d6a-80d0-b3b31198bbbc_268x106.png 1456w" sizes="100vw"><img src="https://substackcdn.com/image/fetch/$s_!PnLK!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fcff0333a-2cd3-4d6a-80d0-b3b31198bbbc_268x106.png" width="210" height="83.05970149253731" data-attrs="{&quot;src&quot;:&quot;https://substack-post-media.s3.amazonaws.com/public/images/cff0333a-2cd3-4d6a-80d0-b3b31198bbbc_268x106.png&quot;,&quot;srcNoWatermark&quot;:null,&quot;fullscreen&quot;:null,&quot;imageSize&quot;:null,&quot;height&quot;:106,&quot;width&quot;:268,&quot;resizeWidth&quot;:210,&quot;bytes&quot;:8760,&quot;alt&quot;:null,&quot;title&quot;:null,&quot;type&quot;:&quot;image/png&quot;,&quot;href&quot;:&quot;https://events.iacconf.com/spotlight-ai-iac-january-2026/?refid=DevOps+Bulletin&amp;utm_campaign=27865146-FY25+-+WW+-+Virtual+Event+-+IaCConf+Spotlight+AI+January+2026&amp;utm_source=devopsbulletin&amp;utm_medium=paid_newsletter&amp;utm_content=IaCConf+Spotlight+AI+in+IaC&quot;,&quot;belowTheFold&quot;:false,&quot;topImage&quot;:true,&quot;internalRedirect&quot;:&quot;https://www.devopsbulletin.com/i/183902896?img=https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fcff0333a-2cd3-4d6a-80d0-b3b31198bbbc_268x106.png&quot;,&quot;isProcessing&quot;:false,&quot;align&quot;:null,&quot;offset&quot;:false}" class="sizing-normal" alt="" srcset="https://substackcdn.com/image/fetch/$s_!PnLK!,w_424,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fcff0333a-2cd3-4d6a-80d0-b3b31198bbbc_268x106.png 424w, https://substackcdn.com/image/fetch/$s_!PnLK!,w_848,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fcff0333a-2cd3-4d6a-80d0-b3b31198bbbc_268x106.png 848w, https://substackcdn.com/image/fetch/$s_!PnLK!,w_1272,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fcff0333a-2cd3-4d6a-80d0-b3b31198bbbc_268x106.png 1272w, https://substackcdn.com/image/fetch/$s_!PnLK!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fcff0333a-2cd3-4d6a-80d0-b3b31198bbbc_268x106.png 1456w" sizes="100vw" fetchpriority="high"></picture><div></div></div></a></figure></div><p>Welcome to this week&#8217;s edition of the DevOps Bulletin.</p><p>We&#8217;re kicking off with AI and Infrastructure-as-Code. <a href="https://events.iacconf.com/spotlight-ai-iac-january-2026/?refid=DevOps+Bulletin&amp;utm_campaign=27865146-FY25+-+WW+-+Virtual+Event+-+IaCConf+Spotlight+AI+January+2026&amp;utm_source=devopsbulletin&amp;utm_medium=paid_newsletter&amp;utm_content=IaCConf+Spotlight+AI+in+IaC">IaCConf Spotlight on January 28</a> brings engineers together to share how they&#8217;re using AI in &#8230;</p>
      <p>
          <a href="https://www.devopsbulletin.com/p/digest-198-kubernetes-security-scaling">
              Read more
          </a>
      </p>
   ]]></content:encoded></item><item><title><![CDATA[Digest #197: AI in DevOps, AWS Security Vulnerabilities and Terraform Reviewer Agent]]></title><description><![CDATA[How AI is changing DevOps work, where AWS is headed in 2026, and the security risks exposed by recent n8n and CodeBuild vulnerabilities. AI SRE observability, and open-source tools for security.]]></description><link>https://www.devopsbulletin.com/p/digest-197-ai-in-devops-aws-security</link><guid isPermaLink="false">https://www.devopsbulletin.com/p/digest-197-ai-in-devops-aws-security</guid><dc:creator><![CDATA[Mohamed Labouardy]]></dc:creator><pubDate>Fri, 16 Jan 2026 15:15:37 GMT</pubDate><enclosure url="https://substackcdn.com/image/fetch/$s_!tcAS!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F070d121d-a1b7-4002-a218-b456c28ceb5c_1999x1125.webp" length="0" type="image/jpeg"/><content:encoded><![CDATA[<div class="captioned-image-container"><figure><a class="image-link image2" target="_blank" href="https://events.iacconf.com/spotlight-ai-iac-january-2026/?refid=DevOps+Bulletin&amp;utm_campaign=27865146-FY25+-+WW+-+Virtual+Event+-+IaCConf+Spotlight+AI+January+2026&amp;utm_source=devopsbulletin&amp;utm_medium=paid_newsletter&amp;utm_content=AI+isn%E2%80%99t+replacing+your+team,+It%E2%80%99s+changing+how+they+work" data-component-name="Image2ToDOM"><div class="image2-inset"><picture><source type="image/webp" srcset="https://substackcdn.com/image/fetch/$s_!PnLK!,w_424,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fcff0333a-2cd3-4d6a-80d0-b3b31198bbbc_268x106.png 424w, https://substackcdn.com/image/fetch/$s_!PnLK!,w_848,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fcff0333a-2cd3-4d6a-80d0-b3b31198bbbc_268x106.png 848w, https://substackcdn.com/image/fetch/$s_!PnLK!,w_1272,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fcff0333a-2cd3-4d6a-80d0-b3b31198bbbc_268x106.png 1272w, https://substackcdn.com/image/fetch/$s_!PnLK!,w_1456,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fcff0333a-2cd3-4d6a-80d0-b3b31198bbbc_268x106.png 1456w" sizes="100vw"><img src="https://substackcdn.com/image/fetch/$s_!PnLK!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fcff0333a-2cd3-4d6a-80d0-b3b31198bbbc_268x106.png" width="210" height="83.05970149253731" data-attrs="{&quot;src&quot;:&quot;https://substack-post-media.s3.amazonaws.com/public/images/cff0333a-2cd3-4d6a-80d0-b3b31198bbbc_268x106.png&quot;,&quot;srcNoWatermark&quot;:null,&quot;fullscreen&quot;:null,&quot;imageSize&quot;:null,&quot;height&quot;:106,&quot;width&quot;:268,&quot;resizeWidth&quot;:210,&quot;bytes&quot;:8760,&quot;alt&quot;:null,&quot;title&quot;:null,&quot;type&quot;:&quot;image/png&quot;,&quot;href&quot;:&quot;https://events.iacconf.com/spotlight-ai-iac-january-2026/?refid=DevOps+Bulletin&amp;utm_campaign=27865146-FY25+-+WW+-+Virtual+Event+-+IaCConf+Spotlight+AI+January+2026&amp;utm_source=devopsbulletin&amp;utm_medium=paid_newsletter&amp;utm_content=AI+isn%E2%80%99t+replacing+your+team,+It%E2%80%99s+changing+how+they+work&quot;,&quot;belowTheFold&quot;:false,&quot;topImage&quot;:true,&quot;internalRedirect&quot;:&quot;https://www.devopsbulletin.com/i/183902896?img=https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fcff0333a-2cd3-4d6a-80d0-b3b31198bbbc_268x106.png&quot;,&quot;isProcessing&quot;:false,&quot;align&quot;:null,&quot;offset&quot;:false}" class="sizing-normal" alt="" srcset="https://substackcdn.com/image/fetch/$s_!PnLK!,w_424,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fcff0333a-2cd3-4d6a-80d0-b3b31198bbbc_268x106.png 424w, https://substackcdn.com/image/fetch/$s_!PnLK!,w_848,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fcff0333a-2cd3-4d6a-80d0-b3b31198bbbc_268x106.png 848w, https://substackcdn.com/image/fetch/$s_!PnLK!,w_1272,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fcff0333a-2cd3-4d6a-80d0-b3b31198bbbc_268x106.png 1272w, https://substackcdn.com/image/fetch/$s_!PnLK!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fcff0333a-2cd3-4d6a-80d0-b3b31198bbbc_268x106.png 1456w" sizes="100vw" fetchpriority="high"></picture><div></div></div></a></figure></div><p>Welcome to this week&#8217;s edition of the DevOps Bulletin.</p><p>AI isn&#8217;t replacing DevOps teams, it&#8217;s changing how they work. Learn how by joining the <a href="https://events.iacconf.com/spotlight-ai-iac-january-2026/?refid=DevOps+Bulletin&amp;utm_campaign=27865146-FY25+-+WW+-+Virtual+Event+-+IaCConf+Spotlight+AI+January+2026&amp;utm_source=devopsbulletin&amp;utm_medium=paid_newsletter&amp;utm_content=AI+isn%E2%80%99t+replacing+your+team,+It%E2%80%99s+changing+how+they+work">IaCConf Spotlight</a> on January 28. In the news, AWS&#8217;s direct&#8230;</p>
      <p>
          <a href="https://www.devopsbulletin.com/p/digest-197-ai-in-devops-aws-security">
              Read more
          </a>
      </p>
   ]]></content:encoded></item><item><title><![CDATA[Digest #196: AI + IaC, AWS Security Pitfalls and DevOps Roadmap for 2026]]></title><description><![CDATA[How teams are applying AI to Infrastructure as Code, hard truths about Kubernetes and staging environments, a $1M BigQuery query fix, GitHub&#8217;s new guidance for npm maintainers, and open-source tools.]]></description><link>https://www.devopsbulletin.com/p/digest-196-ai-iac-aws-security-pitfalls</link><guid isPermaLink="false">https://www.devopsbulletin.com/p/digest-196-ai-iac-aws-security-pitfalls</guid><dc:creator><![CDATA[Mohamed Labouardy]]></dc:creator><pubDate>Fri, 09 Jan 2026 15:17:28 GMT</pubDate><enclosure url="https://substackcdn.com/image/youtube/w_728,c_limit/znRUfIaY5i4" length="0" type="image/jpeg"/><content:encoded><![CDATA[<div class="captioned-image-container"><figure><a class="image-link image2" target="_blank" href="https://events.iacconf.com/spotlight-ai-iac-january-2026/?utm_campaign=27865146-FY25+-+WW+-+Virtual+Event+-+IaCConf+Spotlight+AI+January+2026&amp;utm_source=devopsbulletin&amp;utm_medium=paid_newsletter&amp;utm_content=Building+at+the+Intersection+of+AI+and+IaC" data-component-name="Image2ToDOM"><div class="image2-inset"><picture><source type="image/webp" srcset="https://substackcdn.com/image/fetch/$s_!PnLK!,w_424,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fcff0333a-2cd3-4d6a-80d0-b3b31198bbbc_268x106.png 424w, https://substackcdn.com/image/fetch/$s_!PnLK!,w_848,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fcff0333a-2cd3-4d6a-80d0-b3b31198bbbc_268x106.png 848w, https://substackcdn.com/image/fetch/$s_!PnLK!,w_1272,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fcff0333a-2cd3-4d6a-80d0-b3b31198bbbc_268x106.png 1272w, https://substackcdn.com/image/fetch/$s_!PnLK!,w_1456,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fcff0333a-2cd3-4d6a-80d0-b3b31198bbbc_268x106.png 1456w" sizes="100vw"><img src="https://substackcdn.com/image/fetch/$s_!PnLK!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fcff0333a-2cd3-4d6a-80d0-b3b31198bbbc_268x106.png" width="210" height="83.05970149253731" data-attrs="{&quot;src&quot;:&quot;https://substack-post-media.s3.amazonaws.com/public/images/cff0333a-2cd3-4d6a-80d0-b3b31198bbbc_268x106.png&quot;,&quot;srcNoWatermark&quot;:null,&quot;fullscreen&quot;:null,&quot;imageSize&quot;:null,&quot;height&quot;:106,&quot;width&quot;:268,&quot;resizeWidth&quot;:210,&quot;bytes&quot;:8760,&quot;alt&quot;:null,&quot;title&quot;:null,&quot;type&quot;:&quot;image/png&quot;,&quot;href&quot;:&quot;https://events.iacconf.com/spotlight-ai-iac-january-2026/?utm_campaign=27865146-FY25+-+WW+-+Virtual+Event+-+IaCConf+Spotlight+AI+January+2026&amp;utm_source=devopsbulletin&amp;utm_medium=paid_newsletter&amp;utm_content=Building+at+the+Intersection+of+AI+and+IaC&quot;,&quot;belowTheFold&quot;:false,&quot;topImage&quot;:true,&quot;internalRedirect&quot;:&quot;https://www.devopsbulletin.com/i/183902896?img=https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fcff0333a-2cd3-4d6a-80d0-b3b31198bbbc_268x106.png&quot;,&quot;isProcessing&quot;:false,&quot;align&quot;:null,&quot;offset&quot;:false}" class="sizing-normal" alt="" srcset="https://substackcdn.com/image/fetch/$s_!PnLK!,w_424,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fcff0333a-2cd3-4d6a-80d0-b3b31198bbbc_268x106.png 424w, https://substackcdn.com/image/fetch/$s_!PnLK!,w_848,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fcff0333a-2cd3-4d6a-80d0-b3b31198bbbc_268x106.png 848w, https://substackcdn.com/image/fetch/$s_!PnLK!,w_1272,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fcff0333a-2cd3-4d6a-80d0-b3b31198bbbc_268x106.png 1272w, https://substackcdn.com/image/fetch/$s_!PnLK!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fcff0333a-2cd3-4d6a-80d0-b3b31198bbbc_268x106.png 1456w" sizes="100vw" fetchpriority="high"></picture><div></div></div></a></figure></div><p>Welcome to this week&#8217;s edition of the DevOps Bulletin.</p><p>We&#8217;re kicking off with AI and Infrastructure as Code: a <a href="https://events.iacconf.com/spotlight-ai-iac-january-2026/?utm_campaign=27865146-FY25+-+WW+-+Virtual+Event+-+IaCConf+Spotlight+AI+January+2026&amp;utm_source=devopsbulletin&amp;utm_medium=paid_newsletter&amp;utm_content=Building+at+the+Intersection+of+AI+and+IaC">spotlight event</a> on January 28 will show how platform and DevOps teams are using AI for re&#8230;</p>
      <p>
          <a href="https://www.devopsbulletin.com/p/digest-196-ai-iac-aws-security-pitfalls">
              Read more
          </a>
      </p>
   ]]></content:encoded></item><item><title><![CDATA[Digest #195: Tech in 2026, SRE Agent with Claude and Kubernetes, CI/CD for Monorepo and Free DevOps Certificates]]></title><description><![CDATA[2026 tech predictions & autonomous monitoring with Claude and Kubernetes, CI/CD for monorepos, AWS cost allocation, Go memory internals, and centralized alerting at scale.]]></description><link>https://www.devopsbulletin.com/p/digest-195-tech-in-2026-sre-agent</link><guid isPermaLink="false">https://www.devopsbulletin.com/p/digest-195-tech-in-2026-sre-agent</guid><dc:creator><![CDATA[Mohamed Labouardy]]></dc:creator><pubDate>Fri, 02 Jan 2026 14:55:54 GMT</pubDate><enclosure url="https://substackcdn.com/image/youtube/w_728,c_limit/rCEf7p3FRTM" length="0" type="image/jpeg"/><content:encoded><![CDATA[<p>Welcome to this week&#8217;s edition of the DevOps Bulletin and happy New Year 2026 &#127881;</p><p>This week: AWS&#8217;s CTO share his predictions for 2026 and beyond, why developers are gaming GitHub profiles (and why star&#8230;</p>
      <p>
          <a href="https://www.devopsbulletin.com/p/digest-195-tech-in-2026-sre-agent">
              Read more
          </a>
      </p>
   ]]></content:encoded></item><item><title><![CDATA[Digest #194: What’s Broken in Kubernetes, CI/CD Attacks, FinOps Dashboard and Self-Hosting PostgreSQL.]]></title><description><![CDATA[Kubernetes optimization, CI/CD security, GitHub Actions, Cloudflare Workers, PostgreSQL 18, OpenTelemetry observability, FinOps dashboards, and open-source DevOps tools.]]></description><link>https://www.devopsbulletin.com/p/digest-194-whats-broken-in-kubernetes</link><guid isPermaLink="false">https://www.devopsbulletin.com/p/digest-194-whats-broken-in-kubernetes</guid><dc:creator><![CDATA[Mohamed Labouardy]]></dc:creator><pubDate>Fri, 26 Dec 2025 14:30:58 GMT</pubDate><enclosure url="https://substackcdn.com/image/youtube/w_728,c_limit/QjGduiCFHY4" length="0" type="image/jpeg"/><content:encoded><![CDATA[<p>Welcome to this week&#8217;s edition of the DevOps Bulletin!</p><p>Why Kubernetes clusters are massively underutilized in production, how Cloudflare is eliminating cold starts with &#8220;shard and conquer,&#8221; and what h&#8230;</p>
      <p>
          <a href="https://www.devopsbulletin.com/p/digest-194-whats-broken-in-kubernetes">
              Read more
          </a>
      </p>
   ]]></content:encoded></item><item><title><![CDATA[Digest #193: Zombie GitHub Actions, Supply-Chain Attacks, Kubernetes Optimization & Docker Hardening]]></title><description><![CDATA[Infrastructure as Code at scale, GitHub Actions failures, container security, Kubernetes optimization, AWS IAM security, Terraform best practices, FinOps data pipelines, and modern DevOps tooling.]]></description><link>https://www.devopsbulletin.com/p/digest-193-zombie-github-actions</link><guid isPermaLink="false">https://www.devopsbulletin.com/p/digest-193-zombie-github-actions</guid><dc:creator><![CDATA[Mohamed Labouardy]]></dc:creator><pubDate>Fri, 19 Dec 2025 17:04:46 GMT</pubDate><enclosure url="https://substackcdn.com/image/fetch/$s_!KzZX!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F7c0495f3-a557-449d-b34b-3cc56861fb67_956x500.png" length="0" type="image/jpeg"/><content:encoded><![CDATA[<div class="captioned-image-container"><figure><a class="image-link image2" target="_blank" href="https://depot.dev/blog/troubleshooting-github-actions-unexpected-behaviors?utm_source=fnf&amp;utm_medium=newsletter&amp;utm_campaign=depot-december&amp;utm_term=dev-ops-bulletin&amp;utm_content=troubleshooting" data-component-name="Image2ToDOM"><div class="image2-inset"><picture><source type="image/webp" srcset="https://substackcdn.com/image/fetch/$s_!15SU!,w_424,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F76d23e32-0980-4fdb-a293-b540aa637acb_268x127.png 424w, https://substackcdn.com/image/fetch/$s_!15SU!,w_848,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F76d23e32-0980-4fdb-a293-b540aa637acb_268x127.png 848w, https://substackcdn.com/image/fetch/$s_!15SU!,w_1272,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F76d23e32-0980-4fdb-a293-b540aa637acb_268x127.png 1272w, https://substackcdn.com/image/fetch/$s_!15SU!,w_1456,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F76d23e32-0980-4fdb-a293-b540aa637acb_268x127.png 1456w" sizes="100vw"><img src="https://substackcdn.com/image/fetch/$s_!15SU!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F76d23e32-0980-4fdb-a293-b540aa637acb_268x127.png" width="208" height="98.56716417910448" data-attrs="{&quot;src&quot;:&quot;https://substack-post-media.s3.amazonaws.com/public/images/76d23e32-0980-4fdb-a293-b540aa637acb_268x127.png&quot;,&quot;srcNoWatermark&quot;:null,&quot;fullscreen&quot;:null,&quot;imageSize&quot;:null,&quot;height&quot;:127,&quot;width&quot;:268,&quot;resizeWidth&quot;:208,&quot;bytes&quot;:8543,&quot;alt&quot;:null,&quot;title&quot;:null,&quot;type&quot;:&quot;image/png&quot;,&quot;href&quot;:&quot;https://depot.dev/blog/troubleshooting-github-actions-unexpected-behaviors?utm_source=fnf&amp;utm_medium=newsletter&amp;utm_campaign=depot-december&amp;utm_term=dev-ops-bulletin&amp;utm_content=troubleshooting&quot;,&quot;belowTheFold&quot;:false,&quot;topImage&quot;:true,&quot;internalRedirect&quot;:&quot;https://www.devopsbulletin.com/i/181917152?img=https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F76d23e32-0980-4fdb-a293-b540aa637acb_268x127.png&quot;,&quot;isProcessing&quot;:false,&quot;align&quot;:null,&quot;offset&quot;:false}" class="sizing-normal" alt="" srcset="https://substackcdn.com/image/fetch/$s_!15SU!,w_424,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F76d23e32-0980-4fdb-a293-b540aa637acb_268x127.png 424w, https://substackcdn.com/image/fetch/$s_!15SU!,w_848,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F76d23e32-0980-4fdb-a293-b540aa637acb_268x127.png 848w, https://substackcdn.com/image/fetch/$s_!15SU!,w_1272,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F76d23e32-0980-4fdb-a293-b540aa637acb_268x127.png 1272w, https://substackcdn.com/image/fetch/$s_!15SU!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F76d23e32-0980-4fdb-a293-b540aa637acb_268x127.png 1456w" sizes="100vw" fetchpriority="high"></picture><div></div></div></a></figure></div><p>Welcome to this week&#8217;s edition of the DevOps Bulletin!</p><p>Cloudflare shared how they run Cloudflare at enterprise scale with IaC, SonarSource dropped a GitHub Actions &#8220;zombie workflows&#8221; horror story, and&#8230;</p>
      <p>
          <a href="https://www.devopsbulletin.com/p/digest-193-zombie-github-actions">
              Read more
          </a>
      </p>
   ]]></content:encoded></item></channel></rss>