Episode 26: If it Hurts, do it More Often (with AI)

Published: Wednesday, Mar 25, 2026 • Duration: 61 minutes • Season 1

If it Hurts, do it More Often (with AI)

Download MP3 | Watch on YouTube

Show notes: https://docs.google.com/document/d/1zoc-0L1o1Cyxtgatb9fN_ZGBGbshZIb9BTzwEj0C4Gc/edit?tab=t.0

00:00 - Introduction 02:00 - Automating AI Agents 04:20 - Auto Research Role 07:15 - Building CLI Tools 09:50 - AI Behavior Control 13:00 - Voice & AI Transcription 15:45 - GitHub Security 18:50 - Multi-cloud Management 22:50 - Disaster Recovery Testing 28:30 - Cost Optimization 33:00 - Terraform vs CDK 38:45 - AI Evaluations 44:00 - AI in Enterprise 50:00 - Ethical Considerations 55:00 - Kubernetes Strategies 58:00 - DevOps Myths 62:00 - Cloud Security Insights 66:00 - Closing Thoughts

Watch on YouTube

summarize "https://youtu.be/nze_Id-PpYM" --timestamps --slides

A technical conversation between two engineers covers hands-on AI agent work, tooling decisions, multi-account cloud operations, and how AI changes tedious platform tasks. The speakers trade notes on practical agent-driven development (Spec Ledger), overnight automated experiments (auto research), token/context limits, test strategies, infrastructure bootstrapping, security practices around Git/GitHub, and comparisons of Terraform-style tools and reimplementations. The tone is pragmatic: what worked, what diverged from plan, and which manual chores are now realistic to automate.

Slide 1

Quick session model and FOMO

They open by describing short, focused sessions: two-hour runs where a developer brings an idea, builds a V0 mock with static data, then the speaker adds a small working feature and shows a development approach. The speaker expresses FOMO about the common claim that agents can run experiments overnight and produce meaningful results while you’re away. The call frames the problem: many people claim agents loop until a global goal is reached, but the speaker hasn’t routinely left agents running long enough to see those returns.

Slide 2

Building a CLI with an AI agent

They walk through a concrete example: the speaker needed raw API responses (curl calls hidden behind a web UI) so an agent fetched endpoints and exported many curl commands. He documented the steps in markdown, pointed Spec Ledger at that doc and asked it to write user stories, then asked the agent to scan cloud code sessions to find usage scenarios and edge cases. The agent produced a full spec and a task list (about 40 tasks) including a Go CLI and end-to-end testing using VCR-style HTTP cassette replays. The workflow succeeded at implementing the CLI; the agent “completed the task very quickly, implemented the CLI.” Token and model constraints shaped the session: the speaker used Opus 4.6 with a 1,000,000-token context window, noted the session had consumed ~15% (≈150,000 tokens), and warned that once a context buffer hits ~20% they reset sessions because behavior degrades. The run exposed two types of issues: the agent diverged from the spec (putting code under internal/ so it wasn’t a public library) and it claimed E2E was out of scope despite being requested.

Slide 3

Guardrails, BDD and human input modes

They discuss strategies to keep agents on-spec: write BDD/Gherkin tests first so they act as acceptance gates and don’t let the agent stop until BDDs pass. Claude/Anthropic releases add remote/phone checks so you can leave long-running work and inspect status, but some API/service keys limit those features. Voice input is mixed: demos are fun but dictation often requires editing; typing helps the speaker formulate thoughts. Practical workflow notes surface (paper to-do lists still preferred for clarity).

Slide 4

Credentials, Git hygiene, and GitHub apps

They cover credential leakage and Git history: removing secrets from commits doesn’t fully remove exposure because bots and cached history can reveal leaked hashes; the correct immediate action is credential rotation. For automation on GitHub, they recommend GitHub Apps over machine-user PATs: apps have clearer, fine-grained permissions, install-to-repo identities, and use an app identity plus installation to mint short-lived tokens. The auth model is nontrivial (app ID, private key, installation ID → short-lived token), and orgs sometimes block rollout because visibility/permissions are tricky. On local credential tooling they mention AWS-vault (uses macOS keychain or pass on Linux) and the complexity for onboarding Windows users (WSL and GPG/pass setup).

Slide 5

Multi-account AWS, logs, and disaster recovery

For multi-account AWS setups, Control Tower (when enabled) auto-bootstraps an organizational structure—audit, security, centralized log accounts—and deploys stacks to forward logs across accounts; doing this manually is painful. Many teams end up plugging commercial observability (DataDog) via CloudFormation wrappers; that works but can blow costs because DataDog scrapes many endpoints and default CloudWatch metric granularity (≈15 minutes) can surprise people. They stress disaster-recovery checklist discipline: test restores regularly (RTO/RPO must be defined), pick a recovery strategy (pilot light, warm standby, full failover), and do threat modeling (“Is it a hack? Is it an intrusion?”). The speakers argue AI makes many tedious validation tasks plausible to automate—periodic restore validation and bootstrapping can be offloaded to agents so humans don’t avoid these boring but critical exercises.

Slide 6

Reimplementations, licensing and infra tool choices

They review recent projects and reimplementations: a Rust project re-implemented a Terraform-like execution engine that speaks provider protocols directly and stores state in SQLite/Postgres, producing usable results quickly though not yet matching mature commercial stability. Licensing and ethics arise: enterprises avoid AGPL/MPL ambiguity and some propose AI-driven re-implementations as a way to avoid restrictive licenses, which raises legal and moral questions. They demo Taco’s Guru, a lightweight evaluation site where criteria weights are configurable to compare platforms (Terraform, CDK, CDK for Kubernetes, etc.), and note Ops Zero AI and Oxit integrations. On Kubernetes bootstrapping and app stacks they debate using CDK vs. Terraform: CDK is more intuitive inside AWS/EKS blueprints and often gets new features earlier via CloudFormation/CDK L2 constructs, while Terraform modules are widespread but can grow very complex and slow. Final operational advice: prefer GitHub Apps for automation tokens, avoid pinned action patterns that let forks inject malicious code, and use automated tests and BDD gates to prevent agents from drifting off-plan. It completed the task very quickly, implemented the CLI. Is it a hack? Is it an intrusion?

Model: openai/gpt-5-mini

