
Let's build a CDN - Part 1
05/27/24 • 24 min
This started as a conversation between James A Rosen & Gerhard in August 2023. Several months later, it evolved into a few epic pairing sessions captured in these GitHub threads:
The last pairing session eventually lead to 🎧 Kaizen! Should we build a CDN? This is the follow-up to that. How far did we get in 1 hour?
LINKS
- The 5-hour CDN
- varnish - Docker Official Image
- Introduction to Varnish
- Magento2 Varnish config
- Magento Internals: Cache Purging and Cache Tags
- Varnish modules
EPISODE CHAPTERS
- (00:00) - Intro
- (02:08) - The 5-hour CDN
- (03:44) - Varnish container image
- (05:00) - Varnish container image command
- (06:31) - Local-friendly Varnish container image
- (06:44) - Varnish command-line options
- (08:30) - Varnish parameters
- (09:45) - Experimenting with Varnish locally
- (12:36) - Varnish purging
- (15:22) - Backend fetch failed
- (16:20) - Varnish debug mode & logs
- (17:29) - Why can't we query the backend?
- (21:08) - Why is the backend sick?
- (22:49) - That's the problem!
This started as a conversation between James A Rosen & Gerhard in August 2023. Several months later, it evolved into a few epic pairing sessions captured in these GitHub threads:
The last pairing session eventually lead to 🎧 Kaizen! Should we build a CDN? This is the follow-up to that. How far did we get in 1 hour?
LINKS
- The 5-hour CDN
- varnish - Docker Official Image
- Introduction to Varnish
- Magento2 Varnish config
- Magento Internals: Cache Purging and Cache Tags
- Varnish modules
EPISODE CHAPTERS
- (00:00) - Intro
- (02:08) - The 5-hour CDN
- (03:44) - Varnish container image
- (05:00) - Varnish container image command
- (06:31) - Local-friendly Varnish container image
- (06:44) - Varnish command-line options
- (08:30) - Varnish parameters
- (09:45) - Experimenting with Varnish locally
- (12:36) - Varnish purging
- (15:22) - Backend fetch failed
- (16:20) - Varnish debug mode & logs
- (17:29) - Why can't we query the backend?
- (21:08) - Why is the backend sick?
- (22:49) - That's the problem!
Previous Episode

KubeCon EU 2024
For our 4th episode, we have four conversations from KubeCon EU 2024.
We talk to Jesse Suen about Argo CD & Kargo, Solomon Hykes shares the next evolution of Dagger, and Justin Cormack dives into Docker & AI. We also catch up with Frederic Branczyk & Thor Hansen on the latest Parca & Polar Signals Cloud updates since our last conversation.
Each conversation has a video version too:
- Jesse Suen: 🎬 GitOps & ClickOps beyond Kubernetes
- Solomon Hykes: 🎬 Pipelines as Functions
- Justin Cormack: 🎬 Works on my Computer
- Frederic Branczyk & Thor Hansen: 🎬 always BPF
LINKS
1. Jesse Suen
🎬 Navigating Multi-stage Deployment Pipelines via the GitOps Approach
2. Solomon Hykes
A Keynote heard around the world - KubeCon EU 2024 Recap
🎬 Local & open-source AI Developer Meetup
3. Justin Cormack
AI Trends Report 2024: AI’s Growing Role in Software Development
Building a Video Analysis and Transcription Chatbot with the GenAI Stack
4. Frederic Branczyk & Thor Hansen
Correlating Tracing with Profiling using eBPF
LET'S MAKE IT BETTER
If you enjoyed this episode, I will appreciate your feedback on Apple Podcasts or Spotify.
If there is something that would have made it better for you, let me know: [email protected]
- (00:00) - Intro
- (00:39) - Jesse Suen (JS)
- (00:56) - JS: Hardest ArgoCD question that you got today
- (01:54) - JS: Rendered YAML branches
- (04:06) - JS: What is top of your mind?
- (06:12) - JS: Kargo beyond Kubernetes
- (08:20) - JS: Trusting Kargo with production
- (09:49) - JS: GitOps for leadership, UIs for app devs
- (12:11) - JS: How is this KubeCon different?
- (12:55) - JS: Anything that you will do different after this KubeCon?
- (14:58) - Solomon Hykes (SH)
- (15:10) - SH: What are you most excited about?
- (16:12) - SH: What is different about functions this time?
- (16:40) - SH: What makes functions fun for you?
- (18:01) - SH: Anything significant that happened at this KubeCon?
- (19:38) - SH: Thoughts on Dagger in production
- (20:21) - SH: What does Dagger 1.0 mean?
- (21:28) - SH: Asks for the Dagger Community
- (23:04) - SH: How do Dagger SDKs work with Modules?
- (25:02) - SH: Thoughts on the tech industry
- (27:19) - Justin Cormack (JC)
- (27:35) - JC: Docker & AI
- (32:14) - JC: Docker Build Cloud
- (35:30) - JC: Web Assembly & WASM
- (39:37) - JC: KubeCon Community
- (42:01) - Frederic Branczyk (FB) & Thor Hansen (TH)
- (42:23) - TH: Excited to announce Polar Signals Cloud
- (42:47) - FB & TH: Most exciting feature since launch
- (45:24) - FB & TH: How is this KubeCon different?
- (47:14) - TH & FB: What are you going to do different after this KubeCon?
- (49:06) - FB & TH: Plans for next KubeCon?
- (50:24) - FB & TH: Anything apart from AI that is exciting?
- (51:25) - TH & FB: Any hot takes?
- (52:12) - Outro
Next Episode

Modern CI/CD - Part 1
What does it look like to build a modern CI/CD pipeline from scratch in 2024? While many of you would pick GitHub Actions and be done with it, how do you run it locally? And what do you need to do to get caching to work?
Tom Chauveau joins us to help Alex Sims build a modern CI/CD pipeline from scratch. We start with a Remix app, write the CI/CD pipeline in TypeScript and get it working locally. While we don't finish, this is a great start (according to Alex).
This was recorded in January 2024, just as Dagger was preparing to launch Functions in the v0.10 release. While many things have improved in Dagger since then, the excitement & the joy of approaching CI/CD with this mindset have remained the same.
LINKS
- 🎬 Modern CI/CD from Scratch (using Dagger TypeScript Modules)
- 🎉 Introducing Dagger Functions (a.k.a. Dagger Modules)
- 🌌 Daggerverse
EPISODE CHAPTERS
- (00:47) - Intro
- (01:35) - Current CI/CD pipeline
- (03:40) - Why not a single pipeline stage?
- (04:29) - Dagger expectations
- (05:18) - Thinking of retiring GitHub Actions
- (05:48) - Why the GitHub Actions & Jenkins split?
- (06:46) - TypeScript in Dagger Modules
- (08:40) - Modules extend the Engine API
- (09:45) - Plan for today
- (10:57) - Pairing session conclusions
- (12:11) - Is it faster?
- (13:10) - Re-using the cache between runs
- (14:50) - Key takeaways
- (19:04) - What comes next?
- (22:43) - Not if you are using Jenkins
- (23:33) - Thank you
If you like this episode you’ll love
Episode Comments
Generate a badge
Get a badge for your website that links back to this episode
<a href="https://goodpods.com/podcasts/make-it-work-340598/lets-build-a-cdn-part-1-52758069"> <img src="https://storage.googleapis.com/goodpods-images-bucket/badges/generic-badge-1.svg" alt="listen to let's build a cdn - part 1 on goodpods" style="width: 225px" /> </a>
Copy