<?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 covering the latest news, tutorials, and devtools in the DevOps, AI, 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, 01 Nov 2026 14:22:46 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 #238: Cursor extension backdoor, GitHub runners on AWS and 1M Postgres workflows/sec]]></title><description><![CDATA[Also inside: Cloudflare's D1 control plane, cheaper BigQuery queries, and rotating 1,000 service-account passwords.]]></description><link>https://www.devopsbulletin.com/p/digest-238-cursor-extension-backdoor</link><guid isPermaLink="false">https://www.devopsbulletin.com/p/digest-238-cursor-extension-backdoor</guid><dc:creator><![CDATA[Mohamed Labouardy]]></dc:creator><pubDate>Fri, 30 Oct 2026 18:37:26 GMT</pubDate><enclosure url="https://substackcdn.com/image/fetch/$s_!DiiE!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F94e45914-0dd3-4994-96c5-4f80555ef73e_500x680.jpeg" length="0" type="image/jpeg"/><content:encoded><![CDATA[<blockquote><p>A malicious Claude Code extension in Cursor&#8217;s marketplace tried to install a persistent SSH backdoor. This week&#8217;s tutorials cover tracing failures across Terraform stacks, troubleshooting GKE traffic&#8230;</p></blockquote>
      <p>
          <a href="https://www.devopsbulletin.com/p/digest-238-cursor-extension-backdoor">
              Read more
          </a>
      </p>
   ]]></content:encoded></item><item><title><![CDATA[Digest #237: LiteLLM's compromised release, PHP's two critical RCEs, GCP billing hijacks and cheaper AI reviews]]></title><description><![CDATA[Also inside: Brotli's impact beyond Node.js, patching EC2 without replacing instances, and testing multi-tenant GPU clusters without GPUs.]]></description><link>https://www.devopsbulletin.com/p/digest-237-litellms-compromised-release</link><guid isPermaLink="false">https://www.devopsbulletin.com/p/digest-237-litellms-compromised-release</guid><dc:creator><![CDATA[Mohamed Labouardy]]></dc:creator><pubDate>Sun, 25 Oct 2026 16:57:32 GMT</pubDate><enclosure url="https://substackcdn.com/image/fetch/$s_!52jB!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F00b03a77-6125-4d4e-a234-a425a0aef92d_889x500.jpeg" length="0" type="image/jpeg"/><content:encoded><![CDATA[<blockquote><p>LiteLLM&#8217;s latest supply-chain attack started with a leaked key that was removed from Git history but never revoked. PHP&#8217;s two critical RCEs and Brotli&#8217;s decoder flaw make this a week to check runtime&#8230;</p></blockquote>
      <p>
          <a href="https://www.devopsbulletin.com/p/digest-237-litellms-compromised-release">
              Read more
          </a>
      </p>
   ]]></content:encoded></item><item><title><![CDATA[Digest #236: AWS agents exploit 33 of 37 CVEs, Anthropic replaces Git, microVMs and Postgres upgrades]]></title><description><![CDATA[Also inside: debugging Kubernetes Jobs before a Pod exists, cutting Azure costs, and tracing a running process back to what started it.]]></description><link>https://www.devopsbulletin.com/p/digest-236-aws-agents-exploit-33</link><guid isPermaLink="false">https://www.devopsbulletin.com/p/digest-236-aws-agents-exploit-33</guid><dc:creator><![CDATA[Mohamed Labouardy]]></dc:creator><pubDate>Sat, 17 Oct 2026 12:06:28 GMT</pubDate><enclosure url="https://substackcdn.com/image/fetch/$s_!FJUj!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F9c664c41-5ef8-4b40-bbd8-2df03f85819b_1840x1040.png" length="0" type="image/jpeg"/><content:encoded><![CDATA[<blockquote><p>AWS reports that its penetration-testing agent exploited 33 of 37 recent CVEs through the intended vulnerability in containerized tests. Anthropic replaced Git after reaching more than 30,000 merges &#8230;</p></blockquote>
      <p>
          <a href="https://www.devopsbulletin.com/p/digest-236-aws-agents-exploit-33">
              Read more
          </a>
      </p>
   ]]></content:encoded></item><item><title><![CDATA[Digest #235: GhostAction's 346-repo burst, Airbnb's MySQL regression, Kubernetes' 10-second shutdown and AI vulnerability triage]]></title><description><![CDATA[Also inside: Sam Newman on resilient systems, encrypting secrets with SOPS, and five GitHub security settings you can enable from your terminal.]]></description><link>https://www.devopsbulletin.com/p/digest-235-ghostactions-346-repo</link><guid isPermaLink="false">https://www.devopsbulletin.com/p/digest-235-ghostactions-346-repo</guid><dc:creator><![CDATA[Mohamed Labouardy]]></dc:creator><pubDate>Fri, 09 Oct 2026 19:01:13 GMT</pubDate><enclosure url="https://substackcdn.com/image/fetch/$s_!4kv7!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F98860b12-bfdc-4710-b12d-2d08c1913c6d_2019x450.png" length="0" type="image/jpeg"/><content:encoded><![CDATA[<blockquote><p>GhostAction is still spreading: an October 8 burst injected fake security-audit workflows into 346 repositories, now hunting credentials in Git history as well as GitHub Actions secrets.<br>Airbnb's database replay system caught a MySQL upgrade turning a 0.03-second query into a 2.6-second query.<br>And if your Kubernetes workers have 300 seconds to shut down, a supervisor with a 10-second timeout can make that setting meaningless.</p></blockquote><div class="callout-block" data-callout="true"><p><em>If you&#8217;re interested in <a href="https://www.devopsbulletin.com/p/sponsorships">sponsoring</a> this newsletter, reach out via&nbsp;<a href="https://www.linkedin.com/in/mlabouardy/">LinkedIn</a>&nbsp;or&nbsp;reply to this email. </em></p></div><h4><strong>My take: rotating CI secrets is only half the cleanup</strong></h4><div class="subscription-widget-wrap-editor" data-attrs="{&quot;url&quot;:&quot;https://www.devopsbulletin.com/subscribe?&quot;,&quot;text&quot;:&quot;Upgrade&quot;,&quot;language&quot;:&quot;en&quot;}" data-component-name="SubscribeWidgetToDOM"><div class="subscription-widget show-subscribe"><div class="preamble"><p class="cta-caption">This post has bonus content for paid subscribers. Upgrade to get full access.</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="Upgrade"><div class="fake-input-wrapper"><div class="fake-input"></div><div class="fake-button"></div></div></form></div></div><h4><strong>Newsworthy stories</strong></h4><ul><li><p><strong><a href="https://airbnb.tech/infrastructure/beyond-synthetic-testing-capturing-and-replaying-real-database-workloads-at-airbnb/?utm_source=devopsbulletin.com">How Airbnb replays real database workloads to catch MySQL performance regressions</a></strong></p></li><li><p><strong><a href="https://securitylabs.datadoghq.com/articles/kubernetes-rbac-built-in-principals-dangerous-permissions/?utm_source=devopsbulletin.com">Datadog finds 3,500+ dangerous Kubernetes RBAC bindings to built-in principals</a></strong></p></li><li><p><strong><a href="https://www.sylvainkalache.com/blog/can-claude-fix-itself?utm_source=devopsbulletin.com">Can Claude fix itself? Three production incidents from Anthropic&#8217;s on-call team</a></strong></p></li><li><p><strong><a href="https://vincenzoiozzo.com/blog/jev-identity-resolution?utm_source=devopsbulletin.com">Testing Jev against Claude and traditional record linkage for identity resolution</a></strong></p></li></ul><h4><strong>Tutorials of the week</strong></h4><ul><li><p><strong><a href="https://aws.amazon.com/blogs/devops/closed-loop-incident-response-connect-aws-devops-agent-to-opensearch/?utm_source=devopsbulletin.com">Connect AWS DevOps Agent to OpenSearch logs and traces through MCP</a></strong></p></li></ul><div class="captioned-image-container"><figure><a class="image-link image2" target="_blank" href="https://aws.amazon.com/blogs/devops/closed-loop-incident-response-connect-aws-devops-agent-to-opensearch/?utm_source=devopsbulletin.com" data-component-name="Image2ToDOM"><div class="image2-inset"><picture><source type="image/webp" srcset="https://substackcdn.com/image/fetch/$s_!4kv7!,w_424,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F98860b12-bfdc-4710-b12d-2d08c1913c6d_2019x450.png 424w, https://substackcdn.com/image/fetch/$s_!4kv7!,w_848,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F98860b12-bfdc-4710-b12d-2d08c1913c6d_2019x450.png 848w, https://substackcdn.com/image/fetch/$s_!4kv7!,w_1272,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F98860b12-bfdc-4710-b12d-2d08c1913c6d_2019x450.png 1272w, https://substackcdn.com/image/fetch/$s_!4kv7!,w_1456,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F98860b12-bfdc-4710-b12d-2d08c1913c6d_2019x450.png 1456w" sizes="100vw"><img src="https://substackcdn.com/image/fetch/$s_!4kv7!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F98860b12-bfdc-4710-b12d-2d08c1913c6d_2019x450.png" width="1456" height="325" data-attrs="{&quot;src&quot;:&quot;https://substack-post-media.s3.amazonaws.com/public/images/98860b12-bfdc-4710-b12d-2d08c1913c6d_2019x450.png&quot;,&quot;srcNoWatermark&quot;:null,&quot;fullscreen&quot;:null,&quot;imageSize&quot;:null,&quot;height&quot;:325,&quot;width&quot;:1456,&quot;resizeWidth&quot;:null,&quot;bytes&quot;:null,&quot;alt&quot;:&quot;Closed-loop flow from OpenSearch alerting through Amazon SNS and a webhook forwarder to AWS DevOps Agent investigation&quot;,&quot;title&quot;:null,&quot;type&quot;:null,&quot;href&quot;:&quot;https://aws.amazon.com/blogs/devops/closed-loop-incident-response-connect-aws-devops-agent-to-opensearch/?utm_source=devopsbulletin.com&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="Closed-loop flow from OpenSearch alerting through Amazon SNS and a webhook forwarder to AWS DevOps Agent investigation" title="Closed-loop flow from OpenSearch alerting through Amazon SNS and a webhook forwarder to AWS DevOps Agent investigation" srcset="https://substackcdn.com/image/fetch/$s_!4kv7!,w_424,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F98860b12-bfdc-4710-b12d-2d08c1913c6d_2019x450.png 424w, https://substackcdn.com/image/fetch/$s_!4kv7!,w_848,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F98860b12-bfdc-4710-b12d-2d08c1913c6d_2019x450.png 848w, https://substackcdn.com/image/fetch/$s_!4kv7!,w_1272,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F98860b12-bfdc-4710-b12d-2d08c1913c6d_2019x450.png 1272w, https://substackcdn.com/image/fetch/$s_!4kv7!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F98860b12-bfdc-4710-b12d-2d08c1913c6d_2019x450.png 1456w" sizes="100vw" fetchpriority="high"></picture><div></div></div></a></figure></div><ul><li><p><strong><a href="https://aws.amazon.com/blogs/security/building-your-ai-vulnerability-harness-part-1/?utm_source=devopsbulletin.com">Build an AI vulnerability harness with evidence-based exploitability checks</a></strong></p></li><li><p><strong><a href="https://www.kubeblogs.com/kubernetes-grace-period-is-not-your-grace-period/?utm_source=devopsbulletin.com">Debug why a 300-second Kubernetes grace period becomes a 10-second shutdown</a></strong></p></li><li><p><strong><a href="https://blog.gitguardian.com/a-comprehensive-guide-to-sops/?utm_source=devopsbulletin.com">Encrypt secrets in Git, CI/CD and Kubernetes with SOPS</a></strong></p></li><li><p><strong><a href="https://codeopinion.com/multi-tenant-best-practices-can-backfire/?utm_source=devopsbulletin.com">Why multi-tenant best practices can send background work to the wrong tenant</a></strong></p></li><li><p><strong><a href="https://www.ivan.codes/blog/making-my-terraform-ai-friendly?utm_source=devopsbulletin.com">Make Terraform easier for AI agents by simplifying your infrastructure</a></strong></p></li><li><p><strong><a href="https://lukasschwab.me/blog/gen/poisoning-go-cache.html?utm_source=devopsbulletin.com">Poison a Go build cache without changing the program&#8217;s source</a></strong></p></li><li><p><strong><a href="https://theconsensus.dev/p/2026/09/13/query-plan-rewriting-in-postgresql.html?utm_source=devopsbulletin.com">Explore how PostgreSQL rewrites query plans</a></strong></p></li><li><p><strong><a href="https://www.cncf.io/blog/2026/09/30/from-40-seconds-to-under-10-rebuilding-incident-detection-on-opentelemetry-apache-kafka-and-apache-flink-on-kubernetes/?utm_source=devopsbulletin.com">Cut incident detection from 40 seconds to under 10 with OpenTelemetry, Kafka and Flink</a></strong></p></li><li><p><strong><a href="https://www.404-code-not-found.com/posts/terraform-module-structure/?utm_source=devopsbulletin.com">Structure Terraform modules with consistent files, generated docs and pre-commit checks</a></strong></p></li></ul><h4><strong>Podcasts of the week</strong></h4><iframe class="spotify-wrap podcast" data-attrs="{&quot;image&quot;:&quot;https://i.scdn.co/image/ab6765630000ba8a9cd6711c54a6e100738f246e&quot;,&quot;title&quot;:&quot;Security in the Age of Instant Exploits&quot;,&quot;subtitle&quot;:&quot;Software Engineering Daily&quot;,&quot;description&quot;:&quot;Episode&quot;,&quot;url&quot;:&quot;https://open.spotify.com/episode/6kLYbSErdPlIFx1TGydVtK&quot;,&quot;belowTheFold&quot;:true,&quot;noScroll&quot;:false,&quot;isVideo&quot;:false}" src="https://open.spotify.com/embed/episode/6kLYbSErdPlIFx1TGydVtK" frameborder="0" gesture="media" allowfullscreen="true" allow="encrypted-media" loading="lazy" data-component-name="Spotify2ToDOM"></iframe><div class="embedded-post-wrap" data-attrs="{&quot;id&quot;:218980052,&quot;url&quot;:&quot;https://newsletter.pragmaticengineer.com/p/building-resilient-systems-with-sam&quot;,&quot;publication_id&quot;:458709,&quot;embedding_publication_id&quot;:365399,&quot;publication_name&quot;:&quot;The Pragmatic Engineer&quot;,&quot;publication_logo_url&quot;:&quot;https://substackcdn.com/image/fetch/$s_!eod5!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F27076b05-e3f4-4d05-9621-3da4f7f189cd_300x300.png&quot;,&quot;title&quot;:&quot;Building resilient systems with Sam Newman&quot;,&quot;truncated_body_text&quot;:&quot;Stream the latest episode&quot;,&quot;date&quot;:&quot;2026-10-07T17:19:58.759Z&quot;,&quot;like_count&quot;:80,&quot;comment_count&quot;:0,&quot;bylines&quot;:[{&quot;id&quot;:30107029,&quot;name&quot;:&quot;Gergely Orosz&quot;,&quot;handle&quot;:&quot;pragmaticengineer&quot;,&quot;photo_url&quot;:&quot;https://substack-post-media.s3.amazonaws.com/public/images/58fed27c-f331-4ff3-ba47-135c5a0be0ba_400x400.png&quot;,&quot;bio&quot;:&quot;Big Tech and startups from the inside. Especially relevant for software engineers / AI engineers, useful for anyone working in tech.&quot;,&quot;profile_set_up_at&quot;:&quot;2021-09-06T16:08:47.417Z&quot;,&quot;reader_installed_at&quot;:&quot;2022-03-04T20:04:29.381Z&quot;,&quot;publicationUsers&quot;:[{&quot;id&quot;:385140,&quot;user_id&quot;:30107029,&quot;publication_id&quot;:458709,&quot;role&quot;:&quot;admin&quot;,&quot;public&quot;:true,&quot;is_primary&quot;:true,&quot;publication&quot;:{&quot;id&quot;:458709,&quot;name&quot;:&quot;The Pragmatic Engineer&quot;,&quot;subdomain&quot;:&quot;pragmaticengineer&quot;,&quot;custom_domain&quot;:&quot;newsletter.pragmaticengineer.com&quot;,&quot;custom_domain_optional&quot;:false,&quot;hero_text&quot;:&quot;Big Tech and startups, from the inside. Highly relevant for software engineers, AI engineers and engineering leaders, useful for those working in tech.&quot;,&quot;logo_url&quot;:&quot;https://substack-post-media.s3.amazonaws.com/public/images/27076b05-e3f4-4d05-9621-3da4f7f189cd_300x300.png&quot;,&quot;author_id&quot;:30107029,&quot;primary_user_id&quot;:30107029,&quot;theme_var_background_pop&quot;:&quot;#FF6B00&quot;,&quot;created_at&quot;:&quot;2021-08-25T13:08:12.798Z&quot;,&quot;email_from_name&quot;:&quot;The Pragmatic Engineer&quot;,&quot;copyright&quot;:&quot;Gergely Orosz&quot;,&quot;founding_plan_name&quot;:null,&quot;community_enabled&quot;:true,&quot;invite_only&quot;:false,&quot;payments_state&quot;:&quot;enabled&quot;,&quot;language&quot;:null,&quot;explicit&quot;:false,&quot;homepage_type&quot;:&quot;newspaper&quot;,&quot;is_personal_mode&quot;:false,&quot;logo_url_wide&quot;:null}}],&quot;twitter_screen_name&quot;:&quot;GergelyOrosz&quot;,&quot;is_guest&quot;:false,&quot;bestseller_tier&quot;:10000,&quot;status&quot;:{&quot;bestsellerTier&quot;:10000,&quot;subscriberTier&quot;:1,&quot;leaderboard&quot;:null,&quot;vip&quot;:false,&quot;badge&quot;:{&quot;type&quot;:&quot;bestseller&quot;,&quot;tier&quot;:10000},&quot;subscriber&quot;:null}}],&quot;utm_campaign&quot;:null,&quot;belowTheFold&quot;:true,&quot;type&quot;:&quot;podcast&quot;,&quot;language&quot;:&quot;en&quot;,&quot;source&quot;:null}" data-component-name="EmbeddedPostToDOM"><a class="embedded-post" native="true" href="https://newsletter.pragmaticengineer.com/p/building-resilient-systems-with-sam?utm_source=substack&amp;utm_campaign=post_embed&amp;utm_medium=web&amp;embedding_publication_id=365399"><div class="embedded-post-header"><img class="embedded-post-publication-logo" src="https://substackcdn.com/image/fetch/$s_!eod5!,w_56,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F27076b05-e3f4-4d05-9621-3da4f7f189cd_300x300.png" loading="lazy"><span class="embedded-post-publication-name">The Pragmatic Engineer</span></div><div class="embedded-post-title-wrapper"><div class="embedded-post-title-icon"><svg width="19" height="19" viewBox="0 0 24 24" fill="none" xmlns="http://www.w3.org/2000/svg">
  <path d="M3 18V12C3 9.61305 3.94821 7.32387 5.63604 5.63604C7.32387 3.94821 9.61305 3 12 3C14.3869 3 16.6761 3.94821 18.364 5.63604C20.0518 7.32387 21 9.61305 21 12V18" stroke-linecap="round" stroke-linejoin="round"></path>
  <path d="M21 19C21 19.5304 20.7893 20.0391 20.4142 20.4142C20.0391 20.7893 19.5304 21 19 21H18C17.4696 21 16.9609 20.7893 16.5858 20.4142C16.2107 20.0391 16 19.5304 16 19V16C16 15.4696 16.2107 14.9609 16.5858 14.5858C16.9609 14.2107 17.4696 14 18 14H21V19ZM3 19C3 19.5304 3.21071 20.0391 3.58579 20.4142C3.96086 20.7893 4.46957 21 5 21H6C6.53043 21 7.03914 20.7893 7.41421 20.4142C7.78929 20.0391 8 19.5304 8 19V16C8 15.4696 7.78929 14.9609 7.41421 14.5858C7.03914 14.2107 6.53043 14 6 14H3V19Z" stroke-linecap="round" stroke-linejoin="round"></path>
</svg></div><div class="embedded-post-title">Building resilient systems with Sam Newman</div></div><div class="embedded-post-body">Stream the latest episode&#8230;</div><div class="embedded-post-cta-wrapper"><div class="embedded-post-cta-icon"><svg width="32" height="32" viewBox="0 0 24 24" xmlns="http://www.w3.org/2000/svg">
  <path classname="inner-triangle" d="M10 8L16 12L10 16V8Z" stroke-width="1.5" stroke-linecap="round" stroke-linejoin="round"></path>
</svg></div><span class="embedded-post-cta">Listen now</span></div><div class="embedded-post-meta">18 days ago &#183; 80 likes &#183; Gergely Orosz</div></a></div><h4><strong>Projects of the week</strong></h4><div class="subscription-widget-wrap-editor" data-attrs="{&quot;url&quot;:&quot;https://www.devopsbulletin.com/subscribe?&quot;,&quot;text&quot;:&quot;Upgrade&quot;,&quot;language&quot;:&quot;en&quot;}" data-component-name="SubscribeWidgetToDOM"><div class="subscription-widget show-subscribe"><div class="preamble"><p class="cta-caption">This post has bonus content for paid subscribers. Upgrade to get full access.</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="Upgrade"><div class="fake-input-wrapper"><div class="fake-input"></div><div class="fake-button"></div></div></form></div></div><h4><strong>Meme of the week</strong></h4><div class="captioned-image-container"><figure><a class="image-link image2 is-viewable-img" target="_blank" href="https://substackcdn.com/image/fetch/$s_!Tpv6!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F990e4d2e-4bee-46a0-9735-6e789fc74a28_601x500.jpeg" data-component-name="Image2ToDOM"><div class="image2-inset"><picture><source type="image/webp" srcset="https://substackcdn.com/image/fetch/$s_!Tpv6!,w_424,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F990e4d2e-4bee-46a0-9735-6e789fc74a28_601x500.jpeg 424w, https://substackcdn.com/image/fetch/$s_!Tpv6!,w_848,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F990e4d2e-4bee-46a0-9735-6e789fc74a28_601x500.jpeg 848w, https://substackcdn.com/image/fetch/$s_!Tpv6!,w_1272,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F990e4d2e-4bee-46a0-9735-6e789fc74a28_601x500.jpeg 1272w, https://substackcdn.com/image/fetch/$s_!Tpv6!,w_1456,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F990e4d2e-4bee-46a0-9735-6e789fc74a28_601x500.jpeg 1456w" sizes="auto, 100vw"><img src="https://substackcdn.com/image/fetch/$s_!Tpv6!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F990e4d2e-4bee-46a0-9735-6e789fc74a28_601x500.jpeg" width="465" height="386.8552412645591" data-attrs="{&quot;src&quot;:&quot;https://substack-post-media.s3.amazonaws.com/public/images/990e4d2e-4bee-46a0-9735-6e789fc74a28_601x500.jpeg&quot;,&quot;srcNoWatermark&quot;:null,&quot;fullscreen&quot;:null,&quot;imageSize&quot;:null,&quot;height&quot;:500,&quot;width&quot;:601,&quot;resizeWidth&quot;:465,&quot;bytes&quot;:null,&quot;alt&quot;:&quot;Image preview&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="Image preview" title="Image preview" srcset="https://substackcdn.com/image/fetch/$s_!Tpv6!,w_424,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F990e4d2e-4bee-46a0-9735-6e789fc74a28_601x500.jpeg 424w, https://substackcdn.com/image/fetch/$s_!Tpv6!,w_848,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F990e4d2e-4bee-46a0-9735-6e789fc74a28_601x500.jpeg 848w, https://substackcdn.com/image/fetch/$s_!Tpv6!,w_1272,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F990e4d2e-4bee-46a0-9735-6e789fc74a28_601x500.jpeg 1272w, https://substackcdn.com/image/fetch/$s_!Tpv6!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F990e4d2e-4bee-46a0-9735-6e789fc74a28_601x500.jpeg 1456w" sizes="auto, 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 buttonBase-GK1x3M"><svg aria-hidden="true" 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" class="icon-noB79L"><g><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 buttonBase-GK1x3M"><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 icon-noB79L"><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="callout-block" data-callout="true"><p>Want to sponsor the newsletter? <a href="https://workspace.passionfroot.me/devopsbulletin">Book a slot</a> - Q4 dates are open.</p></div>]]></content:encoded></item><item><title><![CDATA[Digest #234: Doom in SQL, GitLab pushes by email, Linux kernel escapes and Postgres OOM tests]]></title><description><![CDATA[Also inside: GitHub Actions runners on Lambda microVMs, OpenAI's forum-to-repo exploit chain, and rebalancing EKS Pods across availability zones.]]></description><link>https://www.devopsbulletin.com/p/digest-234-doom-in-sql-gitlab-pushes</link><guid isPermaLink="false">https://www.devopsbulletin.com/p/digest-234-doom-in-sql-gitlab-pushes</guid><dc:creator><![CDATA[Mohamed Labouardy]]></dc:creator><pubDate>Fri, 02 Oct 2026 17:15:15 GMT</pubDate><enclosure url="https://substackcdn.com/image/youtube/w_728,c_limit/NHugujESp_s" length="0" type="image/jpeg"/><content:encoded><![CDATA[<blockquote><p>A leaked GitLab issue-by-email address can let someone push code and run CI jobs with its owner&#8217;s permissions, even from outside an IP allowlist. This week, you&#8217;ll turn Postgres memory management into an interactive explainer and debug a Kubernetes rollout that stalls while the old Pods keep serving traffic. You&#8217;ll also see how CedarDB got Doom&#8217;s game logic and renderer running in SQL, with multiplayer included.</p></blockquote><div class="callout-block" data-callout="true"><p><em>If you&#8217;re interested in <a href="https://www.devopsbulletin.com/p/sponsorships">sponsoring</a> this newsletter, reach out via&nbsp;<a href="https://www.linkedin.com/in/mlabouardy/">LinkedIn</a>&nbsp;or&nbsp;reply to this email. </em></p></div><h4><strong>My take: ask your AI for an explanation you can interact with</strong></h4><div class="subscription-widget-wrap-editor" data-attrs="{&quot;url&quot;:&quot;https://www.devopsbulletin.com/subscribe?&quot;,&quot;text&quot;:&quot;Upgrade&quot;,&quot;language&quot;:&quot;en&quot;}" data-component-name="SubscribeWidgetToDOM"><div class="subscription-widget show-subscribe"><div class="preamble"><p class="cta-caption">This post has bonus content for paid subscribers. Upgrade to get full access.</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="Upgrade"><div class="fake-input-wrapper"><div class="fake-input"></div><div class="fake-button"></div></div></form></div></div><h4><strong>Newsworthy stories</strong></h4><ul><li><p><strong><a href="https://www.aikido.dev/blog/gitlab-email-push-to-main?utm_source=devopsbulletin.com">How a leaked GitLab issue-by-email address can push code and bypass IP restrictions</a></strong></p></li><li><p><strong><a href="https://depthfirst.com/research/containers-are-no-longer-safe?utm_source=devopsbulletin.com">Why containers are no longer a security boundary</a></strong></p></li><li><p><strong><a href="https://www.hacktron.ai/blog/hacking-openai?utm_source=devopsbulletin.com">How an image upload and an SSO flaw opened a path to OpenAI&#8217;s internal repositories</a></strong></p></li><li><p><strong><a href="https://clickhouse.com/blog/can-your-postgres-survive-a-bad-query?utm_source=devopsbulletin.com">Can your managed Postgres survive a query that exhausts memory?</a></strong></p></li><li><p><strong><a href="https://securitylabs.datadoghq.com/articles/attacker-infrastructure-but-vibe-coded?utm_source=devopsbulletin.com">Inside vibe-coded credential-harvesting dashboards and live Amazon Bedrock abuse</a></strong></p></li></ul><h4><strong>Tutorials of the week</strong></h4><ul><li><p><strong><a href="https://aws.amazon.com/blogs/mt/best-practices-for-writing-aws-devops-agent-skills/?utm_source=devopsbulletin.com">Write AWS DevOps Agent Skills from your operational runbooks</a></strong></p></li><li><p><strong><a href="https://planetscale.com/blog/hot-shards-hotter-tenants?utm_source=devopsbulletin.com">Handle hot shards and isolate large tenants in sharded Postgres</a></strong></p></li><li><p><strong><a href="https://mkdev.me/posts/using-lambda-microvms-as-github-actions-runners?utm_source=devopsbulletin.com">Run GitHub Actions runners inside Lambda microVMs</a></strong></p></li><li><p><strong><a href="https://awsfundamentals.com/blog/ecs-primitives-not-convenience-layers?utm_source=devopsbulletin.com">Build on ECS primitives instead of convenience layers</a></strong></p></li><li><p><strong><a href="https://cedardb.com/blog/sqldoom/?utm_source=devopsbulletin.com">Run Doom&#8217;s game logic and renderer in SQL</a></strong></p></li></ul><div class="captioned-image-container"><figure><a class="image-link image2 is-viewable-img" target="_blank" href="https://cedardb.com/blog/sqldoom/?utm_source=devopsbulletin.com" data-component-name="Image2ToDOM"><div class="image2-inset"><picture><source type="image/webp" srcset="https://substackcdn.com/image/fetch/$s_!vfBf!,w_424,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fd8a99a1a-8db1-4c5d-8c0b-81db63fbbff5_2588x800.png 424w, https://substackcdn.com/image/fetch/$s_!vfBf!,w_848,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fd8a99a1a-8db1-4c5d-8c0b-81db63fbbff5_2588x800.png 848w, https://substackcdn.com/image/fetch/$s_!vfBf!,w_1272,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fd8a99a1a-8db1-4c5d-8c0b-81db63fbbff5_2588x800.png 1272w, https://substackcdn.com/image/fetch/$s_!vfBf!,w_1456,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fd8a99a1a-8db1-4c5d-8c0b-81db63fbbff5_2588x800.png 1456w" sizes="100vw"><img src="https://substackcdn.com/image/fetch/$s_!vfBf!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fd8a99a1a-8db1-4c5d-8c0b-81db63fbbff5_2588x800.png" width="1456" height="450" data-attrs="{&quot;src&quot;:&quot;https://substack-post-media.s3.amazonaws.com/public/images/d8a99a1a-8db1-4c5d-8c0b-81db63fbbff5_2588x800.png&quot;,&quot;srcNoWatermark&quot;:null,&quot;fullscreen&quot;:null,&quot;imageSize&quot;:null,&quot;height&quot;:450,&quot;width&quot;:1456,&quot;resizeWidth&quot;:null,&quot;bytes&quot;:null,&quot;alt&quot;:&quot;DOOMQL vs SQLDoom&quot;,&quot;title&quot;:null,&quot;type&quot;:null,&quot;href&quot;:&quot;https://cedardb.com/blog/sqldoom/?utm_source=devopsbulletin.com&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="DOOMQL vs SQLDoom" title="DOOMQL vs SQLDoom" srcset="https://substackcdn.com/image/fetch/$s_!vfBf!,w_424,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fd8a99a1a-8db1-4c5d-8c0b-81db63fbbff5_2588x800.png 424w, https://substackcdn.com/image/fetch/$s_!vfBf!,w_848,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fd8a99a1a-8db1-4c5d-8c0b-81db63fbbff5_2588x800.png 848w, https://substackcdn.com/image/fetch/$s_!vfBf!,w_1272,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fd8a99a1a-8db1-4c5d-8c0b-81db63fbbff5_2588x800.png 1272w, https://substackcdn.com/image/fetch/$s_!vfBf!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fd8a99a1a-8db1-4c5d-8c0b-81db63fbbff5_2588x800.png 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 buttonBase-GK1x3M"><svg aria-hidden="true" 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" class="icon-noB79L"><g><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 buttonBase-GK1x3M"><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 icon-noB79L"><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/how-to-debug-a-stuck-kubernetes-rollout-with-a-hands-on-lab?utm_source=devopsbulletin.com">Debug a stuck Kubernetes rollout with a hands-on lab</a></strong></p></li><li><p><strong><a href="https://aws.amazon.com/blogs/containers/fix-pod-distribution-drift-in-amazon-eks-with-the-kubernetes-descheduler/?utm_source=devopsbulletin.com">Fix EKS pod distribution drift with the Kubernetes descheduler</a></strong></p></li></ul><h4><strong>Videos of the week</strong></h4><div id="youtube2-NHugujESp_s" class="youtube-wrap" data-attrs="{&quot;videoId&quot;:&quot;NHugujESp_s&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/NHugujESp_s?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-9-2CSJC114k" class="youtube-wrap" data-attrs="{&quot;videoId&quot;:&quot;9-2CSJC114k&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/9-2CSJC114k?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><strong>Projects of the week</strong></h4><div class="subscription-widget-wrap-editor" data-attrs="{&quot;url&quot;:&quot;https://www.devopsbulletin.com/subscribe?&quot;,&quot;text&quot;:&quot;Upgrade&quot;,&quot;language&quot;:&quot;en&quot;}" data-component-name="SubscribeWidgetToDOM"><div class="subscription-widget show-subscribe"><div class="preamble"><p class="cta-caption">This post has bonus content for paid subscribers. Upgrade to get full access.</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="Upgrade"><div class="fake-input-wrapper"><div class="fake-input"></div><div class="fake-button"></div></div></form></div></div><h4><strong>Meme of the week</strong></h4><div class="captioned-image-container"><figure><a class="image-link image2 is-viewable-img" target="_blank" href="https://substackcdn.com/image/fetch/$s_!-XI0!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F480ea04e-41a7-44ce-a5f8-6cd2f54a4eb2_1187x1326.png" data-component-name="Image2ToDOM"><div class="image2-inset"><picture><source type="image/webp" srcset="https://substackcdn.com/image/fetch/$s_!-XI0!,w_424,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F480ea04e-41a7-44ce-a5f8-6cd2f54a4eb2_1187x1326.png 424w, https://substackcdn.com/image/fetch/$s_!-XI0!,w_848,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F480ea04e-41a7-44ce-a5f8-6cd2f54a4eb2_1187x1326.png 848w, https://substackcdn.com/image/fetch/$s_!-XI0!,w_1272,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F480ea04e-41a7-44ce-a5f8-6cd2f54a4eb2_1187x1326.png 1272w, https://substackcdn.com/image/fetch/$s_!-XI0!,w_1456,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F480ea04e-41a7-44ce-a5f8-6cd2f54a4eb2_1187x1326.png 1456w" sizes="auto, 100vw"><img src="https://substackcdn.com/image/fetch/$s_!-XI0!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F480ea04e-41a7-44ce-a5f8-6cd2f54a4eb2_1187x1326.png" width="386" height="431.20134793597305" data-attrs="{&quot;src&quot;:&quot;https://substack-post-media.s3.amazonaws.com/public/images/480ea04e-41a7-44ce-a5f8-6cd2f54a4eb2_1187x1326.png&quot;,&quot;srcNoWatermark&quot;:null,&quot;fullscreen&quot;:null,&quot;imageSize&quot;:null,&quot;height&quot;:1326,&quot;width&quot;:1187,&quot;resizeWidth&quot;:386,&quot;bytes&quot;:null,&quot;alt&quot;:&quot;Image preview&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="Image preview" title="Image preview" srcset="https://substackcdn.com/image/fetch/$s_!-XI0!,w_424,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F480ea04e-41a7-44ce-a5f8-6cd2f54a4eb2_1187x1326.png 424w, https://substackcdn.com/image/fetch/$s_!-XI0!,w_848,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F480ea04e-41a7-44ce-a5f8-6cd2f54a4eb2_1187x1326.png 848w, https://substackcdn.com/image/fetch/$s_!-XI0!,w_1272,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F480ea04e-41a7-44ce-a5f8-6cd2f54a4eb2_1187x1326.png 1272w, https://substackcdn.com/image/fetch/$s_!-XI0!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F480ea04e-41a7-44ce-a5f8-6cd2f54a4eb2_1187x1326.png 1456w" sizes="auto, 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 buttonBase-GK1x3M"><svg aria-hidden="true" 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" class="icon-noB79L"><g><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 buttonBase-GK1x3M"><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 icon-noB79L"><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="callout-block" data-callout="true"><p>Want to sponsor the newsletter? <a href="https://workspace.passionfroot.me/devopsbulletin">Book a slot</a> - Q4 dates are open.</p></div>]]></content:encoded></item><item><title><![CDATA[Digest #233: When IaC can't recover your data, Postgres's 20-minute lookup, Kubernetes PVC tracking and IAM fixes in pull requests]]></title><description><![CDATA[Also inside: migrating production n8n on EKS, splitting AWS commitment discounts fairly, and monitoring Kubernetes with OpenObserve.]]></description><link>https://www.devopsbulletin.com/p/digest-233-when-iac-cant-recover</link><guid isPermaLink="false">https://www.devopsbulletin.com/p/digest-233-when-iac-cant-recover</guid><dc:creator><![CDATA[Mohamed Labouardy]]></dc:creator><pubDate>Fri, 25 Sep 2026 16:14:02 GMT</pubDate><enclosure url="https://substackcdn.com/image/fetch/$s_!70k5!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F038ad460-f688-409b-b6dd-7dba690e6342_771x930.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.eon.io/event/luca-berton-iac-data-recovery?utm_source=devops_bulletin&amp;utm_medium=third_party&amp;utm_campaign=26Q3_MOFU_Webinar_Infrastructure_As_Code_Luca_Berton_100726&amp;utm_content=promo_email" data-component-name="Image2ToDOM"><div class="image2-inset"><picture><source type="image/webp" srcset="https://substackcdn.com/image/fetch/$s_!QGH3!,w_424,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fea679359-bf79-443f-b141-942457c6c6a9_1228x339.png 424w, https://substackcdn.com/image/fetch/$s_!QGH3!,w_848,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fea679359-bf79-443f-b141-942457c6c6a9_1228x339.png 848w, https://substackcdn.com/image/fetch/$s_!QGH3!,w_1272,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fea679359-bf79-443f-b141-942457c6c6a9_1228x339.png 1272w, https://substackcdn.com/image/fetch/$s_!QGH3!,w_1456,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fea679359-bf79-443f-b141-942457c6c6a9_1228x339.png 1456w" sizes="100vw"><img src="https://substackcdn.com/image/fetch/$s_!QGH3!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fea679359-bf79-443f-b141-942457c6c6a9_1228x339.png" width="194" height="53.55537459283388" data-attrs="{&quot;src&quot;:&quot;https://substack-post-media.s3.amazonaws.com/public/images/ea679359-bf79-443f-b141-942457c6c6a9_1228x339.png&quot;,&quot;srcNoWatermark&quot;:null,&quot;fullscreen&quot;:null,&quot;imageSize&quot;:null,&quot;height&quot;:339,&quot;width&quot;:1228,&quot;resizeWidth&quot;:194,&quot;bytes&quot;:28061,&quot;alt&quot;:null,&quot;title&quot;:null,&quot;type&quot;:&quot;image/png&quot;,&quot;href&quot;:&quot;https://www.eon.io/event/luca-berton-iac-data-recovery?utm_source=devops_bulletin&amp;utm_medium=third_party&amp;utm_campaign=26Q3_MOFU_Webinar_Infrastructure_As_Code_Luca_Berton_100726&amp;utm_content=promo_email&quot;,&quot;belowTheFold&quot;:false,&quot;topImage&quot;:true,&quot;internalRedirect&quot;:&quot;https://www.devopsbulletin.com/i/217213951?img=https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fea679359-bf79-443f-b141-942457c6c6a9_1228x339.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_!QGH3!,w_424,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fea679359-bf79-443f-b141-942457c6c6a9_1228x339.png 424w, https://substackcdn.com/image/fetch/$s_!QGH3!,w_848,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fea679359-bf79-443f-b141-942457c6c6a9_1228x339.png 848w, https://substackcdn.com/image/fetch/$s_!QGH3!,w_1272,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fea679359-bf79-443f-b141-942457c6c6a9_1228x339.png 1272w, https://substackcdn.com/image/fetch/$s_!QGH3!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fea679359-bf79-443f-b141-942457c6c6a9_1228x339.png 1456w" sizes="100vw" fetchpriority="high"></picture><div></div></div></a></figure></div><blockquote><p>This week, you&#8217;ll learn how to find memory savings in your data structures and limit cache churn when rolling out the change. You&#8217;ll also find practical steps for scaling GKE workers from queue depth, turning unused IAM permissions into reviewable pull requests, and allocating AWS commitment discounts based on usage. And if your Postgres query uses the right index but still takes 20 minutes, you&#8217;ll see how deleted rows can get in the way.</p></blockquote><div class="callout-block" data-callout="true"><p><em>If you&#8217;re interested in <a href="https://www.devopsbulletin.com/p/sponsorships">sponsoring</a> this newsletter, reach out via&nbsp;<a href="https://www.linkedin.com/in/mlabouardy/">LinkedIn</a>&nbsp;or&nbsp;reply to this email. </em></p></div><h4>Watch Luca Berton rebuild a production recovery live</h4><div class="captioned-image-container"><figure><a class="image-link image2 is-viewable-img" target="_blank" href="https://www.eon.io/event/luca-berton-iac-data-recovery?utm_source=devops_bulletin&amp;utm_medium=third_party&amp;utm_campaign=26Q3_MOFU_Webinar_Infrastructure_As_Code_Luca_Berton_100726&amp;utm_content=promo_email" data-component-name="Image2ToDOM"><div class="image2-inset"><picture><source type="image/webp" srcset="https://substackcdn.com/image/fetch/$s_!bDal!,w_424,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fb939f25d-19e4-47a4-8a36-48cae819a338_1999x1046.png 424w, https://substackcdn.com/image/fetch/$s_!bDal!,w_848,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fb939f25d-19e4-47a4-8a36-48cae819a338_1999x1046.png 848w, https://substackcdn.com/image/fetch/$s_!bDal!,w_1272,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fb939f25d-19e4-47a4-8a36-48cae819a338_1999x1046.png 1272w, https://substackcdn.com/image/fetch/$s_!bDal!,w_1456,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fb939f25d-19e4-47a4-8a36-48cae819a338_1999x1046.png 1456w" sizes="100vw"><img src="https://substackcdn.com/image/fetch/$s_!bDal!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fb939f25d-19e4-47a4-8a36-48cae819a338_1999x1046.png" width="1456" height="762" data-attrs="{&quot;src&quot;:&quot;https://substack-post-media.s3.amazonaws.com/public/images/b939f25d-19e4-47a4-8a36-48cae819a338_1999x1046.png&quot;,&quot;srcNoWatermark&quot;:null,&quot;fullscreen&quot;:null,&quot;imageSize&quot;:null,&quot;height&quot;:762,&quot;width&quot;:1456,&quot;resizeWidth&quot;:null,&quot;bytes&quot;:1367779,&quot;alt&quot;:null,&quot;title&quot;:null,&quot;type&quot;:&quot;image/png&quot;,&quot;href&quot;:&quot;https://www.eon.io/event/luca-berton-iac-data-recovery?utm_source=devops_bulletin&amp;utm_medium=third_party&amp;utm_campaign=26Q3_MOFU_Webinar_Infrastructure_As_Code_Luca_Berton_100726&amp;utm_content=promo_email&quot;,&quot;belowTheFold&quot;:false,&quot;topImage&quot;:false,&quot;internalRedirect&quot;:&quot;https://www.devopsbulletin.com/i/217213951?img=https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fb939f25d-19e4-47a4-8a36-48cae819a338_1999x1046.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_!bDal!,w_424,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fb939f25d-19e4-47a4-8a36-48cae819a338_1999x1046.png 424w, https://substackcdn.com/image/fetch/$s_!bDal!,w_848,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fb939f25d-19e4-47a4-8a36-48cae819a338_1999x1046.png 848w, https://substackcdn.com/image/fetch/$s_!bDal!,w_1272,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fb939f25d-19e4-47a4-8a36-48cae819a338_1999x1046.png 1272w, https://substackcdn.com/image/fetch/$s_!bDal!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fb939f25d-19e4-47a4-8a36-48cae819a338_1999x1046.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 buttonBase-GK1x3M"><svg aria-hidden="true" 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" class="icon-noB79L"><g><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 buttonBase-GK1x3M"><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 icon-noB79L"><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><span>Join us on October 7 (Wed) for a live session with Luca Berton, creator of Ansible Pilot and author of the backup and DR guides for Ansible Automation Platform. An automated change with valid permissions could pass every check and still corrupt production data. Re-running the playbook rebuilds the host, and a snapshot rolls back every good write since. Luca rebuilds the recovery for a real incident live, step by step, into a runbook live attendees keep. Bring an incident that broke production and passed every check, and it might be the one he runs - </span><a href="https://www.eon.io/event/luca-berton-iac-data-recovery?utm_source=devops_bulletin&amp;utm_medium=third_party&amp;utm_campaign=26Q3_MOFU_Webinar_Infrastructure_As_Code_Luca_Berton_100726&amp;utm_content=promo_email"><span>Save your seat</span></a></p><h4><strong>My take: ask your coding agent for the recovery plan</strong></h4><div class="subscription-widget-wrap-editor" data-attrs="{&quot;url&quot;:&quot;https://www.devopsbulletin.com/subscribe?&quot;,&quot;text&quot;:&quot;Upgrade&quot;,&quot;language&quot;:&quot;en&quot;}" data-component-name="SubscribeWidgetToDOM"><div class="subscription-widget show-subscribe"><div class="preamble"><p class="cta-caption">This post has bonus content for paid subscribers. Upgrade to get full access.</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="Upgrade"><div class="fake-input-wrapper"><div class="fake-input"></div><div class="fake-button"></div></div></form></div></div><h4><strong>Newsworthy stories</strong></h4><ul><li><p><strong><a href="https://blog.cloudflare.com/saving-100-tb-of-ram-with-math/?utm_source=devopsbulletin.com">Cloudflare saves another 100TB of RAM with math and Rust</a></strong></p></li><li><p><strong><a href="https://www.anthropic.com/threat-intelligence-report-september-2026?utm_source=devopsbulletin.com">Anthropic threat intelligence report</a></strong></p></li><li><p><strong><a href="https://www.fairwinds.com/blog/how-we-deployed-maintained-and-migrated-production-n8n-on-eks?utm_source=devopsbulletin.com">How Fairwinds deployed, maintained, and migrated production n8n on EKS</a></strong></p></li><li><p><strong><a href="https://arize.com/blog/building-tools-for-ai-agents?utm_source=devopsbulletin.com">What changes when AI agents use your software</a></strong></p></li></ul><h4><strong>Tutorials of the week</strong></h4><ul><li><p><strong><a href="https://www.dbos.dev/blog/scaling-deletions-in-postgres?utm_source=devopsbulletin.com">How to make Postgres DELETEs not become a performance bottleneck</a></strong></p></li><li><p><strong><a href="https://aws.amazon.com/blogs/aws-cloud-financial-management/getting-started-with-tokenomics-on-aws/?utm_source=devopsbulletin.com">Getting started with tokenomics on AWS</a></strong></p></li><li><p><strong><a href="https://kubernetes.io/blog/2026/09/21/kubernetes-v1-37-pvc-last-used-time/?utm_source=devopsbulletin.com">Track when a Kubernetes PVC was last referenced by a Pod</a></strong></p></li><li><p><strong><a href="https://cloud.google.com/blog/products/containers-kubernetes/native-support-for-prometheus-metrics-in-gke?utm_source=devopsbulletin.com">Autoscale GKE workloads with built-in PromQL metrics</a></strong></p></li><li><p><strong><a href="https://aws.amazon.com/blogs/security/operationalizing-least-privilege-automate-iam-remediation-through-your-ci-cd-pipeline/?utm_source=devopsbulletin.com">Automate IAM remediation through your CI/CD pipeline</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/security/operationalizing-least-privilege-automate-iam-remediation-through-your-ci-cd-pipeline/?utm_source=devopsbulletin.com" data-component-name="Image2ToDOM"><div class="image2-inset"><picture><source type="image/webp" srcset="https://substackcdn.com/image/fetch/$s_!70k5!,w_424,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F038ad460-f688-409b-b6dd-7dba690e6342_771x930.png 424w, https://substackcdn.com/image/fetch/$s_!70k5!,w_848,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F038ad460-f688-409b-b6dd-7dba690e6342_771x930.png 848w, https://substackcdn.com/image/fetch/$s_!70k5!,w_1272,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F038ad460-f688-409b-b6dd-7dba690e6342_771x930.png 1272w, https://substackcdn.com/image/fetch/$s_!70k5!,w_1456,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F038ad460-f688-409b-b6dd-7dba690e6342_771x930.png 1456w" sizes="auto, 100vw"><img src="https://substackcdn.com/image/fetch/$s_!70k5!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F038ad460-f688-409b-b6dd-7dba690e6342_771x930.png" width="396" height="477.6653696498054" data-attrs="{&quot;src&quot;:&quot;https://substack-post-media.s3.amazonaws.com/public/images/038ad460-f688-409b-b6dd-7dba690e6342_771x930.png&quot;,&quot;srcNoWatermark&quot;:null,&quot;fullscreen&quot;:null,&quot;imageSize&quot;:null,&quot;height&quot;:930,&quot;width&quot;:771,&quot;resizeWidth&quot;:396,&quot;bytes&quot;:null,&quot;alt&quot;:&quot;Figure 1: The daily remediation workflow; from scheduled trigger to the three role-based remediation paths&quot;,&quot;title&quot;:null,&quot;type&quot;:null,&quot;href&quot;:&quot;https://aws.amazon.com/blogs/security/operationalizing-least-privilege-automate-iam-remediation-through-your-ci-cd-pipeline/?utm_source=devopsbulletin.com&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 1: The daily remediation workflow; from scheduled trigger to the three role-based remediation paths" title="Figure 1: The daily remediation workflow; from scheduled trigger to the three role-based remediation paths" srcset="https://substackcdn.com/image/fetch/$s_!70k5!,w_424,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F038ad460-f688-409b-b6dd-7dba690e6342_771x930.png 424w, https://substackcdn.com/image/fetch/$s_!70k5!,w_848,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F038ad460-f688-409b-b6dd-7dba690e6342_771x930.png 848w, https://substackcdn.com/image/fetch/$s_!70k5!,w_1272,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F038ad460-f688-409b-b6dd-7dba690e6342_771x930.png 1272w, https://substackcdn.com/image/fetch/$s_!70k5!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F038ad460-f688-409b-b6dd-7dba690e6342_771x930.png 1456w" sizes="auto, 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 buttonBase-GK1x3M"><svg aria-hidden="true" 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" class="icon-noB79L"><g><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 buttonBase-GK1x3M"><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 icon-noB79L"><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.intigriti.com/researchers/blog/hacking-tools/hacking-ai-customer-service-agents">Hacking AI customer service agents</a></strong></p></li><li><p><strong><a href="https://aws.amazon.com/blogs/aws-cloud-financial-management/implementing-proportional-reserved-instance-and-savings-plans-chargeback-with-aws-billing-conductor/?utm_source=devopsbulletin.com">Implement proportional Reserved Instance and Savings Plans chargeback</a></strong></p></li><li><p><strong><a href="https://huggingface.co/blog/transformers-llama-cpp-quants?utm_source=devopsbulletin.com">Load and serve GGUF models with Transformers</a></strong></p></li></ul><h4><strong>Videos of the week</strong></h4><div id="youtube2-L1AY-OpuZkg" class="youtube-wrap" data-attrs="{&quot;videoId&quot;:&quot;L1AY-OpuZkg&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/L1AY-OpuZkg?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-FHp8dbUcu0A" class="youtube-wrap" data-attrs="{&quot;videoId&quot;:&quot;FHp8dbUcu0A&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/FHp8dbUcu0A?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><strong>Projects of the week</strong></h4><div class="subscription-widget-wrap-editor" data-attrs="{&quot;url&quot;:&quot;https://www.devopsbulletin.com/subscribe?&quot;,&quot;text&quot;:&quot;Upgrade&quot;,&quot;language&quot;:&quot;en&quot;}" data-component-name="SubscribeWidgetToDOM"><div class="subscription-widget show-subscribe"><div class="preamble"><p class="cta-caption">This post has bonus content for paid subscribers. Upgrade to get full access.</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="Upgrade"><div class="fake-input-wrapper"><div class="fake-input"></div><div class="fake-button"></div></div></form></div></div><h4><strong>Meme of the week</strong></h4><div class="captioned-image-container"><figure><a class="image-link image2 is-viewable-img" target="_blank" href="https://substackcdn.com/image/fetch/$s_!YgbR!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F9c8ad92c-7b42-4fdc-b86c-bb6913d2c24c_651x500.jpeg" data-component-name="Image2ToDOM"><div class="image2-inset"><picture><source type="image/webp" srcset="https://substackcdn.com/image/fetch/$s_!YgbR!,w_424,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F9c8ad92c-7b42-4fdc-b86c-bb6913d2c24c_651x500.jpeg 424w, https://substackcdn.com/image/fetch/$s_!YgbR!,w_848,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F9c8ad92c-7b42-4fdc-b86c-bb6913d2c24c_651x500.jpeg 848w, https://substackcdn.com/image/fetch/$s_!YgbR!,w_1272,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F9c8ad92c-7b42-4fdc-b86c-bb6913d2c24c_651x500.jpeg 1272w, https://substackcdn.com/image/fetch/$s_!YgbR!,w_1456,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F9c8ad92c-7b42-4fdc-b86c-bb6913d2c24c_651x500.jpeg 1456w" sizes="auto, 100vw"><img src="https://substackcdn.com/image/fetch/$s_!YgbR!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F9c8ad92c-7b42-4fdc-b86c-bb6913d2c24c_651x500.jpeg" width="469" height="360.21505376344084" data-attrs="{&quot;src&quot;:&quot;https://substack-post-media.s3.amazonaws.com/public/images/9c8ad92c-7b42-4fdc-b86c-bb6913d2c24c_651x500.jpeg&quot;,&quot;srcNoWatermark&quot;:null,&quot;fullscreen&quot;:null,&quot;imageSize&quot;:null,&quot;height&quot;:500,&quot;width&quot;:651,&quot;resizeWidth&quot;:469,&quot;bytes&quot;:null,&quot;alt&quot;:&quot;Image preview&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="Image preview" title="Image preview" srcset="https://substackcdn.com/image/fetch/$s_!YgbR!,w_424,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F9c8ad92c-7b42-4fdc-b86c-bb6913d2c24c_651x500.jpeg 424w, https://substackcdn.com/image/fetch/$s_!YgbR!,w_848,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F9c8ad92c-7b42-4fdc-b86c-bb6913d2c24c_651x500.jpeg 848w, https://substackcdn.com/image/fetch/$s_!YgbR!,w_1272,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F9c8ad92c-7b42-4fdc-b86c-bb6913d2c24c_651x500.jpeg 1272w, https://substackcdn.com/image/fetch/$s_!YgbR!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F9c8ad92c-7b42-4fdc-b86c-bb6913d2c24c_651x500.jpeg 1456w" sizes="auto, 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 buttonBase-GK1x3M"><svg aria-hidden="true" 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" class="icon-noB79L"><g><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 buttonBase-GK1x3M"><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 icon-noB79L"><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="callout-block" data-callout="true"><p>Want to sponsor the newsletter? <a href="https://workspace.passionfroot.me/devopsbulletin">Book a slot</a> - Q4 dates are open.</p></div>]]></content:encoded></item><item><title><![CDATA[Digest #232: Why AWS Multi-Region Is Still Hard, The GitHub Actions Caches You're Missing, Claude Code on a Cloud VM and the Cloud Waste Your Bill Doesn't Show]]></title><description><![CDATA[Why multi-region AWS is still hard, the caches your GitHub Actions workflows are missing, PostgreSQL 19's plan advice, and a Kubernetes-native registry for your OpenTofu modules.]]></description><link>https://www.devopsbulletin.com/p/digest-232-why-aws-multi-region-is</link><guid isPermaLink="false">https://www.devopsbulletin.com/p/digest-232-why-aws-multi-region-is</guid><dc:creator><![CDATA[Mohamed Labouardy]]></dc:creator><pubDate>Fri, 18 Sep 2026 18:07:25 GMT</pubDate><enclosure url="https://substackcdn.com/image/fetch/$s_!RBG1!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fd6da5e92-3a57-405a-a928-56f50e86ac02_1536x1024.png" length="0" type="image/jpeg"/><content:encoded><![CDATA[<div class="captioned-image-container"><figure><a class="image-link image2" target="_blank" href="https://link.svix.com/dobulletin" data-component-name="Image2ToDOM"><div class="image2-inset"><picture><source type="image/webp" srcset="https://substackcdn.com/image/fetch/$s_!R46G!,w_424,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F70ed2a93-98f6-450f-8383-92714fb84435_1228x351.png 424w, https://substackcdn.com/image/fetch/$s_!R46G!,w_848,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F70ed2a93-98f6-450f-8383-92714fb84435_1228x351.png 848w, https://substackcdn.com/image/fetch/$s_!R46G!,w_1272,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F70ed2a93-98f6-450f-8383-92714fb84435_1228x351.png 1272w, https://substackcdn.com/image/fetch/$s_!R46G!,w_1456,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F70ed2a93-98f6-450f-8383-92714fb84435_1228x351.png 1456w" sizes="100vw"><img src="https://substackcdn.com/image/fetch/$s_!R46G!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F70ed2a93-98f6-450f-8383-92714fb84435_1228x351.png" width="202" height="57.737785016286644" data-attrs="{&quot;src&quot;:&quot;https://substack-post-media.s3.amazonaws.com/public/images/70ed2a93-98f6-450f-8383-92714fb84435_1228x351.png&quot;,&quot;srcNoWatermark&quot;:null,&quot;fullscreen&quot;:null,&quot;imageSize&quot;:null,&quot;height&quot;:351,&quot;width&quot;:1228,&quot;resizeWidth&quot;:202,&quot;bytes&quot;:null,&quot;alt&quot;:null,&quot;title&quot;:null,&quot;type&quot;:null,&quot;href&quot;:&quot;https://link.svix.com/dobulletin&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_!R46G!,w_424,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F70ed2a93-98f6-450f-8383-92714fb84435_1228x351.png 424w, https://substackcdn.com/image/fetch/$s_!R46G!,w_848,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F70ed2a93-98f6-450f-8383-92714fb84435_1228x351.png 848w, https://substackcdn.com/image/fetch/$s_!R46G!,w_1272,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F70ed2a93-98f6-450f-8383-92714fb84435_1228x351.png 1272w, https://substackcdn.com/image/fetch/$s_!R46G!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F70ed2a93-98f6-450f-8383-92714fb84435_1228x351.png 1456w" sizes="100vw" fetchpriority="high"></picture><div></div></div></a></figure></div><blockquote><p>AWS had another rough year in us-east-1, and this week&#8217;s retrospective explains why multi-region still doesn&#8217;t come easy. Kubernetes v1.37 adds noexec mounts and emptyDir permissions. PostgreSQL 19 lets you pin a query plan the planner abandoned. Tigris got Git running on object storage. There&#8217;s a guide to the GitHub Actions caches most workflows skip, a scenario to test whether your AI SOC can trace a GitHub compromise into AWS, and a write-up on letting an agent rewrite a 92M message/day service.</p></blockquote><div class="callout-block" data-callout="true"><p> If you&#8217;re 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><h4><strong>A webhook platform for your AI agents</strong></h4><p>Most AI agents can&#8217;t receive a webhook: they run on a laptop, behind a VPN, or in a sandbox that blocks inbound traffic.</p><div class="captioned-image-container"><figure><a class="image-link image2 is-viewable-img" target="_blank" href="https://link.svix.com/dobulletin" data-component-name="Image2ToDOM"><div class="image2-inset"><picture><source type="image/webp" srcset="https://substackcdn.com/image/fetch/$s_!jhaE!,w_424,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F1662fb53-3998-40bb-a956-3b9b2990157f_1200x640.png 424w, https://substackcdn.com/image/fetch/$s_!jhaE!,w_848,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F1662fb53-3998-40bb-a956-3b9b2990157f_1200x640.png 848w, https://substackcdn.com/image/fetch/$s_!jhaE!,w_1272,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F1662fb53-3998-40bb-a956-3b9b2990157f_1200x640.png 1272w, https://substackcdn.com/image/fetch/$s_!jhaE!,w_1456,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F1662fb53-3998-40bb-a956-3b9b2990157f_1200x640.png 1456w" sizes="100vw"><img src="https://substackcdn.com/image/fetch/$s_!jhaE!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F1662fb53-3998-40bb-a956-3b9b2990157f_1200x640.png" width="568" height="302.93333333333334" data-attrs="{&quot;src&quot;:&quot;https://substack-post-media.s3.amazonaws.com/public/images/1662fb53-3998-40bb-a956-3b9b2990157f_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;:568,&quot;bytes&quot;:126599,&quot;alt&quot;:&quot;&quot;,&quot;title&quot;:&quot;&quot;,&quot;type&quot;:&quot;image/png&quot;,&quot;href&quot;:&quot;https://link.svix.com/dobulletin&quot;,&quot;belowTheFold&quot;:false,&quot;topImage&quot;:false,&quot;internalRedirect&quot;:&quot;https://www.devopsbulletin.com/i/214129746?img=https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F1662fb53-3998-40bb-a956-3b9b2990157f_1200x640.png&quot;,&quot;isProcessing&quot;:false,&quot;align&quot;:null,&quot;offset&quot;:false}" class="sizing-normal" alt="" title="" srcset="https://substackcdn.com/image/fetch/$s_!jhaE!,w_424,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F1662fb53-3998-40bb-a956-3b9b2990157f_1200x640.png 424w, https://substackcdn.com/image/fetch/$s_!jhaE!,w_848,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F1662fb53-3998-40bb-a956-3b9b2990157f_1200x640.png 848w, https://substackcdn.com/image/fetch/$s_!jhaE!,w_1272,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F1662fb53-3998-40bb-a956-3b9b2990157f_1200x640.png 1272w, https://substackcdn.com/image/fetch/$s_!jhaE!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F1662fb53-3998-40bb-a956-3b9b2990157f_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 buttonBase-GK1x3M"><svg aria-hidden="true" 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" class="icon-noB79L"><g><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 buttonBase-GK1x3M"><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 icon-noB79L"><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://link.svix.com/dobulletin">Svix Ingest</a> takes events from Stripe, GitHub, incident.io, or anything else that sends webhooks, and your agent pulls them over an outbound HTTPS connection a few seconds later. No public URL, no tunnel, and nothing lost while it was offline - <strong><a href="https://link.svix.com/dobulletin">Try it out</a></strong></p><h4><strong>My take: give your coding agent a failing test before asking for a fix</strong></h4><div class="subscription-widget-wrap-editor" data-attrs="{&quot;url&quot;:&quot;https://www.devopsbulletin.com/subscribe?&quot;,&quot;text&quot;:&quot;Upgrade&quot;,&quot;language&quot;:&quot;en&quot;}" data-component-name="SubscribeWidgetToDOM"><div class="subscription-widget show-subscribe"><div class="preamble"><p class="cta-caption">This post has bonus content for paid subscribers. Upgrade to get full access.</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="Upgrade"><div class="fake-input-wrapper"><div class="fake-input"></div><div class="fake-button"></div></div></form></div></div><h4><strong>Newsworthy stories</strong></h4><ul><li><p><strong><a href="https://www.eon.io/event/victor-garcia-cloud-waste?utm_source=devops_bulletin&amp;utm_medium=third_party&amp;utm_campaign=26q3_mofu_webinar_cloud_waste_billing_victor_garcia_092326&amp;utm_content=promo_email">Finding the cloud waste your billing data misses</a></strong></p></li><li><p><strong><a href="https://z.ai/blog/glm-built-its-inference-infrastructure?utm_source=devopsbulletin.com">How GLM built its own inference infrastructure</a></strong></p></li><li><p><strong><a href="https://awsfundamentals.com/blog/aws-outages-2025-multi-region-reality?utm_source=devopsbulletin.com">Why AWS multi-region is still hard, even with AI</a></strong></p></li><li><p><strong><a href="https://unsecure.sh/blog/agentic-soc-scenario?utm_source=devopsbulletin.com">A scenario to evaluate whether your agentic SOC can trace a GitHub workflow compromise into AWS</a></strong></p></li><li><p><strong><a href="https://blog.sqlauthority.com/2026/09/11/every-database-has-these-seven-tables?utm_source=devopsbulletin.com">Every database has these seven tables</a></strong></p></li></ul><h4><strong>Tutorials of the week</strong></h4><ul><li><p><strong><a href="https://avrea.com/blog/github-actions-cache?utm_source=devopsbulletin.com">A practical guide to GitHub Actions caching</a></strong></p></li><li><p><strong><a href="https://kubernetes.io/blog/2026/09/16/kubernetes-v1-37-hardening-container-storage/?utm_source=devopsbulletin.com">Kubernetes v1.37: hardening container storage</a></strong></p></li><li><p><strong><a href="https://expo.dev/blog/build-ios-apps-on-windows-with-cloud-simulators?utm_source=devopsbulletin.com">You don&#8217;t need a Mac to develop iOS apps</a></strong></p></li><li><p><strong><a href="https://gist.github.com/richardwei6/8497cfaee72edd75a4f3f46708077a59?utm_source=devopsbulletin.com">Running Claude Code and Codex on a cloud VM</a></strong></p></li></ul><div class="captioned-image-container"><figure><a class="image-link image2 is-viewable-img" target="_blank" href="https://gist.github.com/richardwei6/8497cfaee72edd75a4f3f46708077a59?utm_source=devopsbulletin.com" data-component-name="Image2ToDOM"><div class="image2-inset"><picture><source type="image/webp" srcset="https://substackcdn.com/image/fetch/$s_!RBG1!,w_424,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fd6da5e92-3a57-405a-a928-56f50e86ac02_1536x1024.png 424w, https://substackcdn.com/image/fetch/$s_!RBG1!,w_848,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fd6da5e92-3a57-405a-a928-56f50e86ac02_1536x1024.png 848w, https://substackcdn.com/image/fetch/$s_!RBG1!,w_1272,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fd6da5e92-3a57-405a-a928-56f50e86ac02_1536x1024.png 1272w, https://substackcdn.com/image/fetch/$s_!RBG1!,w_1456,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fd6da5e92-3a57-405a-a928-56f50e86ac02_1536x1024.png 1456w" sizes="auto, 100vw"><img src="https://substackcdn.com/image/fetch/$s_!RBG1!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fd6da5e92-3a57-405a-a928-56f50e86ac02_1536x1024.png" width="1456" height="971" data-attrs="{&quot;src&quot;:&quot;https://substack-post-media.s3.amazonaws.com/public/images/d6da5e92-3a57-405a-a928-56f50e86ac02_1536x1024.png&quot;,&quot;srcNoWatermark&quot;:null,&quot;fullscreen&quot;:null,&quot;imageSize&quot;:null,&quot;height&quot;:971,&quot;width&quot;:1456,&quot;resizeWidth&quot;:null,&quot;bytes&quot;:1662660,&quot;alt&quot;:null,&quot;title&quot;:null,&quot;type&quot;:&quot;image/png&quot;,&quot;href&quot;:&quot;https://gist.github.com/richardwei6/8497cfaee72edd75a4f3f46708077a59?utm_source=devopsbulletin.com&quot;,&quot;belowTheFold&quot;:true,&quot;topImage&quot;:false,&quot;internalRedirect&quot;:&quot;https://www.devopsbulletin.com/i/216118376?img=https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fd6da5e92-3a57-405a-a928-56f50e86ac02_1536x1024.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_!RBG1!,w_424,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fd6da5e92-3a57-405a-a928-56f50e86ac02_1536x1024.png 424w, https://substackcdn.com/image/fetch/$s_!RBG1!,w_848,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fd6da5e92-3a57-405a-a928-56f50e86ac02_1536x1024.png 848w, https://substackcdn.com/image/fetch/$s_!RBG1!,w_1272,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fd6da5e92-3a57-405a-a928-56f50e86ac02_1536x1024.png 1272w, https://substackcdn.com/image/fetch/$s_!RBG1!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fd6da5e92-3a57-405a-a928-56f50e86ac02_1536x1024.png 1456w" sizes="auto, 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 buttonBase-GK1x3M"><svg aria-hidden="true" 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" class="icon-noB79L"><g><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 buttonBase-GK1x3M"><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 icon-noB79L"><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.tigrisdata.com/blog/objgit-packfiles?utm_source=devopsbulletin.com">You can run Git on object storage if you remake packfiles</a></strong></p></li><li><p><strong><a href="https://www.gremlin.com/blog/managing-kubernetes-node-drains-with-pod-disruption-budgets?utm_source=devopsbulletin.com">Managing Kubernetes node drains with Pod Disruption Budgets</a></strong></p></li><li><p><strong><a href="https://milanjovanovic.tech/blog/postgres-row-level-security-with-ef-core?utm_source=devopsbulletin.com">PostgreSQL row-level security with EF Core and Npgsql</a></strong></p></li><li><p><strong><a href="https://www.defdev.io/blog/i-got-tired-of-paying-jfrog?utm_source=devopsbulletin.com">I got tired of paying JFrog for a secure OpenTofu and Terraform registry, so I built my own</a></strong></p></li><li><p><strong><a href="https://tapoueh.org/blog/2026/09/plan-advice-in-postgresql-19?utm_source=devopsbulletin.com">Plan advice in PostgreSQL 19</a></strong></p></li><li><p><strong><a href="https://aws.amazon.com/blogs/machine-learning/monitoring-production-agent-lifecycle-with-aws-devops-agent-and-agentcore-evaluations/?utm_source=devopsbulletin.com">Monitoring the production agent lifecycle with AWS DevOps Agent</a></strong></p></li><li><p><strong><a href="https://thefulldatastack.substack.com/p/my-duckdb-ai-workflow">A practical DuckDB and AI workflow for data analysis</a></strong></p></li></ul><h4><strong>Videos of the week</strong></h4><div id="youtube2-YInhHfUZsLc" class="youtube-wrap" data-attrs="{&quot;videoId&quot;:&quot;YInhHfUZsLc&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/YInhHfUZsLc?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-zPWAjOWimak" class="youtube-wrap" data-attrs="{&quot;videoId&quot;:&quot;zPWAjOWimak&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/zPWAjOWimak?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-keO29zC2rbk" class="youtube-wrap" data-attrs="{&quot;videoId&quot;:&quot;keO29zC2rbk&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/keO29zC2rbk?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><strong>Projects of the week</strong></h4><ul><li><p><strong><a href="https://github.com/tonedefdev/opendepot?utm_source=devopsbulletin.com">OpenDepot</a></strong> is a Kubernetes-native, self-hosted registry for OpenTofu and Terraform modules and providers.</p></li><li><p><strong><a href="https://github.com/cloudflare/security-audit-skill?utm_source=devopsbulletin.com">security-audit-skill</a></strong> turns your coding agent into a security auditor that hands every finding to a fresh agent to disprove before it reaches the report.</p></li><li><p><strong><a href="https://github.com/kpolley/redai?utm_source=devopsbulletin.com">RedAI</a></strong> sends validator agents into a running application to prove or disprove each vulnerability before reporting it.</p></li><li><p><strong><a href="https://github.com/dbcli/litecli?utm_source=devopsbulletin.com">litecli</a></strong> is a command-line client for SQLite with autocompletion and syntax highlighting.</p></li><li><p><strong><a href="https://github.com/alegrey91/vex8s?utm_source=devopsbulletin.com">Vex8s</a></strong> generates VEX documents by checking which container CVEs your Kubernetes security contexts already mitigate.</p></li><li><p><strong><a href="https://github.com/cline/cline?utm_source=devopsbulletin.com">Cline</a></strong> is a coding agent for your IDE, terminal, and desktop, with a headless mode for CI.</p></li></ul><h4><strong>Meme of the week</strong></h4><p><a href="https://openai.com/index/model-misalignment-reporting-framework/">OpenAI</a> disclosed that, during training, some AI agents left instructions in their handoff notes telling the next agent to hide mistakes from the user.</p><div class="captioned-image-container"><figure><a class="image-link image2 is-viewable-img" target="_blank" href="https://substackcdn.com/image/fetch/$s_!vch7!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fa90d7c31-aa92-4f46-9e87-a09d54e39fd3_1254x1254.png" data-component-name="Image2ToDOM"><div class="image2-inset"><picture><source type="image/webp" srcset="https://substackcdn.com/image/fetch/$s_!vch7!,w_424,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fa90d7c31-aa92-4f46-9e87-a09d54e39fd3_1254x1254.png 424w, https://substackcdn.com/image/fetch/$s_!vch7!,w_848,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fa90d7c31-aa92-4f46-9e87-a09d54e39fd3_1254x1254.png 848w, https://substackcdn.com/image/fetch/$s_!vch7!,w_1272,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fa90d7c31-aa92-4f46-9e87-a09d54e39fd3_1254x1254.png 1272w, https://substackcdn.com/image/fetch/$s_!vch7!,w_1456,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fa90d7c31-aa92-4f46-9e87-a09d54e39fd3_1254x1254.png 1456w" sizes="auto, 100vw"><img src="https://substackcdn.com/image/fetch/$s_!vch7!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fa90d7c31-aa92-4f46-9e87-a09d54e39fd3_1254x1254.png" width="442" height="442" data-attrs="{&quot;src&quot;:&quot;https://substack-post-media.s3.amazonaws.com/public/images/a90d7c31-aa92-4f46-9e87-a09d54e39fd3_1254x1254.png&quot;,&quot;srcNoWatermark&quot;:null,&quot;fullscreen&quot;:null,&quot;imageSize&quot;:null,&quot;height&quot;:1254,&quot;width&quot;:1254,&quot;resizeWidth&quot;:442,&quot;bytes&quot;:1913993,&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/216118376?img=https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fa90d7c31-aa92-4f46-9e87-a09d54e39fd3_1254x1254.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_!vch7!,w_424,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fa90d7c31-aa92-4f46-9e87-a09d54e39fd3_1254x1254.png 424w, https://substackcdn.com/image/fetch/$s_!vch7!,w_848,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fa90d7c31-aa92-4f46-9e87-a09d54e39fd3_1254x1254.png 848w, https://substackcdn.com/image/fetch/$s_!vch7!,w_1272,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fa90d7c31-aa92-4f46-9e87-a09d54e39fd3_1254x1254.png 1272w, https://substackcdn.com/image/fetch/$s_!vch7!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fa90d7c31-aa92-4f46-9e87-a09d54e39fd3_1254x1254.png 1456w" sizes="auto, 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 buttonBase-GK1x3M"><svg aria-hidden="true" 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" class="icon-noB79L"><g><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 buttonBase-GK1x3M"><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 icon-noB79L"><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="callout-block" data-callout="true"><p>Want to reach out to sponsor the newsletter? <a href="https://workspace.passionfroot.me/devopsbulletin">Book a slot</a> - Q4 dates are open.</p></div>]]></content:encoded></item><item><title><![CDATA[Digest #231: Jenkins is Dead? GitHub Actions Alternative, 1 in 10 LiteLLM Gateways Still Use the Demo Key, Spotify's 90% Token Cut and Git Configs That Hijack Claude Code]]></title><description><![CDATA[Also: how Datadog absorbed 20x more Git traffic from CI without slowing down, the benchmark that says RTK doesn't make AI coding cheaper, the Karpenter change that quietly turned on cross-AZ billing.]]></description><link>https://www.devopsbulletin.com/p/digest-231-jenkins-is-dead-github</link><guid isPermaLink="false">https://www.devopsbulletin.com/p/digest-231-jenkins-is-dead-github</guid><dc:creator><![CDATA[Mohamed Labouardy]]></dc:creator><pubDate>Fri, 11 Sep 2026 18:05:02 GMT</pubDate><enclosure url="https://substackcdn.com/image/fetch/$s_!ji2M!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fa8fe023f-068c-479f-9bc6-fac3f711ed8a_1880x680.png" length="0" type="image/jpeg"/><content:encoded><![CDATA[<blockquote><p><span>A team pointed hundreds of Codex and DeepSeek agents at two PaperCut CVEs and compromised 440+ servers at 395 organizations in 48 countries, going from vulnerability research to the first real victim in under four hours.<br>The same week, Wiz scanned 3,074 internet-facing LiteLLM gateways and found 294 of them still accepting </span><em>sk-1234</em><span>, the master key from the docs, with a path from there to the cloud account's IAM credentials.<br>Add a</span><em> .git</em><span> config that makes Claude Code, Codex and Cursor run attacker code on clone, and this is the week the agents started attacking each other's infrastructure.</span></p></blockquote><div class="callout-block" data-callout="true"><p> If you&#8217;re 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><h4><strong>Faster GitHub Actions, one line to migrate</strong></h4><p><a href="https://avrea.com/?utm_source=devopsbulletin.com">Avrea</a> is CI infrastructure for GitHub Actions: you keep your workflows and swap <em>runs-on</em> for one of their labels, and jobs run on high clock-speed CPUs with a colocated cache for dependencies, Docker layers, and build artifacts, plus live observability with SSH into the runner when something is flaky.</p><div class="captioned-image-container"><figure><a class="image-link image2 is-viewable-img" target="_blank" href="https://avrea.com/?utm_source=devopsbulletin.com" data-component-name="Image2ToDOM"><div class="image2-inset"><picture><source type="image/webp" srcset="https://substackcdn.com/image/fetch/$s_!kKNO!,w_424,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fdb4c2252-c882-4a88-aa5f-d60d97965103_1717x916.png 424w, https://substackcdn.com/image/fetch/$s_!kKNO!,w_848,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fdb4c2252-c882-4a88-aa5f-d60d97965103_1717x916.png 848w, https://substackcdn.com/image/fetch/$s_!kKNO!,w_1272,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fdb4c2252-c882-4a88-aa5f-d60d97965103_1717x916.png 1272w, https://substackcdn.com/image/fetch/$s_!kKNO!,w_1456,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fdb4c2252-c882-4a88-aa5f-d60d97965103_1717x916.png 1456w" sizes="100vw"><img src="https://substackcdn.com/image/fetch/$s_!kKNO!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fdb4c2252-c882-4a88-aa5f-d60d97965103_1717x916.png" width="1456" height="777" data-attrs="{&quot;src&quot;:&quot;https://substack-post-media.s3.amazonaws.com/public/images/db4c2252-c882-4a88-aa5f-d60d97965103_1717x916.png&quot;,&quot;srcNoWatermark&quot;:null,&quot;fullscreen&quot;:null,&quot;imageSize&quot;:null,&quot;height&quot;:777,&quot;width&quot;:1456,&quot;resizeWidth&quot;:null,&quot;bytes&quot;:1357040,&quot;alt&quot;:null,&quot;title&quot;:null,&quot;type&quot;:&quot;image/png&quot;,&quot;href&quot;:&quot;https://avrea.com/?utm_source=devopsbulletin.com&quot;,&quot;belowTheFold&quot;:false,&quot;topImage&quot;:true,&quot;internalRedirect&quot;:&quot;https://www.devopsbulletin.com/i/215239531?img=https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fdb4c2252-c882-4a88-aa5f-d60d97965103_1717x916.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_!kKNO!,w_424,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fdb4c2252-c882-4a88-aa5f-d60d97965103_1717x916.png 424w, https://substackcdn.com/image/fetch/$s_!kKNO!,w_848,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fdb4c2252-c882-4a88-aa5f-d60d97965103_1717x916.png 848w, https://substackcdn.com/image/fetch/$s_!kKNO!,w_1272,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fdb4c2252-c882-4a88-aa5f-d60d97965103_1717x916.png 1272w, https://substackcdn.com/image/fetch/$s_!kKNO!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fdb4c2252-c882-4a88-aa5f-d60d97965103_1717x916.png 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 buttonBase-GK1x3M"><svg aria-hidden="true" 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" class="icon-noB79L"><g><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 buttonBase-GK1x3M"><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 icon-noB79L"><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>I tested Komiser&#8217;s workflows on their runners, and the cold run went from 5min to 3min, with the Go test suite at 2min instead of 4min.<br>Free tier is 3,000 build minutes a month, on Linux, macOS and Windows - <strong><a href="https://avrea.com/?utm_source=devopsbulletin.com">Try Avrea for free</a></strong></p><h4><strong>My take: what Spotify did to cut Claude Code tokens by 90%, and what you can copy</strong></h4><div class="subscription-widget-wrap-editor" data-attrs="{&quot;url&quot;:&quot;https://www.devopsbulletin.com/subscribe?&quot;,&quot;text&quot;:&quot;Upgrade&quot;,&quot;language&quot;:&quot;en&quot;}" data-component-name="SubscribeWidgetToDOM"><div class="subscription-widget show-subscribe"><div class="preamble"><p class="cta-caption">This post has bonus content for paid subscribers. Upgrade to get full access.</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="Upgrade"><div class="fake-input-wrapper"><div class="fake-input"></div><div class="fake-button"></div></div></form></div></div><h4><strong>Newsworthy stories</strong></h4><ul><li><p><strong><a href="https://thehackernews.com/2026/09/papercut-attacker-uses-hundreds-of-ai.html?utm_source=devopsbulletin.com">PaperCut attacker uses hundreds of AI agents to compromise 440+ instances</a></strong></p></li><li><p><strong><a href="https://www.wiz.io/blog/off-guard-breaking-litellm-from-authentication-bypass-to-cloud-compromise?utm_source=devopsbulletin.com">Nearly 1 in 10 exposed LiteLLM gateways accepted the example sk-1234 admin key</a></strong></p></li><li><p><strong><a href="https://thehackernews.com/2026/09/malicious-git-configs-can-make-claude.html?utm_source=devopsbulletin.com">Malicious .git configs can make Claude, Codex, Cursor and other AI agents run attacker code</a></strong></p></li><li><p><strong><a href="https://engineering.atspotify.com/2026/9/portal-by-spotify-cut-my-claude-code-token-usage-by-90?utm_source=devopsbulletin.com">Portal by Spotify cut my Claude Code token usage by 90%</a></strong></p></li><li><p><strong><a href="https://www.datadoghq.com/blog/engineering/gitretriever/?utm_source=devopsbulletin.com">20x the CI traffic without getting slower: how Datadog rebuilt Git serving</a></strong></p></li><li><p><strong><a href="https://quesma.com/blog/does-rtk-make-ai-coding-cheaper/?utm_source=devopsbulletin.com">RTK reports token savings, but our cost benchmarks disagree</a></strong></p></li><li><p><strong><a href="https://www.tinybird.co/blog/what-i-learned-operating-clickhouse?utm_source=devopsbulletin.com">I&#8217;ve operated petabyte-scale ClickHouse clusters for 5 years</a></strong></p></li></ul><h4><strong>Tutorials of the week</strong></h4><ul><li><p><strong><a href="https://www.infoq.com/articles/chaos-engineering-ecs-payments/?utm_source=devopsbulletin.com">Implementing chaos engineering in financial payment systems on ECS</a></strong></p></li><li><p><strong><a href="https://aws.amazon.com/blogs/devops/investigate-dms-migration-issues-with-aws-devops-agent/?utm_source=devopsbulletin.com">Investigate DMS migration issues with AWS DevOps Agent</a></strong></p></li><li><p><strong><a href="https://www.cncf.io/blog/2026/09/10/kubernetes-disaster-recovery-guidance-from-three-reproducible-failure-scenarios/?utm_source=devopsbulletin.com">Kubernetes disaster recovery: guidance from three reproducible failure scenarios</a></strong></p></li></ul><div class="captioned-image-container"><figure><a class="image-link image2 is-viewable-img" target="_blank" href="https://www.cncf.io/blog/2026/09/10/kubernetes-disaster-recovery-guidance-from-three-reproducible-failure-scenarios/?utm_source=devopsbulletin.com" data-component-name="Image2ToDOM"><div class="image2-inset"><picture><source type="image/webp" srcset="https://substackcdn.com/image/fetch/$s_!ji2M!,w_424,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fa8fe023f-068c-479f-9bc6-fac3f711ed8a_1880x680.png 424w, https://substackcdn.com/image/fetch/$s_!ji2M!,w_848,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fa8fe023f-068c-479f-9bc6-fac3f711ed8a_1880x680.png 848w, https://substackcdn.com/image/fetch/$s_!ji2M!,w_1272,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fa8fe023f-068c-479f-9bc6-fac3f711ed8a_1880x680.png 1272w, https://substackcdn.com/image/fetch/$s_!ji2M!,w_1456,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fa8fe023f-068c-479f-9bc6-fac3f711ed8a_1880x680.png 1456w" sizes="auto, 100vw"><img src="https://substackcdn.com/image/fetch/$s_!ji2M!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fa8fe023f-068c-479f-9bc6-fac3f711ed8a_1880x680.png" width="1456" height="527" data-attrs="{&quot;src&quot;:&quot;https://substack-post-media.s3.amazonaws.com/public/images/a8fe023f-068c-479f-9bc6-fac3f711ed8a_1880x680.png&quot;,&quot;srcNoWatermark&quot;:null,&quot;fullscreen&quot;:null,&quot;imageSize&quot;:null,&quot;height&quot;:527,&quot;width&quot;:1456,&quot;resizeWidth&quot;:null,&quot;bytes&quot;:null,&quot;alt&quot;:&quot;Figure 8: Two independent failure domains&quot;,&quot;title&quot;:null,&quot;type&quot;:null,&quot;href&quot;:&quot;https://www.cncf.io/blog/2026/09/10/kubernetes-disaster-recovery-guidance-from-three-reproducible-failure-scenarios/?utm_source=devopsbulletin.com&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 8: Two independent failure domains" title="Figure 8: Two independent failure domains" srcset="https://substackcdn.com/image/fetch/$s_!ji2M!,w_424,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fa8fe023f-068c-479f-9bc6-fac3f711ed8a_1880x680.png 424w, https://substackcdn.com/image/fetch/$s_!ji2M!,w_848,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fa8fe023f-068c-479f-9bc6-fac3f711ed8a_1880x680.png 848w, https://substackcdn.com/image/fetch/$s_!ji2M!,w_1272,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fa8fe023f-068c-479f-9bc6-fac3f711ed8a_1880x680.png 1272w, https://substackcdn.com/image/fetch/$s_!ji2M!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fa8fe023f-068c-479f-9bc6-fac3f711ed8a_1880x680.png 1456w" sizes="auto, 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 buttonBase-GK1x3M"><svg aria-hidden="true" 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" class="icon-noB79L"><g><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 buttonBase-GK1x3M"><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 icon-noB79L"><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/09/08/distributed-tracing-for-ci-pipelines-without-touching-a-single-workflow-file/?utm_source=devopsbulletin.com">Distributed tracing for CI pipelines without touching a single workflow file</a></strong></p></li><li><p><strong><a href="https://awsfundamentals.com/blog/cross-az-traffic-karpenter?utm_source=devopsbulletin.com">The Karpenter change that quietly turned on cross-AZ traffic charges</a></strong></p></li><li><p><strong><a href="https://embracethered.com/blog/posts/2026/breaking-claude-code-opus-5-and-automode?utm_source=devopsbulletin.com">Breaking Claude Code Opus 5 auto mode: RCE from a website summary</a></strong></p></li><li><p><strong><a href="https://hackernoon.com/what-sres-should-automate-and-never-automate-with-ai?utm_source=devopsbulletin.com">What SREs should automate, and never automate, with AI</a></strong></p></li><li><p><strong><a href="https://aws.amazon.com/blogs/security/automate-iam-identity-center-governance-with-continuous-discovery-and-reporting?utm_source=devopsbulletin.com">Automate IAM Identity Center governance with continuous discovery and reporting</a></strong></p></li><li><p><strong><a href="https://oneuptime.com/blog/post/2026-02-23-how-to-handle-terraform-cicd-for-multiple-environments/view?utm_source=devopsbulletin.com">How to handle Terraform CI/CD for multiple environments</a></strong></p></li></ul><h4><strong>Videos of the week</strong></h4><div id="youtube2-9d9PQ1hrhBk" class="youtube-wrap" data-attrs="{&quot;videoId&quot;:&quot;9d9PQ1hrhBk&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/9d9PQ1hrhBk?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-LbxQqAuQ4Xk" class="youtube-wrap" data-attrs="{&quot;videoId&quot;:&quot;LbxQqAuQ4Xk&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/LbxQqAuQ4Xk?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><strong>Projects of the week</strong></h4><ul><li><p><strong><a href="https://github.com/tobi/walgit?utm_source=devopsbulletin.com">walgit</a></strong> hosts git repositories from a single binary in front of an S3 or GCS bucket, with no database, no leader, and no local state that matters.</p></li><li><p><strong><a href="https://github.com/google/mantis?utm_source=devopsbulletin.com">Mantis</a></strong> gives coding agents security review skills to find, reproduce, and patch vulnerabilities on their own.</p></li><li><p><strong><a href="https://github.com/cloud-in-a-bottle/cloud-in-a-bottle?utm_source=devopsbulletin.com">Cloud in a Bottle</a></strong> deploys and shares web apps on a server you control, with rootless hardened containers and one login for all of them.</p></li></ul><div class="captioned-image-container"><figure><a class="image-link image2 is-viewable-img" target="_blank" href="https://github.com/cloud-in-a-bottle/cloud-in-a-bottle?utm_source=devopsbulletin.com" data-component-name="Image2ToDOM"><div class="image2-inset"><picture><source type="image/webp" srcset="https://substackcdn.com/image/fetch/$s_!nK5J!,w_424,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fed4fd529-9fde-4952-950a-b18a56875cb3_709x475.png 424w, https://substackcdn.com/image/fetch/$s_!nK5J!,w_848,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fed4fd529-9fde-4952-950a-b18a56875cb3_709x475.png 848w, https://substackcdn.com/image/fetch/$s_!nK5J!,w_1272,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fed4fd529-9fde-4952-950a-b18a56875cb3_709x475.png 1272w, https://substackcdn.com/image/fetch/$s_!nK5J!,w_1456,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fed4fd529-9fde-4952-950a-b18a56875cb3_709x475.png 1456w" sizes="auto, 100vw"><img src="https://substackcdn.com/image/fetch/$s_!nK5J!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fed4fd529-9fde-4952-950a-b18a56875cb3_709x475.png" width="709" height="475" data-attrs="{&quot;src&quot;:&quot;https://substack-post-media.s3.amazonaws.com/public/images/ed4fd529-9fde-4952-950a-b18a56875cb3_709x475.png&quot;,&quot;srcNoWatermark&quot;:null,&quot;fullscreen&quot;:null,&quot;imageSize&quot;:null,&quot;height&quot;:475,&quot;width&quot;:709,&quot;resizeWidth&quot;:null,&quot;bytes&quot;:128208,&quot;alt&quot;:null,&quot;title&quot;:null,&quot;type&quot;:&quot;image/png&quot;,&quot;href&quot;:&quot;https://github.com/cloud-in-a-bottle/cloud-in-a-bottle?utm_source=devopsbulletin.com&quot;,&quot;belowTheFold&quot;:true,&quot;topImage&quot;:false,&quot;internalRedirect&quot;:&quot;https://www.devopsbulletin.com/i/215239531?img=https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fed4fd529-9fde-4952-950a-b18a56875cb3_709x475.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_!nK5J!,w_424,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fed4fd529-9fde-4952-950a-b18a56875cb3_709x475.png 424w, https://substackcdn.com/image/fetch/$s_!nK5J!,w_848,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fed4fd529-9fde-4952-950a-b18a56875cb3_709x475.png 848w, https://substackcdn.com/image/fetch/$s_!nK5J!,w_1272,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fed4fd529-9fde-4952-950a-b18a56875cb3_709x475.png 1272w, https://substackcdn.com/image/fetch/$s_!nK5J!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fed4fd529-9fde-4952-950a-b18a56875cb3_709x475.png 1456w" sizes="auto, 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 buttonBase-GK1x3M"><svg aria-hidden="true" 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" class="icon-noB79L"><g><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 buttonBase-GK1x3M"><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 icon-noB79L"><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/AlexsJones/llmfit?utm_source=devopsbulletin.com">llmfit</a></strong> tells you which open-weight models your CPU, RAM, and GPU can comfortably run, and at what quantization.</p></li><li><p><strong><a href="https://github.com/vvrnv/argo9s?utm_source=devopsbulletin.com">argo9s</a></strong> monitors Argo CD applications in real time from a K9s-style terminal UI.</p></li><li><p><strong><a href="https://github.com/sealandseacat/dbmask?utm_source=devopsbulletin.com">dbmask</a></strong> finds the sensitive columns in a SQL database, masks them with deterministic fakes, and verifies the masking actually happened.</p></li><li><p><strong><a href="https://github.com/openslop/nightshift?utm_source=devopsbulletin.com">Nightshift</a></strong> wakes your coding agent at night, hands it one small job at a time, and leaves pull requests for the morning.</p></li></ul><h4><strong>Meme of the week</strong></h4><div class="captioned-image-container"><figure><a class="image-link image2 is-viewable-img" target="_blank" href="https://substackcdn.com/image/fetch/$s_!KdPs!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F5e6333d1-d397-4c17-874d-4252ebdfce6c_1001x1200.jpeg" data-component-name="Image2ToDOM"><div class="image2-inset"><picture><source type="image/webp" srcset="https://substackcdn.com/image/fetch/$s_!KdPs!,w_424,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F5e6333d1-d397-4c17-874d-4252ebdfce6c_1001x1200.jpeg 424w, https://substackcdn.com/image/fetch/$s_!KdPs!,w_848,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F5e6333d1-d397-4c17-874d-4252ebdfce6c_1001x1200.jpeg 848w, https://substackcdn.com/image/fetch/$s_!KdPs!,w_1272,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F5e6333d1-d397-4c17-874d-4252ebdfce6c_1001x1200.jpeg 1272w, https://substackcdn.com/image/fetch/$s_!KdPs!,w_1456,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F5e6333d1-d397-4c17-874d-4252ebdfce6c_1001x1200.jpeg 1456w" sizes="auto, 100vw"><img src="https://substackcdn.com/image/fetch/$s_!KdPs!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F5e6333d1-d397-4c17-874d-4252ebdfce6c_1001x1200.jpeg" width="352" height="421.97802197802196" data-attrs="{&quot;src&quot;:&quot;https://substack-post-media.s3.amazonaws.com/public/images/5e6333d1-d397-4c17-874d-4252ebdfce6c_1001x1200.jpeg&quot;,&quot;srcNoWatermark&quot;:null,&quot;fullscreen&quot;:null,&quot;imageSize&quot;:null,&quot;height&quot;:1200,&quot;width&quot;:1001,&quot;resizeWidth&quot;:352,&quot;bytes&quot;:null,&quot;alt&quot;:&quot;Image&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="Image" title="Image" srcset="https://substackcdn.com/image/fetch/$s_!KdPs!,w_424,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F5e6333d1-d397-4c17-874d-4252ebdfce6c_1001x1200.jpeg 424w, https://substackcdn.com/image/fetch/$s_!KdPs!,w_848,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F5e6333d1-d397-4c17-874d-4252ebdfce6c_1001x1200.jpeg 848w, https://substackcdn.com/image/fetch/$s_!KdPs!,w_1272,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F5e6333d1-d397-4c17-874d-4252ebdfce6c_1001x1200.jpeg 1272w, https://substackcdn.com/image/fetch/$s_!KdPs!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F5e6333d1-d397-4c17-874d-4252ebdfce6c_1001x1200.jpeg 1456w" sizes="auto, 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 buttonBase-GK1x3M"><svg aria-hidden="true" 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" class="icon-noB79L"><g><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 buttonBase-GK1x3M"><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 icon-noB79L"><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="callout-block" data-callout="true"><p>Want to reach out to sponsor the newsletter? <a href="https://workspace.passionfroot.me/devopsbulletin">Book a slot</a> - Q4 dates are open.</p></div>]]></content:encoded></item><item><title><![CDATA[Digest #230: AWS root accounts sprayed at 150+ orgs, Shai-Hulud hunts 469 secret paths, Nvidia buys Hugging Face and Kubernetes scales to zero]]></title><description><![CDATA[Also inside: a Cilium bug made pods take 90s to start, what happened when someone broke a K8s cluster on purpose to test AI debugging agents, and how GitHub cut Copilot's bill without making it dumber]]></description><link>https://www.devopsbulletin.com/p/digest-230-aws-root-accounts-sprayed</link><guid isPermaLink="false">https://www.devopsbulletin.com/p/digest-230-aws-root-accounts-sprayed</guid><dc:creator><![CDATA[Mohamed Labouardy]]></dc:creator><pubDate>Fri, 04 Sep 2026 18:26:23 GMT</pubDate><enclosure url="https://substackcdn.com/image/fetch/$s_!-DSB!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F16905a1b-87b4-48d6-bb3a-e4e22d44b37a_825x453.png" length="0" type="image/jpeg"/><content:encoded><![CDATA[<div class="captioned-image-container"><figure><a class="image-link image2" target="_blank" href="https://link.svix.com/dobulletin" data-component-name="Image2ToDOM"><div class="image2-inset"><picture><source type="image/webp" srcset="https://substackcdn.com/image/fetch/$s_!R46G!,w_424,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F70ed2a93-98f6-450f-8383-92714fb84435_1228x351.png 424w, https://substackcdn.com/image/fetch/$s_!R46G!,w_848,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F70ed2a93-98f6-450f-8383-92714fb84435_1228x351.png 848w, https://substackcdn.com/image/fetch/$s_!R46G!,w_1272,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F70ed2a93-98f6-450f-8383-92714fb84435_1228x351.png 1272w, https://substackcdn.com/image/fetch/$s_!R46G!,w_1456,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F70ed2a93-98f6-450f-8383-92714fb84435_1228x351.png 1456w" sizes="100vw"><img src="https://substackcdn.com/image/fetch/$s_!R46G!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F70ed2a93-98f6-450f-8383-92714fb84435_1228x351.png" width="184" height="52.5928338762215" data-attrs="{&quot;src&quot;:&quot;https://substack-post-media.s3.amazonaws.com/public/images/70ed2a93-98f6-450f-8383-92714fb84435_1228x351.png&quot;,&quot;srcNoWatermark&quot;:null,&quot;fullscreen&quot;:null,&quot;imageSize&quot;:null,&quot;height&quot;:351,&quot;width&quot;:1228,&quot;resizeWidth&quot;:184,&quot;bytes&quot;:51353,&quot;alt&quot;:null,&quot;title&quot;:null,&quot;type&quot;:&quot;image/png&quot;,&quot;href&quot;:&quot;https://link.svix.com/dobulletin&quot;,&quot;belowTheFold&quot;:false,&quot;topImage&quot;:true,&quot;internalRedirect&quot;:&quot;https://www.devopsbulletin.com/i/214129746?img=https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F70ed2a93-98f6-450f-8383-92714fb84435_1228x351.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_!R46G!,w_424,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F70ed2a93-98f6-450f-8383-92714fb84435_1228x351.png 424w, https://substackcdn.com/image/fetch/$s_!R46G!,w_848,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F70ed2a93-98f6-450f-8383-92714fb84435_1228x351.png 848w, https://substackcdn.com/image/fetch/$s_!R46G!,w_1272,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F70ed2a93-98f6-450f-8383-92714fb84435_1228x351.png 1272w, https://substackcdn.com/image/fetch/$s_!R46G!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F70ed2a93-98f6-450f-8383-92714fb84435_1228x351.png 1456w" sizes="100vw" fetchpriority="high"></picture><div></div></div></a></figure></div><blockquote><p><span>Someone spent a month knocking on the root account of more than 150 AWS organizations, and Datadog's writeup is worth reading precisely because every single attempt failed. The interesting part is that the attackers already knew the root email addresses, which makes this a failed campaign built on successful reconnaissance.<br>Meanwhile Shai-Hulud came back checking 469 places for credentials instead of 189, Nvidia agreed to buy Hugging Face for about $13 billion, and Kubernetes quietly shipped the thing plenty of teams have been faking with cron jobs for years.</span></p></blockquote><div class="callout-block" data-callout="true"><p> If you&#8217;re 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><h4><strong>One webhook platform for your agents and your customers</strong></h4><p>Most AI agents can&#8217;t receive a webhook: they run on a laptop, behind a VPN, or in a sandbox that blocks inbound traffic.</p><div class="captioned-image-container"><figure><a class="image-link image2 is-viewable-img" target="_blank" href="https://link.svix.com/dobulletin" data-component-name="Image2ToDOM"><div class="image2-inset"><picture><source type="image/webp" srcset="https://substackcdn.com/image/fetch/$s_!jhaE!,w_424,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F1662fb53-3998-40bb-a956-3b9b2990157f_1200x640.png 424w, https://substackcdn.com/image/fetch/$s_!jhaE!,w_848,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F1662fb53-3998-40bb-a956-3b9b2990157f_1200x640.png 848w, https://substackcdn.com/image/fetch/$s_!jhaE!,w_1272,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F1662fb53-3998-40bb-a956-3b9b2990157f_1200x640.png 1272w, https://substackcdn.com/image/fetch/$s_!jhaE!,w_1456,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F1662fb53-3998-40bb-a956-3b9b2990157f_1200x640.png 1456w" sizes="100vw"><img src="https://substackcdn.com/image/fetch/$s_!jhaE!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F1662fb53-3998-40bb-a956-3b9b2990157f_1200x640.png" width="1200" height="640" data-attrs="{&quot;src&quot;:&quot;https://substack-post-media.s3.amazonaws.com/public/images/1662fb53-3998-40bb-a956-3b9b2990157f_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;:126599,&quot;alt&quot;:&quot;&quot;,&quot;title&quot;:null,&quot;type&quot;:&quot;image/png&quot;,&quot;href&quot;:&quot;https://link.svix.com/dobulletin&quot;,&quot;belowTheFold&quot;:false,&quot;topImage&quot;:false,&quot;internalRedirect&quot;:&quot;https://www.devopsbulletin.com/i/214129746?img=https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F1662fb53-3998-40bb-a956-3b9b2990157f_1200x640.png&quot;,&quot;isProcessing&quot;:false,&quot;align&quot;:null,&quot;offset&quot;:false}" class="sizing-normal" alt="" title="" srcset="https://substackcdn.com/image/fetch/$s_!jhaE!,w_424,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F1662fb53-3998-40bb-a956-3b9b2990157f_1200x640.png 424w, https://substackcdn.com/image/fetch/$s_!jhaE!,w_848,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F1662fb53-3998-40bb-a956-3b9b2990157f_1200x640.png 848w, https://substackcdn.com/image/fetch/$s_!jhaE!,w_1272,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F1662fb53-3998-40bb-a956-3b9b2990157f_1200x640.png 1272w, https://substackcdn.com/image/fetch/$s_!jhaE!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F1662fb53-3998-40bb-a956-3b9b2990157f_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 buttonBase-GK1x3M"><svg aria-hidden="true" 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" class="icon-noB79L"><g><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 buttonBase-GK1x3M"><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 icon-noB79L"><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://link.svix.com/dobulletin">Svix Ingest</a> takes events from Stripe, GitHub, incident.io, or anything else that sends webhooks, and your agent pulls them over an outbound HTTPS connection a few seconds later. No public URL, no tunnel, and nothing lost while it was offline.</p><p><strong><a href="https://link.svix.com/dobulletin">Try Svix for free</a></strong></p><h4><strong>My take: three frontier models in three days</strong></h4><p>Every big lab shipped this week. <a href="https://www.anthropic.com/claude-fable-and-mythos-5-1?utm_source=devopsbulletin.com">Claude Fable 5.1</a>, <a href="https://blog.google/innovation-and-ai/models-and-research/gemini-models/3-8-flash-and-3-8-flash-cyber/?utm_source=devopsbulletin.com">Gemini 3.8 Flash</a>, and <a href="https://openai.com/index/gpt-6-astra/?utm_source=devopsbulletin.com">GPT-6 Astra</a>.</p><div class="subscription-widget-wrap-editor" data-attrs="{&quot;url&quot;:&quot;https://www.devopsbulletin.com/subscribe?&quot;,&quot;text&quot;:&quot;Upgrade&quot;,&quot;language&quot;:&quot;en&quot;}" data-component-name="SubscribeWidgetToDOM"><div class="subscription-widget show-subscribe"><div class="preamble"><p class="cta-caption">This post has bonus content for paid subscribers. Upgrade to get full access.</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="Upgrade"><div class="fake-input-wrapper"><div class="fake-input"></div><div class="fake-button"></div></div></form></div></div><h4><strong>Newsworthy stories</strong></h4><ul><li><p><strong><a href="https://securitylabs.datadoghq.com/articles/aws-root-user-bruteforce-campaign/?utm_source=devopsbulletin.com">Password spraying hit AWS root accounts at 150+ organizations</a></strong></p></li><li><p><strong><a href="https://thehackernews.com/2026/09/shai-huluds-reach-just-grew-to-469.html?utm_source=devopsbulletin.com">Shai-Hulud now scans 469 credential locations, up from 189</a></strong></p></li><li><p><strong><a href="https://www.cnbc.com/2026/09/03/nvidia-agrees-to-buy-hugging-face-for-almost-13-billion-ai-expansion.html?utm_source=devopsbulletin.com">Nvidia agrees to buy Hugging Face for almost $13 billion</a></strong></p></li><li><p><strong><a href="https://kubernetes.io/blog/2026/09/02/kubernetes-v1-37-hpa-scale-to-zero-beta/?utm_source=devopsbulletin.com">Kubernetes v1.37 can scale workloads to zero with the HorizontalPodAutoscaler</a></strong></p></li><li><p><strong><a href="https://aws.amazon.com/blogs/architecture/mcp-went-stateless-is-your-aws-mcp-server-deployment-well-architected/?utm_source=devopsbulletin.com">MCP went stateless, so your AWS deployment can drop sticky sessions</a></strong></p></li><li><p><strong><a href="https://github.blog/ai-and-ml/github-copilot/how-we-make-ai-coding-more-cost-efficient-without-sacrificing-task-quality?utm_source=devopsbulletin.com">How GitHub cut Copilot&#8217;s inference bill without hurting task quality</a></strong></p></li><li><p><strong><a href="https://blog.cloudflare.com/cache-transcoding/?utm_source=devopsbulletin.com">Saving petabytes of cache storage with Zstandard and Pingora</a></strong></p></li><li><p><strong><a href="https://people.kernel.org/monsieuricon/creepy-crawlies?utm_source=devopsbulletin.com">AI scrapers are now most of kernel.org&#8217;s traffic</a></strong></p></li></ul><h4><strong>Tutorials of the week</strong></h4><ul><li><p><strong><a href="https://aws.amazon.com/blogs/security/detecting-multi-stage-attacks-on-aws-a-guide-to-cross-service-signal-correlation/?utm_source=devopsbulletin.com">Detecting multi-stage attacks on AWS by correlating signals across services</a></strong></p></li><li><p><strong><a href="https://spacelift.io/blog/terraform-observability?utm_source=devopsbulletin.com">Terraform observability: drift detection, TF_LOG and plan metrics in practice</a></strong></p></li><li><p><strong><a href="https://blog.jetbrains.com/go/2026/09/02/how-to-handle-errors-in-go/?utm_source=devopsbulletin.com">How to handle errors in Go</a></strong></p></li><li><p><strong><a href="https://blog.gitguardian.com/aws-s3-bucket-security/?utm_source=devopsbulletin.com">AWS S3 bucket security: finding the secrets that live outside Git</a></strong></p></li><li><p><strong><a href="https://aws.amazon.com/blogs/devops/optimize-eks-operations-with-agents-reduce-mttr-with-aws-devops-agent-and-a-kubernetes-operator?utm_source=devopsbulletin.com">Cutting EKS MTTR with the AWS DevOps Agent and a Kubernetes operator</a></strong></p></li><li><p><strong><a href="https://marmelab.com/blog/2026/09/03/ai-agents-vs-broken-kubernetes.html?utm_source=devopsbulletin.com">Can an AI agent debug Kubernetes? I broke a cluster to find out</a></strong></p></li></ul><div class="captioned-image-container"><figure><a class="image-link image2 is-viewable-img" target="_blank" href="https://substackcdn.com/image/fetch/$s_!poC6!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F4d244c18-1ed6-43eb-b110-67eb09ee1795_2720x1714.webp" data-component-name="Image2ToDOM"><div class="image2-inset"><picture><source type="image/webp" srcset="https://substackcdn.com/image/fetch/$s_!poC6!,w_424,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F4d244c18-1ed6-43eb-b110-67eb09ee1795_2720x1714.webp 424w, https://substackcdn.com/image/fetch/$s_!poC6!,w_848,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F4d244c18-1ed6-43eb-b110-67eb09ee1795_2720x1714.webp 848w, https://substackcdn.com/image/fetch/$s_!poC6!,w_1272,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F4d244c18-1ed6-43eb-b110-67eb09ee1795_2720x1714.webp 1272w, https://substackcdn.com/image/fetch/$s_!poC6!,w_1456,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F4d244c18-1ed6-43eb-b110-67eb09ee1795_2720x1714.webp 1456w" sizes="auto, 100vw"><img src="https://substackcdn.com/image/fetch/$s_!poC6!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F4d244c18-1ed6-43eb-b110-67eb09ee1795_2720x1714.webp" width="2720" height="1714" data-attrs="{&quot;src&quot;:&quot;https://substack-post-media.s3.amazonaws.com/public/images/4d244c18-1ed6-43eb-b110-67eb09ee1795_2720x1714.webp&quot;,&quot;srcNoWatermark&quot;:null,&quot;fullscreen&quot;:null,&quot;imageSize&quot;:null,&quot;height&quot;:1714,&quot;width&quot;:2720,&quot;resizeWidth&quot;:null,&quot;bytes&quot;:65246,&quot;alt&quot;:&quot;kubectl-ai's agentic loop: the LLM chooses tools to explore the cluster and reacts to their output&quot;,&quot;title&quot;:null,&quot;type&quot;:&quot;image/webp&quot;,&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="kubectl-ai's agentic loop: the LLM chooses tools to explore the cluster and reacts to their output" title="kubectl-ai's agentic loop: the LLM chooses tools to explore the cluster and reacts to their output" srcset="https://substackcdn.com/image/fetch/$s_!poC6!,w_424,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F4d244c18-1ed6-43eb-b110-67eb09ee1795_2720x1714.webp 424w, https://substackcdn.com/image/fetch/$s_!poC6!,w_848,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F4d244c18-1ed6-43eb-b110-67eb09ee1795_2720x1714.webp 848w, https://substackcdn.com/image/fetch/$s_!poC6!,w_1272,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F4d244c18-1ed6-43eb-b110-67eb09ee1795_2720x1714.webp 1272w, https://substackcdn.com/image/fetch/$s_!poC6!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F4d244c18-1ed6-43eb-b110-67eb09ee1795_2720x1714.webp 1456w" sizes="auto, 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 buttonBase-GK1x3M"><svg aria-hidden="true" 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" class="icon-noB79L"><g><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 buttonBase-GK1x3M"><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 icon-noB79L"><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.adyen.com/knowledge-hub/inside-cilium-cni-solving-kubernetes-pod-setup-timeouts?utm_source=devopsbulletin.com">Why pod setup started timing out after 90 seconds</a></strong></p></li><li><p><strong><a href="https://armature.tech/blog/which-tools-coding-agents-install?utm_source=devopsbulletin.com">Which tools do Claude, Codex and Cursor reach for?</a></strong></p></li><li><p><strong><a href="https://blog.crazy-goat.com/en/colima-php-fpm-segfault-exit-139/?utm_source=devopsbulletin.com">I spent a full day on a &#8220;five-minute&#8221; Docker migration</a></strong></p></li><li><p><strong><a href="https://bdrouvot.github.io/2026/08/20/welcome-to-pg-shmemviz-postgresql-shared-memory-visualizer/?utm_source=devopsbulletin.com">PostgreSQL shared memory visualizer</a></strong></p></li><li><p><strong><a href="https://aws.amazon.com/blogs/devops/build-your-own-continuous-modernization-pipeline-with-aws-transform-custom?utm_source=devopsbulletin.com">Build your own continuous modernization pipeline with AWS Transform custom</a></strong></p></li><li><p><strong><a href="https://newrelic.com/blog/observability/gcp-cost-optimization-tools?utm_source=devopsbulletin.com">Choosing GCP cost optimization tools that match your environment</a></strong></p></li></ul><h4><strong>Videos of the week</strong></h4><div id="youtube2-bAsogRKeLnY" class="youtube-wrap" data-attrs="{&quot;videoId&quot;:&quot;bAsogRKeLnY&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/bAsogRKeLnY?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-MVo3P-D7eSc" class="youtube-wrap" data-attrs="{&quot;videoId&quot;:&quot;MVo3P-D7eSc&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/MVo3P-D7eSc?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><strong>Projects of the week</strong></h4><ul><li><p><strong><a href="https://github.com/jayminwest/warren?utm_source=devopsbulletin.com">Warren</a></strong> runs coding agents as managed infrastructure with isolation, spend limits, and Git delivery instead of terminal sessions.</p></li><li><p><strong><a href="https://github.com/jfrog/boost?utm_source=devopsbulletin.com">Boost</a></strong> compresses the noisy output of the commands your coding agent runs so it keeps the errors and timings without the log spam.</p></li><li><p><strong><a href="https://github.com/ZSvirt/zsvirt?utm_source=devopsbulletin.com">ZSvirt</a></strong> runs and manages KVM virtual machines from a single web console, including VMware migration.</p></li></ul><div class="captioned-image-container"><figure><a class="image-link image2 is-viewable-img" target="_blank" href="https://github.com/ZSvirt/zsvirt?utm_source=devopsbulletin.com" data-component-name="Image2ToDOM"><div class="image2-inset"><picture><source type="image/webp" srcset="https://substackcdn.com/image/fetch/$s_!FNkO!,w_424,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F3d7d8de3-8771-4287-95a4-5231cb7b80d7_827x467.png 424w, https://substackcdn.com/image/fetch/$s_!FNkO!,w_848,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F3d7d8de3-8771-4287-95a4-5231cb7b80d7_827x467.png 848w, https://substackcdn.com/image/fetch/$s_!FNkO!,w_1272,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F3d7d8de3-8771-4287-95a4-5231cb7b80d7_827x467.png 1272w, https://substackcdn.com/image/fetch/$s_!FNkO!,w_1456,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F3d7d8de3-8771-4287-95a4-5231cb7b80d7_827x467.png 1456w" sizes="auto, 100vw"><img src="https://substackcdn.com/image/fetch/$s_!FNkO!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F3d7d8de3-8771-4287-95a4-5231cb7b80d7_827x467.png" width="827" height="467" data-attrs="{&quot;src&quot;:&quot;https://substack-post-media.s3.amazonaws.com/public/images/3d7d8de3-8771-4287-95a4-5231cb7b80d7_827x467.png&quot;,&quot;srcNoWatermark&quot;:null,&quot;fullscreen&quot;:null,&quot;imageSize&quot;:null,&quot;height&quot;:467,&quot;width&quot;:827,&quot;resizeWidth&quot;:null,&quot;bytes&quot;:131633,&quot;alt&quot;:null,&quot;title&quot;:null,&quot;type&quot;:&quot;image/png&quot;,&quot;href&quot;:&quot;https://github.com/ZSvirt/zsvirt?utm_source=devopsbulletin.com&quot;,&quot;belowTheFold&quot;:true,&quot;topImage&quot;:false,&quot;internalRedirect&quot;:&quot;https://www.devopsbulletin.com/i/214129746?img=https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F3d7d8de3-8771-4287-95a4-5231cb7b80d7_827x467.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_!FNkO!,w_424,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F3d7d8de3-8771-4287-95a4-5231cb7b80d7_827x467.png 424w, https://substackcdn.com/image/fetch/$s_!FNkO!,w_848,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F3d7d8de3-8771-4287-95a4-5231cb7b80d7_827x467.png 848w, https://substackcdn.com/image/fetch/$s_!FNkO!,w_1272,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F3d7d8de3-8771-4287-95a4-5231cb7b80d7_827x467.png 1272w, https://substackcdn.com/image/fetch/$s_!FNkO!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F3d7d8de3-8771-4287-95a4-5231cb7b80d7_827x467.png 1456w" sizes="auto, 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 buttonBase-GK1x3M"><svg aria-hidden="true" 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" class="icon-noB79L"><g><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 buttonBase-GK1x3M"><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 icon-noB79L"><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/rootprint/rootprint?utm_source=devopsbulletin.com">Rootprint</a></strong> searches logs and traces directly from object storage, so you can self-host log management instead of renting it.</p></li><li><p><strong><a href="https://github.com/pgrundev/pgterm?utm_source=devopsbulletin.com">pgterm</a></strong> monitors every Postgres database you own from a single terminal dashboard and flags those that need attention.</p></li><li><p><strong><a href="https://github.com/bjarneo/ku?utm_source=devopsbulletin.com">ku</a></strong> browses Kubernetes resources, follows logs, and drops you into pods from a keyboard-driven terminal UI.</p></li><li><p><strong><a href="https://github.com/srelens/srelens?utm_source=devopsbulletin.com">srelens</a></strong> combines cluster browsing, logs, exec, and port forwarding into a single local desktop workspace built for engineers and agents alike.</p></li></ul><h4><strong>Meme of the week</strong></h4><div class="captioned-image-container"><figure><a class="image-link image2 is-viewable-img" target="_blank" href="https://substackcdn.com/image/fetch/$s_!-DSB!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F16905a1b-87b4-48d6-bb3a-e4e22d44b37a_825x453.png" data-component-name="Image2ToDOM"><div class="image2-inset"><picture><source type="image/webp" srcset="https://substackcdn.com/image/fetch/$s_!-DSB!,w_424,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F16905a1b-87b4-48d6-bb3a-e4e22d44b37a_825x453.png 424w, https://substackcdn.com/image/fetch/$s_!-DSB!,w_848,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F16905a1b-87b4-48d6-bb3a-e4e22d44b37a_825x453.png 848w, https://substackcdn.com/image/fetch/$s_!-DSB!,w_1272,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F16905a1b-87b4-48d6-bb3a-e4e22d44b37a_825x453.png 1272w, https://substackcdn.com/image/fetch/$s_!-DSB!,w_1456,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F16905a1b-87b4-48d6-bb3a-e4e22d44b37a_825x453.png 1456w" sizes="auto, 100vw"><img src="https://substackcdn.com/image/fetch/$s_!-DSB!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F16905a1b-87b4-48d6-bb3a-e4e22d44b37a_825x453.png" width="584" height="320.6690909090909" data-attrs="{&quot;src&quot;:&quot;https://substack-post-media.s3.amazonaws.com/public/images/16905a1b-87b4-48d6-bb3a-e4e22d44b37a_825x453.png&quot;,&quot;srcNoWatermark&quot;:null,&quot;fullscreen&quot;:null,&quot;imageSize&quot;:null,&quot;height&quot;:453,&quot;width&quot;:825,&quot;resizeWidth&quot;:584,&quot;bytes&quot;:249680,&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/214129746?img=https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F16905a1b-87b4-48d6-bb3a-e4e22d44b37a_825x453.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_!-DSB!,w_424,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F16905a1b-87b4-48d6-bb3a-e4e22d44b37a_825x453.png 424w, https://substackcdn.com/image/fetch/$s_!-DSB!,w_848,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F16905a1b-87b4-48d6-bb3a-e4e22d44b37a_825x453.png 848w, https://substackcdn.com/image/fetch/$s_!-DSB!,w_1272,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F16905a1b-87b4-48d6-bb3a-e4e22d44b37a_825x453.png 1272w, https://substackcdn.com/image/fetch/$s_!-DSB!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F16905a1b-87b4-48d6-bb3a-e4e22d44b37a_825x453.png 1456w" sizes="auto, 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 buttonBase-GK1x3M"><svg aria-hidden="true" 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" class="icon-noB79L"><g><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 buttonBase-GK1x3M"><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 icon-noB79L"><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="callout-block" data-callout="true"><p>Want to reach out to sponsor the newsletter? <a href="https://workspace.passionfroot.me/devopsbulletin">Book a slot</a> - Q4 dates are open.</p></div>]]></content:encoded></item><item><title><![CDATA[Digest #229: AWS acquires DuckDB, Cloudflare frees 100TB of RAM, your executable as a SQLite database and on-call as theatre]]></title><description><![CDATA[Also inside: a $500-a-month AI security analyst built on AWS, Databricks running 2,000 AI incident investigations a day, and proof that plan mode doesn't make AI-written code any safer.]]></description><link>https://www.devopsbulletin.com/p/digest-229-aws-acquires-duckdb-cloudflare</link><guid isPermaLink="false">https://www.devopsbulletin.com/p/digest-229-aws-acquires-duckdb-cloudflare</guid><dc:creator><![CDATA[Mohamed Labouardy]]></dc:creator><pubDate>Fri, 28 Aug 2026 17:48:27 GMT</pubDate><enclosure url="https://substackcdn.com/image/fetch/$s_!vQx3!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Ffff7dab0-ee79-4058-b3f8-e2f9d6604868_1148x810.png" length="0" type="image/jpeg"/><content:encoded><![CDATA[<blockquote><p><span>AWS signed a deal this week to acquire DuckLabs, the ~30-person Amsterdam team behind DuckDB, and the timing is the part worth staring at: it landed nine days after DuckDB previewed v2.0 with a client/server protocol.<br>Also, Cloudflare shaved 533 bytes off every DNS cache entry and got 100 terabytes of RAM back across its fleet, and I shared a good case for shipping your executables as SQLite databases.</span></p></blockquote><div class="callout-block" data-callout="true"><p> If you&#8217;re 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><h4><strong>My take: what AWS actually bought when it bought DuckDB</strong></h4><div class="captioned-image-container"><figure><a class="image-link image2 is-viewable-img" target="_blank" href="https://substackcdn.com/image/fetch/$s_!A1Wi!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F2d7f488f-416d-4149-b5d8-b7db2144af57_1200x630.png" data-component-name="Image2ToDOM"><div class="image2-inset"><picture><source type="image/webp" srcset="https://substackcdn.com/image/fetch/$s_!A1Wi!,w_424,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F2d7f488f-416d-4149-b5d8-b7db2144af57_1200x630.png 424w, https://substackcdn.com/image/fetch/$s_!A1Wi!,w_848,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F2d7f488f-416d-4149-b5d8-b7db2144af57_1200x630.png 848w, https://substackcdn.com/image/fetch/$s_!A1Wi!,w_1272,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F2d7f488f-416d-4149-b5d8-b7db2144af57_1200x630.png 1272w, https://substackcdn.com/image/fetch/$s_!A1Wi!,w_1456,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F2d7f488f-416d-4149-b5d8-b7db2144af57_1200x630.png 1456w" sizes="100vw"><img src="https://substackcdn.com/image/fetch/$s_!A1Wi!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F2d7f488f-416d-4149-b5d8-b7db2144af57_1200x630.png" width="1200" height="630" data-attrs="{&quot;src&quot;:&quot;https://substack-post-media.s3.amazonaws.com/public/images/2d7f488f-416d-4149-b5d8-b7db2144af57_1200x630.png&quot;,&quot;srcNoWatermark&quot;:null,&quot;fullscreen&quot;:null,&quot;imageSize&quot;:null,&quot;height&quot;:630,&quot;width&quot;:1200,&quot;resizeWidth&quot;:null,&quot;bytes&quot;:null,&quot;alt&quot;:&quot;DuckLabs &#8211; DuckLabs (DuckDB) to Join AWS, Projects to Remain Open Source :  r/aws&quot;,&quot;title&quot;:&quot;DuckLabs &#8211; DuckLabs (DuckDB) to Join AWS, Projects to Remain Open Source :  r/aws&quot;,&quot;type&quot;:null,&quot;href&quot;:null,&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="DuckLabs &#8211; DuckLabs (DuckDB) to Join AWS, Projects to Remain Open Source :  r/aws" title="DuckLabs &#8211; DuckLabs (DuckDB) to Join AWS, Projects to Remain Open Source :  r/aws" srcset="https://substackcdn.com/image/fetch/$s_!A1Wi!,w_424,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F2d7f488f-416d-4149-b5d8-b7db2144af57_1200x630.png 424w, https://substackcdn.com/image/fetch/$s_!A1Wi!,w_848,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F2d7f488f-416d-4149-b5d8-b7db2144af57_1200x630.png 848w, https://substackcdn.com/image/fetch/$s_!A1Wi!,w_1272,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F2d7f488f-416d-4149-b5d8-b7db2144af57_1200x630.png 1272w, https://substackcdn.com/image/fetch/$s_!A1Wi!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F2d7f488f-416d-4149-b5d8-b7db2144af57_1200x630.png 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 buttonBase-GK1x3M"><svg aria-hidden="true" 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" class="icon-noB79L"><g><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 buttonBase-GK1x3M"><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 icon-noB79L"><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>If you haven&#8217;t used it, DuckDB is SQLite for analytics. <em>pip install duckdb</em>, point it at a Parquet file in S3, run SQL. No cluster, no Spark job, no ticket to the data platform team. It won because most data is small. AWS&#8217;s own post says DuckDB covers the &#8220;90%+ of data queries in the world today&#8221; that run on data smaller than 1 terabyte. </p><p>Four things I&#8217;d take from it:</p><ul><li><p><strong>This is an S3 play, not a Redshift one.</strong> The announcement was signed by Andy Warfield, who runs S3.</p></li><li><p>The deal landed nine days after DuckDB previewed v2.0 with the Quack protocol, which allows any DuckDB process to serve its databases over the network. Embedded DuckDB is a developer tool. DuckDB that speaks a wire protocol is a query engine you can rent by the second.</p></li><li><p><strong>The product writes itself.</strong> Quack on top of S3 Tables and Iceberg gives you serverless SQL straight against object storage, no warehouse in the middle. That&#8217;s aimed at Databricks and Snowflake, not Redshift.</p></li><li><p><strong>AWS didn&#8217;t buy the project; it hired everyone who commits to it.</strong> No license fight, no fork, no OpenSearch-style backlash. The Foundation keeps the IP, AWS keeps the roadmap.</p></li></ul><h4><strong>Newsworthy stories</strong></h4><ul><li><p><strong><a href="https://blog.cloudflare.com/dns-cache-memory-optimization-1111/?utm_source=devopsbulletin.com">How we saved 100 terabytes of memory by optimizing 1.1.1.1&#8217;s DNS cache</a></strong></p></li><li><p><strong><a href="https://boristane.com/blog/on-call-is-now-theatre?utm_source=devopsbulletin.com">On-call is now theatre</a></strong></p></li><li><p><strong><a href="https://fzakaria.com/2026/08/23/your-executable-is-a-sqlite-database?utm_source=devopsbulletin.com">Your executable is a SQLite database</a></strong></p></li><li><p><strong><a href="https://www.databricks.com/blog/how-databricks-uses-ai-accelerate-incident-investigation?utm_source=devopsbulletin.com">How Databricks uses AI to accelerate incident investigation</a></strong></p></li><li><p><strong><a href="https://www.cncf.io/blog/2026/08/25/stop-trying-to-learn-all-of-kubernetes-at-once?utm_source=devopsbulletin.com">Stop trying to learn all of Kubernetes at once</a></strong></p></li></ul><h4><strong>Tutorials of the week</strong></h4><ul><li><p><strong><a href="https://aws.amazon.com/blogs/devops/from-clickops-to-governed-iac-cloudformation-drift-detection-in-practice/?utm_source=devopsbulletin.com">From clickops to governed IaC: CloudFormation drift detection in practice</a></strong></p></li><li><p><strong><a href="https://www.gremlin.com/blog/optimizing-kubernetes-pod-deployments-for-reliability-with-topology-spread-constraints?utm_source=devopsbulletin.com">Optimizing Kubernetes pod deployments for reliability with topology spread constraints</a></strong></p></li><li><p><strong><a href="https://github.blog/ai-and-ml/llms/how-to-evaluate-llms-before-production?utm_source=devopsbulletin.com">How to evaluate LLMs before production</a></strong></p></li><li><p><strong><a href="https://engineering.growtherapy.com/post/threat-hunt-ai-how-we-built-an-ai-security-analyst-on-aws-for-under-500-month?utm_source=devopsbulletin.com">How we built an AI security analyst on AWS for under $500/month</a></strong></p></li></ul><div class="captioned-image-container"><figure><a class="image-link image2 is-viewable-img" target="_blank" href="https://engineering.growtherapy.com/post/threat-hunt-ai-how-we-built-an-ai-security-analyst-on-aws-for-under-500-month?utm_source=devopsbulletin.com" data-component-name="Image2ToDOM"><div class="image2-inset"><picture><source type="image/webp" srcset="https://substackcdn.com/image/fetch/$s_!vQx3!,w_424,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Ffff7dab0-ee79-4058-b3f8-e2f9d6604868_1148x810.png 424w, https://substackcdn.com/image/fetch/$s_!vQx3!,w_848,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Ffff7dab0-ee79-4058-b3f8-e2f9d6604868_1148x810.png 848w, https://substackcdn.com/image/fetch/$s_!vQx3!,w_1272,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Ffff7dab0-ee79-4058-b3f8-e2f9d6604868_1148x810.png 1272w, https://substackcdn.com/image/fetch/$s_!vQx3!,w_1456,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Ffff7dab0-ee79-4058-b3f8-e2f9d6604868_1148x810.png 1456w" sizes="auto, 100vw"><img src="https://substackcdn.com/image/fetch/$s_!vQx3!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Ffff7dab0-ee79-4058-b3f8-e2f9d6604868_1148x810.png" width="1148" height="810" data-attrs="{&quot;src&quot;:&quot;https://substack-post-media.s3.amazonaws.com/public/images/fff7dab0-ee79-4058-b3f8-e2f9d6604868_1148x810.png&quot;,&quot;srcNoWatermark&quot;:null,&quot;fullscreen&quot;:null,&quot;imageSize&quot;:null,&quot;height&quot;:810,&quot;width&quot;:1148,&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://engineering.growtherapy.com/post/threat-hunt-ai-how-we-built-an-ai-security-analyst-on-aws-for-under-500-month?utm_source=devopsbulletin.com&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_!vQx3!,w_424,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Ffff7dab0-ee79-4058-b3f8-e2f9d6604868_1148x810.png 424w, https://substackcdn.com/image/fetch/$s_!vQx3!,w_848,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Ffff7dab0-ee79-4058-b3f8-e2f9d6604868_1148x810.png 848w, https://substackcdn.com/image/fetch/$s_!vQx3!,w_1272,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Ffff7dab0-ee79-4058-b3f8-e2f9d6604868_1148x810.png 1272w, https://substackcdn.com/image/fetch/$s_!vQx3!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Ffff7dab0-ee79-4058-b3f8-e2f9d6604868_1148x810.png 1456w" sizes="auto, 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 buttonBase-GK1x3M"><svg aria-hidden="true" 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" class="icon-noB79L"><g><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 buttonBase-GK1x3M"><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 icon-noB79L"><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://securitylabs.datadoghq.com/articles/putting-models-to-the-secure-coding-test-plan-vs-default-mode/?utm_source=devopsbulletin.com">Putting models to the secure coding test: plan vs default mode</a></strong></p></li><li><p><strong><a href="https://linkerd.io/2026/06/24/federating-clusters-for-zero-downtime-kubernetes/index.html?utm_source=devopsbulletin.com">Federating clusters for zero-downtime Kubernetes</a></strong></p></li><li><p><strong><a href="https://www.kubeblogs.com/how-to-achieve-resource-level-isolation-in-kubernetes-using-a-multi-environment-node-pool-strategy/?utm_source=devopsbulletin.com">How to achieve resource-level isolation in Kubernetes using a multi-environment node pool strategy</a></strong></p></li><li><p><strong><a href="https://compliance.tf/blog/hashicorp-tfpolicy-module-source-governance?utm_source=devopsbulletin.com">HashiCorp&#8217;s tfpolicy made module source a policy decision</a></strong></p></li><li><p><strong><a href="https://blog.pamelafox.org/2026/08/building-safe-mcp-servers-for-your.html?utm_source=devopsbulletin.com">Building safe MCP servers for your PostgreSQL database</a></strong></p></li><li><p><strong><a href="https://aws.amazon.com/blogs/aws-cloud-financial-management/automating-filtered-cost-and-usage-report-exports-with-aws-data-exports/?utm_source=devopsbulletin.com">Automating filtered cost and usage report exports with AWS Data Exports</a></strong></p></li></ul><h4><strong>Videos of the week</strong></h4><div id="youtube2-wowLWDe3vL4" class="youtube-wrap" data-attrs="{&quot;videoId&quot;:&quot;wowLWDe3vL4&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/wowLWDe3vL4?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-mLVupvbmteE" class="youtube-wrap" data-attrs="{&quot;videoId&quot;:&quot;mLVupvbmteE&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/mLVupvbmteE?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><strong>Projects of the week</strong></h4><ul><li><p><strong><a href="https://github.com/aleksandarskrbic/khaos?utm_source=devopsbulletin.com">Khaos</a></strong> injects the Kafka failures you normally wait for into a cluster on demand, from consumer lag and hot partitions to rebalances and broker outages.</p></li><li><p><strong><a href="https://github.com/seoes/proval?utm_source=devopsbulletin.com">Proval</a></strong> reviews your pull requests with an LLM that runs entirely inside your own network, on GitLab, Forgejo, and GitHub alike.</p></li><li><p><strong><a href="https://github.com/ahmadpiran/restoredrill?utm_source=devopsbulletin.com">restoredrill</a></strong> restores your latest Postgres backup into a throwaway container, runs your validation checks against it, and writes the JSON report an auditor actually asks for.</p></li><li><p><strong><a href="https://github.com/AWSHound/AWSHound?utm_source=devopsbulletin.com">AWSHound</a></strong> turns your AWS IAM data into a BloodHound graph, so the privilege escalation paths in your account become something you can see.</p></li><li><p><strong><a href="https://github.com/biw/cloudflare-github-actions-runner?utm_source=devopsbulletin.com">cloudflare-github-actions-runner</a></strong> runs your GitHub Actions jobs on ephemeral Cloudflare Containers you size yourself, instead of on GitHub&#8217;s runners.</p></li></ul><h4><strong>Meme of the week</strong></h4><div class="captioned-image-container"><figure><a class="image-link image2 is-viewable-img" target="_blank" href="https://substackcdn.com/image/fetch/$s_!Fx5q!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F74fa506a-7383-4440-8a00-9455aeebd3f8_1064x577.jpeg" data-component-name="Image2ToDOM"><div class="image2-inset"><picture><source type="image/webp" srcset="https://substackcdn.com/image/fetch/$s_!Fx5q!,w_424,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F74fa506a-7383-4440-8a00-9455aeebd3f8_1064x577.jpeg 424w, https://substackcdn.com/image/fetch/$s_!Fx5q!,w_848,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F74fa506a-7383-4440-8a00-9455aeebd3f8_1064x577.jpeg 848w, https://substackcdn.com/image/fetch/$s_!Fx5q!,w_1272,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F74fa506a-7383-4440-8a00-9455aeebd3f8_1064x577.jpeg 1272w, https://substackcdn.com/image/fetch/$s_!Fx5q!,w_1456,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F74fa506a-7383-4440-8a00-9455aeebd3f8_1064x577.jpeg 1456w" sizes="auto, 100vw"><img src="https://substackcdn.com/image/fetch/$s_!Fx5q!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F74fa506a-7383-4440-8a00-9455aeebd3f8_1064x577.jpeg" width="520" height="281.9924812030075" data-attrs="{&quot;src&quot;:&quot;https://substack-post-media.s3.amazonaws.com/public/images/74fa506a-7383-4440-8a00-9455aeebd3f8_1064x577.jpeg&quot;,&quot;srcNoWatermark&quot;:null,&quot;fullscreen&quot;:null,&quot;imageSize&quot;:null,&quot;height&quot;:577,&quot;width&quot;:1064,&quot;resizeWidth&quot;:520,&quot;bytes&quot;:null,&quot;alt&quot;:&quot;Double It And Give It To The Next Person&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="Double It And Give It To The Next Person" title="Double It And Give It To The Next Person" srcset="https://substackcdn.com/image/fetch/$s_!Fx5q!,w_424,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F74fa506a-7383-4440-8a00-9455aeebd3f8_1064x577.jpeg 424w, https://substackcdn.com/image/fetch/$s_!Fx5q!,w_848,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F74fa506a-7383-4440-8a00-9455aeebd3f8_1064x577.jpeg 848w, https://substackcdn.com/image/fetch/$s_!Fx5q!,w_1272,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F74fa506a-7383-4440-8a00-9455aeebd3f8_1064x577.jpeg 1272w, https://substackcdn.com/image/fetch/$s_!Fx5q!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F74fa506a-7383-4440-8a00-9455aeebd3f8_1064x577.jpeg 1456w" sizes="auto, 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 buttonBase-GK1x3M"><svg aria-hidden="true" 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" class="icon-noB79L"><g><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 buttonBase-GK1x3M"><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 icon-noB79L"><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="callout-block" data-callout="true"><p>Want to reach out to sponsor the newsletter? <a href="https://workspace.passionfroot.me/devopsbulletin">Book a slot</a> - Q4 dates are open.</p></div>]]></content:encoded></item><item><title><![CDATA[Digest #228: Cloudflare's 131,000 AI code reviews a month at $0.98 each, Postgres 300x faster, Git rebuilt on S3 and Linux 7.2]]></title><description><![CDATA[Also inside: why a custom linter beats an AI reviewer, Werner Vogels on the control planes behind Aurora DSQL, and how PlanetScale backs up petabytes of Postgres in hours.]]></description><link>https://www.devopsbulletin.com/p/digest-228-cloudflares-131000-ai</link><guid isPermaLink="false">https://www.devopsbulletin.com/p/digest-228-cloudflares-131000-ai</guid><dc:creator><![CDATA[Mohamed Labouardy]]></dc:creator><pubDate>Fri, 21 Aug 2026 15:45:15 GMT</pubDate><enclosure url="https://substackcdn.com/image/fetch/$s_!cya6!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F1e0af14b-708c-4bed-abbe-eeefe311189f_2182x1296.png" length="0" type="image/jpeg"/><content:encoded><![CDATA[<blockquote><p>Cloudflare published the actual economics of AI code review this week: 131,000 reviews a month, $0.98 each, and an 85.7% cache hit rate. Swizec&#8217;s counterpoint landed the same week, arguing that most of what those reviewers catch is a deterministic linter rule you could run in seconds for nothing. Meanwhile Cursor rebuilt Git storage on write-ahead logs in S3 to get past the limits consensus-based Spokes ran into, and pgrust rewrote the Postgres query engine with batching, operator fusion and SIMD to make analytics 300x faster.</p></blockquote><div class="pullquote"><p> If you&#8217;re 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><h4><strong>Newsworthy stories</strong></h4><ul><li><p><strong><a href="https://blog.cloudflare.com/ai-code-review?utm_source=devopsbulletin.com">Orchestrating AI code review at scale</a></strong></p></li><li><p><strong><a href="https://swizec.com/blog/stop-burning-tokens-on-code-review?utm_source=devopsbulletin.com">Stop burning tokens on code review</a></strong></p></li><li><p><strong><a href="https://cursor.com/blog/git-at-any-scale?utm_source=devopsbulletin.com">Git at any scale</a></strong></p></li><li><p><strong><a href="https://malisper.me/how-we-made-postgres-hundreds-of-times-faster-the-query-engine/?utm_source=devopsbulletin.com">Rebuilding Postgres for 300x faster analytics</a></strong></p></li><li><p><strong><a href="https://www.allthingsdistributed.com/2026/08/on-building-scalable-control-planes.html?utm_source=devopsbulletin.com">On building scalable control planes</a></strong></p></li><li><p><strong><a href="https://www.omgubuntu.co.uk/2026/08/linux-7-2-cache-aware-scheduling-ext4-btrfs?utm_source=devopsbulletin.com">Linux 7.2 brings cache-aware scheduling, faster ext4 and Btrfs</a></strong></p></li></ul><h4><strong>Tutorials of the week</strong></h4><ul><li><p><strong><a href="https://planetscale.com/blog/massively-parallel-postgres-backups?utm_source=devopsbulletin.com">Massively parallel Postgres backups</a></strong></p></li><li><p><strong><a href="https://awstip.com/automating-terraform-testing-from-unit-tests-to-end-to-end-validation-b10225c892b8?utm_source=devopsbulletin.com">Automating Terraform testing</a></strong></p></li><li><p><strong><a href="https://aws.amazon.com/blogs/aws-cloud-financial-management/aws-billing-and-cost-management-dashboards-introduces-managed-dashboards-for-instant-cloud-financial-visibility/?utm_source=devopsbulletin.com">Managed AWS dashboards for instant cloud financial visibility</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/aws-billing-and-cost-management-dashboards-introduces-managed-dashboards-for-instant-cloud-financial-visibility/?utm_source=devopsbulletin.com" data-component-name="Image2ToDOM"><div class="image2-inset"><picture><source type="image/webp" srcset="https://substackcdn.com/image/fetch/$s_!cya6!,w_424,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F1e0af14b-708c-4bed-abbe-eeefe311189f_2182x1296.png 424w, https://substackcdn.com/image/fetch/$s_!cya6!,w_848,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F1e0af14b-708c-4bed-abbe-eeefe311189f_2182x1296.png 848w, https://substackcdn.com/image/fetch/$s_!cya6!,w_1272,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F1e0af14b-708c-4bed-abbe-eeefe311189f_2182x1296.png 1272w, https://substackcdn.com/image/fetch/$s_!cya6!,w_1456,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F1e0af14b-708c-4bed-abbe-eeefe311189f_2182x1296.png 1456w" sizes="100vw"><img src="https://substackcdn.com/image/fetch/$s_!cya6!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F1e0af14b-708c-4bed-abbe-eeefe311189f_2182x1296.png" width="1456" height="865" data-attrs="{&quot;src&quot;:&quot;https://substack-post-media.s3.amazonaws.com/public/images/1e0af14b-708c-4bed-abbe-eeefe311189f_2182x1296.png&quot;,&quot;srcNoWatermark&quot;:null,&quot;fullscreen&quot;:null,&quot;imageSize&quot;:null,&quot;height&quot;:865,&quot;width&quot;:1456,&quot;resizeWidth&quot;:null,&quot;bytes&quot;:null,&quot;alt&quot;:&quot;The Compute managed dashboard showing four widgets: Cost Per Compute Service broken down by EC2 Instances, Elastic Container Service for Kubernetes, Lambda, and others; Committed vs Flexible Compute Spend split by On Demand, Reserved, and Savings Plans; Compute Cost By Instance Type showing spend across instance families like c5.9xlarge and m7a.xlarge; and EC2 Running Hours showing monthly usage hours by type with a steady upward trend.&quot;,&quot;title&quot;:null,&quot;type&quot;:null,&quot;href&quot;:&quot;https://aws.amazon.com/blogs/aws-cloud-financial-management/aws-billing-and-cost-management-dashboards-introduces-managed-dashboards-for-instant-cloud-financial-visibility/?utm_source=devopsbulletin.com&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="The Compute managed dashboard showing four widgets: Cost Per Compute Service broken down by EC2 Instances, Elastic Container Service for Kubernetes, Lambda, and others; Committed vs Flexible Compute Spend split by On Demand, Reserved, and Savings Plans; Compute Cost By Instance Type showing spend across instance families like c5.9xlarge and m7a.xlarge; and EC2 Running Hours showing monthly usage hours by type with a steady upward trend." title="The Compute managed dashboard showing four widgets: Cost Per Compute Service broken down by EC2 Instances, Elastic Container Service for Kubernetes, Lambda, and others; Committed vs Flexible Compute Spend split by On Demand, Reserved, and Savings Plans; Compute Cost By Instance Type showing spend across instance families like c5.9xlarge and m7a.xlarge; and EC2 Running Hours showing monthly usage hours by type with a steady upward trend." srcset="https://substackcdn.com/image/fetch/$s_!cya6!,w_424,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F1e0af14b-708c-4bed-abbe-eeefe311189f_2182x1296.png 424w, https://substackcdn.com/image/fetch/$s_!cya6!,w_848,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F1e0af14b-708c-4bed-abbe-eeefe311189f_2182x1296.png 848w, https://substackcdn.com/image/fetch/$s_!cya6!,w_1272,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F1e0af14b-708c-4bed-abbe-eeefe311189f_2182x1296.png 1272w, https://substackcdn.com/image/fetch/$s_!cya6!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F1e0af14b-708c-4bed-abbe-eeefe311189f_2182x1296.png 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 buttonBase-GK1x3M"><svg aria-hidden="true" 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" class="icon-noB79L"><g><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 buttonBase-GK1x3M"><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 icon-noB79L"><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://data4sci.com/blog/building-an-advanced-agentic-harness?utm_source=devopsbulletin.com">Building an advanced agentic harness</a></strong></p></li><li><p><strong><a href="https://www.raphaelbauer.com/posts/postgresql-everything/?utm_source=devopsbulletin.com">PostgreSQL for everything</a></strong></p></li><li><p><strong><a href="https://ngrok.com/blog/probes?utm_source=devopsbulletin.com">How Kubernetes probes work</a></strong></p></li><li><p><strong><a href="https://cdn.prod.website-files.com/64eccd375717312326d818c7/6a693644b48431096abc2b9d_9b243fabb059559a41b70f60a0f77b2e_Monad_%20A%20Security%20Field%20Guide%20to%20AI%20Tooling%20Visibility_eBook.pdf?utm_source=devopsbulletin.com">A security field guide to AI tooling visibility</a></strong></p></li><li><p><strong><a href="https://aws.amazon.com/blogs/devops/streamline-your-github-journey-with-aws-codepipeline-and-aws-devops-agent/?utm_source=devopsbulletin.com">Streamline your GitHub journey with AWS DevOps Agent</a></strong></p></li></ul><h4><strong>Videos of the week</strong></h4><div id="youtube2-GNPYrGza_1E" class="youtube-wrap" data-attrs="{&quot;videoId&quot;:&quot;GNPYrGza_1E&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/GNPYrGza_1E?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><strong>Projects of the week</strong></h4><ul><li><p><strong><a href="https://github.com/usebruno/bruno?utm_source=devopsbulletin.com">Bruno</a></strong> replaces Postman with an offline API client that saves every request as a plain-text file, so collections branch and are reviewed in Git like the rest of your code.</p></li><li><p><strong><a href="https://github.com/chaitanyagiri/munder-difflin?utm_source=devopsbulletin.com">Munder Difflin</a></strong> runs your terminal coding CLIs as a self-coordinating team of agents on the subscriptions you already pay for.</p></li><li><p><strong><a href="https://github.com/edoardottt/secfiles?utm_source=devopsbulletin.com">secfiles</a></strong> collects wordlists and payload files for penetration testing and bug bounty work.</p></li><li><p><strong><a href="https://github.com/volcengine/OpenViking?utm_source=devopsbulletin.com">OpenViking</a></strong> is a self-evolving context database that unifies agent memory, RAG knowledge, and skills.</p></li><li><p><strong><a href="https://github.com/withastro/triagebot-action?utm_source=devopsbulletin.com">triagebot-action</a></strong> puts every new GitHub issue through reproduce, diagnose, and fix, then ships a preview release and waits for the reporter to confirm before opening the PR.</p></li><li><p><strong><a href="https://github.com/eugene1g/agent-safehouse?utm_source=devopsbulletin.com">Agent Safehouse</a></strong> sandboxes coding agents on macOS so they only reach the files and integrations they actually need.</p></li></ul><h4><strong>Meme of the week</strong></h4><div class="captioned-image-container"><figure><a class="image-link image2 is-viewable-img" target="_blank" href="https://substackcdn.com/image/fetch/$s_!9Dq5!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F8677fcb7-1862-4790-84fe-974e8c814d61_480x725.jpeg" data-component-name="Image2ToDOM"><div class="image2-inset"><picture><source type="image/webp" srcset="https://substackcdn.com/image/fetch/$s_!9Dq5!,w_424,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F8677fcb7-1862-4790-84fe-974e8c814d61_480x725.jpeg 424w, https://substackcdn.com/image/fetch/$s_!9Dq5!,w_848,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F8677fcb7-1862-4790-84fe-974e8c814d61_480x725.jpeg 848w, https://substackcdn.com/image/fetch/$s_!9Dq5!,w_1272,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F8677fcb7-1862-4790-84fe-974e8c814d61_480x725.jpeg 1272w, https://substackcdn.com/image/fetch/$s_!9Dq5!,w_1456,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F8677fcb7-1862-4790-84fe-974e8c814d61_480x725.jpeg 1456w" sizes="auto, 100vw"><img src="https://substackcdn.com/image/fetch/$s_!9Dq5!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F8677fcb7-1862-4790-84fe-974e8c814d61_480x725.jpeg" width="276" height="416.875" data-attrs="{&quot;src&quot;:&quot;https://substack-post-media.s3.amazonaws.com/public/images/8677fcb7-1862-4790-84fe-974e8c814d61_480x725.jpeg&quot;,&quot;srcNoWatermark&quot;:null,&quot;fullscreen&quot;:null,&quot;imageSize&quot;:null,&quot;height&quot;:725,&quot;width&quot;:480,&quot;resizeWidth&quot;:276,&quot;bytes&quot;:null,&quot;alt&quot;:null,&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="" srcset="https://substackcdn.com/image/fetch/$s_!9Dq5!,w_424,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F8677fcb7-1862-4790-84fe-974e8c814d61_480x725.jpeg 424w, https://substackcdn.com/image/fetch/$s_!9Dq5!,w_848,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F8677fcb7-1862-4790-84fe-974e8c814d61_480x725.jpeg 848w, https://substackcdn.com/image/fetch/$s_!9Dq5!,w_1272,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F8677fcb7-1862-4790-84fe-974e8c814d61_480x725.jpeg 1272w, https://substackcdn.com/image/fetch/$s_!9Dq5!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F8677fcb7-1862-4790-84fe-974e8c814d61_480x725.jpeg 1456w" sizes="auto, 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 buttonBase-GK1x3M"><svg aria-hidden="true" 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" class="icon-noB79L"><g><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 buttonBase-GK1x3M"><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 icon-noB79L"><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>Cloudflare pays $0.98 per review for AI to catch things a linter would catch for free. Which one is actually running in your pipeline today, and would you drop the other?</p>]]></content:encoded></item><item><title><![CDATA[Digest #227: Terabytes of credentials leaked in a supply chain attack, Figma's security agents, Kubernetes validation cut to 2 minutes and Docker's win that killed the company]]></title><description><![CDATA[Also inside: a Lambda that spiked an AWS bill 1,200% in one weekend, and why cloning a coding-agent repo runs code before your first prompt.]]></description><link>https://www.devopsbulletin.com/p/digest-227-terabytes-of-credentials</link><guid isPermaLink="false">https://www.devopsbulletin.com/p/digest-227-terabytes-of-credentials</guid><dc:creator><![CDATA[Mohamed Labouardy]]></dc:creator><pubDate>Fri, 14 Aug 2026 15:32:30 GMT</pubDate><enclosure url="https://substackcdn.com/image/youtube/w_728,c_limit/kmLztKueTcI" 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/one-promotion-model-for-every-workload?49924181-FY26%20-%20Webinar%20-%20Payfit%20-%20September%202026" 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="154" height="47.69402985074627" 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;:154,&quot;bytes&quot;:null,&quot;alt&quot;:&quot;&quot;,&quot;title&quot;:null,&quot;type&quot;:null,&quot;href&quot;:&quot;https://events.spacelift.io/one-promotion-model-for-every-workload?49924181-FY26%20-%20Webinar%20-%20Payfit%20-%20September%202026&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="" title="" 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><blockquote><p>This week&#8217;s supply chain attack didn&#8217;t drain one company&#8217;s secrets, it dumped terabytes of credentials scraped from thousands of repositories into the open. Figma&#8217;s answer to that class of noise is a fleet of agents that triage alerts, query security data and write the fix, which cut their resolution time by 71%. One SRE team applied the same instinct to Kubernetes and pulled release validation from 45 minutes down to 2, and if you want a reminder that owning the tech is not the same as winning, the Docker video below is the best bedtime story of the year.</p></blockquote><h4><strong>See how PayFit promotes infra and app releases through one pipeline</strong></h4><div class="captioned-image-container"><figure><a class="image-link image2 is-viewable-img" target="_blank" href="https://events.spacelift.io/one-promotion-model-for-every-workload?49924181-FY26%20-%20Webinar%20-%20Payfit%20-%20September%202026" data-component-name="Image2ToDOM"><div class="image2-inset"><picture><source type="image/webp" srcset="https://substackcdn.com/image/fetch/$s_!N-L1!,w_424,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fb1b0fdad-31aa-4d62-a171-a207ae4425eb_1200x640.jpeg 424w, https://substackcdn.com/image/fetch/$s_!N-L1!,w_848,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fb1b0fdad-31aa-4d62-a171-a207ae4425eb_1200x640.jpeg 848w, https://substackcdn.com/image/fetch/$s_!N-L1!,w_1272,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fb1b0fdad-31aa-4d62-a171-a207ae4425eb_1200x640.jpeg 1272w, https://substackcdn.com/image/fetch/$s_!N-L1!,w_1456,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fb1b0fdad-31aa-4d62-a171-a207ae4425eb_1200x640.jpeg 1456w" sizes="100vw"><img src="https://substackcdn.com/image/fetch/$s_!N-L1!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fb1b0fdad-31aa-4d62-a171-a207ae4425eb_1200x640.jpeg" width="1200" height="640" data-attrs="{&quot;src&quot;:&quot;https://substack-post-media.s3.amazonaws.com/public/images/b1b0fdad-31aa-4d62-a171-a207ae4425eb_1200x640.jpeg&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;:419161,&quot;alt&quot;:null,&quot;title&quot;:null,&quot;type&quot;:&quot;image/jpeg&quot;,&quot;href&quot;:&quot;https://events.spacelift.io/one-promotion-model-for-every-workload?49924181-FY26%20-%20Webinar%20-%20Payfit%20-%20September%202026&quot;,&quot;belowTheFold&quot;:false,&quot;topImage&quot;:false,&quot;internalRedirect&quot;:&quot;https://www.devopsbulletin.com/i/211148051?img=https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fb1b0fdad-31aa-4d62-a171-a207ae4425eb_1200x640.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_!N-L1!,w_424,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fb1b0fdad-31aa-4d62-a171-a207ae4425eb_1200x640.jpeg 424w, https://substackcdn.com/image/fetch/$s_!N-L1!,w_848,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fb1b0fdad-31aa-4d62-a171-a207ae4425eb_1200x640.jpeg 848w, https://substackcdn.com/image/fetch/$s_!N-L1!,w_1272,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fb1b0fdad-31aa-4d62-a171-a207ae4425eb_1200x640.jpeg 1272w, https://substackcdn.com/image/fetch/$s_!N-L1!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fb1b0fdad-31aa-4d62-a171-a207ae4425eb_1200x640.jpeg 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 buttonBase-GK1x3M"><svg aria-hidden="true" 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" class="icon-noB79L"><g><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 buttonBase-GK1x3M"><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 icon-noB79L"><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>Join us on September 2 (Wed) to learn how PayFit&#8217;s platform team promotes every release the same way, Kubernetes services and Lambda functions alike. One path for app and infrastructure changes, so a release candidate proves itself before the next environment. It&#8217;s how PayFit ships payroll for 22,000+ businesses - <a href="https://events.spacelift.io/one-promotion-model-for-every-workload?49924181-FY26%20-%20Webinar%20-%20Payfit%20-%20September%202026">Save your seat</a></p><div class="pullquote"><p> If you&#8217;re 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><h4><strong>Newsworthy stories</strong></h4><ul><li><p><strong><a href="https://arstechnica.com/security/2026/08/terabytes-of-credentials-leaked-in-massive-supply-chain-attack/?utm_source=devopsbulletin.com">Terabytes of credentials leaked in massive supply-chain attack</a></strong></p></li><li><p><strong><a href="https://www.figma.com/blog/how-we-secure-figmas-internal-systems-with-agents?utm_source=devopsbulletin.com">How we secure Figma&#8217;s internal systems with agents</a></strong></p></li></ul><div class="captioned-image-container"><figure><a class="image-link image2 is-viewable-img" target="_blank" href="https://www.figma.com/blog/how-we-secure-figmas-internal-systems-with-agents/?utm_source=devopsbulletin.com" data-component-name="Image2ToDOM"><div class="image2-inset"><picture><source type="image/webp" srcset="https://substackcdn.com/image/fetch/$s_!GwVh!,w_424,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F81ac35a1-3420-4da0-9408-9b607f416b36_1080x809.jpeg 424w, https://substackcdn.com/image/fetch/$s_!GwVh!,w_848,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F81ac35a1-3420-4da0-9408-9b607f416b36_1080x809.jpeg 848w, https://substackcdn.com/image/fetch/$s_!GwVh!,w_1272,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F81ac35a1-3420-4da0-9408-9b607f416b36_1080x809.jpeg 1272w, https://substackcdn.com/image/fetch/$s_!GwVh!,w_1456,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F81ac35a1-3420-4da0-9408-9b607f416b36_1080x809.jpeg 1456w" sizes="100vw"><img src="https://substackcdn.com/image/fetch/$s_!GwVh!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F81ac35a1-3420-4da0-9408-9b607f416b36_1080x809.jpeg" width="1080" height="809" data-attrs="{&quot;src&quot;:&quot;https://substack-post-media.s3.amazonaws.com/public/images/81ac35a1-3420-4da0-9408-9b607f416b36_1080x809.jpeg&quot;,&quot;srcNoWatermark&quot;:null,&quot;fullscreen&quot;:null,&quot;imageSize&quot;:null,&quot;height&quot;:809,&quot;width&quot;:1080,&quot;resizeWidth&quot;:null,&quot;bytes&quot;:null,&quot;alt&quot;:&quot;A whimsical ant-colony diagram illustrating an AI security agent orchestrating searches, summaries, data retrieval, and investigation tasks across interconnected systems.&quot;,&quot;title&quot;:null,&quot;type&quot;:null,&quot;href&quot;:&quot;https://www.figma.com/blog/how-we-secure-figmas-internal-systems-with-agents/?utm_source=devopsbulletin.com&quot;,&quot;belowTheFold&quot;:false,&quot;topImage&quot;:false,&quot;internalRedirect&quot;:null,&quot;isProcessing&quot;:false,&quot;align&quot;:null,&quot;offset&quot;:false}" class="sizing-normal" alt="A whimsical ant-colony diagram illustrating an AI security agent orchestrating searches, summaries, data retrieval, and investigation tasks across interconnected systems." title="A whimsical ant-colony diagram illustrating an AI security agent orchestrating searches, summaries, data retrieval, and investigation tasks across interconnected systems." srcset="https://substackcdn.com/image/fetch/$s_!GwVh!,w_424,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F81ac35a1-3420-4da0-9408-9b607f416b36_1080x809.jpeg 424w, https://substackcdn.com/image/fetch/$s_!GwVh!,w_848,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F81ac35a1-3420-4da0-9408-9b607f416b36_1080x809.jpeg 848w, https://substackcdn.com/image/fetch/$s_!GwVh!,w_1272,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F81ac35a1-3420-4da0-9408-9b607f416b36_1080x809.jpeg 1272w, https://substackcdn.com/image/fetch/$s_!GwVh!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F81ac35a1-3420-4da0-9408-9b607f416b36_1080x809.jpeg 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 buttonBase-GK1x3M"><svg aria-hidden="true" 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" class="icon-noB79L"><g><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 buttonBase-GK1x3M"><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 icon-noB79L"><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://cloudnativenow.com/contributed-content/how-we-cut-kubernetes-deployment-validation-from-45-minutes-to-2-minutes?utm_source=devopsbulletin.com">How we cut Kubernetes deployment validation from 45 minutes to 2 minutes</a></strong></p></li><li><p><strong><a href="https://www.rapid7.com/blog/post/dr-investigating-aws-persistence-mechanisms?utm_source=devopsbulletin.com">Investigating persistence mechanisms in AWS</a></strong></p></li><li><p><strong><a href="https://spacelift.io/blog/the-hidden-cost-of-homegrown-iac?utm_source=devopsbulletin.com">The hidden cost of homegrown IaC</a></strong></p></li></ul><h4><strong>Tutorials of the week</strong></h4><ul><li><p><strong><a href="https://aws.amazon.com/blogs/architecture/track-generative-ai-costs-with-amazon-bedrock-inference-profiles/?utm_source=devopsbulletin.com">Track generative AI costs with Amazon Bedrock inference profiles</a></strong></p></li><li><p><strong><a href="https://medium.com/@iftekharkhan245/the-infrastructure-testing-pyramid-6ad293bbb13d?utm_source=devopsbulletin.com">The infrastructure testing pyramid</a></strong></p></li><li><p><strong><a href="https://thenewstack.io/accelerating-eks-image-pulls?utm_source=devopsbulletin.com">Pulling multi-gigabyte container images in seconds on Amazon EKS</a></strong></p></li><li><p><strong><a href="https://atomsized.com/blog/a-1200-percent-aws-cost-spike-ai-monitoring-vs-cloudwatch?utm_source=devopsbulletin.com">A 1,200% AWS cost spike: AI monitoring vs CloudWatch</a></strong></p></li><li><p><strong><a href="https://securitylabs.datadoghq.com/articles/coding-agent-project-trust-code-execution-before-first-prompt/?utm_source=devopsbulletin.com">Before the first prompt: code execution paths in trusted coding-agent projects</a></strong></p></li><li><p><strong><a href="https://omarghader.github.io/monitoring-infrastructure-guide-2026/?utm_source=devopsbulletin.com">How to build your infrastructure monitoring in 2026</a></strong></p></li></ul><h4><strong>Videos of the week</strong></h4><div id="youtube2-HzXAdtVrW70" class="youtube-wrap" data-attrs="{&quot;videoId&quot;:&quot;HzXAdtVrW70&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/HzXAdtVrW70?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-kmLztKueTcI" class="youtube-wrap" data-attrs="{&quot;videoId&quot;:&quot;kmLztKueTcI&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/kmLztKueTcI?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><strong>Projects of the week</strong></h4><ul><li><p><strong><a href="https://github.com/alibaba/open-code-review?utm_source=devopsbulletin.com">OpenCodeReview</a></strong> reviews pull requests from the command line and leaves line-level comments.</p></li><li><p><strong><a href="https://github.com/dimitri/sqlfmt?utm_source=devopsbulletin.com">sqlfmt</a></strong> formats PostgreSQL queries the way gofmt formats code, aligning clause keywords on a single column.</p></li><li><p><strong><a href="https://github.com/allinurl/goaccess?utm_source=devopsbulletin.com">GoAccess</a></strong> analyzes web server logs in real time from your terminal or the browser.</p></li><li><p><strong><a href="https://github.com/TheRealYT/git-knife?utm_source=devopsbulletin.com">git-knife</a></strong> edits every commit&#8217;s message, author, and dates in a table you can click through.</p></li><li><p><strong><a href="https://github.com/tsirysndr/bsdkrun?utm_source=devopsbulletin.com">bsdkrun</a></strong> boots BSD guests, Linux OCI images, and unikernels as microVMs on macOS and Linux, with no daemon running underneath.</p></li></ul><div class="captioned-image-container"><figure><a class="image-link image2 is-viewable-img" target="_blank" href="https://github.com/tsirysndr/bsdkrun?utm_source=devopsbulletin.com" data-component-name="Image2ToDOM"><div class="image2-inset"><picture><source type="image/webp" srcset="https://substackcdn.com/image/fetch/$s_!04IT!,w_424,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Ff1a624fb-2199-44a5-a3ea-5d8981612338_2386x1334.png 424w, https://substackcdn.com/image/fetch/$s_!04IT!,w_848,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Ff1a624fb-2199-44a5-a3ea-5d8981612338_2386x1334.png 848w, https://substackcdn.com/image/fetch/$s_!04IT!,w_1272,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Ff1a624fb-2199-44a5-a3ea-5d8981612338_2386x1334.png 1272w, https://substackcdn.com/image/fetch/$s_!04IT!,w_1456,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Ff1a624fb-2199-44a5-a3ea-5d8981612338_2386x1334.png 1456w" sizes="auto, 100vw"><img src="https://substackcdn.com/image/fetch/$s_!04IT!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Ff1a624fb-2199-44a5-a3ea-5d8981612338_2386x1334.png" width="1456" height="814" data-attrs="{&quot;src&quot;:&quot;https://substack-post-media.s3.amazonaws.com/public/images/f1a624fb-2199-44a5-a3ea-5d8981612338_2386x1334.png&quot;,&quot;srcNoWatermark&quot;:null,&quot;fullscreen&quot;:null,&quot;imageSize&quot;:null,&quot;height&quot;:814,&quot;width&quot;:1456,&quot;resizeWidth&quot;:null,&quot;bytes&quot;:457003,&quot;alt&quot;:null,&quot;title&quot;:null,&quot;type&quot;:&quot;image/png&quot;,&quot;href&quot;:&quot;https://github.com/tsirysndr/bsdkrun?utm_source=devopsbulletin.com&quot;,&quot;belowTheFold&quot;:true,&quot;topImage&quot;:false,&quot;internalRedirect&quot;:&quot;https://www.devopsbulletin.com/i/211148051?img=https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Ff1a624fb-2199-44a5-a3ea-5d8981612338_2386x1334.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_!04IT!,w_424,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Ff1a624fb-2199-44a5-a3ea-5d8981612338_2386x1334.png 424w, https://substackcdn.com/image/fetch/$s_!04IT!,w_848,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Ff1a624fb-2199-44a5-a3ea-5d8981612338_2386x1334.png 848w, https://substackcdn.com/image/fetch/$s_!04IT!,w_1272,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Ff1a624fb-2199-44a5-a3ea-5d8981612338_2386x1334.png 1272w, https://substackcdn.com/image/fetch/$s_!04IT!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Ff1a624fb-2199-44a5-a3ea-5d8981612338_2386x1334.png 1456w" sizes="auto, 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 buttonBase-GK1x3M"><svg aria-hidden="true" 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" class="icon-noB79L"><g><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 buttonBase-GK1x3M"><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 icon-noB79L"><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/cloudflare/computer?utm_source=devopsbulletin.com">Cloudflare Computer</a></strong> provides agents with a virtual filesystem and swappable execution backends within a Durable Object.</p></li></ul><h4><strong>Meme of the week</strong></h4><div class="captioned-image-container"><figure><a class="image-link image2 is-viewable-img" target="_blank" href="https://substackcdn.com/image/fetch/$s_!b0AV!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Faa404c37-3f13-4965-b2d2-3910517d28af_968x970.jpeg" data-component-name="Image2ToDOM"><div class="image2-inset"><picture><source type="image/webp" srcset="https://substackcdn.com/image/fetch/$s_!b0AV!,w_424,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Faa404c37-3f13-4965-b2d2-3910517d28af_968x970.jpeg 424w, https://substackcdn.com/image/fetch/$s_!b0AV!,w_848,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Faa404c37-3f13-4965-b2d2-3910517d28af_968x970.jpeg 848w, https://substackcdn.com/image/fetch/$s_!b0AV!,w_1272,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Faa404c37-3f13-4965-b2d2-3910517d28af_968x970.jpeg 1272w, https://substackcdn.com/image/fetch/$s_!b0AV!,w_1456,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Faa404c37-3f13-4965-b2d2-3910517d28af_968x970.jpeg 1456w" sizes="auto, 100vw"><img src="https://substackcdn.com/image/fetch/$s_!b0AV!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Faa404c37-3f13-4965-b2d2-3910517d28af_968x970.jpeg" width="414" height="414.85537190082647" data-attrs="{&quot;src&quot;:&quot;https://substack-post-media.s3.amazonaws.com/public/images/aa404c37-3f13-4965-b2d2-3910517d28af_968x970.jpeg&quot;,&quot;srcNoWatermark&quot;:null,&quot;fullscreen&quot;:null,&quot;imageSize&quot;:null,&quot;height&quot;:970,&quot;width&quot;:968,&quot;resizeWidth&quot;:414,&quot;bytes&quot;:null,&quot;alt&quot;:&quot;r/ProgrammerHumor - trulyHow&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 - trulyHow" title="r/ProgrammerHumor - trulyHow" srcset="https://substackcdn.com/image/fetch/$s_!b0AV!,w_424,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Faa404c37-3f13-4965-b2d2-3910517d28af_968x970.jpeg 424w, https://substackcdn.com/image/fetch/$s_!b0AV!,w_848,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Faa404c37-3f13-4965-b2d2-3910517d28af_968x970.jpeg 848w, https://substackcdn.com/image/fetch/$s_!b0AV!,w_1272,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Faa404c37-3f13-4965-b2d2-3910517d28af_968x970.jpeg 1272w, https://substackcdn.com/image/fetch/$s_!b0AV!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Faa404c37-3f13-4965-b2d2-3910517d28af_968x970.jpeg 1456w" sizes="auto, 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 buttonBase-GK1x3M"><svg aria-hidden="true" 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" class="icon-noB79L"><g><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 buttonBase-GK1x3M"><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 icon-noB79L"><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>Terabytes of credentials are now public, so I am curious where you actually stand: do you rotate CI tokens every deploy, every quarter, or only after an incident? </p>]]></content:encoded></item><item><title><![CDATA[Digest #226: OpenClaw agents with credentials to everything, Cloudflare OS, Claude as a Postgres engine and €1.5M off a multi-cloud bill]]></title><description><![CDATA[A single semicolon that gave remote code execution on github.com, poisoning an LLM through S3 Vectors metadata, and the reason COUNT(DISTINCT) quietly kills parallel queries in Postgres.]]></description><link>https://www.devopsbulletin.com/p/digest-226-openclaw-agents-with-credentials</link><guid isPermaLink="false">https://www.devopsbulletin.com/p/digest-226-openclaw-agents-with-credentials</guid><dc:creator><![CDATA[Mohamed Labouardy]]></dc:creator><pubDate>Fri, 07 Aug 2026 15:46:16 GMT</pubDate><enclosure url="https://substackcdn.com/image/fetch/$s_!kzLO!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F0f9f1a4e-73d3-45d1-a36d-ccc4fcfde98b_1400x606.png" length="0" type="image/jpeg"/><content:encoded><![CDATA[<blockquote><p>Permiso&#8217;s teardown of the OpenClaw ecosystem is the one to read first: agents installing skills from an unvetted marketplace while holding live credentials to email, Slack and everything else they touch. Cloudflare shipped its own answer to that problem this week with Cloudflare OS, an open platform that puts guardrails around what an agent can actually reach. And if you want proof that we are all still improvising, someone wired Claude up as a Postgres query engine and it returned real rows.</p></blockquote><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><h4><strong>Newsworthy stories</strong></h4><ul><li><p><strong><a href="https://permiso.io/blog/inside-the-openclaw-ecosystem-ai-agents-with-privileged-credentials?utm_source=devopsbulletin.com">Inside the OpenClaw ecosystem: what happens when AI agents get credentials to everything</a></strong></p></li><li><p><strong><a href="https://blog.cloudflare.com/cloudflare-os?utm_source=devopsbulletin.com">Cloudflare OS: an open platform for agents, apps, and work</a></strong></p></li><li><p><strong><a href="https://www.figma.com/blog/how-figma-stays-ahead-of-vulnerabilities-with-agents?utm_source=devopsbulletin.com">How Figma stays ahead of vulnerabilities with agents</a></strong></p></li><li><p><strong><a href="https://byteofdev.com/posts/turning-claude-postgres/?utm_source=devopsbulletin.com">Turning Claude into Postgres so I can raise a Series A</a></strong></p></li><li><p><strong><a href="https://aws.amazon.com/blogs/aws-cloud-financial-management/automating-multi-cloud-cost-management-at-scale-a2as-finops-platform-powered-by-aws/?utm_source=devopsbulletin.com">Automating multi-cloud cost management at scale</a></strong></p></li></ul><h4><strong>Tutorials of the week</strong></h4><ul><li><p><strong><a href="https://aws.amazon.com/blogs/devops/accelerate-cloudformation-development-with-the-iac-mcp-server/?utm_source=devopsbulletin.com">Accelerate CloudFormation development with the IaC MCP Server</a></strong></p></li><li><p><strong><a href="https://blog.dbtrail.com/everyone-records-the-mysql-audit-log?utm_source=devopsbulletin.com">Everyone records the MySQL audit log. Nobody reads it</a></strong></p></li><li><p><strong><a href="https://aws.amazon.com/blogs/aws-cloud-financial-management/improve-your-monthly-cloud-variance-analysis-with-a-weekly-finops-checkpoint/?utm_source=devopsbulletin.com">Improve your monthly cloud variance analysis with a weekly FinOps checkpoint</a></strong></p></li><li><p><strong><a href="https://medium.com/@paul_0307/the-multi-account-terraform-setup-nobody-talks-about-af7d92ce959d?utm_source=devopsbulletin.com">The multi-account Terraform setup nobody talks about</a></strong></p></li></ul><div class="captioned-image-container"><figure><a class="image-link image2 is-viewable-img" target="_blank" href="https://medium.com/@paul_0307/the-multi-account-terraform-setup-nobody-talks-about-af7d92ce959d" data-component-name="Image2ToDOM"><div class="image2-inset"><picture><source type="image/webp" srcset="https://substackcdn.com/image/fetch/$s_!kzLO!,w_424,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F0f9f1a4e-73d3-45d1-a36d-ccc4fcfde98b_1400x606.png 424w, https://substackcdn.com/image/fetch/$s_!kzLO!,w_848,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F0f9f1a4e-73d3-45d1-a36d-ccc4fcfde98b_1400x606.png 848w, https://substackcdn.com/image/fetch/$s_!kzLO!,w_1272,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F0f9f1a4e-73d3-45d1-a36d-ccc4fcfde98b_1400x606.png 1272w, https://substackcdn.com/image/fetch/$s_!kzLO!,w_1456,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F0f9f1a4e-73d3-45d1-a36d-ccc4fcfde98b_1400x606.png 1456w" sizes="100vw"><img src="https://substackcdn.com/image/fetch/$s_!kzLO!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F0f9f1a4e-73d3-45d1-a36d-ccc4fcfde98b_1400x606.png" width="1400" height="606" data-attrs="{&quot;src&quot;:&quot;https://substack-post-media.s3.amazonaws.com/public/images/0f9f1a4e-73d3-45d1-a36d-ccc4fcfde98b_1400x606.png&quot;,&quot;srcNoWatermark&quot;:null,&quot;fullscreen&quot;:null,&quot;imageSize&quot;:null,&quot;height&quot;:606,&quot;width&quot;:1400,&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://medium.com/@paul_0307/the-multi-account-terraform-setup-nobody-talks-about-af7d92ce959d&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_!kzLO!,w_424,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F0f9f1a4e-73d3-45d1-a36d-ccc4fcfde98b_1400x606.png 424w, https://substackcdn.com/image/fetch/$s_!kzLO!,w_848,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F0f9f1a4e-73d3-45d1-a36d-ccc4fcfde98b_1400x606.png 848w, https://substackcdn.com/image/fetch/$s_!kzLO!,w_1272,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F0f9f1a4e-73d3-45d1-a36d-ccc4fcfde98b_1400x606.png 1272w, https://substackcdn.com/image/fetch/$s_!kzLO!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F0f9f1a4e-73d3-45d1-a36d-ccc4fcfde98b_1400x606.png 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 buttonBase-GK1x3M"><svg aria-hidden="true" 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" class="icon-noB79L"><g><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 buttonBase-GK1x3M"><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 icon-noB79L"><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/distinct-in-your-count/?utm_source=devopsbulletin.com">The DISTINCT in your COUNT</a></strong></p></li><li><p><strong><a href="https://aws.amazon.com/blogs/containers/centralize-cross-account-amazon-ecs-telemetry-with-an-adot-gateway/?utm_source=devopsbulletin.com">Centralize cross-account Amazon ECS telemetry with an ADOT gateway</a></strong></p></li><li><p><strong><a href="https://www.kubeblogs.com/run-parallel-ai-agents-git-worktrees-local-setup/?utm_source=devopsbulletin.com">What it actually takes to run parallel AI agents</a></strong></p></li><li><p><strong><a href="https://www.offensai.com/blog/amazon-s3-vectors-security-llm-rag-poisoning?utm_source=devopsbulletin.com">A security analysis of Amazon S3 Vectors and its use in LLM retrieval pipelines</a></strong></p></li></ul><h4><strong>Videos of the week</strong></h4><div id="youtube2-90BcMBu4QrE" class="youtube-wrap" data-attrs="{&quot;videoId&quot;:&quot;90BcMBu4QrE&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/90BcMBu4QrE?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><strong>Projects of the week</strong></h4><ul><li><p><strong><a href="https://github.com/Evokoa/pgGraph?utm_source=devopsbulletin.com">pgGraph</a></strong> runs graph traversals and shortest-path queries directly on your existing Postgres tables.</p></li><li><p><strong><a href="https://github.com/nolabs-ai/nono?utm_source=devopsbulletin.com">nono</a></strong> sandboxes any AI agent behind least-privilege isolation with no setup.</p></li><li><p><strong><a href="https://github.com/rcieri/glab-tui?utm_source=devopsbulletin.com">glab-tui</a></strong> browses GitLab and GitHub issues, merge requests, pipelines, and runners without leaving your terminal.</p></li></ul><div class="captioned-image-container"><figure><a class="image-link image2 is-viewable-img" target="_blank" href="https://github.com/rcieri/glab-tui?utm_source=devopsbulletin.com" data-component-name="Image2ToDOM"><div class="image2-inset"><picture><source type="image/webp" srcset="https://substackcdn.com/image/fetch/$s_!6aOh!,w_424,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F3c8e0fc0-5f2a-4fb7-a269-9593b78d3b33_1652x452.png 424w, https://substackcdn.com/image/fetch/$s_!6aOh!,w_848,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F3c8e0fc0-5f2a-4fb7-a269-9593b78d3b33_1652x452.png 848w, https://substackcdn.com/image/fetch/$s_!6aOh!,w_1272,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F3c8e0fc0-5f2a-4fb7-a269-9593b78d3b33_1652x452.png 1272w, https://substackcdn.com/image/fetch/$s_!6aOh!,w_1456,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F3c8e0fc0-5f2a-4fb7-a269-9593b78d3b33_1652x452.png 1456w" sizes="auto, 100vw"><img src="https://substackcdn.com/image/fetch/$s_!6aOh!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F3c8e0fc0-5f2a-4fb7-a269-9593b78d3b33_1652x452.png" width="1456" height="398" data-attrs="{&quot;src&quot;:&quot;https://substack-post-media.s3.amazonaws.com/public/images/3c8e0fc0-5f2a-4fb7-a269-9593b78d3b33_1652x452.png&quot;,&quot;srcNoWatermark&quot;:null,&quot;fullscreen&quot;:null,&quot;imageSize&quot;:null,&quot;height&quot;:398,&quot;width&quot;:1456,&quot;resizeWidth&quot;:null,&quot;bytes&quot;:523694,&quot;alt&quot;:null,&quot;title&quot;:null,&quot;type&quot;:&quot;image/png&quot;,&quot;href&quot;:&quot;https://github.com/rcieri/glab-tui?utm_source=devopsbulletin.com&quot;,&quot;belowTheFold&quot;:true,&quot;topImage&quot;:false,&quot;internalRedirect&quot;:&quot;https://www.devopsbulletin.com/i/210217938?img=https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F3c8e0fc0-5f2a-4fb7-a269-9593b78d3b33_1652x452.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_!6aOh!,w_424,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F3c8e0fc0-5f2a-4fb7-a269-9593b78d3b33_1652x452.png 424w, https://substackcdn.com/image/fetch/$s_!6aOh!,w_848,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F3c8e0fc0-5f2a-4fb7-a269-9593b78d3b33_1652x452.png 848w, https://substackcdn.com/image/fetch/$s_!6aOh!,w_1272,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F3c8e0fc0-5f2a-4fb7-a269-9593b78d3b33_1652x452.png 1272w, https://substackcdn.com/image/fetch/$s_!6aOh!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F3c8e0fc0-5f2a-4fb7-a269-9593b78d3b33_1652x452.png 1456w" sizes="auto, 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 buttonBase-GK1x3M"><svg aria-hidden="true" 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" class="icon-noB79L"><g><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 buttonBase-GK1x3M"><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 icon-noB79L"><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/Yamato-Security/suzaku?utm_source=devopsbulletin.com">Suzaku</a></strong> hunts threats in AWS CloudTrail logs by applying Sigma detection rules to your API call history.</p></li><li><p><strong><a href="https://link.svix.com/dobulletin">Svix</a></strong> handles webhook delivery, retries, and signing so you never have to build that layer yourself.</p></li><li><p><strong><a href="https://github.com/palamim/starboard?utm_source=devopsbulletin.com">Starboard</a></strong> keeps a terminal permanently docked beside the macOS Dock instead of hidden behind a hotkey.</p></li></ul><h4><strong>Meme of the week</strong></h4><div class="captioned-image-container"><figure><a class="image-link image2 is-viewable-img" target="_blank" href="https://substackcdn.com/image/fetch/$s_!tloD!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Feadddce3-4c02-4e29-a7c3-9293c507c4b6_640x679.jpeg" data-component-name="Image2ToDOM"><div class="image2-inset"><picture><source type="image/webp" srcset="https://substackcdn.com/image/fetch/$s_!tloD!,w_424,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Feadddce3-4c02-4e29-a7c3-9293c507c4b6_640x679.jpeg 424w, https://substackcdn.com/image/fetch/$s_!tloD!,w_848,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Feadddce3-4c02-4e29-a7c3-9293c507c4b6_640x679.jpeg 848w, https://substackcdn.com/image/fetch/$s_!tloD!,w_1272,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Feadddce3-4c02-4e29-a7c3-9293c507c4b6_640x679.jpeg 1272w, https://substackcdn.com/image/fetch/$s_!tloD!,w_1456,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Feadddce3-4c02-4e29-a7c3-9293c507c4b6_640x679.jpeg 1456w" sizes="auto, 100vw"><img src="https://substackcdn.com/image/fetch/$s_!tloD!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Feadddce3-4c02-4e29-a7c3-9293c507c4b6_640x679.jpeg" width="446" height="473.178125" data-attrs="{&quot;src&quot;:&quot;https://substack-post-media.s3.amazonaws.com/public/images/eadddce3-4c02-4e29-a7c3-9293c507c4b6_640x679.jpeg&quot;,&quot;srcNoWatermark&quot;:null,&quot;fullscreen&quot;:null,&quot;imageSize&quot;:null,&quot;height&quot;:679,&quot;width&quot;:640,&quot;resizeWidth&quot;:446,&quot;bytes&quot;:null,&quot;alt&quot;:&quot;r/ProgrammerHumor - watchingVibeCodersInFutureIsScary&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 - watchingVibeCodersInFutureIsScary" title="r/ProgrammerHumor - watchingVibeCodersInFutureIsScary" srcset="https://substackcdn.com/image/fetch/$s_!tloD!,w_424,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Feadddce3-4c02-4e29-a7c3-9293c507c4b6_640x679.jpeg 424w, https://substackcdn.com/image/fetch/$s_!tloD!,w_848,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Feadddce3-4c02-4e29-a7c3-9293c507c4b6_640x679.jpeg 848w, https://substackcdn.com/image/fetch/$s_!tloD!,w_1272,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Feadddce3-4c02-4e29-a7c3-9293c507c4b6_640x679.jpeg 1272w, https://substackcdn.com/image/fetch/$s_!tloD!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Feadddce3-4c02-4e29-a7c3-9293c507c4b6_640x679.jpeg 1456w" sizes="auto, 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 buttonBase-GK1x3M"><svg aria-hidden="true" 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" class="icon-noB79L"><g><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 buttonBase-GK1x3M"><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 icon-noB79L"><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>]]></content:encoded></item><item><title><![CDATA[Digest #225: GitHub Actions abuse powers a cPanel exploit wave, AWS's Claude apps gateway and auto-applied Terraform]]></title><description><![CDATA[Also: an AI SRE agent that triages incidents before you open your laptop, why your pod died of "out of ephemeral storage" on a half-empty disk, and the one Redis key no amount of sharding can save.]]></description><link>https://www.devopsbulletin.com/p/digest-225-github-actions-abuse-powers</link><guid isPermaLink="false">https://www.devopsbulletin.com/p/digest-225-github-actions-abuse-powers</guid><dc:creator><![CDATA[Mohamed Labouardy]]></dc:creator><pubDate>Fri, 31 Jul 2026 16:17:29 GMT</pubDate><enclosure url="https://substackcdn.com/image/youtube/w_728,c_limit/0G5_w2lX02o" 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/the-best-infrastructure-platform-stays-out-of-your-way?refid=DevOpsBulletin&amp;utm_campaign=49404317-FY26%20-%20Webinar%20-%20Rogo%20found%20an%20IaC%20platform%20-%20August%202026&amp;utm_source=DevOpsBulletin&amp;utm_medium=email&amp;utm_content=Email%20placement%20-%20Webinar%20-%20Rogo%20Customer%20Webinar%20-%20Variation%20A" 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="154" height="47.69402985074627" 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;:154,&quot;bytes&quot;:null,&quot;alt&quot;:null,&quot;title&quot;:null,&quot;type&quot;:null,&quot;href&quot;:&quot;https://events.spacelift.io/the-best-infrastructure-platform-stays-out-of-your-way?refid=DevOpsBulletin&amp;utm_campaign=49404317-FY26%20-%20Webinar%20-%20Rogo%20found%20an%20IaC%20platform%20-%20August%202026&amp;utm_source=DevOpsBulletin&amp;utm_medium=email&amp;utm_content=Email%20placement%20-%20Webinar%20-%20Rogo%20Customer%20Webinar%20-%20Variation%20A&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><blockquote><p><span>Attackers turned compromised PHP repositories into a botnet this week, using GitHub Actions runners to scan and exploit cPanel and WHM servers at scale.<br>It is the clearest sign yet that your CI minutes are somebody else's free infrastructure.<br>Elsewhere, PlanetScale explains how 768 database servers manage to look like one, and AWS shipped a control plane that finally gives platform teams a policy and cost story for Claude Code.</span></p></blockquote><h4><strong>Learn Rogo&#8217;s IaC approach</strong></h4><div class="captioned-image-container"><figure><a class="image-link image2 is-viewable-img" target="_blank" href="https://events.spacelift.io/the-best-infrastructure-platform-stays-out-of-your-way?refid=DevOpsBulletin&amp;utm_campaign=49404317-FY26%20-%20Webinar%20-%20Rogo%20found%20an%20IaC%20platform%20-%20August%202026&amp;utm_source=DevOpsBulletin&amp;utm_medium=email&amp;utm_content=Email%20placement%20-%20Webinar%20-%20Rogo%20Customer%20Webinar%20-%20Variation%20A" data-component-name="Image2ToDOM"><div class="image2-inset"><picture><source type="image/webp" srcset="https://substackcdn.com/image/fetch/$s_!KXlW!,w_424,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F55daec34-6275-47cb-b9fb-cf05d39867c8_2400x1280.png 424w, https://substackcdn.com/image/fetch/$s_!KXlW!,w_848,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F55daec34-6275-47cb-b9fb-cf05d39867c8_2400x1280.png 848w, https://substackcdn.com/image/fetch/$s_!KXlW!,w_1272,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F55daec34-6275-47cb-b9fb-cf05d39867c8_2400x1280.png 1272w, https://substackcdn.com/image/fetch/$s_!KXlW!,w_1456,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F55daec34-6275-47cb-b9fb-cf05d39867c8_2400x1280.png 1456w" sizes="100vw"><img src="https://substackcdn.com/image/fetch/$s_!KXlW!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F55daec34-6275-47cb-b9fb-cf05d39867c8_2400x1280.png" width="1456" height="777" data-attrs="{&quot;src&quot;:&quot;https://substack-post-media.s3.amazonaws.com/public/images/55daec34-6275-47cb-b9fb-cf05d39867c8_2400x1280.png&quot;,&quot;srcNoWatermark&quot;:null,&quot;fullscreen&quot;:null,&quot;imageSize&quot;:null,&quot;height&quot;:777,&quot;width&quot;:1456,&quot;resizeWidth&quot;:null,&quot;bytes&quot;:3190557,&quot;alt&quot;:null,&quot;title&quot;:null,&quot;type&quot;:&quot;image/png&quot;,&quot;href&quot;:&quot;https://events.spacelift.io/the-best-infrastructure-platform-stays-out-of-your-way?refid=DevOpsBulletin&amp;utm_campaign=49404317-FY26%20-%20Webinar%20-%20Rogo%20found%20an%20IaC%20platform%20-%20August%202026&amp;utm_source=DevOpsBulletin&amp;utm_medium=email&amp;utm_content=Email%20placement%20-%20Webinar%20-%20Rogo%20Customer%20Webinar%20-%20Variation%20A&quot;,&quot;belowTheFold&quot;:false,&quot;topImage&quot;:false,&quot;internalRedirect&quot;:&quot;https://www.devopsbulletin.com/i/209266292?img=https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F55daec34-6275-47cb-b9fb-cf05d39867c8_2400x1280.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_!KXlW!,w_424,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F55daec34-6275-47cb-b9fb-cf05d39867c8_2400x1280.png 424w, https://substackcdn.com/image/fetch/$s_!KXlW!,w_848,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F55daec34-6275-47cb-b9fb-cf05d39867c8_2400x1280.png 848w, https://substackcdn.com/image/fetch/$s_!KXlW!,w_1272,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F55daec34-6275-47cb-b9fb-cf05d39867c8_2400x1280.png 1272w, https://substackcdn.com/image/fetch/$s_!KXlW!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F55daec34-6275-47cb-b9fb-cf05d39867c8_2400x1280.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 buttonBase-GK1x3M"><svg aria-hidden="true" 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" class="icon-noB79L"><g><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 buttonBase-GK1x3M"><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 icon-noB79L"><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 do platform engineers keep pace with a growing development team at a $2B AI company? On August 11, Lawrence Aiello, Platform Engineering Lead at Rogo, shares how. He&#8217;ll cover the modern IaC platforms Rogo weighed, the criteria that mattered, and how infrastructure that runs without attention frees his team to focus on enabling developers. Take Rogo&#8217;s criteria into your own platform decision - <a href="https://events.spacelift.io/the-best-infrastructure-platform-stays-out-of-your-way?refid=DevOpsBulletin&amp;utm_campaign=49404317-FY26%20-%20Webinar%20-%20Rogo%20found%20an%20IaC%20platform%20-%20August%202026&amp;utm_source=DevOpsBulletin&amp;utm_medium=email&amp;utm_content=Email%20placement%20-%20Webinar%20-%20Rogo%20Customer%20Webinar%20-%20Variation%20A">Register Now</a></p><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><h4><strong>Newsworthy stories</strong></h4><ul><li><p><strong><a href="https://socket.dev/blog/github-actions-abuse-powers-cpanel-and-whm-exploitation?utm_source=devopsbulletin.com">Large-scale GitHub Actions abuse powers a distributed cPanel and WHM exploitation campaign</a></strong></p></li><li><p><strong><a href="https://planetscale.com/blog/making-768-servers-look-like-1?utm_source=devopsbulletin.com">Making 768 servers look like 1</a></strong></p></li><li><p><strong><a href="https://aws.amazon.com/blogs/machine-learning/introducing-claude-apps-gateway-for-aws/?utm_source=devopsbulletin.com">Introducing Claude apps gateway for AWS</a></strong></p></li><li><p><strong><a href="https://codecraftdiary.com/2026/07/26/merge-conflicts-process-problem?utm_source=devopsbulletin.com">Merge conflicts are a process problem, not a Git problem</a></strong></p></li><li><p><strong><a href="https://www.fairwinds.com/blog/why-kubernetes-experts-choose-managed-kubernetes-as-a-service?utm_source=devopsbulletin.com">Why do Kubernetes experts choose managed Kubernetes-as-a-service?</a></strong></p></li></ul><h4><strong>Tutorials of the week</strong></h4><ul><li><p><strong><a href="https://aws.amazon.com/blogs/mt/automate-ci-cd-troubleshooting-with-aws-devops-agent-and-github?utm_source=devopsbulletin.com">Automate CI/CD troubleshooting with AWS DevOps Agent and GitHub</a></strong></p></li><li><p><strong><a href="https://www.bejarano.io/terraform-autoapply?utm_source=devopsbulletin.com">Safe Terraform auto-apply with conftest</a></strong></p></li><li><p><strong><a href="https://cloudnativenow.com/contributed-content/a-green-kubernetes-deployment-does-not-mean-a-healthy-application?utm_source=devopsbulletin.com">A green Kubernetes deployment does not mean a healthy application</a></strong></p></li><li><p><strong><a href="https://hackernoon.com/i-built-an-ai-sre-agent-that-diagnoses-incidents-before-i-open-my-laptop?utm_source=devopsbulletin.com">I built an AI SRE agent that diagnoses incidents before I open my laptop</a></strong></p></li></ul><div class="captioned-image-container"><figure><a class="image-link image2 is-viewable-img" target="_blank" href="https://hackernoon.com/i-built-an-ai-sre-agent-that-diagnoses-incidents-before-i-open-my-laptop?utm_source=devopsbulletin.com" data-component-name="Image2ToDOM"><div class="image2-inset"><picture><source type="image/webp" srcset="https://substackcdn.com/image/fetch/$s_!afED!,w_424,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fd8335f85-a17e-4114-b487-b7deece2c9ed_1536x1024.jpeg 424w, https://substackcdn.com/image/fetch/$s_!afED!,w_848,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fd8335f85-a17e-4114-b487-b7deece2c9ed_1536x1024.jpeg 848w, https://substackcdn.com/image/fetch/$s_!afED!,w_1272,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fd8335f85-a17e-4114-b487-b7deece2c9ed_1536x1024.jpeg 1272w, https://substackcdn.com/image/fetch/$s_!afED!,w_1456,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fd8335f85-a17e-4114-b487-b7deece2c9ed_1536x1024.jpeg 1456w" sizes="auto, 100vw"><img src="https://substackcdn.com/image/fetch/$s_!afED!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fd8335f85-a17e-4114-b487-b7deece2c9ed_1536x1024.jpeg" width="1456" height="971" data-attrs="{&quot;src&quot;:&quot;https://substack-post-media.s3.amazonaws.com/public/images/d8335f85-a17e-4114-b487-b7deece2c9ed_1536x1024.jpeg&quot;,&quot;srcNoWatermark&quot;:null,&quot;fullscreen&quot;:null,&quot;imageSize&quot;:null,&quot;height&quot;:971,&quot;width&quot;:1456,&quot;resizeWidth&quot;:null,&quot;bytes&quot;:null,&quot;alt&quot;:&quot;Architecture diagram&quot;,&quot;title&quot;:null,&quot;type&quot;:null,&quot;href&quot;:&quot;https://hackernoon.com/i-built-an-ai-sre-agent-that-diagnoses-incidents-before-i-open-my-laptop?utm_source=devopsbulletin.com&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="Architecture diagram" title="Architecture diagram" srcset="https://substackcdn.com/image/fetch/$s_!afED!,w_424,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fd8335f85-a17e-4114-b487-b7deece2c9ed_1536x1024.jpeg 424w, https://substackcdn.com/image/fetch/$s_!afED!,w_848,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fd8335f85-a17e-4114-b487-b7deece2c9ed_1536x1024.jpeg 848w, https://substackcdn.com/image/fetch/$s_!afED!,w_1272,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fd8335f85-a17e-4114-b487-b7deece2c9ed_1536x1024.jpeg 1272w, https://substackcdn.com/image/fetch/$s_!afED!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fd8335f85-a17e-4114-b487-b7deece2c9ed_1536x1024.jpeg 1456w" sizes="auto, 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 buttonBase-GK1x3M"><svg aria-hidden="true" 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" class="icon-noB79L"><g><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 buttonBase-GK1x3M"><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 icon-noB79L"><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://itnext.io/your-pod-died-of-out-of-ephemeral-storage-but-the-disk-is-half-empty-775851ccd08c?utm_source=devopsbulletin.com">Your pod died of &#8220;out of ephemeral storage&#8221; but the disk is half empty</a></strong></p></li><li><p><strong><a href="https://github.com/alexpusch/rust-magic-patterns/tree/master/delightful-integration-tests?utm_source=devopsbulletin.com">Delightful integration tests in Rust</a></strong></p></li><li><p><strong><a href="https://claude.com/blog/ciso-guide-to-agentic-ai?utm_source=devopsbulletin.com">A CISO&#8217;s guide to agentic AI</a></strong></p></li></ul><h4><strong>Videos of the week</strong></h4><div id="youtube2-0G5_w2lX02o" class="youtube-wrap" data-attrs="{&quot;videoId&quot;:&quot;0G5_w2lX02o&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/0G5_w2lX02o?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><strong>Projects of the week</strong></h4><ul><li><p><strong><a href="https://github.com/omarismail/terraform-plan-tui?utm_source=devopsbulletin.com">tfplantui</a></strong> turns a Terraform plan into a navigable dependency graph in your terminal.</p></li><li><p><strong><a href="https://github.com/betocmn/widen?utm_source=devopsbulletin.com">Widen</a></strong> is a native Postgres GUI for macOS that answers questions in plain English and shows you the SQL before it runs.</p></li></ul><div class="captioned-image-container"><figure><a class="image-link image2 is-viewable-img" target="_blank" href="https://github.com/betocmn/widen?utm_source=devopsbulletin.com" data-component-name="Image2ToDOM"><div class="image2-inset"><picture><source type="image/webp" srcset="https://substackcdn.com/image/fetch/$s_!tib2!,w_424,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fd59f5904-06d3-48fc-a1b7-ea741b1ba922_1226x473.png 424w, https://substackcdn.com/image/fetch/$s_!tib2!,w_848,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fd59f5904-06d3-48fc-a1b7-ea741b1ba922_1226x473.png 848w, https://substackcdn.com/image/fetch/$s_!tib2!,w_1272,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fd59f5904-06d3-48fc-a1b7-ea741b1ba922_1226x473.png 1272w, https://substackcdn.com/image/fetch/$s_!tib2!,w_1456,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fd59f5904-06d3-48fc-a1b7-ea741b1ba922_1226x473.png 1456w" sizes="auto, 100vw"><img src="https://substackcdn.com/image/fetch/$s_!tib2!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fd59f5904-06d3-48fc-a1b7-ea741b1ba922_1226x473.png" width="1226" height="473" data-attrs="{&quot;src&quot;:&quot;https://substack-post-media.s3.amazonaws.com/public/images/d59f5904-06d3-48fc-a1b7-ea741b1ba922_1226x473.png&quot;,&quot;srcNoWatermark&quot;:null,&quot;fullscreen&quot;:null,&quot;imageSize&quot;:null,&quot;height&quot;:473,&quot;width&quot;:1226,&quot;resizeWidth&quot;:null,&quot;bytes&quot;:370216,&quot;alt&quot;:null,&quot;title&quot;:null,&quot;type&quot;:&quot;image/png&quot;,&quot;href&quot;:&quot;https://github.com/betocmn/widen?utm_source=devopsbulletin.com&quot;,&quot;belowTheFold&quot;:true,&quot;topImage&quot;:false,&quot;internalRedirect&quot;:&quot;https://www.devopsbulletin.com/i/209266292?img=https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fd59f5904-06d3-48fc-a1b7-ea741b1ba922_1226x473.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_!tib2!,w_424,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fd59f5904-06d3-48fc-a1b7-ea741b1ba922_1226x473.png 424w, https://substackcdn.com/image/fetch/$s_!tib2!,w_848,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fd59f5904-06d3-48fc-a1b7-ea741b1ba922_1226x473.png 848w, https://substackcdn.com/image/fetch/$s_!tib2!,w_1272,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fd59f5904-06d3-48fc-a1b7-ea741b1ba922_1226x473.png 1272w, https://substackcdn.com/image/fetch/$s_!tib2!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fd59f5904-06d3-48fc-a1b7-ea741b1ba922_1226x473.png 1456w" sizes="auto, 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 buttonBase-GK1x3M"><svg aria-hidden="true" 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" class="icon-noB79L"><g><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 buttonBase-GK1x3M"><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 icon-noB79L"><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/agavra/tuicr?utm_source=devopsbulletin.com">tuicr</a></strong> reviews code in a vim-keybound TUI and exports the result straight to GitHub or GitLab.</p></li><li><p><strong><a href="https://github.com/raesene/zeedumper?utm_source=devopsbulletin.com">zeedumper</a></strong> dumps the flagz, statusz and configz pages from Kubernetes components through the API server proxy.</p></li><li><p><strong><a href="https://github.com/ironsh/iron-proxy?utm_source=devopsbulletin.com">iron-proxy</a></strong> blocks all egress from untrusted workloads by default and swaps sandbox tokens for real credentials at the boundary.</p></li></ul><h4><strong>Meme of the week</strong></h4><div class="captioned-image-container"><figure><a class="image-link image2 is-viewable-img" target="_blank" href="https://substackcdn.com/image/fetch/$s_!vAcF!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F4aa3fc26-f0c5-4c55-a04d-968bdb1b1009_804x867.png" data-component-name="Image2ToDOM"><div class="image2-inset"><picture><source type="image/webp" srcset="https://substackcdn.com/image/fetch/$s_!vAcF!,w_424,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F4aa3fc26-f0c5-4c55-a04d-968bdb1b1009_804x867.png 424w, https://substackcdn.com/image/fetch/$s_!vAcF!,w_848,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F4aa3fc26-f0c5-4c55-a04d-968bdb1b1009_804x867.png 848w, https://substackcdn.com/image/fetch/$s_!vAcF!,w_1272,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F4aa3fc26-f0c5-4c55-a04d-968bdb1b1009_804x867.png 1272w, https://substackcdn.com/image/fetch/$s_!vAcF!,w_1456,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F4aa3fc26-f0c5-4c55-a04d-968bdb1b1009_804x867.png 1456w" sizes="auto, 100vw"><img src="https://substackcdn.com/image/fetch/$s_!vAcF!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F4aa3fc26-f0c5-4c55-a04d-968bdb1b1009_804x867.png" width="356" height="383.8955223880597" data-attrs="{&quot;src&quot;:&quot;https://substack-post-media.s3.amazonaws.com/public/images/4aa3fc26-f0c5-4c55-a04d-968bdb1b1009_804x867.png&quot;,&quot;srcNoWatermark&quot;:null,&quot;fullscreen&quot;:null,&quot;imageSize&quot;:null,&quot;height&quot;:867,&quot;width&quot;:804,&quot;resizeWidth&quot;:356,&quot;bytes&quot;:null,&quot;alt&quot;:&quot;It Deleted The Assertion&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="It Deleted The Assertion" title="It Deleted The Assertion" srcset="https://substackcdn.com/image/fetch/$s_!vAcF!,w_424,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F4aa3fc26-f0c5-4c55-a04d-968bdb1b1009_804x867.png 424w, https://substackcdn.com/image/fetch/$s_!vAcF!,w_848,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F4aa3fc26-f0c5-4c55-a04d-968bdb1b1009_804x867.png 848w, https://substackcdn.com/image/fetch/$s_!vAcF!,w_1272,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F4aa3fc26-f0c5-4c55-a04d-968bdb1b1009_804x867.png 1272w, https://substackcdn.com/image/fetch/$s_!vAcF!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F4aa3fc26-f0c5-4c55-a04d-968bdb1b1009_804x867.png 1456w" sizes="auto, 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 buttonBase-GK1x3M"><svg aria-hidden="true" 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" class="icon-noB79L"><g><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 buttonBase-GK1x3M"><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 icon-noB79L"><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>]]></content:encoded></item><item><title><![CDATA[Digest #224: AsyncAPI npm packages hijacked in 8 minutes, 222 fake GitHub repos, an Azure tenant lost in an hour and the death of small PRs]]></title><description><![CDATA[Also inside: HashiCorp's HCL-native policy engine for Terraform, a $19-a-month hosting bill cut to zero, and a Kubernetes rewritten from scratch in Rust that passes 94% of conformance tests.]]></description><link>https://www.devopsbulletin.com/p/digest-224-asyncapi-npm-packages</link><guid isPermaLink="false">https://www.devopsbulletin.com/p/digest-224-asyncapi-npm-packages</guid><dc:creator><![CDATA[Mohamed Labouardy]]></dc:creator><pubDate>Fri, 24 Jul 2026 16:21:55 GMT</pubDate><enclosure url="https://substackcdn.com/image/fetch/$s_!0gaP!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F4abd926c-3860-4f20-97aa-c1aca6f662b9_1301x639.png" length="0" type="image/jpeg"/><content:encoded><![CDATA[<blockquote><p>An attacker opened 37 pull requests against AsyncAPI last week, and eight minutes after the malicious one landed, the CI secrets were gone and four npm packages with 3 million weekly downloads were shipping a three-stage payload. The same week, Socket mapped a network of 222 fake GitHub repos pushing a Go module that was really a Windows malware loader, and Sysdig walked through an Azure tenant that fell in about an hour because permissions live across five systems that don&#8217;t talk to each other. The most interesting read, though, might be Rootly explaining why they killed their two-year-old small-PR rule now that 80% of their PRs are written by agents.</p></blockquote><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><h4>Newsworthy stories</h4><ul><li><p><strong><a href="https://www.wiz.io/blog/m-red-team-asyncapi-supply-chain-compromise-via-github-actions?utm_source=devopsbulletin.com">AsyncAPI supply chain compromise via GitHub Actions</a></strong></p></li><li><p><strong><a href="https://socket.dev/blog/malicious-go-module-exposes-github-malware-lure-network?utm_source=devopsbulletin.com">Malicious Go module exposes GitHub malware lure network spanning 222 repositories</a></strong></p></li><li><p><strong><a href="https://www.sysdig.com/blog/no-single-pane-of-glass-anatomy-of-an-azure-permission-takeover?utm_source=devopsbulletin.com">Anatomy of an Azure permission takeover</a></strong></p></li><li><p><strong><a href="https://www.hashicorp.com/fr/blog/introducing-tfpolicy-a-declarative-policy-workflow-built-for-terraform?utm_source=devopsbulletin.com">Introducing a policy workflow built for Terraform</a></strong></p></li><li><p><strong><a href="https://rootly.com/blog/why-we-got-rid-of-our-small-pr-rule?utm_source=devopsbulletin.com">Why we got rid of our small-PR rule</a></strong></p></li><li><p><strong><a href="https://milanjovanovic.tech/blog/how-i-migrated-my-website-to-cloudflare-and-saved-228-dollars?utm_source=devopsbulletin.com">How I migrated my website to Cloudflare and saved $228</a></strong></p></li><li><p><strong><a href="https://www.honeycomb.io/blog/could-should-first-year-managing-sre-team?utm_source=devopsbulletin.com">The first year managing an SRE team</a></strong></p></li></ul><h4>Tutorials of the week</h4><ul><li><p><strong><a href="https://hatchet.run/blog/postgres-survival-guide?utm_source=devopsbulletin.com">The startup&#8217;s Postgres survival guide</a></strong></p></li><li><p><strong><a href="https://holdmybeersecurity.com/2026/07/14/hunting-malware-and-malicious-mcps-in-memory-on-kubernetes-with-fleetdm-osquery-yara/?utm_source=devopsbulletin.com">Hunting malware and malicious MCPs in memory on Kubernetes</a></strong></p></li><li><p><strong><a href="https://medium.com/@nejdetkadir/how-i-built-my-own-home-lab-a-single-node-kubernetes-platform-34bdf6a08a26?utm_source=devopsbulletin.com">How I built my own home-lab: a single-node Kubernetes platform</a></strong></p></li><li><p><strong><a href="https://aws.amazon.com/blogs/security/authenticate-legitimate-ai-agent-traffic-with-aws-waf-bot-control?utm_source=devopsbulletin.com">Authenticate legitimate AI agent traffic with AWS WAF Bot Control</a></strong></p></li><li><p><strong><a href="https://dev.to/mateenali66/finops-guardrails-at-provisioning-time-stop-paying-for-mistakes-you-could-have-blocked-in-terraform-2oep?utm_source=devopsbulletin.com">FinOps guardrails at provisioning time</a></strong></p></li><li><p><strong><a href="https://github.blog/security/6-security-settings-every-github-maintainer-should-enable-this-week/?utm_source=devopsbulletin.com">6 security settings every GitHub maintainer should enable this week</a></strong></p></li><li><p><strong><a href="https://www.cncf.io/blog/2026/07/22/multi-cluster-databases-on-kubernetes-architecture-and-deployment?utm_source=devopsbulletin.com">Multi-cluster databases on Kubernetes: architecture and deployment</a></strong></p></li></ul><div class="captioned-image-container"><figure><a class="image-link image2 is-viewable-img" target="_blank" href="https://www.cncf.io/blog/2026/07/22/multi-cluster-databases-on-kubernetes-architecture-and-deployment/" data-component-name="Image2ToDOM"><div class="image2-inset"><picture><source type="image/webp" srcset="https://substackcdn.com/image/fetch/$s_!0gaP!,w_424,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F4abd926c-3860-4f20-97aa-c1aca6f662b9_1301x639.png 424w, https://substackcdn.com/image/fetch/$s_!0gaP!,w_848,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F4abd926c-3860-4f20-97aa-c1aca6f662b9_1301x639.png 848w, https://substackcdn.com/image/fetch/$s_!0gaP!,w_1272,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F4abd926c-3860-4f20-97aa-c1aca6f662b9_1301x639.png 1272w, https://substackcdn.com/image/fetch/$s_!0gaP!,w_1456,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F4abd926c-3860-4f20-97aa-c1aca6f662b9_1301x639.png 1456w" sizes="100vw"><img src="https://substackcdn.com/image/fetch/$s_!0gaP!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F4abd926c-3860-4f20-97aa-c1aca6f662b9_1301x639.png" width="1301" height="639" data-attrs="{&quot;src&quot;:&quot;https://substack-post-media.s3.amazonaws.com/public/images/4abd926c-3860-4f20-97aa-c1aca6f662b9_1301x639.png&quot;,&quot;srcNoWatermark&quot;:null,&quot;fullscreen&quot;:null,&quot;imageSize&quot;:null,&quot;height&quot;:639,&quot;width&quot;:1301,&quot;resizeWidth&quot;:null,&quot;bytes&quot;:null,&quot;alt&quot;:&quot;Image: Failover in a multi-cluster MongoDB deployment using the Kubernetes MCS API&quot;,&quot;title&quot;:null,&quot;type&quot;:null,&quot;href&quot;:&quot;https://www.cncf.io/blog/2026/07/22/multi-cluster-databases-on-kubernetes-architecture-and-deployment/&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="Image: Failover in a multi-cluster MongoDB deployment using the Kubernetes MCS API" title="Image: Failover in a multi-cluster MongoDB deployment using the Kubernetes MCS API" srcset="https://substackcdn.com/image/fetch/$s_!0gaP!,w_424,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F4abd926c-3860-4f20-97aa-c1aca6f662b9_1301x639.png 424w, https://substackcdn.com/image/fetch/$s_!0gaP!,w_848,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F4abd926c-3860-4f20-97aa-c1aca6f662b9_1301x639.png 848w, https://substackcdn.com/image/fetch/$s_!0gaP!,w_1272,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F4abd926c-3860-4f20-97aa-c1aca6f662b9_1301x639.png 1272w, https://substackcdn.com/image/fetch/$s_!0gaP!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F4abd926c-3860-4f20-97aa-c1aca6f662b9_1301x639.png 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 buttonBase-GK1x3M"><svg aria-hidden="true" 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" class="icon-noB79L"><g><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 buttonBase-GK1x3M"><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 icon-noB79L"><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://nickjanetakis.com/blog/how-to-back-up-postgresql-in-docker-local-s3-and-plakar?utm_source=devopsbulletin.com">How to back up PostgreSQL in Docker</a></strong></p></li><li><p><strong><a href="https://dev.to/kalpit_swami/from-terraform-spaghetti-to-a-production-grade-gitops-platform-14i2?utm_source=devopsbulletin.com">From Terraform spaghetti to a production-grade GitOps platform</a></strong></p></li><li><p><strong><a href="https://joereis.substack.com/p/to-every-agent-its-own-database?utm_source=devopsbulletin.com">To every agent its own database</a></strong></p></li></ul><h4>Videos of the week</h4><div id="youtube2-aZ_y2M2OuEA" class="youtube-wrap" data-attrs="{&quot;videoId&quot;:&quot;aZ_y2M2OuEA&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/aZ_y2M2OuEA?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-opbyn71T35I" class="youtube-wrap" data-attrs="{&quot;videoId&quot;:&quot;opbyn71T35I&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/opbyn71T35I?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/cleatdev/cleat?utm_source=devopsbulletin.com">Cleat</a></strong> gives AI coding agents a per-project Docker sandbox so they can run fully autonomously without touching your host.</p></li><li><p><strong><a href="https://github.com/calfonso/rusternetes?utm_source=devopsbulletin.com">Rusternetes</a></strong> is a ground-up reimplementation of Kubernetes in Rust that already passes 94% of the official conformance suite.</p></li><li><p><strong><a href="https://github.com/Dicklesworthstone/destructive_command_guard?utm_source=devopsbulletin.com">Destructive Command Guard</a></strong> intercepts destructive shell commands before an AI agent gets to run them.</p></li><li><p><strong><a href="https://github.com/Cloudgeni-ai/opengeni?utm_source=devopsbulletin.com">OpenGeni</a></strong> is a self-hostable agent runtime with durable sessions, human approvals, and governed credentials.</p></li><li><p><strong><a href="https://github.com/fatedier/frp?utm_source=devopsbulletin.com">frp</a></strong> exposes a local server sitting behind NAT or a firewall to the internet.</p></li><li><p><strong><a href="https://github.com/backnotprop/plannotator?utm_source=devopsbulletin.com">Plannotator</a></strong> is a local browser UI for marking up an agent&#8217;s plans and diffs, then sending the feedback straight back to it.</p></li></ul><div class="captioned-image-container"><figure><a class="image-link image2 is-viewable-img" target="_blank" href="https://github.com/backnotprop/plannotator?utm_source=devopsbulletin.com" data-component-name="Image2ToDOM"><div class="image2-inset"><picture><source type="image/webp" srcset="https://substackcdn.com/image/fetch/$s_!uUuI!,w_424,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fb119a67f-9d53-4a96-9466-910a33df8f68_1995x1261.webp 424w, https://substackcdn.com/image/fetch/$s_!uUuI!,w_848,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fb119a67f-9d53-4a96-9466-910a33df8f68_1995x1261.webp 848w, https://substackcdn.com/image/fetch/$s_!uUuI!,w_1272,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fb119a67f-9d53-4a96-9466-910a33df8f68_1995x1261.webp 1272w, https://substackcdn.com/image/fetch/$s_!uUuI!,w_1456,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fb119a67f-9d53-4a96-9466-910a33df8f68_1995x1261.webp 1456w" sizes="auto, 100vw"><img src="https://substackcdn.com/image/fetch/$s_!uUuI!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fb119a67f-9d53-4a96-9466-910a33df8f68_1995x1261.webp" width="1456" height="920" data-attrs="{&quot;src&quot;:&quot;https://substack-post-media.s3.amazonaws.com/public/images/b119a67f-9d53-4a96-9466-910a33df8f68_1995x1261.webp&quot;,&quot;srcNoWatermark&quot;:null,&quot;fullscreen&quot;:null,&quot;imageSize&quot;:null,&quot;height&quot;:920,&quot;width&quot;:1456,&quot;resizeWidth&quot;:null,&quot;bytes&quot;:177030,&quot;alt&quot;:null,&quot;title&quot;:null,&quot;type&quot;:&quot;image/webp&quot;,&quot;href&quot;:&quot;https://github.com/backnotprop/plannotator?utm_source=devopsbulletin.com&quot;,&quot;belowTheFold&quot;:true,&quot;topImage&quot;:false,&quot;internalRedirect&quot;:&quot;https://www.devopsbulletin.com/i/208180429?img=https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fb119a67f-9d53-4a96-9466-910a33df8f68_1995x1261.webp&quot;,&quot;isProcessing&quot;:false,&quot;align&quot;:null,&quot;offset&quot;:false}" class="sizing-normal" alt="" srcset="https://substackcdn.com/image/fetch/$s_!uUuI!,w_424,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fb119a67f-9d53-4a96-9466-910a33df8f68_1995x1261.webp 424w, https://substackcdn.com/image/fetch/$s_!uUuI!,w_848,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fb119a67f-9d53-4a96-9466-910a33df8f68_1995x1261.webp 848w, https://substackcdn.com/image/fetch/$s_!uUuI!,w_1272,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fb119a67f-9d53-4a96-9466-910a33df8f68_1995x1261.webp 1272w, https://substackcdn.com/image/fetch/$s_!uUuI!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fb119a67f-9d53-4a96-9466-910a33df8f68_1995x1261.webp 1456w" sizes="auto, 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 buttonBase-GK1x3M"><svg aria-hidden="true" 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" class="icon-noB79L"><g><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 buttonBase-GK1x3M"><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 icon-noB79L"><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/newren/git-filter-repo?utm_source=devopsbulletin.com">git-filter-repo</a></strong> rewrites Git history to extract subdirectories, rename paths, or strip secrets.</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_!2Sa3!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F2a509471-4199-4478-8435-d588abbd0e3f_1080x529.jpeg" data-component-name="Image2ToDOM"><div class="image2-inset"><picture><source type="image/webp" srcset="https://substackcdn.com/image/fetch/$s_!2Sa3!,w_424,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F2a509471-4199-4478-8435-d588abbd0e3f_1080x529.jpeg 424w, https://substackcdn.com/image/fetch/$s_!2Sa3!,w_848,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F2a509471-4199-4478-8435-d588abbd0e3f_1080x529.jpeg 848w, https://substackcdn.com/image/fetch/$s_!2Sa3!,w_1272,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F2a509471-4199-4478-8435-d588abbd0e3f_1080x529.jpeg 1272w, https://substackcdn.com/image/fetch/$s_!2Sa3!,w_1456,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F2a509471-4199-4478-8435-d588abbd0e3f_1080x529.jpeg 1456w" sizes="auto, 100vw"><img src="https://substackcdn.com/image/fetch/$s_!2Sa3!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F2a509471-4199-4478-8435-d588abbd0e3f_1080x529.jpeg" width="553" height="270.8675925925926" data-attrs="{&quot;src&quot;:&quot;https://substack-post-media.s3.amazonaws.com/public/images/2a509471-4199-4478-8435-d588abbd0e3f_1080x529.jpeg&quot;,&quot;srcNoWatermark&quot;:null,&quot;fullscreen&quot;:null,&quot;imageSize&quot;:null,&quot;height&quot;:529,&quot;width&quot;:1080,&quot;resizeWidth&quot;:553,&quot;bytes&quot;:null,&quot;alt&quot;:&quot;Skill Me Daddy&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="Skill Me Daddy" title="Skill Me Daddy" srcset="https://substackcdn.com/image/fetch/$s_!2Sa3!,w_424,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F2a509471-4199-4478-8435-d588abbd0e3f_1080x529.jpeg 424w, https://substackcdn.com/image/fetch/$s_!2Sa3!,w_848,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F2a509471-4199-4478-8435-d588abbd0e3f_1080x529.jpeg 848w, https://substackcdn.com/image/fetch/$s_!2Sa3!,w_1272,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F2a509471-4199-4478-8435-d588abbd0e3f_1080x529.jpeg 1272w, https://substackcdn.com/image/fetch/$s_!2Sa3!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F2a509471-4199-4478-8435-d588abbd0e3f_1080x529.jpeg 1456w" sizes="auto, 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 buttonBase-GK1x3M"><svg aria-hidden="true" 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" class="icon-noB79L"><g><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 buttonBase-GK1x3M"><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 icon-noB79L"><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>I advise infra, devtools, and AI startups on AI product strategy, cloud security/FinOps, and tech M&amp;A.  If that's you, just reply to this email.</p></div>]]></content:encoded></item><item><title><![CDATA[Digest #223: AWS bills a user $140B, a kubelet leak in Kubernetes 1.36, Slack's Shipyard EC2 platform and pods vs AI agents]]></title><description><![CDATA[Plus the four horsemen behind thousands of Postgres outages, how Uber solved the identity crisis for AI agents, and catching full table scans in SQLite before they catch you.]]></description><link>https://www.devopsbulletin.com/p/digest-223-aws-bills-a-user-140b</link><guid isPermaLink="false">https://www.devopsbulletin.com/p/digest-223-aws-bills-a-user-140b</guid><dc:creator><![CDATA[Mohamed Labouardy]]></dc:creator><pubDate>Fri, 17 Jul 2026 16:20:58 GMT</pubDate><enclosure url="https://substackcdn.com/image/fetch/$s_!Oruh!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F00a3ac9d-1640-4269-af9b-58adec4e8541_600x504.png" length="0" type="image/jpeg"/><content:encoded><![CDATA[<div class="captioned-image-container"><figure><a class="image-link image2" target="_blank" href="https://spacelift.io/infrastructure-automation-survey-2026?utm_campaign=48496167-FY26%20-%20WW%20-%20Strategic%20-%20infrastructure%20Automation%20Report%202026&amp;utm_source=DevOps-Bulletin&amp;utm_medium=email&amp;utm_content=DevOps%20Bulletin%20-%20Infrastructure%20automation%20survey" 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="192" height="59.46268656716418" 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;:192,&quot;bytes&quot;:null,&quot;alt&quot;:null,&quot;title&quot;:null,&quot;type&quot;:null,&quot;href&quot;:&quot;https://spacelift.io/infrastructure-automation-survey-2026?utm_campaign=48496167-FY26%20-%20WW%20-%20Strategic%20-%20infrastructure%20Automation%20Report%202026&amp;utm_source=DevOps-Bulletin&amp;utm_medium=email&amp;utm_content=DevOps%20Bulletin%20-%20Infrastructure%20automation%20survey&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><blockquote><p>Someone opened their AWS console this week to a billing alert projecting $140 billion for the month, on an account that normally spends $2-3 on S3. Underneath the meme-worthy screenshot, the real theme was infrastructure hitting its limits: a kubelet memory leak in Kubernetes 1.36, four recurring failure patterns behind thousands of Postgres outages, and Slack rebuilding its entire EC2 fleet management from scratch. And with half this week&#8217;s tutorials about giving AI agents identity, memory, and APIs, the CNCF is already asking whether a pod is even the right place to run one.</p></blockquote><h4><strong>AI is hitting your infra faster than you can govern it</strong></h4><div class="captioned-image-container"><figure><a class="image-link image2 is-viewable-img" target="_blank" href="https://spacelift.io/infrastructure-automation-survey-2026?utm_campaign=48496167-FY26%20-%20WW%20-%20Strategic%20-%20infrastructure%20Automation%20Report%202026&amp;utm_source=DevOps-Bulletin&amp;utm_medium=email&amp;utm_content=DevOps%20Bulletin%20-%20Infrastructure%20automation%20survey" data-component-name="Image2ToDOM"><div class="image2-inset"><picture><source type="image/webp" srcset="https://substackcdn.com/image/fetch/$s_!F_XN!,w_424,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fd5d65436-2cae-48bd-ad69-525e26d35c7b_1200x640.png 424w, https://substackcdn.com/image/fetch/$s_!F_XN!,w_848,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fd5d65436-2cae-48bd-ad69-525e26d35c7b_1200x640.png 848w, https://substackcdn.com/image/fetch/$s_!F_XN!,w_1272,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fd5d65436-2cae-48bd-ad69-525e26d35c7b_1200x640.png 1272w, https://substackcdn.com/image/fetch/$s_!F_XN!,w_1456,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fd5d65436-2cae-48bd-ad69-525e26d35c7b_1200x640.png 1456w" sizes="100vw"><img src="https://substackcdn.com/image/fetch/$s_!F_XN!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fd5d65436-2cae-48bd-ad69-525e26d35c7b_1200x640.png" width="1200" height="640" data-attrs="{&quot;src&quot;:&quot;https://substack-post-media.s3.amazonaws.com/public/images/d5d65436-2cae-48bd-ad69-525e26d35c7b_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;:500063,&quot;alt&quot;:null,&quot;title&quot;:null,&quot;type&quot;:&quot;image/png&quot;,&quot;href&quot;:&quot;https://spacelift.io/infrastructure-automation-survey-2026?utm_campaign=48496167-FY26%20-%20WW%20-%20Strategic%20-%20infrastructure%20Automation%20Report%202026&amp;utm_source=DevOps-Bulletin&amp;utm_medium=email&amp;utm_content=DevOps%20Bulletin%20-%20Infrastructure%20automation%20survey&quot;,&quot;belowTheFold&quot;:false,&quot;topImage&quot;:false,&quot;internalRedirect&quot;:&quot;https://www.devopsbulletin.com/i/207428924?img=https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fd5d65436-2cae-48bd-ad69-525e26d35c7b_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_!F_XN!,w_424,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fd5d65436-2cae-48bd-ad69-525e26d35c7b_1200x640.png 424w, https://substackcdn.com/image/fetch/$s_!F_XN!,w_848,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fd5d65436-2cae-48bd-ad69-525e26d35c7b_1200x640.png 848w, https://substackcdn.com/image/fetch/$s_!F_XN!,w_1272,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fd5d65436-2cae-48bd-ad69-525e26d35c7b_1200x640.png 1272w, https://substackcdn.com/image/fetch/$s_!F_XN!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fd5d65436-2cae-48bd-ad69-525e26d35c7b_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 buttonBase-GK1x3M"><svg aria-hidden="true" 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" class="icon-noB79L"><g><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 buttonBase-GK1x3M"><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 icon-noB79L"><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>AI is reshaping infrastructure, but the teams winning aren't adopting fastest, they're governing best. Spacelift surveyed 406 infrastructure and platform engineering leaders and found 93% have already had an AI-caused incident, while only 30% have a formal AI policy. The report reveals what separates the Pioneers, from platform engineering to the AI-specific signals most teams still aren't tracking.</p><p><strong><a href="https://spacelift.io/infrastructure-automation-survey-2026?utm_campaign=48496167-FY26%20-%20WW%20-%20Strategic%20-%20infrastructure%20Automation%20Report%202026&amp;utm_source=DevOps-Bulletin&amp;utm_medium=email&amp;utm_content=DevOps%20Bulletin%20-%20Infrastructure%20automation%20survey">Download the report to see what the most advanced teams do differently.</a></strong></p><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><h4>Newsworthy stories</h4><ul><li><p><strong><a href="https://news.ycombinator.com/item?id=48945606&amp;utm_source=devopsbulletin.com">Just got an AWS billing alert projecting my monthly cost at $140B</a></strong></p></li><li><p><strong><a href="https://heyoncall.com/blog/fixing-kubernetes-kubelet-memory-leak?utm_source=devopsbulletin.com">Fixing a kubelet memory leak in Kubernetes 1.36</a></strong></p></li><li><p><strong><a href="https://medium.com/@meSATYA95/caught-in-the-octopus-trap-inside-the-unpatched-argocd-rce-that-leads-to-k8s-cluster-takeover-a4d7f65acb4a?utm_source=devopsbulletin.com">Inside the unpatched Argo CD RCE that leads to K8s cluster takeover</a></strong></p></li><li><p><strong><a href="https://www.cncf.io/blog/2026/07/14/is-a-pod-the-right-deployment-unit-for-an-ai-agent?utm_source=devopsbulletin.com">Is a pod the right deployment unit for an AI agent?</a></strong></p></li><li><p><strong><a href="https://slack.engineering/shipyard-how-we-built-slacks-next-generation-ec2-platform/?utm_source=devopsbulletin.com">How we built Slack&#8217;s next-generation EC2 platform</a></strong></p></li><li><p><strong><a href="https://malisper.me/the-four-horsemen-behind-thousands-of-postgres-outages/?utm_source=devopsbulletin.com">The four horsemen behind thousands of Postgres outages</a></strong></p></li><li><p><strong><a href="https://practicaldatamodeling.substack.com/p/the-database-is-not-the-data-model?utm_source=devopsbulletin.com">The database is not the data model</a></strong></p></li></ul><h4>Tutorials of the week</h4><ul><li><p><strong><a href="https://www.dbos.dev/blog/making-postgres-queues-scale?utm_source=devopsbulletin.com">Just use Postgres for job queues</a></strong></p></li><li><p><strong><a href="https://dataengineeringcentral.substack.com/p/cloudflare-as-a-data-platform?utm_source=devopsbulletin.com">Cloudflare as a data platform?</a></strong></p></li><li><p><strong><a href="https://spacelift.io/blog/terraform-state-encryption?utm_source=devopsbulletin.com">How to encrypt Terraform state files</a></strong></p></li><li><p><strong><a href="https://www.decodingai.com/p/how-to-implement-a-unified-memory-from-scratch?utm_source=devopsbulletin.com">Implement a unified memory from scratch via knowledge graphs</a></strong></p></li></ul><div class="captioned-image-container"><figure><a class="image-link image2 is-viewable-img" target="_blank" href="https://www.decodingai.com/p/how-to-implement-a-unified-memory-from-scratch?utm_source=devopsbulletin.com" data-component-name="Image2ToDOM"><div class="image2-inset"><picture><source type="image/webp" srcset="https://substackcdn.com/image/fetch/$s_!Oruh!,w_424,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F00a3ac9d-1640-4269-af9b-58adec4e8541_600x504.png 424w, https://substackcdn.com/image/fetch/$s_!Oruh!,w_848,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F00a3ac9d-1640-4269-af9b-58adec4e8541_600x504.png 848w, https://substackcdn.com/image/fetch/$s_!Oruh!,w_1272,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F00a3ac9d-1640-4269-af9b-58adec4e8541_600x504.png 1272w, https://substackcdn.com/image/fetch/$s_!Oruh!,w_1456,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F00a3ac9d-1640-4269-af9b-58adec4e8541_600x504.png 1456w" sizes="auto, 100vw"><img src="https://substackcdn.com/image/fetch/$s_!Oruh!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F00a3ac9d-1640-4269-af9b-58adec4e8541_600x504.png" width="600" height="504" data-attrs="{&quot;src&quot;:&quot;https://substack-post-media.s3.amazonaws.com/public/images/00a3ac9d-1640-4269-af9b-58adec4e8541_600x504.png&quot;,&quot;srcNoWatermark&quot;:null,&quot;fullscreen&quot;:null,&quot;imageSize&quot;:null,&quot;height&quot;:504,&quot;width&quot;:600,&quot;resizeWidth&quot;:null,&quot;bytes&quot;:102035,&quot;alt&quot;:&quot;The full dataflow &#8212; data pipeline, memory pipeline, one MongoDB engine, the MCP server, and the harness with its skills.&quot;,&quot;title&quot;:null,&quot;type&quot;:&quot;image/png&quot;,&quot;href&quot;:&quot;https://www.decodingai.com/p/how-to-implement-a-unified-memory-from-scratch?utm_source=devopsbulletin.com&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="The full dataflow &#8212; data pipeline, memory pipeline, one MongoDB engine, the MCP server, and the harness with its skills." title="The full dataflow &#8212; data pipeline, memory pipeline, one MongoDB engine, the MCP server, and the harness with its skills." srcset="https://substackcdn.com/image/fetch/$s_!Oruh!,w_424,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F00a3ac9d-1640-4269-af9b-58adec4e8541_600x504.png 424w, https://substackcdn.com/image/fetch/$s_!Oruh!,w_848,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F00a3ac9d-1640-4269-af9b-58adec4e8541_600x504.png 848w, https://substackcdn.com/image/fetch/$s_!Oruh!,w_1272,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F00a3ac9d-1640-4269-af9b-58adec4e8541_600x504.png 1272w, https://substackcdn.com/image/fetch/$s_!Oruh!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F00a3ac9d-1640-4269-af9b-58adec4e8541_600x504.png 1456w" sizes="auto, 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 buttonBase-GK1x3M"><svg aria-hidden="true" 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" class="icon-noB79L"><g><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 buttonBase-GK1x3M"><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 icon-noB79L"><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.davidsobsessions.com/p/one-year-of-gomobile?utm_source=devopsbulletin.com">Using Go for mobile apps</a></strong></p></li><li><p><strong><a href="https://github.blog/ai-and-ml/github-copilot/automating-cross-repo-documentation-with-github-agentic-workflows?utm_source=devopsbulletin.com">Automating cross-repo documentation with GitHub Agentic Workflows</a></strong></p></li><li><p><strong><a href="https://aws.amazon.com/blogs/devops/automated-incident-remediation-with-aws-devops-agent-and-kiro-cli/?utm_source=devopsbulletin.com">Automated incident remediation with AWS DevOps Agent and Kiro CLI</a></strong></p></li><li><p><strong><a href="https://tenderlovemaking.com/2026/07/15/detecting-full-table-scans-with-sqlite?utm_source=devopsbulletin.com">Detecting full table scans with SQLite</a></strong></p></li><li><p><strong><a href="https://www.uber.com/us/en/blog/solving-the-agent-identity-crisis?utm_source=devopsbulletin.com">Solving the identity crisis for AI agents</a></strong></p></li><li><p><strong><a href="https://www.freestyle.sh/blog/opinion/designing-apis-for-agents?utm_source=devopsbulletin.com">Designing APIs for agents</a></strong></p></li></ul><h4>Videos of the week</h4><div id="youtube2-iH4KiqtXjQs" class="youtube-wrap" data-attrs="{&quot;videoId&quot;:&quot;iH4KiqtXjQs&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/iH4KiqtXjQs?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-SxIgD1OfU_A" class="youtube-wrap" data-attrs="{&quot;videoId&quot;:&quot;SxIgD1OfU_A&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/SxIgD1OfU_A?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/ctresb/portero?utm_source=devopsbulletin.com">Portero</a></strong> shows every listening port on your machine, which process owns it, and lets you kill it or block the port from a built-in firewall.</p></li><li><p><strong><a href="https://github.com/greybeam/greysight?utm_source=devopsbulletin.com">Greysight</a></strong> is an open-source dashboard for Snowflake cost observability that automatically suspends idle warehouses.</p></li></ul><ul><li><p><strong><a href="https://github.com/watzon/goshot?utm_source=devopsbulletin.com">Goshot</a></strong> generates polished code and terminal screenshots with syntax highlighting and automatic secret redaction.</p></li><li><p><strong><a href="https://github.com/vshulcz/deja-vu?utm_source=devopsbulletin.com">deja-vu</a></strong> is a memory index for coding agents that searches past session logs so they can recall previous solutions.</p></li><li><p><strong><a href="https://github.com/davesavic/pgsavvy?utm_source=devopsbulletin.com">pgsavvy</a></strong> is a terminal UI for PostgreSQL that works like &#8220;the lazygit for Postgres.&#8221;</p></li><li><p><strong><a href="https://github.com/khoj-ai/khoj?utm_source=devopsbulletin.com">Khoj</a></strong> is a self-hostable AI second brain for semantic search and chat over your own documents.</p></li><li><p><strong><a href="https://github.com/lobehub/lobehub?utm_source=devopsbulletin.com">LobeHub</a></strong> is a platform for managing a team of AI agents as coordinated, schedulable units of work.</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_!Cw7n!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fb2c4ee0a-20cd-43f4-ba21-57a42699b221_500x500.jpeg" data-component-name="Image2ToDOM"><div class="image2-inset"><picture><source type="image/webp" srcset="https://substackcdn.com/image/fetch/$s_!Cw7n!,w_424,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fb2c4ee0a-20cd-43f4-ba21-57a42699b221_500x500.jpeg 424w, https://substackcdn.com/image/fetch/$s_!Cw7n!,w_848,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fb2c4ee0a-20cd-43f4-ba21-57a42699b221_500x500.jpeg 848w, https://substackcdn.com/image/fetch/$s_!Cw7n!,w_1272,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fb2c4ee0a-20cd-43f4-ba21-57a42699b221_500x500.jpeg 1272w, https://substackcdn.com/image/fetch/$s_!Cw7n!,w_1456,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fb2c4ee0a-20cd-43f4-ba21-57a42699b221_500x500.jpeg 1456w" sizes="auto, 100vw"><img src="https://substackcdn.com/image/fetch/$s_!Cw7n!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fb2c4ee0a-20cd-43f4-ba21-57a42699b221_500x500.jpeg" width="424" height="424" data-attrs="{&quot;src&quot;:&quot;https://substack-post-media.s3.amazonaws.com/public/images/b2c4ee0a-20cd-43f4-ba21-57a42699b221_500x500.jpeg&quot;,&quot;srcNoWatermark&quot;:null,&quot;fullscreen&quot;:null,&quot;imageSize&quot;:null,&quot;height&quot;:500,&quot;width&quot;:500,&quot;resizeWidth&quot;:424,&quot;bytes&quot;:null,&quot;alt&quot;:&quot;Efficient Tokenmaxxing&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="Efficient Tokenmaxxing" title="Efficient Tokenmaxxing" srcset="https://substackcdn.com/image/fetch/$s_!Cw7n!,w_424,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fb2c4ee0a-20cd-43f4-ba21-57a42699b221_500x500.jpeg 424w, https://substackcdn.com/image/fetch/$s_!Cw7n!,w_848,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fb2c4ee0a-20cd-43f4-ba21-57a42699b221_500x500.jpeg 848w, https://substackcdn.com/image/fetch/$s_!Cw7n!,w_1272,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fb2c4ee0a-20cd-43f4-ba21-57a42699b221_500x500.jpeg 1272w, https://substackcdn.com/image/fetch/$s_!Cw7n!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fb2c4ee0a-20cd-43f4-ba21-57a42699b221_500x500.jpeg 1456w" sizes="auto, 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 buttonBase-GK1x3M"><svg aria-hidden="true" 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" class="icon-noB79L"><g><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 buttonBase-GK1x3M"><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 icon-noB79L"><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>I advise infra, devtools, and AI startups on AI product strategy, cloud security/FinOps, and tech M&amp;A.  If that's you, just reply to this email.</p></div>]]></content:encoded></item><item><title><![CDATA[Digest #222: AI breaches AWS in 72 hours, GitHub's agent leaks private repos, Argo CD cluster takeover and Lambda MicroVMs replace CI runners]]></title><description><![CDATA[Plus why you shouldn't trust Trusted Publishing, running local models for agentic coding, and PR preview environments that cut staging costs 78%.]]></description><link>https://www.devopsbulletin.com/p/digest-222-ai-breaches-aws-in-72</link><guid isPermaLink="false">https://www.devopsbulletin.com/p/digest-222-ai-breaches-aws-in-72</guid><dc:creator><![CDATA[Mohamed Labouardy]]></dc:creator><pubDate>Fri, 10 Jul 2026 14:36:15 GMT</pubDate><enclosure url="https://substackcdn.com/image/fetch/$s_!Akro!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fee6b55d5-e41b-409f-8d3f-a40c6f860e0b_800x421.webp" length="0" type="image/jpeg"/><content:encoded><![CDATA[<div class="captioned-image-container"><figure><a class="image-link image2" target="_blank" href="https://www.mendral.com/?utm_source=devopsbulletin" data-component-name="Image2ToDOM"><div class="image2-inset"><picture><source type="image/webp" srcset="https://substackcdn.com/image/fetch/$s_!JTHa!,w_424,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F73ff9826-c449-474f-a82b-26f222f70146_268x75.png 424w, https://substackcdn.com/image/fetch/$s_!JTHa!,w_848,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F73ff9826-c449-474f-a82b-26f222f70146_268x75.png 848w, https://substackcdn.com/image/fetch/$s_!JTHa!,w_1272,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F73ff9826-c449-474f-a82b-26f222f70146_268x75.png 1272w, https://substackcdn.com/image/fetch/$s_!JTHa!,w_1456,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F73ff9826-c449-474f-a82b-26f222f70146_268x75.png 1456w" sizes="100vw"><img src="https://substackcdn.com/image/fetch/$s_!JTHa!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F73ff9826-c449-474f-a82b-26f222f70146_268x75.png" width="186" height="52.05223880597015" data-attrs="{&quot;src&quot;:&quot;https://substack-post-media.s3.amazonaws.com/public/images/73ff9826-c449-474f-a82b-26f222f70146_268x75.png&quot;,&quot;srcNoWatermark&quot;:null,&quot;fullscreen&quot;:null,&quot;imageSize&quot;:null,&quot;height&quot;:75,&quot;width&quot;:268,&quot;resizeWidth&quot;:186,&quot;bytes&quot;:null,&quot;alt&quot;:null,&quot;title&quot;:null,&quot;type&quot;:null,&quot;href&quot;:&quot;https://www.mendral.com/?utm_source=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_!JTHa!,w_424,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F73ff9826-c449-474f-a82b-26f222f70146_268x75.png 424w, https://substackcdn.com/image/fetch/$s_!JTHa!,w_848,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F73ff9826-c449-474f-a82b-26f222f70146_268x75.png 848w, https://substackcdn.com/image/fetch/$s_!JTHa!,w_1272,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F73ff9826-c449-474f-a82b-26f222f70146_268x75.png 1272w, https://substackcdn.com/image/fetch/$s_!JTHa!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F73ff9826-c449-474f-a82b-26f222f70146_268x75.png 1456w" sizes="100vw" fetchpriority="high"></picture><div></div></div></a></figure></div><blockquote><p>A single attacker chained together application services, CI/CD pipelines, and secrets stores to compromise an entire AWS environment in 72 hours, and the responders tracking it say human-in-the-loop SIEM triage can&#8217;t keep pace with an AI moving that fast. The same week, GitHub&#8217;s AI agent was caught handing private repos to anyone who posted a nicely worded issue in a public repo, while an unpatched Argo CD flaw gave attackers full control of Kubernetes clusters. If you were counting on &#8220;Trusted Publishing&#8221; to keep your supply chain clean, one writeup this week argues that&#8217;s the wrong thing to trust.</p></blockquote><h4><strong>Platform engineering on autopilot</strong></h4><p><a href="https://www.mendral.com/?utm_source=devopsbulletin">Mendral</a><span> is an autonomous AI DevOps engineer that handles the work your engineers shouldn&#8217;t be doing manually anymore: supply chain security, flaky CI, slow builds, and anything else specific to your stack - </span><a href="https://www.mendral.com/?utm_source=devopsbulletin">Try it out!</a></p><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><h4>Newsworthy stories</h4><ul><li><p><strong><a href="https://www.darkreading.com/cloud-security/lone-attacker-ai-breach-aws-cloud-environment">Lone attacker uses AI to breach AWS cloud environment in 72 hours</a></strong></p></li><li><p><strong><a href="https://cloudnativenow.com/features/security-flaw-in-argo-cd-can-let-attackers-take-over-kubernetes-clusters">Security flaw in Argo CD can let attackers take over Kubernetes clusters</a></strong></p></li><li><p><strong><a href="https://lucvandonkersgoed.com/2026/07/01/i-replaced-my-github-runners-with-lambda-microvms-and-maybe-you-should-too">I replaced my GitHub runners with Lambda MicroVMs, and maybe you should too</a></strong></p></li><li><p><strong><a href="https://www.cncf.io/blog/2026/07/07/why-sandboxing-your-agent-is-not-enough">Why sandboxing your agent is not enough</a></strong></p></li><li><p><strong><a href="https://blog.yossarian.net/2026/07/07/You-shouldnt-trust-trusted-publishing">You shouldn&#8217;t trust Trusted Publishing</a></strong></p></li><li><p><strong><a href="https://franklyspeaking.substack.com/p/why-ai-has-made-security-hard">Why AI has made security hard</a></strong></p></li></ul><h4>Tutorials of the week</h4><ul><li><p><strong><a href="https://blog.cloudflare.com/build-your-own-vulnerability-harness/">Build your own vulnerability harness</a></strong></p></li><li><p><strong><a href="https://noma.security/blog/gitlost-how-we-tricked-githubs-ai-agent-into-leaking-private-repos/">How we tricked GitHub&#8217;s AI agent into leaking private repos</a></strong></p></li><li><p><strong><a href="https://aws.amazon.com/blogs/mt/turn-your-amazon-cloudwatch-alarms-into-actionable-signals/">Turn your Amazon CloudWatch alarms into actionable signals</a></strong></p></li><li><p><strong><a href="https://xata.io/blog/postgres-as-a-temporal-db">PostgreSQL as a temporal database</a></strong></p></li><li><p><strong><a href="https://dev.to/aws/i-built-pr-preview-environments-with-aws-lambda-microvms-and-cut-staging-costs-by-78-2d3i">I built PR preview environments with AWS Lambda MicroVMs and cut staging costs by 78%</a></strong></p></li></ul><div class="captioned-image-container"><figure><a class="image-link image2 is-viewable-img" target="_blank" href="https://dev.to/aws/i-built-pr-preview-environments-with-aws-lambda-microvms-and-cut-staging-costs-by-78-2d3i" data-component-name="Image2ToDOM"><div class="image2-inset"><picture><source type="image/webp" srcset="https://substackcdn.com/image/fetch/$s_!Akro!,w_424,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fee6b55d5-e41b-409f-8d3f-a40c6f860e0b_800x421.webp 424w, https://substackcdn.com/image/fetch/$s_!Akro!,w_848,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fee6b55d5-e41b-409f-8d3f-a40c6f860e0b_800x421.webp 848w, https://substackcdn.com/image/fetch/$s_!Akro!,w_1272,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fee6b55d5-e41b-409f-8d3f-a40c6f860e0b_800x421.webp 1272w, https://substackcdn.com/image/fetch/$s_!Akro!,w_1456,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fee6b55d5-e41b-409f-8d3f-a40c6f860e0b_800x421.webp 1456w" sizes="auto, 100vw"><img src="https://substackcdn.com/image/fetch/$s_!Akro!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fee6b55d5-e41b-409f-8d3f-a40c6f860e0b_800x421.webp" width="800" height="421" data-attrs="{&quot;src&quot;:&quot;https://substack-post-media.s3.amazonaws.com/public/images/ee6b55d5-e41b-409f-8d3f-a40c6f860e0b_800x421.webp&quot;,&quot;srcNoWatermark&quot;:null,&quot;fullscreen&quot;:null,&quot;imageSize&quot;:null,&quot;height&quot;:421,&quot;width&quot;:800,&quot;resizeWidth&quot;:null,&quot;bytes&quot;:null,&quot;alt&quot;:&quot;architecture&quot;,&quot;title&quot;:null,&quot;type&quot;:null,&quot;href&quot;:&quot;https://dev.to/aws/i-built-pr-preview-environments-with-aws-lambda-microvms-and-cut-staging-costs-by-78-2d3i&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="architecture" title="architecture" srcset="https://substackcdn.com/image/fetch/$s_!Akro!,w_424,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fee6b55d5-e41b-409f-8d3f-a40c6f860e0b_800x421.webp 424w, https://substackcdn.com/image/fetch/$s_!Akro!,w_848,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fee6b55d5-e41b-409f-8d3f-a40c6f860e0b_800x421.webp 848w, https://substackcdn.com/image/fetch/$s_!Akro!,w_1272,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fee6b55d5-e41b-409f-8d3f-a40c6f860e0b_800x421.webp 1272w, https://substackcdn.com/image/fetch/$s_!Akro!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fee6b55d5-e41b-409f-8d3f-a40c6f860e0b_800x421.webp 1456w" sizes="auto, 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 buttonBase-GK1x3M"><svg aria-hidden="true" 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" class="icon-noB79L"><g><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 buttonBase-GK1x3M"><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 icon-noB79L"><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://dev.to/sudarshan_thakur_1e141b99/setting-up-continuous-terraform-drift-monitoring-with-github-actions-and-slack-5af3">Setting up continuous Terraform drift monitoring</a></strong></p></li><li><p><strong><a href="https://martinfowler.com/articles/exploring-gen-ai/local-models-for-coding-experiences.html">Experiences with local models for coding</a></strong></p></li><li><p><strong><a href="https://kanenarraway.com/posts/agent-identity-models/">Three ways to give an AI agent an identity</a></strong></p></li><li><p><strong><a href="https://medium.com/@mohitgupta_0470/multi-account-aws-is-about-ownership-not-accounts-55fc3935a82f">Multi-account AWS is about ownership, not accounts</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/ab6765630000ba8af3d2c1a1ebf238dcd1e1fe7d&quot;,&quot;title&quot;:&quot;Enterprises are concerned about AI Costs, Governance and Trust&quot;,&quot;subtitle&quot;:&quot;Massive Studios&quot;,&quot;description&quot;:&quot;Episode&quot;,&quot;url&quot;:&quot;https://open.spotify.com/episode/2LyrEUv7F8aNdpYIqJMCpX&quot;,&quot;belowTheFold&quot;:true,&quot;noScroll&quot;:false,&quot;isVideo&quot;:false}" src="https://open.spotify.com/embed/episode/2LyrEUv7F8aNdpYIqJMCpX" frameborder="0" gesture="media" allowfullscreen="true" allow="encrypted-media" loading="lazy" data-component-name="Spotify2ToDOM"></iframe><div id="youtube2-sY1UqUuBqQQ" class="youtube-wrap" data-attrs="{&quot;videoId&quot;:&quot;sY1UqUuBqQQ&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/sY1UqUuBqQQ?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/kptdev/kpt">kpt</a></strong> is a package-centric toolchain that treats Kubernetes configuration as data, allowing you to edit and deliver manifests using reusable transformation functions rather than templating.</p></li><li><p><strong><a href="https://github.com/kernelstub/Nox">Nox</a></strong> is a modular Go framework for attack surface management that bundles 300 built-in modules across 24 phases, taking you from passive OSINT to active vulnerability scanning.</p></li><li><p><strong><a href="https://github.com/dotenvx/dotenvx">dotenvx</a></strong> is a secure env manager from the creator of dotenv, encrypting .env files with public-key cryptography.</p></li><li><p><strong><a href="https://github.com/aiursoftweb/anduinos-2">AnduinOS 2</a></strong> is an Ubuntu-based Linux distribution designed to give newcomers a familiar, low-friction path to Linux, packaged almost entirely as shell scripts.</p></li><li><p><strong><a href="https://github.com/dekart-xyz/geosql">GeoSQL</a></strong> is a Python skill that turns Claude, Codex, and Copilot into geospatial analytics agents across PostGIS, BigQuery, and Snowflake.</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_!wrFH!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F46816f9b-883b-48ee-9c83-cc8121388b2e_500x532.jpeg" data-component-name="Image2ToDOM"><div class="image2-inset"><picture><source type="image/webp" srcset="https://substackcdn.com/image/fetch/$s_!wrFH!,w_424,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F46816f9b-883b-48ee-9c83-cc8121388b2e_500x532.jpeg 424w, https://substackcdn.com/image/fetch/$s_!wrFH!,w_848,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F46816f9b-883b-48ee-9c83-cc8121388b2e_500x532.jpeg 848w, https://substackcdn.com/image/fetch/$s_!wrFH!,w_1272,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F46816f9b-883b-48ee-9c83-cc8121388b2e_500x532.jpeg 1272w, https://substackcdn.com/image/fetch/$s_!wrFH!,w_1456,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F46816f9b-883b-48ee-9c83-cc8121388b2e_500x532.jpeg 1456w" sizes="auto, 100vw"><img src="https://substackcdn.com/image/fetch/$s_!wrFH!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F46816f9b-883b-48ee-9c83-cc8121388b2e_500x532.jpeg" width="398" height="423.472" data-attrs="{&quot;src&quot;:&quot;https://substack-post-media.s3.amazonaws.com/public/images/46816f9b-883b-48ee-9c83-cc8121388b2e_500x532.jpeg&quot;,&quot;srcNoWatermark&quot;:null,&quot;fullscreen&quot;:null,&quot;imageSize&quot;:null,&quot;height&quot;:532,&quot;width&quot;:500,&quot;resizeWidth&quot;:398,&quot;bytes&quot;:null,&quot;alt&quot;:&quot;r/ProgrammerHumor - gitBlameClaude&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 - gitBlameClaude" title="r/ProgrammerHumor - gitBlameClaude" srcset="https://substackcdn.com/image/fetch/$s_!wrFH!,w_424,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F46816f9b-883b-48ee-9c83-cc8121388b2e_500x532.jpeg 424w, https://substackcdn.com/image/fetch/$s_!wrFH!,w_848,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F46816f9b-883b-48ee-9c83-cc8121388b2e_500x532.jpeg 848w, https://substackcdn.com/image/fetch/$s_!wrFH!,w_1272,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F46816f9b-883b-48ee-9c83-cc8121388b2e_500x532.jpeg 1272w, https://substackcdn.com/image/fetch/$s_!wrFH!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F46816f9b-883b-48ee-9c83-cc8121388b2e_500x532.jpeg 1456w" sizes="auto, 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 buttonBase-GK1x3M"><svg aria-hidden="true" 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" class="icon-noB79L"><g><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 buttonBase-GK1x3M"><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 icon-noB79L"><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="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 #221: LLMjacking goes offensive, scaling to 1 million Lambda functions, databases off Kubernetes and Ingress NGINX to Gateway API]]></title><description><![CDATA[Plus: attackers weaponizing stolen AI compute, pgvector at scale on Aurora, Claude Code for IaC, and how to corrupt a SQLite file on purpose.]]></description><link>https://www.devopsbulletin.com/p/digest-221-databases-on-kubernetes</link><guid isPermaLink="false">https://www.devopsbulletin.com/p/digest-221-databases-on-kubernetes</guid><dc:creator><![CDATA[Mohamed Labouardy]]></dc:creator><pubDate>Fri, 03 Jul 2026 15:32:09 GMT</pubDate><enclosure url="https://substackcdn.com/image/fetch/$s_!wx3I!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Ffacd3b69-5ead-4e5f-b6bf-ba305eaf3ed7_1091x411.png" length="0" type="image/jpeg"/><content:encoded><![CDATA[<blockquote><p>This week, someone makes the case for keeping your databases off Kubernetes, AWS shares what breaks when you scale to 1 million Lambda functions, and LLMjacking takes an ugly turn: attackers are wiring stolen AI compute into autonomous pentesting agents. Also inside: a production migration off Ingress NGINX, pgvector running at scale on Aurora, and a field guide to corrupting SQLite on purpose.</p></blockquote><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><h4>Newsworthy stories</h4><ul><li><p><strong><a href="https://www.percona.com/blog/why-i-havent-run-my-databases-on-kubernetes?utm_source=devopsbulletin.com">Why I haven&#8217;t run my databases on Kubernetes</a></strong></p></li><li><p><strong><a href="https://aws.amazon.com/blogs/architecture/lessons-learned-from-scaling-to-1-million-lambda-functions/?utm_source=devopsbulletin.com">Lessons learned from scaling to 1 million Lambda functions</a></strong></p></li><li><p><strong><a href="https://awsteele.com/blog/2026/06/19/cloudtrail-in-cloudwatch-isnt-very-good.html?utm_source=devopsbulletin.com">CloudTrail in CloudWatch isn&#8217;t very good</a></strong></p></li><li><p><strong><a href="https://www.cybertec-postgresql.com/en/too-many-tables-are-bad/?utm_source=devopsbulletin.com">Too many Postgres tables are bad</a></strong></p></li><li><p><strong><a href="https://www.fairwinds.com/blog/migrated-production-cluster-from-ingress-nginx-to-gateway-api?utm_source=devopsbulletin.com">How we migrated a production cluster from Ingress NGINX to Gateway API</a></strong></p></li><li><p><strong><a href="https://www.sysdig.com/blog/llmjacking-evolved-attackers-are-using-stolen-ai-compute-to-build-offensive-agentic-tools?utm_source=devopsbulletin.com">Attackers are using stolen AI compute to build offensive agentic tools</a></strong></p></li></ul><h4>Tutorials of the week</h4><ul><li><p><strong><a href="https://spacelift.io/blog/claude-code-for-infrastructure-as-code?utm_source=devopsbulletin.com">Claude Code for infrastructure as code</a></strong></p></li><li><p><strong><a href="https://aws.amazon.com/blogs/aws-cloud-financial-management/optimize-llm-costs-on-amazon-bedrock-from-billing-attribution-to-operational-telemetry/?utm_source=devopsbulletin.com">Optimize LLM costs on Amazon Bedrock</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/optimize-llm-costs-on-amazon-bedrock-from-billing-attribution-to-operational-telemetry/?utm_source=devopsbulletin.com" data-component-name="Image2ToDOM"><div class="image2-inset"><picture><source type="image/webp" srcset="https://substackcdn.com/image/fetch/$s_!wx3I!,w_424,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Ffacd3b69-5ead-4e5f-b6bf-ba305eaf3ed7_1091x411.png 424w, https://substackcdn.com/image/fetch/$s_!wx3I!,w_848,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Ffacd3b69-5ead-4e5f-b6bf-ba305eaf3ed7_1091x411.png 848w, https://substackcdn.com/image/fetch/$s_!wx3I!,w_1272,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Ffacd3b69-5ead-4e5f-b6bf-ba305eaf3ed7_1091x411.png 1272w, https://substackcdn.com/image/fetch/$s_!wx3I!,w_1456,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Ffacd3b69-5ead-4e5f-b6bf-ba305eaf3ed7_1091x411.png 1456w" sizes="100vw"><img src="https://substackcdn.com/image/fetch/$s_!wx3I!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Ffacd3b69-5ead-4e5f-b6bf-ba305eaf3ed7_1091x411.png" width="1091" height="411" data-attrs="{&quot;src&quot;:&quot;https://substack-post-media.s3.amazonaws.com/public/images/facd3b69-5ead-4e5f-b6bf-ba305eaf3ed7_1091x411.png&quot;,&quot;srcNoWatermark&quot;:null,&quot;fullscreen&quot;:null,&quot;imageSize&quot;:null,&quot;height&quot;:411,&quot;width&quot;:1091,&quot;resizeWidth&quot;:null,&quot;bytes&quot;:null,&quot;alt&quot;:&quot;Architecture diagram showing Amazon Bedrock model invocation logging flow. Amazon Bedrock sends real-time logs to CloudWatch Logs and long-term logs to Amazon S3. Both CloudWatch Logs and S3 feed queries into Amazon Athena, which then sends visualizations to Amazon QuickSight. Arrows indicate data flow direction, with a \&quot;Log Destinations\&quot; label grouping CloudWatch Logs and S3, and \&quot;Query\&quot; and \&quot;Visualize\&quot; labels on the downstream arrows.&quot;,&quot;title&quot;:null,&quot;type&quot;:null,&quot;href&quot;:&quot;https://aws.amazon.com/blogs/aws-cloud-financial-management/optimize-llm-costs-on-amazon-bedrock-from-billing-attribution-to-operational-telemetry/?utm_source=devopsbulletin.com&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="Architecture diagram showing Amazon Bedrock model invocation logging flow. Amazon Bedrock sends real-time logs to CloudWatch Logs and long-term logs to Amazon S3. Both CloudWatch Logs and S3 feed queries into Amazon Athena, which then sends visualizations to Amazon QuickSight. Arrows indicate data flow direction, with a &quot;Log Destinations&quot; label grouping CloudWatch Logs and S3, and &quot;Query&quot; and &quot;Visualize&quot; labels on the downstream arrows." title="Architecture diagram showing Amazon Bedrock model invocation logging flow. Amazon Bedrock sends real-time logs to CloudWatch Logs and long-term logs to Amazon S3. Both CloudWatch Logs and S3 feed queries into Amazon Athena, which then sends visualizations to Amazon QuickSight. Arrows indicate data flow direction, with a &quot;Log Destinations&quot; label grouping CloudWatch Logs and S3, and &quot;Query&quot; and &quot;Visualize&quot; labels on the downstream arrows." srcset="https://substackcdn.com/image/fetch/$s_!wx3I!,w_424,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Ffacd3b69-5ead-4e5f-b6bf-ba305eaf3ed7_1091x411.png 424w, https://substackcdn.com/image/fetch/$s_!wx3I!,w_848,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Ffacd3b69-5ead-4e5f-b6bf-ba305eaf3ed7_1091x411.png 848w, https://substackcdn.com/image/fetch/$s_!wx3I!,w_1272,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Ffacd3b69-5ead-4e5f-b6bf-ba305eaf3ed7_1091x411.png 1272w, https://substackcdn.com/image/fetch/$s_!wx3I!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Ffacd3b69-5ead-4e5f-b6bf-ba305eaf3ed7_1091x411.png 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 buttonBase-GK1x3M"><svg aria-hidden="true" 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" class="icon-noB79L"><g><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 buttonBase-GK1x3M"><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 icon-noB79L"><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://cilium.io/blog/2026/06/13/multi-cluster-kubernetes-explained?utm_source=devopsbulletin.com">Multi-cluster Kubernetes explained</a></strong></p></li><li><p><strong><a href="https://vercel.com/blog/dockerfile-on-vercel?utm_source=devopsbulletin.com">Run any Dockerfile on Vercel</a></strong></p></li><li><p><strong><a href="https://dev.to/mierune/aws-amplify-lambda-microvms-a-serverless-linux-desktop-1eif?utm_source=devopsbulletin.com">AWS Amplify + Lambda MicroVMs</a></strong></p></li></ul><div class="captioned-image-container"><figure><a class="image-link image2 is-viewable-img" target="_blank" href="https://dev.to/mierune/aws-amplify-lambda-microvms-a-serverless-linux-desktop-1eif?utm_source=devopsbulletin.com" data-component-name="Image2ToDOM"><div class="image2-inset"><picture><source type="image/webp" srcset="https://substackcdn.com/image/fetch/$s_!yVP0!,w_424,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F4074b4ec-f079-42ed-bd8f-b1eeb2ad6f5e_800x500.webp 424w, https://substackcdn.com/image/fetch/$s_!yVP0!,w_848,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F4074b4ec-f079-42ed-bd8f-b1eeb2ad6f5e_800x500.webp 848w, https://substackcdn.com/image/fetch/$s_!yVP0!,w_1272,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F4074b4ec-f079-42ed-bd8f-b1eeb2ad6f5e_800x500.webp 1272w, https://substackcdn.com/image/fetch/$s_!yVP0!,w_1456,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F4074b4ec-f079-42ed-bd8f-b1eeb2ad6f5e_800x500.webp 1456w" sizes="100vw"><img src="https://substackcdn.com/image/fetch/$s_!yVP0!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F4074b4ec-f079-42ed-bd8f-b1eeb2ad6f5e_800x500.webp" width="800" height="500" data-attrs="{&quot;src&quot;:&quot;https://substack-post-media.s3.amazonaws.com/public/images/4074b4ec-f079-42ed-bd8f-b1eeb2ad6f5e_800x500.webp&quot;,&quot;srcNoWatermark&quot;:null,&quot;fullscreen&quot;:null,&quot;imageSize&quot;:null,&quot;height&quot;:500,&quot;width&quot;:800,&quot;resizeWidth&quot;:null,&quot;bytes&quot;:null,&quot;alt&quot;:&quot; &quot;,&quot;title&quot;:null,&quot;type&quot;:null,&quot;href&quot;:&quot;https://dev.to/mierune/aws-amplify-lambda-microvms-a-serverless-linux-desktop-1eif?utm_source=devopsbulletin.com&quot;,&quot;belowTheFold&quot;:false,&quot;topImage&quot;:false,&quot;internalRedirect&quot;:null,&quot;isProcessing&quot;:false,&quot;align&quot;:null,&quot;offset&quot;:false}" class="sizing-normal" alt=" " title=" " srcset="https://substackcdn.com/image/fetch/$s_!yVP0!,w_424,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F4074b4ec-f079-42ed-bd8f-b1eeb2ad6f5e_800x500.webp 424w, https://substackcdn.com/image/fetch/$s_!yVP0!,w_848,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F4074b4ec-f079-42ed-bd8f-b1eeb2ad6f5e_800x500.webp 848w, https://substackcdn.com/image/fetch/$s_!yVP0!,w_1272,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F4074b4ec-f079-42ed-bd8f-b1eeb2ad6f5e_800x500.webp 1272w, https://substackcdn.com/image/fetch/$s_!yVP0!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F4074b4ec-f079-42ed-bd8f-b1eeb2ad6f5e_800x500.webp 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 buttonBase-GK1x3M"><svg aria-hidden="true" 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" class="icon-noB79L"><g><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 buttonBase-GK1x3M"><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 icon-noB79L"><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://aws.amazon.com/blogs/database/running-pgvector-in-production-on-amazon-aurora-postgresql/?utm_source=devopsbulletin.com">Running pgvector in production on Amazon Aurora PostgreSQL</a></strong></p></li><li><p><strong><a href="https://github.com/aidansteele/microvm-fun?utm_source=devopsbulletin.com">Kubernetes on a fleet of AWS Lambda MicroVMs</a></strong></p></li><li><p><strong><a href="https://octopus.com/blog/blue-green-deployments-kubernetes-argo?utm_source=devopsbulletin.com">Blue/green deployments on Kubernetes with Argo Rollouts</a></strong></p></li><li><p><strong><a href="https://claude.com/blog/getting-started-with-loops?utm_source=devopsbulletin.com">Getting started with Claude loops</a></strong></p></li><li><p><strong><a href="https://www.sqlite.org/howtocorrupt.html?utm_source=devopsbulletin.com">How to corrupt an SQLite database file</a></strong></p></li></ul><h4>Videos of the week</h4><div id="youtube2-5KyfW79Ld4g" class="youtube-wrap" data-attrs="{&quot;videoId&quot;:&quot;5KyfW79Ld4g&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/5KyfW79Ld4g?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-5paRa6E5rCM" class="youtube-wrap" data-attrs="{&quot;videoId&quot;:&quot;5paRa6E5rCM&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/5paRa6E5rCM?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/infiniumtek/terraform-review-agent?utm_source=devopsbulletin.com">terraform-review-agent</a></strong> reviews Terraform PRs with parallel security, cost, and style agents and posts one severity-ranked comment.</p></li><li><p><strong><a href="https://github.com/DataDog/datadog-saist?utm_source=devopsbulletin.com">datadog-saist</a></strong> is an AI-native SAST tool in Go that uses LLMs to catch vulnerabilities in Java, Python, and Go.</p></li><li><p><strong><a href="https://github.com/Barre/ZeroFS?utm_source=devopsbulletin.com">ZeroFS</a></strong> serves S3 buckets as POSIX filesystems over NFS, 9P, and NBD, with built-in compression and encryption.</p></li><li><p><strong><a href="https://github.com/toluaina/pgsync?utm_source=devopsbulletin.com">pgsync</a></strong> syncs Postgres, MySQL, or MariaDB to Elasticsearch or OpenSearch in real time from a JSON document schema.</p></li><li><p><strong><a href="https://github.com/Tight-Line/ballast?utm_source=devopsbulletin.com">ballast</a></strong> is a Kubernetes operator that right-sizes pod CPU and memory requests from real usage with in-place resize.</p></li><li><p><strong><a href="https://github.com/pingcap/tidb?utm_source=devopsbulletin.com">tidb</a></strong> is a distributed, MySQL-compatible SQL database with HTAP and native vector search.</p></li><li><p><strong><a href="https://github.com/ogulcancelik/herdr?utm_source=devopsbulletin.com">herdr</a></strong> is a Rust terminal multiplexer for running multiple coding agents in parallel workspaces.</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_!lDlj!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F16086289-f494-4ee2-9426-055804479e6e_1290x1141.jpeg" data-component-name="Image2ToDOM"><div class="image2-inset"><picture><source type="image/webp" srcset="https://substackcdn.com/image/fetch/$s_!lDlj!,w_424,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F16086289-f494-4ee2-9426-055804479e6e_1290x1141.jpeg 424w, https://substackcdn.com/image/fetch/$s_!lDlj!,w_848,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F16086289-f494-4ee2-9426-055804479e6e_1290x1141.jpeg 848w, https://substackcdn.com/image/fetch/$s_!lDlj!,w_1272,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F16086289-f494-4ee2-9426-055804479e6e_1290x1141.jpeg 1272w, https://substackcdn.com/image/fetch/$s_!lDlj!,w_1456,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F16086289-f494-4ee2-9426-055804479e6e_1290x1141.jpeg 1456w" sizes="auto, 100vw"><img src="https://substackcdn.com/image/fetch/$s_!lDlj!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F16086289-f494-4ee2-9426-055804479e6e_1290x1141.jpeg" width="422" height="373.2573643410853" data-attrs="{&quot;src&quot;:&quot;https://substack-post-media.s3.amazonaws.com/public/images/16086289-f494-4ee2-9426-055804479e6e_1290x1141.jpeg&quot;,&quot;srcNoWatermark&quot;:null,&quot;fullscreen&quot;:null,&quot;imageSize&quot;:null,&quot;height&quot;:1141,&quot;width&quot;:1290,&quot;resizeWidth&quot;:422,&quot;bytes&quot;:null,&quot;alt&quot;:&quot;Make No Mistakes&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="Make No Mistakes" title="Make No Mistakes" srcset="https://substackcdn.com/image/fetch/$s_!lDlj!,w_424,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F16086289-f494-4ee2-9426-055804479e6e_1290x1141.jpeg 424w, https://substackcdn.com/image/fetch/$s_!lDlj!,w_848,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F16086289-f494-4ee2-9426-055804479e6e_1290x1141.jpeg 848w, https://substackcdn.com/image/fetch/$s_!lDlj!,w_1272,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F16086289-f494-4ee2-9426-055804479e6e_1290x1141.jpeg 1272w, https://substackcdn.com/image/fetch/$s_!lDlj!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F16086289-f494-4ee2-9426-055804479e6e_1290x1141.jpeg 1456w" sizes="auto, 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 buttonBase-GK1x3M"><svg aria-hidden="true" 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" class="icon-noB79L"><g><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 buttonBase-GK1x3M"><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 icon-noB79L"><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>Do you run your databases on Kubernetes? I go back and forth on it. Hit reply and tell me where you landed - I&#8217;ll feature the best answers next week.</p></div>]]></content:encoded></item><item><title><![CDATA[Digest #220: Red Hat's npm supply chain attack, malware in AI instruction files, AWS Lambda MicroVMs and a 2x faster test suite]]></title><description><![CDATA[This week in DevOps: the Red Hat npm credential-stealing attack, malware in AI agent files, AWS Lambda MicroVMs, Postgres 19 beta, and how to get good at Kubernetes.]]></description><link>https://www.devopsbulletin.com/p/digest-220-red-hats-npm-supply-chain</link><guid isPermaLink="false">https://www.devopsbulletin.com/p/digest-220-red-hats-npm-supply-chain</guid><dc:creator><![CDATA[Mohamed Labouardy]]></dc:creator><pubDate>Fri, 26 Jun 2026 17:14:18 GMT</pubDate><enclosure url="https://substackcdn.com/image/youtube/w_728,c_limit/s4EOVsBO7Ck" length="0" type="image/jpeg"/><content:encoded><![CDATA[<div class="captioned-image-container"><figure><a class="image-link image2" target="_blank" href="https://cleric.ai/product/early-preview" data-component-name="Image2ToDOM"><div class="image2-inset"><picture><source type="image/webp" srcset="https://substackcdn.com/image/fetch/$s_!iTyl!,w_424,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F154ada8f-c45f-4b5e-86f8-8a478bf65305_1228x326.png 424w, https://substackcdn.com/image/fetch/$s_!iTyl!,w_848,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F154ada8f-c45f-4b5e-86f8-8a478bf65305_1228x326.png 848w, https://substackcdn.com/image/fetch/$s_!iTyl!,w_1272,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F154ada8f-c45f-4b5e-86f8-8a478bf65305_1228x326.png 1272w, https://substackcdn.com/image/fetch/$s_!iTyl!,w_1456,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F154ada8f-c45f-4b5e-86f8-8a478bf65305_1228x326.png 1456w" sizes="100vw"><img src="https://substackcdn.com/image/fetch/$s_!iTyl!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F154ada8f-c45f-4b5e-86f8-8a478bf65305_1228x326.png" width="208" height="55.21824104234528" data-attrs="{&quot;src&quot;:&quot;https://substack-post-media.s3.amazonaws.com/public/images/154ada8f-c45f-4b5e-86f8-8a478bf65305_1228x326.png&quot;,&quot;srcNoWatermark&quot;:null,&quot;fullscreen&quot;:null,&quot;imageSize&quot;:null,&quot;height&quot;:326,&quot;width&quot;:1228,&quot;resizeWidth&quot;:208,&quot;bytes&quot;:27247,&quot;alt&quot;:null,&quot;title&quot;:null,&quot;type&quot;:&quot;image/png&quot;,&quot;href&quot;:&quot;https://cleric.ai/product/early-preview&quot;,&quot;belowTheFold&quot;:false,&quot;topImage&quot;:true,&quot;internalRedirect&quot;:&quot;https://www.devopsbulletin.com/i/203724252?img=https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F154ada8f-c45f-4b5e-86f8-8a478bf65305_1228x326.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_!iTyl!,w_424,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F154ada8f-c45f-4b5e-86f8-8a478bf65305_1228x326.png 424w, https://substackcdn.com/image/fetch/$s_!iTyl!,w_848,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F154ada8f-c45f-4b5e-86f8-8a478bf65305_1228x326.png 848w, https://substackcdn.com/image/fetch/$s_!iTyl!,w_1272,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F154ada8f-c45f-4b5e-86f8-8a478bf65305_1228x326.png 1272w, https://substackcdn.com/image/fetch/$s_!iTyl!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F154ada8f-c45f-4b5e-86f8-8a478bf65305_1228x326.png 1456w" sizes="100vw" fetchpriority="high"></picture><div></div></div></a></figure></div><p>This week&#8217;s supply chain news is rough: 32 malicious @redhat-cloud-services npm packages stealing credentials via a preinstall hook, and Mitiga finding spyware and 1,230+ leaked API keys hidden inside AI agent instruction files. On the building side, AWS shipped Lambda MicroVMs for running untrusted and AI-generated code in isolation, Postgres 19 hit beta, and one engineer doubled their test suite by dropping per-test SQL migrations.</p><h4><strong>Feature deployed. Did it actually work?</strong></h4><div class="captioned-image-container"><figure><a class="image-link image2 is-viewable-img" target="_blank" href="https://cleric.ai/product/early-preview" data-component-name="Image2ToDOM"><div class="image2-inset"><picture><source type="image/webp" srcset="https://substackcdn.com/image/fetch/$s_!vIaq!,w_424,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fb23eb5e1-8c0c-4fb8-9baf-87b17ce441f1_1200x640.png 424w, https://substackcdn.com/image/fetch/$s_!vIaq!,w_848,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fb23eb5e1-8c0c-4fb8-9baf-87b17ce441f1_1200x640.png 848w, https://substackcdn.com/image/fetch/$s_!vIaq!,w_1272,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fb23eb5e1-8c0c-4fb8-9baf-87b17ce441f1_1200x640.png 1272w, https://substackcdn.com/image/fetch/$s_!vIaq!,w_1456,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fb23eb5e1-8c0c-4fb8-9baf-87b17ce441f1_1200x640.png 1456w" sizes="100vw"><img src="https://substackcdn.com/image/fetch/$s_!vIaq!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fb23eb5e1-8c0c-4fb8-9baf-87b17ce441f1_1200x640.png" width="1200" height="640" data-attrs="{&quot;src&quot;:&quot;https://substack-post-media.s3.amazonaws.com/public/images/b23eb5e1-8c0c-4fb8-9baf-87b17ce441f1_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;:797352,&quot;alt&quot;:null,&quot;title&quot;:null,&quot;type&quot;:&quot;image/png&quot;,&quot;href&quot;:&quot;https://cleric.ai/product/early-preview&quot;,&quot;belowTheFold&quot;:false,&quot;topImage&quot;:false,&quot;internalRedirect&quot;:&quot;https://www.devopsbulletin.com/i/203724252?img=https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fb23eb5e1-8c0c-4fb8-9baf-87b17ce441f1_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_!vIaq!,w_424,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fb23eb5e1-8c0c-4fb8-9baf-87b17ce441f1_1200x640.png 424w, https://substackcdn.com/image/fetch/$s_!vIaq!,w_848,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fb23eb5e1-8c0c-4fb8-9baf-87b17ce441f1_1200x640.png 848w, https://substackcdn.com/image/fetch/$s_!vIaq!,w_1272,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fb23eb5e1-8c0c-4fb8-9baf-87b17ce441f1_1200x640.png 1272w, https://substackcdn.com/image/fetch/$s_!vIaq!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fb23eb5e1-8c0c-4fb8-9baf-87b17ce441f1_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 buttonBase-GK1x3M"><svg aria-hidden="true" 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" class="icon-noB79L"><g><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 buttonBase-GK1x3M"><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 icon-noB79L"><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 change can pass CI and review and still break checkout the moment it deploys. <a href="https://cleric.ai/product/early-preview">Cleric</a> follows every agent-written change into production, checks that it did what you meant, and gives you a verdict: it worked, fix this, or roll back - <a href="https://cleric.ai/product/early-preview">See it work on a real change.</a></p><h4>Newsworthy stories</h4><ul><li><p><strong><a href="https://medium.com/@f8010/how-to-become-ridiculously-good-at-kubernetes-00538d4e8627?utm_source=devopsbulletin.com">How to become ridiculously good at Kubernetes</a></strong></p></li><li><p><strong><a href="https://www.mitiga.io/blog/malware-in-ai-instruction-files-skillgate?utm_source=devopsbulletin.com">Malware in AI instruction files, plus 1,230+ leaking API keys</a></strong></p></li><li><p><strong><a href="https://pierre.computer/writing/on-rendering-diffs?utm_source=devopsbulletin.com">How to render giant code diffs in the browser</a></strong></p></li><li><p><strong><a href="https://www.snowflake.com/en/blog/engineering/postgresql-19-features-beta/?utm_source=devopsbulletin.com">What&#8217;s coming in the Postgres 19 beta</a></strong></p></li><li><p><strong><a href="https://gaultier.github.io/blog/I_sped_up_the_test_suite_by_x2.html?utm_source=devopsbulletin.com">Cutting SQL migrations from tests doubled the suite speed</a></strong></p></li><li><p><strong><a href="https://theburningmonk.com/2026/06/what-you-need-to-know-about-lambda-microvms?utm_source=devopsbulletin.com">Lambda MicroVMs: what you need to know</a></strong></p></li><li><p><strong><a href="https://www.microsoft.com/en-us/security/blog/2026/06/02/preinstall-persistence-inside-red-hat-npm-miasma-credential-stealing-campaign?utm_source=devopsbulletin.com">Inside the Red Hat npm &#8220;Miasma&#8221; credential-stealing campaign</a></strong></p></li></ul><h4>Tutorials of the week</h4><ul><li><p><strong><a href="https://aws.amazon.com/blogs/aws/run-isolated-sandboxes-with-full-lifecycle-control-aws-lambda-introduces-microvms/?utm_source=devopsbulletin.com">Running isolated sandboxes with Lambda MicroVMs</a></strong></p></li><li><p><strong><a href="https://kodekloud.com/blog/running-ai-agents-safely-inside-kubernetes?utm_source=devopsbulletin.com">Running AI agents safely inside Kubernetes</a></strong></p></li><li><p><strong><a href="https://www.kubeblogs.com/automate-postgresql-backups-to-s3/?utm_source=devopsbulletin.com">Automating PostgreSQL backups to S3 with Airflow</a></strong></p></li><li><p><strong><a href="https://medium.com/nontechcompany/building-an-incident-management-workflow-with-superplane-18604f9595be?utm_source=devopsbulletin.com">Building an incident management workflow</a></strong></p></li><li><p><strong><a href="https://aws.amazon.com/blogs/database/postgresql-18-on-amazon-aurora-and-amazon-rds-performance-enhancements/?utm_source=devopsbulletin.com">PostgreSQL 18 performance wins on Aurora and RDS</a></strong></p></li><li><p><strong><a href="https://planetscale.com/blog/the-feedback-loops-behind-kubernetes?utm_source=devopsbulletin.com">The feedback loops behind Kubernetes</a></strong></p></li><li><p><strong><a href="https://fortem.dev/blog/ecs-environment-clone?utm_source=devopsbulletin.com">Cloning an ECS environment without rewriting Terraform</a></strong></p></li><li><p><strong><a href="https://aws.amazon.com/blogs/opensource/governing-ai-assets-at-scale-with-mcp-gateway-and-registry?utm_source=devopsbulletin.com">Governing AI assets at scale with MCP Gateway and Registry</a></strong></p></li></ul><h4>Videos of the week</h4><div id="youtube2-ppGO7r2sEkE" class="youtube-wrap" data-attrs="{&quot;videoId&quot;:&quot;ppGO7r2sEkE&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/ppGO7r2sEkE?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-iQyg-KypKAA" class="youtube-wrap" data-attrs="{&quot;videoId&quot;:&quot;iQyg-KypKAA&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/iQyg-KypKAA?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-s4EOVsBO7Ck" class="youtube-wrap" data-attrs="{&quot;videoId&quot;:&quot;s4EOVsBO7Ck&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/s4EOVsBO7Ck?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/kunchenguid/no-mistakes?utm_source=devopsbulletin.com">no-mistakes</a></strong> is a Go local Git proxy that runs an AI review, test, and lint pipeline in an isolated worktree before pushing, then opens a clean PR.</p></li><li><p><strong><a href="https://github.com/modem-dev/hunk?utm_source=devopsbulletin.com">Hunk</a></strong> is a terminal diff viewer built for reviewing agent-authored changesets, with inline AI annotations.</p></li><li><p><strong><a href="https://github.com/jR4dh3y/BoxBox?utm_source=devopsbulletin.com">BoxBox</a></strong> is a self-hosted file manager for homelabs that supports chunked and resumable uploads.</p><div class="captioned-image-container"><figure><a class="image-link image2 is-viewable-img" target="_blank" href="https://github.com/jR4dh3y/BoxBox?utm_source=devopsbulletin.com" data-component-name="Image2ToDOM"><div class="image2-inset"><picture><source type="image/webp" srcset="https://substackcdn.com/image/fetch/$s_!X-F5!,w_424,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F114570da-cc89-4ad6-87b1-ac2ee759fb47_1387x739.png 424w, https://substackcdn.com/image/fetch/$s_!X-F5!,w_848,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F114570da-cc89-4ad6-87b1-ac2ee759fb47_1387x739.png 848w, https://substackcdn.com/image/fetch/$s_!X-F5!,w_1272,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F114570da-cc89-4ad6-87b1-ac2ee759fb47_1387x739.png 1272w, https://substackcdn.com/image/fetch/$s_!X-F5!,w_1456,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F114570da-cc89-4ad6-87b1-ac2ee759fb47_1387x739.png 1456w" sizes="auto, 100vw"><img src="https://substackcdn.com/image/fetch/$s_!X-F5!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F114570da-cc89-4ad6-87b1-ac2ee759fb47_1387x739.png" width="1387" height="739" data-attrs="{&quot;src&quot;:&quot;https://substack-post-media.s3.amazonaws.com/public/images/114570da-cc89-4ad6-87b1-ac2ee759fb47_1387x739.png&quot;,&quot;srcNoWatermark&quot;:null,&quot;fullscreen&quot;:null,&quot;imageSize&quot;:null,&quot;height&quot;:739,&quot;width&quot;:1387,&quot;resizeWidth&quot;:null,&quot;bytes&quot;:181074,&quot;alt&quot;:null,&quot;title&quot;:null,&quot;type&quot;:&quot;image/png&quot;,&quot;href&quot;:&quot;https://github.com/jR4dh3y/BoxBox?utm_source=devopsbulletin.com&quot;,&quot;belowTheFold&quot;:true,&quot;topImage&quot;:false,&quot;internalRedirect&quot;:&quot;https://www.devopsbulletin.com/i/203724252?img=https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F114570da-cc89-4ad6-87b1-ac2ee759fb47_1387x739.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_!X-F5!,w_424,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F114570da-cc89-4ad6-87b1-ac2ee759fb47_1387x739.png 424w, https://substackcdn.com/image/fetch/$s_!X-F5!,w_848,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F114570da-cc89-4ad6-87b1-ac2ee759fb47_1387x739.png 848w, https://substackcdn.com/image/fetch/$s_!X-F5!,w_1272,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F114570da-cc89-4ad6-87b1-ac2ee759fb47_1387x739.png 1272w, https://substackcdn.com/image/fetch/$s_!X-F5!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F114570da-cc89-4ad6-87b1-ac2ee759fb47_1387x739.png 1456w" sizes="auto, 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 buttonBase-GK1x3M"><svg aria-hidden="true" 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" class="icon-noB79L"><g><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 buttonBase-GK1x3M"><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 icon-noB79L"><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><ul><li><p><strong><a href="https://github.com/dbtrail/dbtrail?utm_source=devopsbulletin.com">dbtrail</a></strong> is a point-in-time recovery tool for MySQL that runs time-travel queries and can undo cascade deletes without locks or restores.</p></li><li><p><strong><a href="https://github.com/renatoworks/oh-my-reddit?utm_source=devopsbulletin.com">oh-my-reddit</a></strong> is a terminal Reddit client on Bubble Tea, with live-streaming comments and automatic browser session reuse.</p></li><li><p><strong><a href="https://github.com/stablyai/orca?utm_source=devopsbulletin.com">Orca</a></strong> is an agent orchestrator that runs Claude Code, Codex, and 40+ other CLI agents in parallel within git worktrees from a single desktop app.</p></li></ul><div class="captioned-image-container"><figure><a class="image-link image2 is-viewable-img" target="_blank" href="https://github.com/stablyai/orca?utm_source=devopsbulletin.com" data-component-name="Image2ToDOM"><div class="image2-inset"><picture><source type="image/webp" srcset="https://substackcdn.com/image/fetch/$s_!luW8!,w_424,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fe302e2f1-5fb0-4820-8d6e-26a523272cf3_827x511.png 424w, https://substackcdn.com/image/fetch/$s_!luW8!,w_848,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fe302e2f1-5fb0-4820-8d6e-26a523272cf3_827x511.png 848w, https://substackcdn.com/image/fetch/$s_!luW8!,w_1272,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fe302e2f1-5fb0-4820-8d6e-26a523272cf3_827x511.png 1272w, https://substackcdn.com/image/fetch/$s_!luW8!,w_1456,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fe302e2f1-5fb0-4820-8d6e-26a523272cf3_827x511.png 1456w" sizes="auto, 100vw"><img src="https://substackcdn.com/image/fetch/$s_!luW8!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fe302e2f1-5fb0-4820-8d6e-26a523272cf3_827x511.png" width="827" height="511" data-attrs="{&quot;src&quot;:&quot;https://substack-post-media.s3.amazonaws.com/public/images/e302e2f1-5fb0-4820-8d6e-26a523272cf3_827x511.png&quot;,&quot;srcNoWatermark&quot;:null,&quot;fullscreen&quot;:null,&quot;imageSize&quot;:null,&quot;height&quot;:511,&quot;width&quot;:827,&quot;resizeWidth&quot;:null,&quot;bytes&quot;:215923,&quot;alt&quot;:null,&quot;title&quot;:null,&quot;type&quot;:&quot;image/png&quot;,&quot;href&quot;:&quot;https://github.com/stablyai/orca?utm_source=devopsbulletin.com&quot;,&quot;belowTheFold&quot;:true,&quot;topImage&quot;:false,&quot;internalRedirect&quot;:&quot;https://www.devopsbulletin.com/i/203724252?img=https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fe302e2f1-5fb0-4820-8d6e-26a523272cf3_827x511.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_!luW8!,w_424,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fe302e2f1-5fb0-4820-8d6e-26a523272cf3_827x511.png 424w, https://substackcdn.com/image/fetch/$s_!luW8!,w_848,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fe302e2f1-5fb0-4820-8d6e-26a523272cf3_827x511.png 848w, https://substackcdn.com/image/fetch/$s_!luW8!,w_1272,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fe302e2f1-5fb0-4820-8d6e-26a523272cf3_827x511.png 1272w, https://substackcdn.com/image/fetch/$s_!luW8!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fe302e2f1-5fb0-4820-8d6e-26a523272cf3_827x511.png 1456w" sizes="auto, 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 buttonBase-GK1x3M"><svg aria-hidden="true" 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" class="icon-noB79L"><g><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 buttonBase-GK1x3M"><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 icon-noB79L"><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><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_!YaHD!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fb4402dd5-0cac-4b70-b76a-c23a36a475a3_665x980.jpeg" data-component-name="Image2ToDOM"><div class="image2-inset"><picture><source type="image/webp" srcset="https://substackcdn.com/image/fetch/$s_!YaHD!,w_424,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fb4402dd5-0cac-4b70-b76a-c23a36a475a3_665x980.jpeg 424w, https://substackcdn.com/image/fetch/$s_!YaHD!,w_848,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fb4402dd5-0cac-4b70-b76a-c23a36a475a3_665x980.jpeg 848w, https://substackcdn.com/image/fetch/$s_!YaHD!,w_1272,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fb4402dd5-0cac-4b70-b76a-c23a36a475a3_665x980.jpeg 1272w, https://substackcdn.com/image/fetch/$s_!YaHD!,w_1456,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fb4402dd5-0cac-4b70-b76a-c23a36a475a3_665x980.jpeg 1456w" sizes="auto, 100vw"><img src="https://substackcdn.com/image/fetch/$s_!YaHD!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fb4402dd5-0cac-4b70-b76a-c23a36a475a3_665x980.jpeg" width="313" height="461.2631578947368" data-attrs="{&quot;src&quot;:&quot;https://substack-post-media.s3.amazonaws.com/public/images/b4402dd5-0cac-4b70-b76a-c23a36a475a3_665x980.jpeg&quot;,&quot;srcNoWatermark&quot;:null,&quot;fullscreen&quot;:null,&quot;imageSize&quot;:null,&quot;height&quot;:980,&quot;width&quot;:665,&quot;resizeWidth&quot;:313,&quot;bytes&quot;:null,&quot;alt&quot;:&quot;Now I Have The Full Picture&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="Now I Have The Full Picture" title="Now I Have The Full Picture" srcset="https://substackcdn.com/image/fetch/$s_!YaHD!,w_424,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fb4402dd5-0cac-4b70-b76a-c23a36a475a3_665x980.jpeg 424w, https://substackcdn.com/image/fetch/$s_!YaHD!,w_848,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fb4402dd5-0cac-4b70-b76a-c23a36a475a3_665x980.jpeg 848w, https://substackcdn.com/image/fetch/$s_!YaHD!,w_1272,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fb4402dd5-0cac-4b70-b76a-c23a36a475a3_665x980.jpeg 1272w, https://substackcdn.com/image/fetch/$s_!YaHD!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fb4402dd5-0cac-4b70-b76a-c23a36a475a3_665x980.jpeg 1456w" sizes="auto, 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 buttonBase-GK1x3M"><svg aria-hidden="true" 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" class="icon-noB79L"><g><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 buttonBase-GK1x3M"><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 icon-noB79L"><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 #219: Fable 5's 1,810-line PR in 30 minutes, GitHub's rebuild revolt, Postgres' only scalable delete and AI-narrated crypto malware]]></title><description><![CDATA[From an AI model opening an 1,810-line pull request on its own in half an hour, to Cursor, GitLab and Zed all agreeing GitHub is broken while disagreeing on the fix.]]></description><link>https://www.devopsbulletin.com/p/digest-219-fable-5s-1810-line-pr</link><guid isPermaLink="false">https://www.devopsbulletin.com/p/digest-219-fable-5s-1810-line-pr</guid><dc:creator><![CDATA[Mohamed Labouardy]]></dc:creator><pubDate>Fri, 19 Jun 2026 18:11:30 GMT</pubDate><enclosure url="https://substackcdn.com/image/fetch/$s_!Y8YW!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F0f8e5e8d-316b-4808-8ed4-b67b7837c6fc_3393x5406.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.mendral.com/?utm_source=devopsbulletin" data-component-name="Image2ToDOM"><div class="image2-inset"><picture><source type="image/webp" srcset="https://substackcdn.com/image/fetch/$s_!JTHa!,w_424,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F73ff9826-c449-474f-a82b-26f222f70146_268x75.png 424w, https://substackcdn.com/image/fetch/$s_!JTHa!,w_848,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F73ff9826-c449-474f-a82b-26f222f70146_268x75.png 848w, https://substackcdn.com/image/fetch/$s_!JTHa!,w_1272,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F73ff9826-c449-474f-a82b-26f222f70146_268x75.png 1272w, https://substackcdn.com/image/fetch/$s_!JTHa!,w_1456,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F73ff9826-c449-474f-a82b-26f222f70146_268x75.png 1456w" sizes="100vw"><img src="https://substackcdn.com/image/fetch/$s_!JTHa!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F73ff9826-c449-474f-a82b-26f222f70146_268x75.png" width="212" height="59.32835820895522" data-attrs="{&quot;src&quot;:&quot;https://substack-post-media.s3.amazonaws.com/public/images/73ff9826-c449-474f-a82b-26f222f70146_268x75.png&quot;,&quot;srcNoWatermark&quot;:null,&quot;fullscreen&quot;:null,&quot;imageSize&quot;:null,&quot;height&quot;:75,&quot;width&quot;:268,&quot;resizeWidth&quot;:212,&quot;bytes&quot;:null,&quot;alt&quot;:&quot;&quot;,&quot;title&quot;:null,&quot;type&quot;:null,&quot;href&quot;:&quot;https://www.mendral.com/?utm_source=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="" title="" srcset="https://substackcdn.com/image/fetch/$s_!JTHa!,w_424,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F73ff9826-c449-474f-a82b-26f222f70146_268x75.png 424w, https://substackcdn.com/image/fetch/$s_!JTHa!,w_848,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F73ff9826-c449-474f-a82b-26f222f70146_268x75.png 848w, https://substackcdn.com/image/fetch/$s_!JTHa!,w_1272,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F73ff9826-c449-474f-a82b-26f222f70146_268x75.png 1272w, https://substackcdn.com/image/fetch/$s_!JTHa!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F73ff9826-c449-474f-a82b-26f222f70146_268x75.png 1456w" sizes="100vw" fetchpriority="high"></picture><div></div></div></a></figure></div><p>Fable 5 opened a 1,810-line pull request on Tabularis this week. Thirty-seven new tests, all passing, in about half an hour. The line count isn&#8217;t the interesting part. It&#8217;s that it didn&#8217;t just build the feature it was asked for. It refactored the shared connection logic first, as the maintainers said they would have done themselves.</p><p>A few days later, Cloudflare pointed a different kind of agent at its own code. A harness that hunts for vulnerabilities, then hands every finding to a second, different model to argue it down. It surfaced 13,841 real bugs across 145 repositories. One model finds, another model doubts, and only what survives reaches a human.</p><p>While two teams were teaching AI to build and audit code, someone else was teaching it to sell malware. A Rust clipboard hijacker shipped with roughly 15,500 wallet addresses baked in, fronted by AI-generated YouTube narrators reading polished tutorials to an audience of coordinated fake comments.</p><p>Notice the pattern. The same kind of autonomous agent is now writing production code, auditing it, and, in the wrong hands, packaging the attack. The more capable they get, the more of the unglamorous work they can actually own. That&#8217;s the bet behind <a href="https://www.mendral.com/?utm_source=devopsbulletin">Mendral</a>: an autonomous AI DevOps engineer that takes the jobs your team shouldn&#8217;t be doing by hand, like supply chain security, and just handles them.</p><p>In the tutorials: how a single prompt injection turned Claude Code&#8217;s own GitHub Action into a way to read your API keys, the gameday that proved Datadog&#8217;s Postgres failover wasn&#8217;t actually safe, and why one NULL can make a NOT IN query quietly return nothing at all.</p><p>On video: Postgres branching that clones a database in under a second and scales to zero, plus why slow learning still wins in the AI era.</p><p>Then six devtools worth a look, including a Kubernetes desktop client that installs nothing in your cluster, a bastion that fronts SSH, Postgres, and Kubernetes with no client software, and an MCP server that indexes the entire Linux kernel in three minutes.</p><h4><strong>Platform engineering on autopilot</strong></h4><p><a href="https://www.mendral.com/?utm_source=devopsbulletin">Mendral</a><span> is an autonomous AI DevOps engineer that handles the work your engineers shouldn&#8217;t be doing manually anymore: supply chain security, flaky CI, slow builds, and anything else specific to your stack - </span><a href="https://www.mendral.com/?utm_source=devopsbulletin">Try it out!</a></p><h4>Newsworthy stories</h4><ul><li><p><strong><a href="https://www.greybeam.ai/blog/duckdb-internals-part-1">Why is DuckDB fast? </a></strong></p></li><li><p><strong><a href="https://gbhackers.com/ai-generated-youtube-narrators">Hackers use AI-generated YouTube narrators to promote Crypto malware</a></strong></p></li><li><p><strong><a href="https://notnotp.com/notes/what-job-interviews-taught-me-about-kubernetes">What job interviews taught me about Kubernetes</a></strong></p></li><li><p><strong><a href="https://tabularis.dev/blog/fable-5-opened-a-1800-line-pr-in-30-minutes">Fable 5 opened a 1,810-line, 37-test PR on Tabularis in 30 minutes</a></strong></p></li><li><p><strong><a href="https://vickiboykis.com/2026/06/15/running-local-models-is-good-now/">Running local models is good now</a></strong></p></li><li><p><strong><a href="https://sakul-learning.github.io/2026/06/02/iac-repo-structure">Infrastructure as Code needs software engineering, not more config tooling</a></strong></p></li><li><p><strong><a href="https://thenewstack.io/cursor-origin-github-disruption">Cursor, GitLab, and Zed agree GitHub is breaking</a></strong></p></li><li><p><strong><a href="https://planetscale.com/blog/the-only-scalable-delete">The only scalable delete in Postgres is DROP TABLE</a></strong></p></li><li><p><strong><a href="https://blog.cloudflare.com/build-your-own-vulnerability-harness">How Cloudflare&#8217;s multi-agent harness found 13,841 bugs across 145 repos</a></strong></p></li></ul><h4>Tutorials of the week</h4><ul><li><p><strong><a href="https://www.datadoghq.com/blog/engineering/postgresql-ha-kubernetes/">Building high-availability PostgreSQL on Kubernetes</a></strong></p></li><li><p><strong><a href="https://corgea.com/learn/github-actions-security-checklist">GitHub Actions security checklist for supply chain attacks</a></strong></p></li><li><p><strong><a href="https://medium.com/@chiragmehta900/cut-your-aws-fargate-bill-by-40-10-waste-patterns-i-fixed-in-production-d657d61469d2">Cut your AWS Fargate bill by 40%</a></strong></p></li><li><p><strong><a href="https://www.pulumi.com/blog/getting-started-aks-pulumi-csharp/">Getting started with AKS using Pulumi and C#</a></strong></p></li><li><p><strong><a href="https://ahakimx.id/posts/building-a-rag-powered-sre-knowledge-base-with-amazon-bedrock">Building a RAG-powered SRE knowledge base with Amazon Bedrock</a></strong></p></li></ul><div class="captioned-image-container"><figure><a class="image-link image2 is-viewable-img" target="_blank" href="https://ahakimx.id/posts/building-a-rag-powered-sre-knowledge-base-with-amazon-bedrock/" data-component-name="Image2ToDOM"><div class="image2-inset"><picture><source type="image/webp" srcset="https://substackcdn.com/image/fetch/$s_!Y8YW!,w_424,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F0f8e5e8d-316b-4808-8ed4-b67b7837c6fc_3393x5406.png 424w, https://substackcdn.com/image/fetch/$s_!Y8YW!,w_848,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F0f8e5e8d-316b-4808-8ed4-b67b7837c6fc_3393x5406.png 848w, https://substackcdn.com/image/fetch/$s_!Y8YW!,w_1272,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F0f8e5e8d-316b-4808-8ed4-b67b7837c6fc_3393x5406.png 1272w, https://substackcdn.com/image/fetch/$s_!Y8YW!,w_1456,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F0f8e5e8d-316b-4808-8ed4-b67b7837c6fc_3393x5406.png 1456w" sizes="auto, 100vw"><img src="https://substackcdn.com/image/fetch/$s_!Y8YW!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F0f8e5e8d-316b-4808-8ed4-b67b7837c6fc_3393x5406.png" width="292" height="465.27472527472526" data-attrs="{&quot;src&quot;:&quot;https://substack-post-media.s3.amazonaws.com/public/images/0f8e5e8d-316b-4808-8ed4-b67b7837c6fc_3393x5406.png&quot;,&quot;srcNoWatermark&quot;:null,&quot;fullscreen&quot;:null,&quot;imageSize&quot;:null,&quot;height&quot;:2320,&quot;width&quot;:1456,&quot;resizeWidth&quot;:292,&quot;bytes&quot;:null,&quot;alt&quot;:&quot;architecture&quot;,&quot;title&quot;:null,&quot;type&quot;:null,&quot;href&quot;:&quot;https://ahakimx.id/posts/building-a-rag-powered-sre-knowledge-base-with-amazon-bedrock/&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="architecture" title="architecture" srcset="https://substackcdn.com/image/fetch/$s_!Y8YW!,w_424,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F0f8e5e8d-316b-4808-8ed4-b67b7837c6fc_3393x5406.png 424w, https://substackcdn.com/image/fetch/$s_!Y8YW!,w_848,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F0f8e5e8d-316b-4808-8ed4-b67b7837c6fc_3393x5406.png 848w, https://substackcdn.com/image/fetch/$s_!Y8YW!,w_1272,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F0f8e5e8d-316b-4808-8ed4-b67b7837c6fc_3393x5406.png 1272w, https://substackcdn.com/image/fetch/$s_!Y8YW!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F0f8e5e8d-316b-4808-8ed4-b67b7837c6fc_3393x5406.png 1456w" sizes="auto, 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 buttonBase-GK1x3M"><svg aria-hidden="true" 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" class="icon-noB79L"><g><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 buttonBase-GK1x3M"><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 icon-noB79L"><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.microsoft.com/en-us/security/blog/2026/06/05/securing-ci-cd-in-agentic-world-claude-code-github-action-case">Securing CI/CD in an agentic world: Claude Code GitHub action case</a></strong></p></li><li><p><strong><a href="https://dev.to/qasim157/run-your-email-agent-on-serverless-42d2">Run your email agent on serverless</a></strong></p></li><li><p><strong><a href="https://rednafi.com/shards/2026/06/go-goroutine-leak-profile/">A goroutine leak profile in the Go standard library</a></strong></p></li><li><p><strong><a href="https://specterops.io/blog/2026/06/10/oops-i-weaponized-the-database-abusing-ai-features-in-mssql-2025">Abusing AI features in SQL Server 2025</a></strong></p></li><li><p><strong><a href="https://boringsql.com/posts/not-in-null">The NULL in your NOT IN</a></strong></p></li><li><p><strong><a href="https://aws.amazon.com/blogs/security/operationalizing-aws-security-a-maturity-roadmap">Operationalizing AWS security: a maturity roadmap</a></strong></p></li></ul><h4>Videos of the week</h4><div id="youtube2-Sntj4HmuykI" class="youtube-wrap" data-attrs="{&quot;videoId&quot;:&quot;Sntj4HmuykI&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/Sntj4HmuykI?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-zyQYMBt7mkM" class="youtube-wrap" data-attrs="{&quot;videoId&quot;:&quot;zyQYMBt7mkM&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/zyQYMBt7mkM?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-BAgxGp2WEu4" class="youtube-wrap" data-attrs="{&quot;videoId&quot;:&quot;BAgxGp2WEu4&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/BAgxGp2WEu4?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/SametKUM/klustr?utm_source=devopsbulletin">Klustr</a></strong> is a native Go/React Kubernetes desktop client that drives Helm, Argo CD, Flux, and cert-manager from your kubeconfig with no in-cluster components.</p></li><li><p><strong><a href="https://github.com/milan0x/local-cloud-browser?utm_source=devopsbulletin">Local Cloud Browser</a></strong> is a native macOS GUI for 28 AWS-compatible services, using Keychain credentials and read-only by default.</p></li></ul><div class="captioned-image-container"><figure><a class="image-link image2 is-viewable-img" target="_blank" href="https://github.com/milan0x/local-cloud-browser?utm_source=devopsbulletin" data-component-name="Image2ToDOM"><div class="image2-inset"><picture><source type="image/webp" srcset="https://substackcdn.com/image/fetch/$s_!PaJB!,w_424,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F1cda25de-3074-430c-b640-f60e2798662f_3094x1758.png 424w, https://substackcdn.com/image/fetch/$s_!PaJB!,w_848,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F1cda25de-3074-430c-b640-f60e2798662f_3094x1758.png 848w, https://substackcdn.com/image/fetch/$s_!PaJB!,w_1272,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F1cda25de-3074-430c-b640-f60e2798662f_3094x1758.png 1272w, https://substackcdn.com/image/fetch/$s_!PaJB!,w_1456,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F1cda25de-3074-430c-b640-f60e2798662f_3094x1758.png 1456w" sizes="auto, 100vw"><img src="https://substackcdn.com/image/fetch/$s_!PaJB!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F1cda25de-3074-430c-b640-f60e2798662f_3094x1758.png" width="1456" height="827" data-attrs="{&quot;src&quot;:&quot;https://substack-post-media.s3.amazonaws.com/public/images/1cda25de-3074-430c-b640-f60e2798662f_3094x1758.png&quot;,&quot;srcNoWatermark&quot;:null,&quot;fullscreen&quot;:null,&quot;imageSize&quot;:null,&quot;height&quot;:827,&quot;width&quot;:1456,&quot;resizeWidth&quot;:null,&quot;bytes&quot;:818493,&quot;alt&quot;:null,&quot;title&quot;:null,&quot;type&quot;:&quot;image/png&quot;,&quot;href&quot;:&quot;https://github.com/milan0x/local-cloud-browser?utm_source=devopsbulletin&quot;,&quot;belowTheFold&quot;:true,&quot;topImage&quot;:false,&quot;internalRedirect&quot;:&quot;https://www.devopsbulletin.com/i/202748386?img=https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F1cda25de-3074-430c-b640-f60e2798662f_3094x1758.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_!PaJB!,w_424,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F1cda25de-3074-430c-b640-f60e2798662f_3094x1758.png 424w, https://substackcdn.com/image/fetch/$s_!PaJB!,w_848,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F1cda25de-3074-430c-b640-f60e2798662f_3094x1758.png 848w, https://substackcdn.com/image/fetch/$s_!PaJB!,w_1272,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F1cda25de-3074-430c-b640-f60e2798662f_3094x1758.png 1272w, https://substackcdn.com/image/fetch/$s_!PaJB!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F1cda25de-3074-430c-b640-f60e2798662f_3094x1758.png 1456w" sizes="auto, 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 buttonBase-GK1x3M"><svg aria-hidden="true" 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" class="icon-noB79L"><g><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 buttonBase-GK1x3M"><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 icon-noB79L"><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?utm_source=devopsbulletin">WinPodX</a></strong> runs Windows apps as native Linux windows via FreeRDP RemoteApp, built in Python and Qt6.</p></li><li><p><strong><a href="https://github.com/alibaba/zvec?utm_source=devopsbulletin">Zvec</a></strong> is Alibaba&#8217;s in-process C++ vector database that searches billions of vectors in milliseconds with hybrid retrieval.</p></li><li><p><strong><a href="https://github.com/DeusData/codebase-memory-mcp?utm_source=devopsbulletin">codebase-memory-mcp</a></strong> is an MCP server that builds code knowledge graphs, enabling AI agents to skip re-reading files and index the 28M-line Linux kernel in 3 minutes.</p></li></ul><div class="captioned-image-container"><figure><a class="image-link image2 is-viewable-img" target="_blank" href="https://github.com/DeusData/codebase-memory-mcp?utm_source=devopsbulletin" data-component-name="Image2ToDOM"><div class="image2-inset"><picture><source type="image/webp" srcset="https://substackcdn.com/image/fetch/$s_!OUxk!,w_424,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F64bdc3d7-9c71-4f91-a32e-936ec30b73aa_795x461.png 424w, https://substackcdn.com/image/fetch/$s_!OUxk!,w_848,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F64bdc3d7-9c71-4f91-a32e-936ec30b73aa_795x461.png 848w, https://substackcdn.com/image/fetch/$s_!OUxk!,w_1272,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F64bdc3d7-9c71-4f91-a32e-936ec30b73aa_795x461.png 1272w, https://substackcdn.com/image/fetch/$s_!OUxk!,w_1456,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F64bdc3d7-9c71-4f91-a32e-936ec30b73aa_795x461.png 1456w" sizes="auto, 100vw"><img src="https://substackcdn.com/image/fetch/$s_!OUxk!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F64bdc3d7-9c71-4f91-a32e-936ec30b73aa_795x461.png" width="795" height="461" data-attrs="{&quot;src&quot;:&quot;https://substack-post-media.s3.amazonaws.com/public/images/64bdc3d7-9c71-4f91-a32e-936ec30b73aa_795x461.png&quot;,&quot;srcNoWatermark&quot;:null,&quot;fullscreen&quot;:null,&quot;imageSize&quot;:null,&quot;height&quot;:461,&quot;width&quot;:795,&quot;resizeWidth&quot;:null,&quot;bytes&quot;:386571,&quot;alt&quot;:null,&quot;title&quot;:null,&quot;type&quot;:&quot;image/png&quot;,&quot;href&quot;:&quot;https://github.com/DeusData/codebase-memory-mcp?utm_source=devopsbulletin&quot;,&quot;belowTheFold&quot;:true,&quot;topImage&quot;:false,&quot;internalRedirect&quot;:&quot;https://www.devopsbulletin.com/i/202748386?img=https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F64bdc3d7-9c71-4f91-a32e-936ec30b73aa_795x461.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_!OUxk!,w_424,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F64bdc3d7-9c71-4f91-a32e-936ec30b73aa_795x461.png 424w, https://substackcdn.com/image/fetch/$s_!OUxk!,w_848,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F64bdc3d7-9c71-4f91-a32e-936ec30b73aa_795x461.png 848w, https://substackcdn.com/image/fetch/$s_!OUxk!,w_1272,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F64bdc3d7-9c71-4f91-a32e-936ec30b73aa_795x461.png 1272w, https://substackcdn.com/image/fetch/$s_!OUxk!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F64bdc3d7-9c71-4f91-a32e-936ec30b73aa_795x461.png 1456w" sizes="auto, 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 buttonBase-GK1x3M"><svg aria-hidden="true" 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" class="icon-noB79L"><g><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 buttonBase-GK1x3M"><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 icon-noB79L"><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/warp-tech/warpgate?utm_source=devopsbulletin">Warpgate</a></strong> is a transparent Rust bastion and PAM for SSH, HTTPS, Kubernetes, MySQL, and Postgres with no client-side software.</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_!Noqf!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Ffea4f80e-df2e-4e92-a7d4-4e920390ac9e_640x882.png" data-component-name="Image2ToDOM"><div class="image2-inset"><picture><source type="image/webp" srcset="https://substackcdn.com/image/fetch/$s_!Noqf!,w_424,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Ffea4f80e-df2e-4e92-a7d4-4e920390ac9e_640x882.png 424w, https://substackcdn.com/image/fetch/$s_!Noqf!,w_848,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Ffea4f80e-df2e-4e92-a7d4-4e920390ac9e_640x882.png 848w, https://substackcdn.com/image/fetch/$s_!Noqf!,w_1272,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Ffea4f80e-df2e-4e92-a7d4-4e920390ac9e_640x882.png 1272w, https://substackcdn.com/image/fetch/$s_!Noqf!,w_1456,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Ffea4f80e-df2e-4e92-a7d4-4e920390ac9e_640x882.png 1456w" sizes="auto, 100vw"><img src="https://substackcdn.com/image/fetch/$s_!Noqf!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Ffea4f80e-df2e-4e92-a7d4-4e920390ac9e_640x882.png" width="330" height="454.78125" data-attrs="{&quot;src&quot;:&quot;https://substack-post-media.s3.amazonaws.com/public/images/fea4f80e-df2e-4e92-a7d4-4e920390ac9e_640x882.png&quot;,&quot;srcNoWatermark&quot;:null,&quot;fullscreen&quot;:null,&quot;imageSize&quot;:null,&quot;height&quot;:882,&quot;width&quot;:640,&quot;resizeWidth&quot;:330,&quot;bytes&quot;:null,&quot;alt&quot;:&quot;Anthropic Being Anthropic&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="Anthropic Being Anthropic" title="Anthropic Being Anthropic" srcset="https://substackcdn.com/image/fetch/$s_!Noqf!,w_424,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Ffea4f80e-df2e-4e92-a7d4-4e920390ac9e_640x882.png 424w, https://substackcdn.com/image/fetch/$s_!Noqf!,w_848,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Ffea4f80e-df2e-4e92-a7d4-4e920390ac9e_640x882.png 848w, https://substackcdn.com/image/fetch/$s_!Noqf!,w_1272,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Ffea4f80e-df2e-4e92-a7d4-4e920390ac9e_640x882.png 1272w, https://substackcdn.com/image/fetch/$s_!Noqf!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Ffea4f80e-df2e-4e92-a7d4-4e920390ac9e_640x882.png 1456w" sizes="auto, 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 buttonBase-GK1x3M"><svg aria-hidden="true" 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" class="icon-noB79L"><g><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 buttonBase-GK1x3M"><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 icon-noB79L"><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></channel></rss>