Transcript (auto-generated from YouTube captions)
Hey, hey, how are you, man? Good. Well,
I heard I heard you say this is going to
be a short call. Yeah, actually I just
realized like I'm I just jumped off one
call, but then I see that there was
another one back to back, but like I'm
going to be I don't know. There's just
too many calls, you know. Well, you're
busy busy guy. Well, I'm good for you
good for you. I guess you're spinning a
few plates, right? With Specular and
I didn't want to do a Specular thing.
Yeah, and like I think it would be cool.
Uh so for example, I did one 2-hour
session with a friend who
came up with a cool idea and then he
built a little mock-up in V0 with static
data and I asked him like is there
anything you want to build and then we
do a 2-hour session and if if all goes
well by the end of it I'll you'll have a
extra little piece of code on top of it
that works. Uh basically and and you
understand a little bit more the Spec
Driven Development approach.
>> Yeah.
I'm keen to do that. Like the thing that
bothers me, I've got real furor around
that whole like you hear developers who
say that like yeah, I've got some agents
going overnight and you know, while I go
for to the gym, that the the agents are
running. But
when I'm using an agent, it's just like,
you know, I ask it a couple of things
and then it stops. Have you managed to
like run the Spec Ledger overnight and
you come up with and and then in the
morning there's a
there's a there's a fresh new
implementation. Months ago they had this
like gas town spice must flow this Dune
references with like the ideas of
keeping agents in a loop if they stop
until the task is complete. Even lately
auto research is going berserk
everywhere about people like you give it
a
some constraints some experiments to run
and it iterates against those goals and
overnight you get like I don't know 45
50 experiments. I'm just making up
numbers here.
>> What's what is auto research? Sorry, I
didn't get that. Uh auto research is
from that ex-OpenAI guy and that the guy
who coined the term fine-coding. I am
afraid to mispronounce his name,
Karpathy. Andrej Karpathy. Yeah. So, he
he he released auto research and he said
like he does a lot of LLM fine-tuning
manually and finds optimizations based
on how he understands the algorithms.
And he basically formalized the process
and now he has LLM agents executing
this. And he says he already had a
highly manually optimized
stack and the AI found a lot of
improvements overnight. They talk about
numbers. I don't remember them like 30%
improvement.
>> This is the work where I feel like I'm
missing it. I mean, do do you do that
sort of stuff at Spec Ledger? Get the
agent working all the time or
I mean, if we continue a little bit
about auto research, it's very
interesting because people are taking
this from fine-tuning models to actually
building out features as well. And so,
you see a lot of posts on Reddit and
LinkedIn and everywhere from people
saying I took auto research and I made
it work on this like product feature.
Like
I think there was one famous company, I
don't remember the name, but they had
manually fine-tuned templates for their
template engine. I think it was Shopify.
Might have been Ruby, I'm not sure. And
they they had auto research
improve the performance of those
templates. So, it basically can work on
on all kinds of like it's it's it's a
framework. It's a bit like Ralph Ralph
Wiggum. It's kind of a loop to to get
that going.
>> Okay, I feel like I need to try this. I
mean, you mentioned
>> terms of your question that you asked
three times already, which is have you
set up agents to run overnight with Spec
Ledger? And I feel like I'm not like
Oh, man. Don't let me down.
>> I just told you this before that even if
I let if I write the specs and somebody
else builds it, it's not up to my
expectation. Even last night, I did
something really fun. There's like I use
a certain sauce and they have a CLI but
it doesn't expose some of the UI
features. You have to go to the web
interface to click on this then go there
and it's very annoying because I have to
click a whole bunch of buttons to just
see the error message. Plus it's then
beautified but it doesn't actually give
me raw data and ultimately I need that
data back into the shelf to give it back
to my agent. So to go and click buttons
and then to copy out data put it in the
shelf it's annoying. Yeah. So um
the agent or Claude Code really cleverly
found a whole bunch of curl endpoints. I
I think maybe from public API specs and
it does a lot of like it fetches my
credentials from the credential file. It
puts it you know does a curl with
authorization like bearer token and then
it finds the details but there are so
many curls and then sometimes makes
mistakes that I just decided hey I want
to capture all those curls and put them
into a CLI like a go lang CLI. And just
to come back to the point right? I
started with first documenting like some
markdown so that I could point agent to
it here's how we did this particular
step. These are the curls you do this
particular step. These are the curls you
do. And so I took that doc and I gave it
to Spec Ledger say write the user
stories right as an as an engineer or an
AI agent I need the command line
interface to you know trigger this
particular action and to go fetch the
logs and to get the the error messages
and things like that. So it's it's not
like GitHub actions something different
because GitHub actions CLI does this
beautifully right? So um so anyway I got
Spec Ledger to write the user stories.
Then I went one step further because I
had like like two weeks almost of me
doing this. So I went and I told it now
you have the user stories you have this
initial thing. Now go through all of my
Claude Code sessions look for this
particular API endpoint and find any
usage scenario where this was where this
was being used and what was the usage
what was the use case how was it was it
being used why was it being used?
>> That's pretty much what you said.
>> Look through your cloud sessions but
carry on. And yeah I mean like I like I
said I I am not using the automation and
often I have way too many tokens right
now. So, I'm like, just go ahead and use
as many tokens as you want because I'm
running out like it's the end of the
hitting the end of the week and I still
have like used only 40% of my tokens.
So, just like over 2 hours just go and
explore. And it found like three or more
usage scenarios where the AI agent was
like, yeah, your document talks about
these things, but there's a couple of
cases where the agent was trying to do
this and and it didn't work well with
the curls. So, it added those in. And
then ultimately I had a beautiful spec,
right? I had a wonderful spec. This is
the CLI. I have my whole design of how I
want it. I wrote the plan and there was
just like 40 tasks which like in the
past I would hit 80 tasks, right? And
after 80 tasks I would say 80 tasks is
too much. It will definitely go RE, it
will not go well. And I included E2E
like it uses Go lang so it uses VCR
cassettes to like replay HTTP because it
I'm I'm I'm working against an API
server, right? So, I'm running
end-to-end with
>> VCR cassettes I've never heard of that.
I've heard of HTTP test.
Yeah, I I think it's using like a local
HTTP test server, but it's replaying
responses from like cassettes from like
on on on disk snapshots of what the API
returns from what it observed in the
past. So, wonderful, right? 40 tasks,
VCR cassettes, cassettes, end-to-end
testing, CLI fully defined. This is
perfect, you should go to sleep, right?
And you should just let it let it run.
But, you know, 40 cloud takes maybe 30
minutes to implement this stuff, right?
Very fast. And then it finished the
first session. I think I did cut off
after the the spec, but I did keep the
same session because I'm using 1 million
tokens and I was only at like 15% so
that's like 150,000. And if I hit 20%
that's 200,000 tokens, then I'm already
at like
50 over 50% of my 400k even though I'm
on 1 million tokens, when I hit 20% I
usually clear it because even if you
have 1 million, if you go over 20% it
starts to degrade. Are you using Sonnet
or uh Opus. I'm on Max, right? So, I'm
on like on Opus 4.6 with 1 million token
context window.
Yeah, I got I got promo because like in
Copilot like Opus says 3x, so I don't
click Opus and hence I'm not getting the
good stuff.
Yeah, so so what happened then is it
completed the task very quickly,
implemented the CLI. I asked it to use
the CLI and it did great. Like I gave it
the original curl scenarios and it says
run these scenarios with the CLI and it
did everything and it worked
wonderfully. And then I asked any
divergence from plan. Oh, yeah. The plan
said I should put everything under
package golang directory, but I put it
all under under internal, which means
it's an internal module you can't use it
from other golang library as a library,
right? I said, "Okay, not a big deal,
but why did you diverge from plan,
right?" It says, "Oh, somewhere it said
something like it didn't put it in where
I expected it." I guess the agent
decided this was an internal utility and
therefore it shouldn't be an external
contract, therefore it needs to go in
internal. This is a diversion from plan.
It pisses me off, right? Cuz I give you
a very clear plan and for some reason
you do it differently. Then the second
thing is, "All right, now run the end to
ends.
Run the end to end, right? With a
clearly told you to build end to end."
Oh, yeah, "No, no, end to end were
marked as out of scope." What are you
talking about? It wasn't out of scope.
>> So, this seems to be a theme. We've
talked about this before where the AI
doesn't quite do what you want it to do.
So, are you getting Do you think you're
getting any
any better at controlling the AI from
going off piste?
>> Builds. I haven't built the the Gerkin
integration yet, right? What we talked
about BDD. Do you think Gerkin will pull
it straight? Hopefully, because it
should write them first, right? It
should write all the BDDs first and then
it should not stop until the BDDs pass.
>> sense. Like you you have your spec and
then you have have your your test BDD.
And then that should be the guardrails
going forward. Yeah, so that's the thing
that pisses me off and that makes me
reluctant to let an agent's team run off
like loose.
>> I see. I see where your your point is
that you don't want to make it run
overnight because you think it's just
going to go wrong anyway. Yeah.
Um,
but to come back to like Claude has made
a lot of releases that make it much
easier to leave your machine and then,
you know, check in and then kick it back
off.
Yeah.
I haven't really activated them yet, but
like you can /remote and then it
will it makes your your laptop
accessible through the app. So, you can
be on your phone and then you can check
if the what's the status Yeah, those
those features sound great. I mean,
unfortunately, my employer gives me
Anthropic via like an API key. So, all
those like quality of life features like
voice, mobile, all those features are
actually not enabled in my Claude code.
Yeah. Do you do you use voice yourself?
Yeah, um, I did it on the demo, right?
With my friend and I like it, but I
rarely use it because
to me, while I type, I formulate my
thoughts and when I speak, I will
misspeak and then I have to go back and
delete part of the Oh, that's not clever
cuz like I think some of them are kind
of clever enough to like
I think it's a very fine line.
>> respond or something. It's a fine line
between being like clever and and like
shortcutting and clearly seeing where
the user what said something and they
meant something cuz sometime it
misunderstands me because of my
beautiful accent and then it comes up
with this weird word and then it tries
to make sense of it and then it would
delete half my sentence, not Claude
code, but I've seen that happen in some
other tools and I was like, okay, Yeah,
the dictation is always one of those
things that never quite works very well.
I mean, like I was just thinking
yesterday like my as try as try as I may
to like optimize my my workflow. Like
when I when I write my to-do list I'm on
a piece of paper in the morning that
that just seems to work the best for me.
Like I want to dictate some ideas, but
and then they they sort of get lost in
voice recorder or they never
they never comes back out. So does that
Did I answer your question about
>> Yeah, I guess you did, but like
blame
I need to figure this out myself,
obviously. Can you hit your table? Hit
your table.
I I
Wow.
I got it on like a stand now. So I
listen to the feedback. Thank you,
whoever gave me feedback.
Well, it bothered you and honestly, I
also noticed your camera shaking last
time. I
>> Yeah, so I fixed
And
are you going to fix your your headset
or you going to get a road headset or
something? Like a proper What do you
mean? Like a proper microphone? Is Yeah,
like the road stuff is is pretty good
from Australia.
Australia?
>> No.
Oh, the weather is so bad here. How's
the weather in Vietnam? Just tell me
it's
>> You're the third person who asked me
this.
Tell me it's beautiful.
It's beautiful. Um oh yeah, thanks for
sharing those Reddit links about the
trivia thing. I always thought to myself
that
that one day someone's going to do a
sneaky attack with the
get orphan commits because I even I've
noticed that myself sometimes that when
I'm messing around the branches and I
delete a branch, if you know the commit
hash, you can you can pull stuff out
from
from the nether. Yeah, it's crazy,
right? It's like even even very early on
in my career when I pushed my
credentials to the to get up like
everyone does.
Not me. I'm not a fool. Oh, yeah. Well,
not yet then. So um
So then you learn very early on that to
remove credentials from a get commit is
not sufficient to to just like go and
rewrite rebase
>> Actually, I've never done it. So what do
you What do you have to do? Just delete
the repo and start again or what did you
do? You have to rotate your credentials.
They are gone.
Even if you go and rebase interactively
and rewrite history and push that,
GitHub doesn't garbage collect those
commits. So there are bots that are
watching for for events and they will
find those commits and then they will
delete the data. GitHub does check for
credential stuff nowadays, I do believe.
Yeah, and a lot of yeah, even definitely
if you push a personal access token,
right? It will immediately go send you a
notification like we revoked your PAT.
>> Yeah.
Cuz you pushed it. God damn it. That's
what I I wanted you to share the PAT.
Well, I'm trying to actually work it
Have you ever worked with GitHub apps?
That's the thing I'm supposed to do at
work, but it's quite confusing and I'm
just wondering
>> Yeah, GitHub apps are my favorite
>> Something weird about it. way to
interact with the GitHub because so
there's yeah, I mean GitHub apps are the
ideal way to manage automation because
you can create them inside your
organization as an app, keep them
internal, and then you can install them
into repositories, and there's no single
like if you if you say you use the old
way, which is create a machine user,
which create an account into your org.
>> Well, basically a PAT. What do you mean
Yeah, you could give your personal PAT,
but usually you don't do that, right?
So, you create a dedicated
>> people create automation accounts for
it, but yeah, that's
>> but then you have to buy a license seat
for it. So, you have to pay for that as
a license seat.
>> Yeah. And then you have to like find a
way to share access to that account. And
you have to log in to access the PAT and
control like if you even use this create
what's it called granular Yeah, and make
a long you have to make a long-lived
PAT. It's very very yeah, annoying. And
then if you use GitHub apps, you
basically can dedicate app
administrators within the organization,
and they can then modify and request
permissions, and then they can be
reviewed and applied, which is way more
better than a PAT. It is better, but
like for some reason I think maybe it's
just there's some disconnect between the
powers that be who administer this
GitHub Enterprise that I'm
it there's some weird permission problem
and I can't roll the specific Yeah, I
wouldn't want to be like the first time
I worked with GitHub
PAT like sorry, not personal access
tokens, but actual proper apps. I had
full admin, so I could see everything.
And I wouldn't want or wish upon anyone
to try and roll out GitHub apps without
having visibility in like what that
Yeah, yeah. I I hate that sort of like
dark pattern when you log in and you
think you you can see everything.
>> tell any anyone to say go and do this, I
need this permission if you can't see
what is exactly missing.
>> Exactly. And really this is this is the
thing I'm hitting my head on when I
Yeah, so I would recommend create your
own GitHub app and your own account and
play around with that to understand how
it works. I think the most important
thing to understand is that a GitHub app
has an identity and it needs to use that
identity against an installation to get
a token for then doing activity within a
repository. So the app identity itself
does not give you any permission. It's
the identity plus the installation
identity, so the app identity plus the
installation identity together that you
need to use to get access to a
repository. That's the only way that you
need to get um a short-lived token
from your installation. And and that's
basically the hardest thing to
understand because you got a app ID, you
got a secret key, then you have an
installation ID, and then you need to
get a a short-lived token
to to be able to do things. And it's
like That makes sense. Spea- Speaking of
this sort of authentication, so another
another thing I'm I'm working on is like
we we have an estate with like 50-plus
accounts. And uh previously I was being
quite happy with AWS SSO, but I think
there's been some advancements. I I
don't know. Have you ever had the I
don't know what the new AWS switching
user experience is like. I mean
do you ever use multiple sessions and
switch accounts?
>> I'm I've I've found something that works
really well for me and I have not been
following what are the new ways to do
things. I used AWS Vault, which is from
9 Designs, but they no longer
maintaining it. And it was moved over to
another maintainer, which probably is
scary about the last
>> I mean you assume or something like
that? Which one? Assume? No. I've heard
about other There was one famous one
that even the AWS people were using and
it was something It was the idea of like
you you basically have your credential
management as a platform and then you
just allocate it to users and then the
users could just very quickly switch
roles. It was a service, but then they
became full paid. It was used to be
free. It's something like Jump or
something. Yeah, yeah, that sounds
familiar. That's
>> But I never used that. I used AWS Vault.
I've been so happy with it because it
can even run as a demon. Like if you
want to do a Terraform apply, it can
refresh tokens in the background. It can
um
it can do a lot of things.
>> I I guess when I I got I have a bit of
PTSD when it comes to Vault. You know
It's not HashiCorp Vault.
>> It's not HashiCorp Vault.
No, no, AWS Vault is a Go binary that
uses your keychain on my quest Darwin it
uses your keychain. But if you're on
Ubuntu, you can you have to have a a
secure backend and the most common or
default one on Ubuntu is pass. Uh sorry,
pass, p a s s. So that takes a bit of
time to set up. So I just have onboarded
someone a while ago and he and he was on
Windows and I told him set up WSL and
then set up Ubuntu VM and then use pass.
And there's actually a couple of steps
to like set up GPG and all that to to
encrypt your your secrets backend. If
you're on macOS, it's all keychain and
no problem. You can you know finger
fingerprint authenticated. It's pretty
cool.
>> Yeah, I
I've I've used
like that before. I was just thinking
more AWS native solutions. And then the
other Speaking of AWS native solutions,
I've always found like when you have a
bazillion AWS accounts,
like grabbing CloudWatch logs from from
all those accounts and putting them in a
one central place. That's usually There
is some sort of like AWS pattern for it,
but it's just a nightmare if I remember
correctly. Like you have to set up
Kinesis. I can't remember what you have
to do exactly. And then most people just
end up setting up DataDog or or and then
paying through the nose for DataDog. I
was just curious if you have a go-to way
of collecting logs from multiple
accounts. Oh, huh. You know what happens
when you set up control tower on AWS
organization, it sets up this really
advanced um log like audit account and
it sets up forward like rules
automatically like like the moment you
activate control tower, creates like you
have your maintenance account, it
creates your audit account, it creates
your security hub account
>> so it like sets up like a
well-architected Yeah, it immediately
like uh deploys bunch of cloud formation
stacks all over the place.
>> I don't think I have access to that in
my organization, so that's not cool, is
it?
>> Yeah. Um
and then it creates a centralized log
account and it and it sets up the all
the forwarding for it as well. I
remember that it I had to like figure
out how that worked to kind of disable
things because it was costing money and
like I I don't know there were some
things, but like I was impressed by the
amount of configuration it did to
basically fetch all of the logs and
across all of the organization accounts.
It's not trivial when you do it
manually, I must say. I've I've done it
in the past and it was pain. So when I
when I onboard like when I have
Terraform onto an org, I usually have my
Datadog integration module, which I it's
a wrapper around the cloud formation
stacks that Datadog maintains because
they don't maintain Terraform modules,
they give you a cloud formation stack.
>> Oh yeah. So what I did is I parsed out
the stack the stack variables into
Terraform variables and I can invoke the
module and control all of the services
that are enabled on the accounts like
disable everything by default explicit
opt-in because if you have a Datadog
enabled on your AWS account
>> to pull the metrics and it starts to
scrape everything and then you get a
huge AWS bill because Datadog constantly
keeps talking to those endpoints.
>> One thing that we ran into work is that
the the SLA or whatever for for the
metrics is actually really slow. I think
they like it's about 15 minutes by
default or something. So like if you
have it in production That's CloudWatch.
That's like the default AWS um uh you
have you can you have to go like you
have to go and say I want more
aggressive, but then you have to
acknowledge that it will cost money.
>> Yeah. So the 15 minute one is default.
It's not a DataDog problem to be clear,
but it's but it ultimately when you set
up DataDog on on AWS you see this
problem often like why why didn't we see
this problem earlier? Like well, this is
the default I'm afraid the 15 minute
lag. Yeah. Yeah.
Yes. Okay, so so basically what just to
summarize what I set up a multi-account
set up for AWS you probably you want to
set up control tower to bootstrap it and
then I mean if you're happy to live with
that control tower structure. It
depends. So I mean it will it will set
up your security hub account. It will
set up like Yeah, all the defaults.
So that everything gets aggregated like
your your your findings from all the
accounts get aggregated in like a
centralized dashboard. That's really
nice. I mean that's I haven't done that
for the last three or four years. Yeah,
I'm done with it so I don't know what
where they are at now. What they are
doing now. Like like many things
in the cloud is that cloud sprawl and
then every every organization I work on
it like it gets a bit crafty after a
while and I just I just wish we could
have
a firm all accounts and or firm all
organizations where we just
move everything to new org but like I
guess well, also at the same time I've
worked in a number of enterprises that
everyone is absolutely allergic when you
say something like migration. Everyone
goes no, no, we're not migrating
anything. This is a funny thing when I
had discussions about platform with some
people and they were like okay, so next
month we'll finally have everything
nicely like migrated, right? And we'll
have everything in order. And I'm like
most likely not cuz cuz there's like or
there's this discussion about like we
want to go towards this, but we're in
the middle of a migration. So if you're
going to do this it's going to like
cause a migration on top of a migration.
And there's this tendency to be like
don't do that. We going to wait. And I'm
like, it's always like that. Like,
you're never done. There's always
something.
>> a thing that I wonder if there's like a
culture in an organization which says
like that's insane enough to go like,
"Hey, we're moving from AWS to Azure.
Like, and we're doing it over the
weekend. And all our data is uh 2
terabytes of whatever our data is going
to be moved." And then And then every,
you know, week or month they can almost
do that again and again and again
because ultimately people get calcified
in whatever hosting platform they're on.
And they never can move.
>> DevOps mantra? Like, if something hurts,
do it more.
I've never seen it myself. I've never
seen it myself. But like, if you don't
like, just the practice of restoring a
backup and testing a backup. Like, how
many people restore a backup? It's so
rare in reality, in my opinion, um that
people have the rigor to just Just
shouldn't say that out
I know. Hopefully no one at work is
watching. Hopefully no one at work is
watching. No, like I was I mean, because
the cloud gives you so much sense of
security, cuz we're not doing the
on-prem data backup tapes that we have
to like constantly restore. We kind of
trust AWS backup to work. But they have
very clear like well-architecture check
marks. It's like, how many times are you
restoring your backups? How many times
are you restoring a backup in a
different region? How many times are you
That's all part of the checklist if you
want to do the well-architected. They're
very very very long checklists. And I'm
sorry to think like a cool startup up
with idea would be like validating that
restore process, you know, like There's
quite a few.
>> Like, when my my friend was going
towards becoming like an AWS partner
with with an organization, you have to
pass those all those checklists. And
there was a company he found that that
did everything. So, you just hook it up
to your account. It goes and find any
vi- violation, and then deploys a cloud
formation stack to like rectify it. And
then he said the moment you stop paying
or deactivate the account connection,
all of the cloud it rolls back all of
the cloud formation stacks. Like you
can't use the the platform to like
become the compliant and then disconnect
it because it kind of like rolls
everything back and you lose all of the
things. So he was like, "God damn it,
like I spent so much time." Because he
was trying to reverse engineer the
stacks and snapshot them so that he
could redeploy them and things that I
don't know.
Just to do it quick, but like there's
quite a few companies that That's kind
of a dark pattern. I mean
Maybe with AI today would be so fast to
do this kind of thing.
>> exactly. Like you could give a role to
this restore okay company called restore
test and maybe a subset of the
architecture and data somehow. Just It's
very very difficult with AI now. Because
when when you look at disaster recovery,
there's so many different strategies
that you can use that you can do
depending on your RTO and your other
like requirements. Every service has
different ones. Like do you want
point-in-time recovery? Do you want
constant live streaming? Do you want
complete failover? Do you want pilot
light? Do you want to pay how much you
want to pay?
Yeah, so so AWS has these white papers
because I had to do disaster recovery
setup and they have a very detailed
breakdown of like four strategies. Pilot
light, live like Yeah, yeah, yeah.
active passive type of setups. And
there's so many scenarios they meant to
protect with and the white paper is
basically don't choose any strategy
unless you have well defined your RTO,
your RPO, whatever. And also what are
your attack scenarios? You can't build a
disaster recovery plan if you don't
define what are the things that you're
protecting against. Is it a hack? Is it
an intrusion? Is Yeah, you need to do
some threat modeling.
I love I love this thing that I just
talked about.
>> That's the white paper. Yeah. But like
what I'm trying to say here is like
restoring stuff
test a lot of that is quite tedious,
right? If if AI can do
can run through this exercise without
people manually cuz like no one wants to
do a restore because it's boring as hell
and tedious.
But it was actually a very fun exercise
when we did it. It was really fun. Well,
you you enjoyed but like that's probably
just a one-off thing. It's like you
know, I'm doing this for the first time.
Yeah, but it's very important because
when we did it we're like we had a plan
and then when when it happened we we
simulated it in in non-prod but then we
actually did it in life as well.
Um
it was like
Uh yeah, it's very clear what my plan is
but then when you're actually doing it
there's this all additional stuff that
were like, yeah, but am I absolutely
sure? Oh, wait a minute. I need to
double-check that. Oh, no, this process
is actually very cumbersome. Like it was
designed like this and I have to do this
thing but it wasn't clear to me how to
validate it. So doing it live, even if
you have completely automated backup
restore procedures,
um the actually validating the the plan
and the buttons you click is so
valuable. Yeah. Like if if we could just
if in light of this AI error that we're
living in right now, if you could just
list all the tedious things that we've
that we couldn't really automate before
like backup restore testing. If we could
just list that and now and basically
prioritize them in a sense cuz now now
these things are possible without dying
of boredom to basically get AI to
validate your backup or to bootstrap
your your AWS account. I mean, that
let's be honest like bootstrapping an
AWS account or organization with control
with with the with control tower, did
you say? I forgot the name of the
product already.
>> tower from AWS.
>> I mean, can it even be driven by
automation actually? These are the
things that
>> So this is where I'm not up to date
because there's many ways to bootstrap
your AWS account. I I mean, if you put
in place or your organization, if you
put in place control tower, you already
have like a first step but then you can
also hook it up with way more things
like control tower has landing zone and
originally when I tried it out 5 years
ago it was horrible. It was using
because the account provisioning was so
it took so long so much time and you
couldn't even specify what's the VPC ID.
Like imagine that you have this
requirement that every VPC ID uh cider,
sorry not ID but cider, is separate
because you need a transit gateway to
connect everything or interconnect. You
couldn't do that with control tower
landing zone. You you had to define the
cider lanes of the VPC that was going to
be provisioned in advance in the
template. You couldn't say like when the
account gets created go here and
allocate a cider range and then create
the VPC with that cider range. I can see
there's a lot of some automation gaps.
Like one thing that's always frustrated
That was 5 years ago. I'm pretty sure
they already fixed some of that stuff. I
made a video about this. Like just
closing an AWS account.
They also fixed that a lot.
Before it was not possible there was no
API but they added APIs and everything.
>> Yeah, now they have APIs but still
there's like a very like it's weird.
Like the the account is like Yeah, the
recommended practice But it's still
there for like at least a month or
something.
Yeah, the recommended practice for years
has been you keep a pool of accounts and
you you allocate the account and then
you release the account once you're done
with whatever project that needed the
account. There's even a whole
release the account open source. Not
deleting it. No, no. So you keep a pool
and you have a
basically you allocate the account to a
project, provision it and then when it's
done you basically new call of it and
you release it back to the pool. So you
never destroy it. The account never gets
created or That's been There's an
There's an open source framework that
does that for you. It's been around for
like I don't know 8 10 years and it's
still one of the most popular ways. Like
I talked to someone he says like oh I've
been working on like account pool
mechanisms like just a month ago and I
said oh I remember there was this
framework he said yeah that's probably
the one I'm using and it's still the
same one. But what's Why not just nuke
it and create a new account in the org?
I don't understand. You just mentioned
the account stays around so long. I
mean, it's always been problematic to
close the account. And Okay, so this is
kind of like what I'm working on.
>> Yeah. Yeah, okay. Okay. By the way,
yeah, thanks for sharing that thing
about State Graph. It does look I'm
really I'm really impressed by State
Graph's
landing page. It's so clear what what
it's doing and how to use it and what
the what you need to do to start
you know, how advertisers value and
things like that. Like This is really
good. Yeah, they they've been doing a
lot of demos
talking about
what they're trying to achieve. I was
surprised that because I thought the
whole idea of State Graph was was to go
towards a Terralit so that you can
resolve all of your dependencies
within a single state, but they added
multi-state support. And I was like,
"Oh, it seems you changed your mind."
They said and they said, "No, no, no,
that was always the plan. The ability to
have multiple state within the
individual state and and be able to plan
everything without mocks because if you
do that in Terragrunt, you're going to
have to specify output mocks
and things like that.
Have you given it well? I mean, you
mentioned it cuz I mean, I'm guessing
that they want it released, right? It's
There's It's been
It's been released.
Like last week. Okay. The blog doesn't
seem to reflect that, but whatever.
>> because there was a release. I think
they released it just before QCon, but
like I don't know if they made it open
source, right? They they said that they
they couldn't figure out the licensing.
And this is by the way some very
interesting article I saw today this
morning about today there's this
website. It's a joke, I guess, and I'm
not sure it's for fun, but what they
what it does is like
don't like the Pesky license? Just let
AI do enough change so that you you make
it look like it's a different project,
but it's and you can relicense it under
your own license that you want. So, they
said this is like in the enterprise
today, you don't want to get affected by
AGPL a fair
uh GPL that basically is very
and GPL in in itself like whatever it
touches you're supposed to then open
source and so on. So people enterprise
are very much against it. So any project
that's GPL or AGPL usually is a no in
enterprises. So you don't like the
license? Great. Here's a workflow. Just
fork it, make it your own license and
just run it how you want.
Well, I just get AI to re-implement
everything I suppose. Is that what
you're saying, right?
>> Yeah, I I can share the the link. It's a
very funny one because I was having this
discussion
um with someone. Basically, honestly,
there was this project and I can read
the source code because it's MPL Mozilla
public license, but I can ask an AI to
rewrite it in a different language. And
where do I where where do I need to keep
the license? How do I need to keep the
attribution if I'm basically rewriting
it in a different language like I guess
Yeah, I I've seen that.
>> AI is reading all the algorithms. I
mean, that that's assuming big things,
right? Because I mean, we've been
chatting about it. I mean, this is what
your spec ledger project is about in a
way. It's like I don't think people have
figured out how to ship with AI, really
have they? So like You think that the
ideal pointing an AI agent to an
existing project and asking it to
rewrite is not I mean, it's possible.
It's it's it's bold talk. I mean, it but
it's it's talk. You want me to share the
link?
>> I don't think anyone's really done that
yet. I mean, it's just hypothetical at
this point, right? At the risk of
causing a
shitstorm, you just showed state graph,
right? So let me just share my screen.
And that's not even open source. Maybe
it's Hold on, screen. Entire screen.
It's going to It's going to You can see
it, right? You can see state graph,
right? Yeah, yeah. I was showing that
earlier.
>> So you see this the the landing page.
Yo, yo, yo, yo. With like sequential
allocations versus multi-state and uh
see the difference. It's all SQL.
>> I just love that landing It's so good.
Now look at this. Well, he changed it.
Maybe somebody complained. Well, first
what I like what I think is funny, I
didn't even realize you need to do
squares with the little dots inside.
Well, there's dot pattern.
I thought this was very funny. Oh, this
one is very similar.
>> cop- copying a He changed it a little
bit. Before it was way more
>> page is one thing. Copying
an actual
uh Oh, no, this thing works.
This thing works. It works?
>> Yeah, yeah. I actually integrated like
the CDKTF and you see stack ledgers in
there as well. So, I actually did the
CDKTF test generator and then I run all
of it all of these um sample So, what's
your relationship with this project? You
just know the guy or something?
>> I because Okay, so this this is
basically doing the same thing as State
Graph, but it's in Rust and it's open
source. And it's just like he just
>> What? The idea is very interesting
because he just re-implements the config
parser reading the original Terraform
configuration and then generates the um
and then invokes the Terraform providers
directly. So, he implements the the RPC
protocol that Terraform talks with the
plugins, right? So, you have the Go lang
Terraform talking to the protocols and
um it's
it just invokes the Sorry, the Go lang
execution core of Terraform.
Instantiates the providers and
communicates to them with the protocol.
So, this thing does the same thing. It
It instantiates the protocol Sorry, the
providers and then it communicates to
them through gRPC. So, every CRUD action
that you need to do for every resource
configuration just initializes Yeah. It
just calls out straight to the provider.
>> Okay, but there's also like a database
aspect to it. Yeah, so this thing is
like State Graph. It basically uses
Postgres as the uh SQLite as a as a
state storage. So, it doesn't support
like It doesn't do the remote backend
setup that you can do with S3 um or or
other of those
>> Is this
plagiarism or I'm not too sure how to
Yeah, this goes back to the to the
original question. Like this is not even
looking at the source code. This is just
looking at the at the landing page and
duplicating the capabilities. And when I
talk with him he says the main reason is
because they didn't have a plan to open
source it. And I really like the idea.
And I I didn't think it was that hard to
build. And if you if you can tell it's
all AI. And you said like all that's all
like bold bold talk about AI rebuilding
products. It's a fact, okay?
You can rebuild a complete product. Have
you Have you Have you tried this in
anger? Is this going to work?
>> I did I did work it. There was one thing
that I discovered and I'm not sure if
they fixed it.
>> Have you actually compared it with State
Graph? Oh no. I I Okay. I mean, honestly
State Graph's been worked on in private
in in in um
how you call it stealth mode since
September. Okay, so a team's been
working on that for almost half a year
or 8 months. I cannot tell that this
project which is maybe 1 month old or
like a month and a half old is anything
comparable in terms of like stability
and features. But the fact is that it
works. I was able to clone it. I was
able to use it with Terraform JSON. And
I was able to Terraform sorry, Oxid
apply my Terraform configs. And it was
creating against the Terraform provider.
It was doing all I guess I guess this is
the difference between
a commercial product and something that
you can just clone out and give a whirl.
Yes. So so so you you are right in a way
that you that like that is a pattern
that people often say. I think there was
a post about it recently, which is
people think that they can just rip it
and then move away from the
well-established and tested library. And
they replace it in 30 minutes. And then
they spend months fixing bugs and and
basically supporting it. Yeah, so So
this is the thing I wanted to because
you you diverted me. You said it's it's
it's all it's a bold claim, but it it
holds no reality. But this is the the
the website which is I think a bit of a
a joke.
Um and honestly I think they use the ant
track thing.
>> News. I think I read it.
>> Yeah, it's funny how they like put a
[ __ ] smear on it.
>> it is slightly I I mean
It's hyperbole.
>> I actually want State Graph to succeed,
but like when I look at the pricing,
when I think about the enterprises that
I work with, it's really hard for them
to adopt um
a proprietary product. And uh what How
do you pronounce this other project?
Oxid or something?
>> Yeah, Oxid. I should put the State Graph
on on here, like I think. Like Oxid is
actually even though it came later and
re-implemented State Graph or something
like that,
um
it actually stands a a lot better chance
of being adopted because
because people the you know, the
engineers on the ground can just clone
it out and try it out. There's like
So the person that built Oxid, um he
told me that he has a couple of like
fintech clients that are looking to roll
this out across their organization
because they have such a big Terraform
state and Terraform is extremely slow.
And they are seeing like a 10x or you
know, 20x improvement Yeah, I mean I've
had this problem so many times and this
this The trouble is is that none of my
my projects in GitHub
um I don't think will give this a proper
whirl a whirl, like you know, like no
one has no one has a private project
that that replicates
um you know, an enterprise.
You got rid of the ant track thing?
>> up, do they? Unless I have my home lab
my home lab somehow expand dramatically.
So one of the things that was missing
was this the the context exposed to the
the parser, the language parser was
missing these internal mod like um
path uh modules for this type of stuff.
So, I identified there were several like
in in the context it's missing the path
module, the path root, the path uh
current working directory, and the
workspace name. So, those were a couple
of things.
>> hate those those sort of like And this
also was not implemented, but again, I
opened this issue February 18th. So,
maybe they've already implemented
because I don't think anyone can use
this if you don't have these functions.
Right? You need these functions like
file, template file, dirname. Like these
were all missing on the initial version.
So, I'm not sure if he actually fixed
that. I haven't really looked at the
latest commits. Yeah. And Taco's guru,
you're going to have you said you
mentioned you're going to put
you're going to put State Graph there.
You're going to you're going to put
Oxide there, too? Yeah, oh, another
thing, he has a platform called Ops Zero
AI, which is like an agent um
driven um like for Terraform. So,
uh he said that he already has Oxide as
as a back end, like an execution engine
integrated there. So, this is new
website again. My gosh.
>> So, he when I told I showed him Taco's,
he said, "Why don't you put Ops Zero on
there?" Because Ops Zero is also
providing that. So,
so I think both Ops Zero and Terra team
Sorry, uh State Graph should go on there
uh and show like the cost. Cuz like here
it says 10,000 resources at 12K.
Um no idea about like what's the
Is there any because the licensing is
usually on either the team size, right?
If you reduce it, you can see Open Taco
is by user. So, if you have a large
team, Open Taco quickly becomes way
expensive uh most expensive if you go
over 50 users. And then you have the
then you have the like number of
resources. So, in my organization we're
around 25K.
If we if we look at State Graph pricing,
they they say 10K. So, I'm already at
like 12, which is what $1,000 a year?
$1,000 a month is not that bad. I'm just
looking at your your tacos guru repo
here. Like you must
I mean you said it was AI generated. I
mean what you have or you have the
evaluation criteria. Yeah, it was fully
vibe coded. Zero spec ledger even. But
can I take over the presentation here?
Yeah, yeah. So I just I think I'm a
little bit confused here.
So you basically rate the fact that it
has no Kubernetes requirement as higher.
I thought you
>> You know what? Yeah, right? No, why? Why
would you need a Kubernetes cluster to
run your tacos? Yeah, yeah, yeah, but
it's it's confusing in the sense that
you might you might use your terra you
might use Terraform to bootstrap
Kubernetes. I know what you
>> Yeah. So you got like but like someone
might look at this and say I
>> Yeah, yeah, yeah, no, no, the way that
it's formulated it's a bit weird. Um
but the idea is no k eight means
basically disqualifies uh I think cube
terra terra cube, which is a which is an
open source that you can run on but you
need Kubernetes, right? You can't you
can't run it without Kubernetes.
>> this is this is quite opinionated. Like
actually on the topic of Why would you
need
Yeah, I I I get you. I get you. But it's
No, that's why the weights are are open,
right? No, no, no, but look look if you
don't agree with this weight, you just
reduce the weight. Yeah, okay, okay.
That's why the weights are all
configurable. Really? That's clever. You
go to tacos guru. If you don't agree
with the weight of this particular item,
it's opening you're only saying it
Oh, so it's telling you in the window.
Yeah. That's really clever. And it's
it's affects the the order, right? If
you say like for example The order
doesn't seem to change here in the top
right.
>> tofu. Change open tofu weight to zero.
Let's say that you don't care about it
being Terraform or OpenTofu. Immediately
see ACP Terraform go up. Then change CDK
TF to zero. Again, CD ACP Terraform goes
up. It went up three three spots.
Terraform went down one.
Yeah.
>> You need to put this in the You need to
put this as a arguments though on the on
the URL.
>> if you go on mobile, it tells you a
little bit more.
And even also on the I really like that.
Did you get this Did you come up with
this idea yourself or you you copied
another site? I think I need to credit
all my ideas to my principal architect
in in in uh
No, like basically what happened is I
needed to evaluate platforms to migrate
to and I had to establish criteria that
mattered to me. So, based on my story, I
told Opus like, "Okay, this is how we've
started. This is how we evolved. This is
what we have established. This is what
matters to us. CDK TF we use heavily, so
it's important." And it came up with a
bunch of criteria for me, right? And
then it came up with the with the
formula to to calculate the score of
each platform using weights. I think I
might have suggested to use weights,
right? And then I I I presented a
markdown document with with the weight
calculate like the weights to each
criteria and somebody said it would be
nice I I said to them, "Do you agree
with these weights?" And they said, "It
would be nice if we could change the
weights and see how it impacts the
score."
>> Nice. Nice. And so I went back to Opus.
I said like, "Hey, we want to make this,
you know, an Excel spreadsheet is going
to suck. So, I'm going to like you might
as well build a website and then and
then came up with all of this."
>> Well, I love what you've done here. It's
really good. Uh
the I we we I remember the like
we play these agile games back in the
day when you were in the office, you
know, play points. Uh where you would uh
poker sort of have sliders in a in a
sense. You'd ask your client, "How
important is this to you? How important
is that to you?" You should see what
what Opus did with um ThoughtWorks
um Tech Radar, by the way. I I gave it
the original Tech Radar open source repo
and I told it I have analyzed my
internally technology, right? I I I gave
it access to look at the GitHub. I
haven't posted it uh but I kept it
internally. So, and then I said, "Yeah,
but this is very nice to see the Tech
radar and why the dot is there and we
can click on it and we can see a little
bit of a discussion why this particular
technology is here because we haven't
implemented across most of our
repositories." Cuz you're on a VPN. I
don't know. Okay, that's a problem.
You're you're planning your your holiday
to to Spain. It's definitely an
Okay, that's a bug.
That's interesting. So, so basically I
gave Opus the GitHub repository and then
I was like making it to give a
breakdown. So, whatever tech radar item,
there's several criteria for this item
to be there like in that in that in that
band. And I wanted to show that
technology being used in these projects
and these repositories. So, it created
another page. When you click on any dot,
it will then show like the bat like the
number of reports this this technology
is active in.
Cool. Cool. Cool. Cool. Opus again just
expanded on this with the ability to
give like a slice and dice kind of
experience of
Yeah, I like what you've done there. I
should probably use AI for more
visualizations like that. And it's hard
to do it like you can try to create a
slides or you can try to create an Excel
spreadsheet or you can try to ask it
with the color X color draw to to draw
some diagrams, but the real power, even
the one that you shared earlier when you
look at like
and we never we only did the top row of
like common agent like bad practices,
when you hover every single one of them
gets like a little interactivity. Like
this type of stuff is so much easier to
build with um
with with AI. Yeah. Yeah, I need I need
to build something like this.
Uh
for I mean this I feel like
when I interact with my open claw, half
the time I'm just I'm just asking like,
"Should I buy, you know, this product or
should or is this product better?" And
half the time when I talk with AI, I'm
trying to evaluate some options. So, it
would be great
to
have AI just flesh it out a bit. I
didn't This was also not my original
idea because the
um
Brickman, Evgeny Brickman from Grant
Works, he posted a blog on uh on
LinkedIn saying that he was evaluating,
I don't know what it was, uh different
backup uh storage arrays for his home um
system. And he was waiting them against
pricing and features and whatever. Uh I
don't I'm just making up what exactly it
was, but it was something like that. It
was something like backup solutions. And
he had said, "I I used AI to create a
little like a comparison chart and the
ability to modify like my criteria." And
And before I started on tacos.guru, I
did go back and search for his blog
post, uh which was on his personal blog,
and then look again exactly what it was.
But um
I didn't remember it exactly right
because it was a little bit more limited
than what I wanted. So, I did then just
take the idea and and and build uh
tacos.guru. So, so yeah. Yeah. Uh quick
side note,
if you were to if you had the
requirement from a client to to build
out Kubernetes, would you use Terraform
or to Yeah, I think so.
>> bootstrap it? Yeah, yeah, yeah, yeah.
You wouldn't You wouldn't go CDK? I
mean, CDK is better fit for AWS
constructs, right? AWS
uh
services.
>> I have to say
>> There's the EKS blueprints repository,
which uses AWS CDK,
but it was built before the Kubernetes
CDK. So, there's a CDK for Kubernetes,
and it automatically creates like the L1
bindings and then creates L2s, and it's
really nice.
Um what that means is that somebody in
the EKS blueprint repository kind of
wrote some TypeScript interface to
represent a Kubernetes manifest, like
what are the mandatory fields that you
need to do. Um which is very rudimentary
and that's how they they bootstrap EKS
clusters with like very rudimentary um,
representation of what Kubernetes
objects are like compared to CD gates
which automatically
builds uh, a type script representation
of every open API open API schema in
Kubernetes. Okay, so this is this is
fully EKS but but you would still use
Terraform, right? Or Yeah, so I I I
really like CD gate for Kubernetes to
manage my Kubernetes deployments but
like not many unless you're in the CD
gate ecosystem it's probably not worth
it, right?
Oh, okay. So you use this to manage your
deployments but not but not the
>> Not the actual bootstrap. So what I did
3 years ago was I implemented
um, clusters
using some of the EKS blueprint patterns
which is like they have like builder
pattern and other patterns to to to
build with AWS CD gate. Um, but I didn't
feel it was such a great experience. It
became it was not that good. Um,
Terraform modules are very well
established like the Terraform module
for EKS is is well established. Um, I do
not like it. It's way complicated. Um,
but it's way more widespread. I mean
>> Okay, so so if you're deploying
Kubernetes on
on AWS you would use this Terraform
thing. I mean I I wouldn't, right? I
mean I would I would land in a team that
does it and I would tell them I think
I'll I think I used this in the past and
I thought it was
really heavyweight but It is very
heavyweight and and it's impossible to
support every because you know, EKS team
keeps adding features like now they have
completely managed add-ons.
Yeah, I'm surprised you
you you didn't gravitate to using CD
gate for this. I mean it's just I guess
it's just an experience. My goal with
Sarah constructs was to port EKS
blueprints for AWS CD gate to Terraform
CD gate to get rid of the stupid module.
So, my goal was to build and I have
already got EC2 instance profile.
Um I've got load balancers, everything.
The only thing I don't have I have auto
scaling group also, but I don't have
um
No, I think I don't have auto scaling
group. And I need auto scaling group to
do um self-hosted um configurations.
The thing is the AWS CDK L2s for EKS
depend on every single EC2 um every
single load balance like it depends on
so many other modules that to get to
that point, I have to port everything
else.
Um but I told you that I like
>> with the CDK, surely. If all these Yeah,
I think so. I I think so because
honestly they it's way more intuitive
and it's where the the EKS product team
is probably contributing. Like they
they're adding the features into
CloudFormation and then they're adding
the feature into AWS CDK. And then
somebody from the community needs to add
it into Terraform AWS EKS, which becomes
more and more bloated uh and is an
absolute nightmare, but for some reason
still has 5K stars. Yeah. Yeah, I mean
he's This guy's done a few things. I'm
trying to remember all the things he's
done. Um he wrote um the three command
one which which is which is a which is a
great example of why you should use CDK.
Exactly. And the thing is when when he
was doing YouTube streams on on working
on this Lambda module, I showed him CDK
for Terraform. I showed him Terra
Constructs. I showed him complete
bundling solution with complete IAM
permissions preset and he said he really
liked it, but he wouldn't spend any time
on it.
Well, I think he's made a name for
himself for Terraform. Yeah, he also
shared he also shared Terra Constructs.
>> Serverless TF as a newsletter, yeah.
Yeah. No, this was Yeah, he was building
Serverless TF and I was like, "Why would
you do that?" And then he he built
Compliance TF, which I think makes
sense. He He's He's built it for a year.
He wants to like 12 or I don't know how
many conference talks. It's to you you
need you can select what sort of
compliance you want and then it's going
to bootstrap the modules uh his
Terraform modules and then it's going to
apply the compliance rules and it's
going to make make sure that they are
compliant to your compliance
requirements. This actually sounds
useful for at least one thing that I
used to work on. Yeah, so for me
personally
I feel this is a waste of time and you
should you should use aspects and you
should use CDK aspects. Okay, oh yeah.
Oh actually that's one thing I need to
work on today. I need to I need to prove
that that some level two level three
constructs were deployed in certain
stacks. Oh yeah, you asked me last time.
Yeah, I think you we talked about it but
uh so if I can if I can produce a bill
of materials to say that this construct
is here, that's what I need to do. I
mean compliance half the time it is
about
giving a nice list of a bill a bill of
materials as I like to call it.
I mean maybe I'm but I am
I am uh what do you call it Trivy
fuzzing everything here but yeah, a bill
of materials I feel is is the critical
concept. Okay, cool man. We didn't talk
about a Trivy hack. We did. I mean You
mentioned about the fork. No, we you
just quickly short mentioned that you
could access fork. I mean that's how
that's how uh Unleash itself. I mean Oh
man, it's insane to know. Sorry, I
I can't really share
WhatsApp, can I? Do you do you have a
link to that? Yeah, maybe we can at
least put a link to it. Yeah, so the
most interesting
um
I I I should put the link there but the
most interesting breakdown I mean first
of all was three three
events, right? The first one at the
beginning of March where the
claw bot like the hacker bot, the bot
that was like a claw bot that was
configured to find vulnerabilities
basically
um proved a vulner like a problem with
the way that the Trivy GitHub workflows
were set up. I mean it it got some
compromise into the Trivy set up, right?
That was the first event.
Um
They had to like erase
maybe the cloud bot hitting five or six
different targets was to to hide the
actual Trivy
um foothold because I think at that
point they got a foothold, they got some
credentials, and they got um access to
Trivy, right? And um
Trivy had Trivy had nuked the repository
and had to re- re- re-enable it. Like,
Trivy was gone. The GitHub action was
gone for for a few days. And or and
people were like, "Oh, my Trivy things
are failing." All of it's because the
repo was nuked and things like that,
right? Oh, my god. Yeah, and then the
second thing that happened is people
started to realize the binary had
compromised, and it started stealing
secrets. So, anyone who had run the
Trivy action had exfiltrated their
secrets. Like, it had several paths to
identify Yeah, but the people don't
understand the impact because the Trivy
binary and the GitHub Trivy GitHub
action and that scanner live in the
Datadog agent, live in the Go Teleport
privileged access management repository.
It is so widespread across the community
that all of these repositories should
step forward and highlight how they were
affected by the hack, if at all. Yeah, I
mean, I don't want to mention names, but
I know some big enterprises use Trivy,
and I just don't know I don't want to
even think about what the hell's
happened there.
Yeah, so it's Luckily, I did I did I did
search around GitHub to see if anyone in
my org was using it, and no one was
using it. But, we don't use containers
very much, thank god. It's Trivy doesn't
scan only containers. It was a
replacement to Terraform scanner
uh after Terraform scanner was acquired
by I don't know, was it Snyk? Well, I
just did a I I did a GitHub search for
Trivy, and we don't use it, so. Okay.
So, so it's used for IAC scanning, it's
used for virtual machine scanning, like
AMIs. You can run on your Linux Linux
machine for file system it's downloaded.
So,
>> I have always wanted to deploy it.
Uh but I've used it.
>> Everyone's been quiet now. Like, no we
don't use Trivy. No, I I I wanted to
deploy it and it's I have it on some
Jira tickets where like we should use
Trivy for this cuz we pay for snake and
crowd strike and all this stuff and then
and then I'm like, why, you know, it we
can get Trivy. Trivy is good.
But like, okay, let's let's run through
this a little bit. So, okay, say there's
a GitHub action and it steals
um secrets inside the GitHub action flow
where the Trivy scan is happening. I
mean, usually A, they're short-lived and
B, like what would you even do with
these secrets? Cuz a lot of the secrets
like what can you think of a well,
something that it's looking for like an
Anthropic API key or
>> mentioned that you still use PATs. Yeah,
but aren't PATs Oh, yeah, I on a GitHub
in GitHub PATs are pretty long-lived
usually, aren't they?
>> Yeah.
And then the second thing that what I
see that that actually connects very
well what we were saying earlier with
GitHub because
>> PATs. PATs is like a hole in the system,
isn't it?
>> Yeah, but also I don't think
using GitHub apps
like the way that I see GitHub apps
being used mostly
is you use the app ID and its secret key
to get an installation short-lived
token. That means
but that's probably in a separate job,
you actually do run
a short step where you get the
Oh, where
>> Sorry, I think I need to Sorry, my kid
is call- calling me. I have to take you
to school. I think mommy says you have
to take you to school. Deflection. I
think my wife told me Deflection. Okay,
I think let's let's end it there. Sorry,
I got to take my kids to school. Just
finish your point and then and then I'll
close the call. I wonder how effective
Oh, I think I know what you're saying.
The PAT becomes a GitHub token. Is the
PAT still exposed? I think you're you're
to say. No, the GitHub app the GitHub
app
requires a long-lived secret, also. So,
I don't know how you like you need a a
the GitHub app key to get a token. So,
you need to have a key exposed somewhere
into a workflow that gets a temporary
token, and then you can use that token
to do things. So, you need to really
segregate those two, right?
Anyway.
So, so it's still dangerous. It's still
like still easy to shoot yourself in the
foot. If in the same runner, you are
getting the key, getting a token, then
if that the key is still in that same
runner, something could accidentally
trade it. You should really have like a
separate job, a completely different
runner, to get a temporary token for for
the GitHub app, and then feed that into
your job that needs to do the activity.
I think the I mean the risk the risk is
here is that that someone can can get
into your GitHub account and go crazy, I
suppose, given a and can can use the
GitHub app
permissions to do whatever the GitHub
app
>> most people most big organizations have
approvals and things like that.
>> GitHub apps usually yeah, they're very
they they are very fine-grained tokens,
and every single permission that the
GitHub app has is way way visible. Like
it's not like a user that creates a I
assume you mean GitHub apps, which is
really hard to set up for some reason.
You should be using GitHub apps. Yeah,
it's it's definitely a lot more secure.
>> We all should be using GitHub apps. And
apparently you shouldn't be pinning your
commits to to your GitHub actions, cuz
that was a long long time established
pattern, and that's how they got in as
well. People are now like, "Yeah, you
can't use a sha because the sha can be
pulled from a fork, and then you can
compromise the repo." That's the second
problem. Anyway.
Yeah, okay. Well, anyway, great speaking
with you, Vincent. Yep.
We'll catch up another time. See you.
>> Yeah, yeah, yeah. See you. Bye.