In short
Podcast Episode Notes: The Changelog - Kaizen! Pipely is LIVE (Friends)
Episode Overview
- Podcast Title: The Changelog: Software Development, Open Source
- Episode Title: Kaizen! Pipely is LIVE (Friends)
- Description: The show captures a live recording where Gerhard and friends celebrate the launch of Pipely, reflecting on their journey of consistent improvement in their operations, and reminisce about the past ten years.
Key Themes
- Kaizen Philosophy:
- The concept of continuous improvement is central to the episode. The hosts discuss how they have embraced a public approach to improving their platform as part of their ongoing Kaizen series.
- Kaizen, originating from Japan, emphasizes small, consistent improvements over time.
- Launch of Pipely:
- Pipely is introduced as an open-source project aimed at improving their content delivery network (CDN) efficiency.
- The hosts reflect on the challenges and the journey leading to this launch, emphasizing collaboration and community support.
- Technical Discussions:
- The episode features detailed discussions about the technical challenges they faced while building Pipely.
- The importance of cache efficiency, memory allocation in Varnish, and CDN architecture are highlighted.
- Community Engagement:
- The episode features interactions with friends and community members attending the live event.
- They express gratitude for the support from contributors and community members who have been part of their journey.
Detailed Notes
Introduction
- The hosts welcome listeners and set the context for the live recording in Denver, marking the 20th Kaizen episode and the launch of Pipely.
Kaizen Journey
- Background of Kaizen:
- The hosts share the origins of their continuous improvement philosophy, dating back over a decade.
- They emphasize the value of sharing improvements publicly to inspire others.
- Pipely Development:
- Discussion on the inception of Pipely about 18 months ago and the iterative approach to its development.
- Highlights the decision to build Pipely based on frustrations with their previous CDN performance.
Technical Challenges and Solutions
- Issues with Previous CDN:
- The hosts recount experiences with Fastly and the problems they faced, particularly concerning cache misses and configuration complexity.
- They aimed to create a simpler and more efficient system.
- Varnish and Caching:
- The talk delves into the architecture of their new CDN, leveraging Varnish.
- Challenges with memory allocation in Varnish were discussed, including the importance of configuring limits to avoid crashes.
- The current cache hit ratio was notably low, and the goal was to improve it significantly.
- Live Coding and Deployment:
- The team performed live coding to demonstrate changes and push improvements directly to production during the recording.
- This included adjusting memory limits for Varnish, which was humorously addressed with references to past failures.
Audience Engagement
- Q&A Segment:
- The hosts opened the floor to questions from the audience, covering topics like Dagger usage and SSL configurations.
- They acknowledged community contributions and insights from attendees.
- Acknowledgments:
- The hosts expressed gratitude towards attendees, friends, and contributors who have supported their journey.
Final Moments
- Transition to Pipely:
- The climax of the episode involved a live transition of all traffic to the new Pipely infrastructure.
- They shared the excitement and apprehension about this significant step.
- Results:
- Initial feedback showed improvements in cache performance and user experience.
- They celebrated the transition and reflected on the collaborative efforts that made it possible.
Conclusion
- The hosts concluded by expressing their appreciation for the community, the significance of the event, and the hope to repeat such live experiences in the future.
- Listeners were encouraged to join their online communities and stay connected for future updates.
Key Takeaways
- Continuous Improvement: The importance of Kaizen as a guiding principle in software development.
- Community Collaboration: The value of engaging with a supportive community in overcoming challenges and celebrating successes.
- Technical Excellence: The pivotal role of technical configurations and optimizations in enhancing software performance.
Call to Action
- Listeners are encouraged to share the podcast with friends, join the community, and stay tuned for future episodes and updates.
Written by AI. May contain mistakes. Listen to the episode to check what was said.
Transcript
Automatic transcript. May contain errors.0:14Welcome to ChangeLog and Friends, a weekly talk show about doing big things. Thanks to our partners at Fly.io, the public cloud built for developers who ship. We love Fly. You might too. Learn more at Fly.io. Okay, let's Kaizen, live in Denver.
0:38Well, friends, I'm here with Damian Shingleman, VP of R &D at Auth0, where he leads the team exploring the future of AI and identity. So cool. So Damien, everyone is building for the direction of Gen.AI, artificial intelligence, agents, agentic. What is Auth0 doing to make that feature possible? So everyone's building Gen.AI apps, Gen.AI agents. That's a fact. It's not something that might happen. It's going to happen. And when it does happen, when you are building these things and you need to get them into production, you need security. you need the right guardrails. And identity, essentially authentication, authorization, is a big part of those guardrails.
1:19What we're doing at Otsido is using our 10 plus years of identity developer tooling to make it simple for developers, whether they're working at a Fortune 500 company or they're working just at a startup that right now came out of Y Combinator, to build these things with SDKs, great documentation, API-first types of products. on our typical Auth0 DNA. Friends, it's not if, it's when. It's coming soon. If you're already building for this stuff, then you know. Go to Auth0.com slash AI. Get started and learn more about Auth4GenAI at Auth0.com slash AI. Again, that's Auth0.com slash AI.
2:07Hey, we're recording. Yep, we're good. All systems go. Ready? Ready. Well, we're here. How did Kaizen begin? It was a long time ago in Japan. Yeah. I don't know. How did our Kaizen begin? 1 ,300. That was a year. I wasn't there for that. Something like that. It began with this crazy idea that let's improve, but in a consistent way, so that every 10 Ship It episodes, we'll talk about the improvements that we drive in the context of changelog. Share them publicly, and that was our reminder that, hey, 10 episodes, we'll be talking about everything that we've done. Some called it navel-gazing. I don't think that's what it was.
2:57That was me, probably, Jared. It was good fun. And, yeah, it's been four years. It's been four years. It's been four years. It's been longer than four years. Has it? a decade. We've been Kaizen-ing a decade. We've been calling it as a Kaizen. So Kaizen 1 was about four years ago. Kaizen as it is materialized roughly four years ago, but the relationship that's why I bring that up is I want to say one thing. It's like, these guys are my ride or die people. Gerhard's amazing. Jared, you know you're amazing. But like, the magic and the beauty that's come from this relationship has just been tremendous.
3:33And to be here and share that with you all and to share Kaizen 20 this navel-gazing approach to our platform, but this constant attention to detail of improvement. And I think particularly with what we'll talk about today is unique to us specifically in that we built some infrastructure that's used by us specifically, where a behemoth, not negatively, is just not maybe the right fit. We've been holding it wrong to some degree. But this, what we're doing here is just a wild ride. And I'm excited for this moment. Is there a way to hold it right? That's the question I continue to ask myself. It turns out, if you gaze at your navel long enough, there's cool stuff in there.
4:15Definitely. So thank you for joining us. But it has to be long enough, but you have to do something about it. You have to have a proactive approach to it. Yeah, we pull out a few of our treasures that we've found along the way. And something that we've built over the last... When did we start Pipely? Pipely was, I think, 18 months ago, roughly. the idea was, shall we do this thing? I mean, we've been talking about it long enough. Shall we actually try doing something about it? And the beginning was, as all beginnings, like, can we do this? How long will it take? What will it take? Do we know what even needs to happen?
4:52And that's how the conversation started. And many of you that have listened to those conversations remember us, right? How we were pondering, should we, should we not? Are we crazy? Three wise men, the question mark was really the emphasis. Like, are we wise doing this? We have no idea. Right. And then along the journey, the best part was the friends that joined us. So it turned out there was not such a crazy idea. And just the idea of improving something in public so that others see how we do it, and it's our approach, and maybe it will inspire others. And I think that worked really well, and here we are today with friends.
5:32With friends. And that's, again, that's the focus. So, improving with friends makes me so happy. Thank you all for being here for that. Thank you. We appreciate you very much. Absolutely. So, it all started with a dream. A pipe dream. Indeed. On a Kaizen number that I can't remember. 13, I think. Kaizen 13. I think so. when we were lamenting our cache miss ratio on Fastly, but they had this really nice varnish as a service that we've been using for a long time. We just didn't like the way that we had to use it through Fastly, which is through a web UI, and a strange comment-based versioning control system that we invented on top of it, called put the name of the person who does the thing and the thing you're doing as you update the config, which would produce this gnarly, I don't know, thousand line varnish config that would work mostly sometimes.
6:30And it was great when it worked, but when it didn't work, it was very difficult for us to have visibility and debuggability in order to fix that. And so I said on Kaizen 13, wouldn't it be cool if we could just have this 20 line varnish config in the sky just deployed around the world and it could just be just for us, everything we need and nothing we don't. And Gerhard got a twinkle in his eyes. Yeah. And he said, 20 line, I can give you 500 lines. Well, I think it's close to 1 ,000 now, but anyway, anyway. So it was a pipe dream. But that began our journey down this particular path, which we are at the end of, or a milestone at least.
7:15You're never at the end of this kind of a path. Nope. where we decided on our Kaizen 19, hey, we're ready to run this. We call it Pipely is the open source project. Pipe Dream is our instance of that because this has been our Pipe Dream. And we're there. We're almost there. We're there now. But on Kaizen 19, we were like right at the precipice. We are there. And I said, what if we just get together and do it together? Yeah. And you guys said, yeah. And I was like, how about on stage in Denver? And they're like, sure. And so here we are. Yeah. There's your setup, Gerhard. The way Kaizen's usually work is Gerhard works way harder than Adam and I do.
7:51We show up. Yes. And I say something like, Gerhard, take us on a ride. Tell us what we're going to do. And so, Gerhard, take us on a ride. What are we going to see today out of Pipely and Kaizen 20? Thank you very much. So, we will start with a little bit of history so that everyone is able to visualize a couple of very important milestones. then we're going to ask you for your questions so you better think of some good questions to get back at me or at us so let's see how that goes and then we'll do something special because everyone took their time this took considerable effort on all your parts to be here and we want to recognize that effort by doing something special on stage live so let's see how that we're doing all right so first of all let's start with the beginning the beginning is July 26th, 2025.
8:45This is an important moment. We're all here today. It's the first time that this is happening. Kaizen 20 is the moment. Thank you all for being here. I'm sure that you all know this. Now, it says 20 episodes. Actually, it's 19. One was republished, but it's been 19 Kaizen episodes. And this started actually in 2021, in July. I had to look this up. I wasn't sure exactly how long it was, but that's when this started. So this journey officially, when we started having these conversations, all recorded, all remote, happened many years ago, and it took us this long to finally do this in person. Ten years.
9:25Right. And if you count exactly, like when this unofficially started, yeah. It's been a decade. So we're good friends now. I'm stretching it by one. 2016 was the year we launched what is now our platform. It's an open source platform. ChangeLaw.com. You'll all know that. It's on GitHub. Some of you contributed. You're probably in the issues or at least reading them. But it's been a journey. It's 2025. It's not quite 10 years, but I'm rounding up. Give me a gimme. Next year, maybe we do something even greater, right? Maybe we're building up to that. Okay, so the reason why we're doing this is because it's about friends.
10:05This is the new context. It used to be Ship It. Before it was unofficial, it used to happen just among a few people. And now all of you are here. And we appreciate you. So thank you very much. Because as you know, it's so much better with friends. So Change Log and Friends is the context. And including friends that want to be here but maybe can't. Next year, hopefully, or the next time we meet, it's a good reason to make this crowd bigger. But this is how it began. This is the first moment we have met in person and it's amazing all right now You haven't noticed here But this is something that I pay attention to because the person that takes picture is picked that the pictures is never in the pictures so we need to acknowledge the person taking pictures yes, and that is Aaron.
10:55He's over there. He's still big Thanks for coming, Aaron. Thank you very much. So, yeah. Thank you for being here and capturing this moment for all of us. That's so great. So, we are friends. I think we can call ourselves friends when we go for a beer and we go for a hike and we share a meal. So, that's, I think, what it means to the beginning of a nice friendship. That enjoy making things better. That's really what brings us together. And we do it in a public way. We share. And even when we get it wrong, that's fine. because it's always about improving. It's not about being 100 % right or knowing it all, figuring things out.
11:33And that makes me so happy. So you all know this. We post these as discussions on the changelog.com GitHub repository. This specific Kaizen is discussion 546. And if you want to do a bit of digging to see what went into making this Kaizen, that's where you can go for the technical stuff, for the pull request, for the code, all of it is there. And I think the first step that we need to do is set the record straight. And the reason why I remembered it is because of that very small thumbnail. There's three people there. There's BSDPHK. So PHK is Poole Henningkamp. I didn't know who he was until recently.
12:17He is the guy that had a huge contribution on FreeBSD, NTP time counters FreeBSD jails MD5 crypt and you all know this can I say it? The bike shed bike shed, he invented the bike shed 1999 the guy that so, I think that's really important and we didn't know a bit of history this was an important moment and I think I'm going to switch the screen now to this because this is important Andrew O he wanted to set the record straight, no, Allgreen, sorry, Allgreen, May 13th, he wanted to set the record straight about Varnish, which is the technology that we use, the relationship to Fastly and the relationship to Varnish Enterprise.
13:07And it's all here. So, Fastly is not running Varnish Plus, which is a Varnish software product, and they have their own fork. So that is important. It's Similar, but not quite the same. What we use is nothing from Varnish Software, not Varnish Plus. We're using the Varnish Cache, the open source project, as anyone can consume it. So we have built, everything that we built is on open source technologies. And that is important to us because that is in our DNA. So there's some history here. That's important. So we are building on Varnish Cache open source. All right. Back to where we were. Cool. So we did a thing, and this thing is important, but actually we did a few things over, I think, four years.
14:01We did quite a few things. Ten years. Ten years. Ten years, yes. Ten years. Okay, ten years. Just keep that in mind. Adam's not going to let it go. Ten years later. That's a good one. So they were all good. I think most of the things were good, right? that we've done. Most of the things were good, but that's not all things. Right. Shall I fix this now? No. No, it's okay. Okay. Sorry. My bad. So, what are some of the things that you don't think went as well? Let's talk about that. Out of your collective memory, maybe even someone from the audience can tell us a few things that didn't go so well.
14:44S3 cost. Yeah, we spent more money we should have on S3. More ballooning. and we didn't know it until that one Kaizen episode where I finally looked at it. And then I was like, oh. We should change this. We should address this. The bill went from like 15 bucks a month to like maybe 180 at peak, I believe. Which is still small. We're not massive. We're in operation. That's not cool. But now we're on R2 and we're spending like 8 bucks a month. They basically pay us. They should pay us. it should be us. Now it's good, but that wasn't good. I deleted a few things, but I should have. As you do. Flying too close to the sun, it's a good thing.
15:27There was one time where Gerhard went in to, I don't know what it is anymore, a config or one of my pieces of code, and he changed something that to me was inscrutable. Like why, what, who? But I had so much respect for the guy and so much imposter syndrome that I thought, surely he knows better than I do. I remember that. And I must be a fool. But it looks wrong, but I'm going to go ahead and roll with it because Gerhard knows what he's doing. And then I found out much later you had no idea what you were doing. No, I don't. So this is something really important, and it's at the heart of what we do, right?
16:03We are figuring stuff out, and we are okay to admit it publicly, right? Like, we mess things up, but there's no way you're going to learn if you don't make mistakes. It doesn't matter how much experience you have. It doesn't matter how many things you think you know. You never know. Let's be honest. You don't really know. You're mostly making stuff up. Some things help you, but it's all in the confidence that you will be able to figure it out. You'll be able to push through. Just stick with it long enough. That's all it takes. All right. So today, we did the biggest thing ever. What was that? A live show.
16:40A live show, yes. Yes. Yes. That's one. We showed up in a city we don't live in. Right. People flew here with us. That's a big thing. Is that what you're referring to? Yeah, that's one of the big things. What else? Well. I'm so curious what we did. What did we do? Tell us. What did Gerhard do? Let's scratch that. What did Gerhard do? Yeah, yeah, yeah. What did you do, Gerhard? So I did something. I will show you very soon. Trust me, it's coming. But it's the biggest thing ever. All right. So the problem, the fact that it's green, don't let that mislead you. It's a bad thing. Okay, color, psychology of color is very important.
17:21So what is this? The 17.93 % is the cash hit ratio on our current production CDN, which is low. Right? That's really, really low. It means that less than 20 % of the requests get served really fast, 80 % plus are slow. And while it doesn't really impact us, I mean, it's all good for us, it impacts you. When you load something, it takes a while to load. And it shouldn't be that way, right? Things should be instant. Things should be very, very smooth. And when something goes wrong in the backend, for example, if 80 % of the requests, they have to go back to the backend, it means that they can fail.
18:06So the chances of something failing are fairly high. There's something wrong with the backend. And that's the other thing, which I keep thinking about a lot. Yeah. And it's worth noting that our data is unidirectional. I mean, we rarely change anything once we publish. Episode one is still episode one. Yeah. Every once in a while, you know, we might put the wrong audio in the wrong episode, or you might have to edit something. Or you shit the entire wrong audio. Yeah. Like I've done recently. Adam did recently. So we make mistakes, and when you make a mistake, you want to be able to quickly rectify it, purge everything, and get back to where you were.
18:43But generally speaking, you put an MP3 up on a CDN, and then you deliver that same MP3 in perpetuity. And so this number is abysmal. That's terrible. We should never have misses. And that's what I've been saying for 10 years. Right. Why do we keep having cache misses? Okay. And the problem is that in this case, it's mostly the website. So the changelog website appears slow in a lot of cases. And that's not great. So that was the problem that we were trying, or that was the thing that we were trying to improve. That's how this started. All right. Episode 26, this is what Jared was mentioning when we began.
19:23Should we build a CDN? That was the moment we were thinking, should we do this? I mean, are we really at that point? And it took a while, but the conclusion was yes. I mean, we should at least try and see how far we get. That was 18 months ago. PipeLit.tech, we had this up for a while. We talked about it at Christmas. A new CDN is born. It hasn't been updated recently, but it will be. But this is the home for the open source project that we would like others to use at some point. I think it's getting there. It's not quite there yet, but we have made many improvements to make it easier to consume.
20:12Well, friends, I'm here with a new friend of mine, Harjot Gil, co-founder and CEO of CodeRabbit, where they're cutting code review time in half with their AI code review platform. So Harjot, in this new world of AI-generated code, we are at the perils of code review. Getting good code into our code bases, reviewed, and getting it into production. Help me understand the state of code review in this new AI era. The success of AI in code generation has been just mind-blowing. Like how fast some of the companies like Cursor and GitHub Copilot itself have grown. The developers are picking up these tools and running with it pretty much.
20:52I mean, there's a lot more code being written. And in that world, the bottleneck shift to code review becomes like even more important than it was in the past. Even in the past, like companies cared about code quality, had all this pull request model for code reviews and a lot of checks. But post-gen AI, now we are looking at, first of all, a lot more code being written. And interestingly, a lot of this code being written is not perfect, right? So the bottleneck and the importance of code review is even more so than it was in the past. You have to really understand this code in order to ship it.
21:21You can't just wipe code and ship. You have to first understand what the AI did. That's where CodeRabbit comes in. It's kind of like, think of it as a second order effect where the first order effect has been Gen AI and code generation. Rapid success there now as a second order effect. There's a massive need in the market for tools like CodeRabbit to exist and solve that bottleneck. and a lot of the companies we know have been struggling to run with, especially the newer AI agents. If you look at the code generation AI, the first generation of the tools were just tab completion, which you can review in real time.
21:52And if you don't like it, don't accept it. If you like it, just press tab, right? But those systems have now evolved into more agentic workflows where now you're starting with a prompt and you get changes performed on like multiple files and multiple equations in the code. And that's where the bottleneck has now become code review bottleneck. Every developer is now evolving into a code reviewer. A lot of the code being written by AI. That's where the need for CodeRabbit started. And that's being seen in the market. CodeRabbit has been non-linearly growing, I would say. It's a relatively young company, but it's being trusted by 100 ,000 plus developers around the world.
22:25Okay, friends. Well, good. Next step is to go to CodeRabbit.ai. That's C-O-D-E-R-A-B-B-I-T.ai. Use the most advanced AI platform for code reviews to cut code review time in half, bugs in half, all that stuff instantly. You got a 14-day free trial, too easy, no credit card required, and they are free for open source. Learn more at coderebbit.ai.
22:55This is something that has been bugging me for years. We run on Fly.io, and Fly.io has points of presence all over the world. but our application only runs in a well in ashburn virginia because it's closest to the database of course it's going to be close to the database right because data has gravity but we wanted to distribute the application for a long long time but it was never the right model with a cdn that's exactly what we want to do right we want to get those instances all over the world so finally we can say that after all these years, we are holding fly.io right. And it's been working pretty well.
23:37Is that the big thing? I think it is a big thing. Is that the big thing? No, no, no, no, no, no, it's coming, it's coming. I'm just waiting for that moment. I'm just waiting for that moment. This is one of the things, we are holding it right. I want to say one thing too real quick, like leave that there, that's fine, it's good, that's fine, it's good, the next one's good. Next one? Yeah, the next one's fine. Let me show some things, but you see fly here, they're not here, We didn't make this about sponsors. We wanted it to be about you all, us doing a normal live show together that wasn't like, hey, let's charge our normal spot for tickets or whatever it was.
24:06We just want to go somewhere, have some fun, get together, and just share this story. But I do want to recognize that Fly and Kurt and the team there have been extremely supportive of us. Not saying you should use them, but they love us. We love them. And what we're building is really on top of the best platform we believe. So Fly is amazing. Fully agree. Yeah, fully agree with that. Jared? All good? Yeah. All right. So this happened about six hours ago or seven hours ago. This is 1 a.m. last morning. Okay, something went wrong. So things will continue going wrong. You will never really get there.
24:43It's all about the mindset of can we do it a little bit better? And again, we are figuring stuff out. So this was yesterday, last night. So this is a question for the audience. who would like to see us improve this specific crash live? Yeah? Alright. Let's do it. Cool. So, what do you think happened here? Let's do a very quick understanding of what the problem is. What do you think happened here? Can you describe the architecture of PipeDream in terms of what's working out there? I can. So, it's Varnish instances I mean, Varnish is really at the heart of it. There's a couple of other components around it, but Varnish is the heart of it.
25:29Varnish makes requests to backends. The backends, in this case, would be assets, for example. We store static assets. We were mentioning MP3 files, PNG files, JavaScript, CSS, that kind of stuff, which rarely changes. Then there's a feeds backend. Feeds stores generated feeds for users ,++ members, and shows, various shows. Every show has its own feed and then you can also create your own custom feed. So there's something like on the order of 600 to 800 feeds, I would say. Eight of which are way more important than the others because they are publicly consumed by all the podcast indexes. And those feeds get the most requests from all the platforms, the podcasting platforms that consume the changelog episodes and they distribute them to their audiences or to your audiences but through that platform.
26:21Correct. Our audiences. Our audiences, yes. Our audiences, for sure. And what this is, basically, we get these instances that are distributed around the world so that the delivery of that content gets accelerated. The one thing which I haven't mentioned is the applications, the changelog application, the website, which is an important one. That's where many users go to, for example, look at the homepage, look at news, things like that. And that is the one which is most sensitive to latency because, as I mentioned, it's only in one location close to the database. So we need to accelerate delivery of that website to users which are around the world, including Australia, South Africa, South America, all over the world.
27:02We have a very diverse audience. And we want those users to have just as good experience as anyone else that's maybe in the North America. So in this case, one of our ten? Yes. 10 instances of the Pipely application crashed. Ran out of memory and crashed. Misty Bird 4931. Yeah, Misty Bird. That's the one. Misty Bird crashed. That's what happened. Exactly. Okay, so now to your question to the audience was... Why do we think the application crashed? Why do you think it crashed? And anyone can answer except Matt, Nabil, and James. Because they know why it crashed?
Read the full transcript
27:45It ran out of memory. Yes, of course. Thank you. I appreciate that answer. Someone's paying attention, but why did it run out of memory? Why do you think it ran out of memory? Because there wasn't enough memory. Right. I love some trolling. Seriously now. You're going to make me say it, right? Okay. So as more content gets cached in memory, the problem is there's like a configuration which I wish it was easier to make, but you have to manually adjust how much memory you give to Varnish out of the total memory available. So there's a dance that you need to make so that you know how much is enough so that when more memory gets allocated, the thing doesn't fall over.
28:27I wish this particular thing was easier, maybe something that we can improve, but for now, you have to fine-tune it and find, if you have four gigabytes of memory total, how much should Varnish be allowed to use? And if you think it's four gigabytes, it's way too much. So that's what we're going to do now. I'm going to switch to some live coding and show what happened.
28:51So actually, you know what, maybe let me try this. How's the font? Can everybody see the font? Can everybody see what's there? I'll make it a little bit bigger. Yeah, a little bit bigger, okay. So this is the change, and if I'm going to undo this, you'll see what it was before. so we I thought let me take responsibility of this I thought that 800 megabytes is going to be enough this was the case when the application had two gigabytes so in the instance had two gigabytes 800 megabytes of headroom was enough so the application wouldn't crash because of out of memory issues and apparently when you have four gigabytes 800 megabytes is not enough so what happened is 33 % 33 % should be enough for this to work and again you have to specify this explicitly I'm sure that we'll improve this at some point this is what this looks like so we're going to push this change into production live right now here it is, here's the change so we'll say increase varnish memory or limit let's do that, limit varnish memory to 66%.
30:0266%, right? Varnish memory can only use 66%. Okay, I committed. What's going on? Of course, I need to connect. Right, let's do that. Let's connect. Yeah, I am offline. Let's do this. Again, this is live. This is not recorded. It hasn't happened. Let's see how this... I normally record these things, but let's see what's going to happen. Good time to go live, Gerard. There you go. Let me just read this Bill Gates quote. Okay. You thought 800 megabytes ought to be enough. Yes. Bill Gates, 640K ought to be enough for anybody. Right, right. Apparently not. So, you know, it's not an unreasonable thing that you thought.
30:40Nope. Okay. All right. So what happened is we committed and we pushed this commit, this one commit, and to deploy something into production, all that we have to do is tag the repository. So tag and commit. So RC3 is the last one that went out. You can see when it went out, it was two days ago. We're going to do an RC4 now. And all we have to do is this. J tag. J stands for just. So I'll do just tag. Because I don't want to remember the command. It's quite long. So I'm going to do the SHA. The SHA in this case is going to be, sorry, tag. So V 1.0.0 RC? Four. Four, there you go. Nice. We'll just do head, right?
31:27of course is going to be head. And the discussion, this is the changelog discussion where you can basically listen about this thing. So this is us preparing Kaizen 20. Remember that GitHub discussion I talked about. That's what this is going to do. And I'm going to push it now. No, push. Git push. What happened? Undefined. That should have been fine. Looks like the connection. The connection dropped. Someone's blocking port 22. No, no, the connection dropped. Yeah, let me just go back. Let me read a Bill Gates quote. Yes, sure. Another one. Do we not have house in it? No, no, it's all good. Give me another Bill Gates quote.
32:06Let's get push again. Let me just make this. It's going to slow. There you go. That pushed. Cool. So the tag went out, and what we're going to see now is, actually, this one right here. It's going to go to the actions. So this is a live, this one right here, 1-0-0 RC4, and it's going to push this change into production across all instances. It's going to roll them live. We are deploying this. So why is this significant? Sorry. Let me set the record straight. Sure. Bill Gates in 1996 said, I've said some stupid things and some wrong things, but not that. No one involved in computers would ever say that, that a certain amount of memory is enough.
32:53Right. So I guess I take it back. Is that true? I don't know. I don't know. Is that factually correct? I scroll further. What is your source of information? Yes. So there you go. He may or may not have said that. So let's have. We're watching it roll out. I see, so now we're seeing like a live roll out. And we'll see, so publish and deploy tag, is doing all the validation, gone, gone, it's moving on, it's going through the changes. Errors, errors. Yeah, it's saying errors, but it's going to resolve itself. It just takes a while. So there you go. How long does it normally take, Gerhard? Well, last time, I think it took two and a half minutes.
33:28And you thought this was a good idea. Of course, why not? Look, we're already creating the new machines. Look at that. That's going. All right. So this is something that I think is important to get right early on. And that thing is, how long does it take you to push a change into production? So how long does it take you to make a change and see that change roll live? And this is something that we've been working on for quite a few years on this thing. we do push to production we own our production, we don't develop in production, that would be crazy even for us, but it's like all like this mentality of if I'm going to make a change, how long will it take me to see that change happen?
34:07And if you can shorten that time, you're in a good place 10 years ago it took 20 minutes or so It was long It was a long time. It was long enough that you go do something else And now it's two and a half minutes maybe. And this is a global CDN. So this is, we are pushing this change to all the instances of the global CDN that we run in, where do we run them? Let's have a look. So this is it. So we are Ashburn, Virginia. These are the instances two days ago. If I'm going to refresh this, you'll see the new instances come live. So that was two days ago. That was like the last deploy. Let's refresh.
34:43Deploying 57 now. That's the commit. We have new instances coming up. And you can see like we do blue-green. Of course we need to blue-green We need to deploy the new ones. The old ones are still there. Two of everything. It's an important rule. And yeah, this works fairly well. It will not have any downtime. And we can look at that in a minute. So Ashburn, Virginia, Chicago, Dallas, Texas, Santiago, Chile, San Jose, California, Heathrow, of course, London, Frankfurt, Sydney, Australia, Singapore, and Johannesburg. So these are all places where we deploy these instances. and they will accelerate all the content to our users.
35:23Does anybody out there have a deploy pipeline that runs faster than two and a half minutes?
35:32Does anyone have a deploy pipeline? Let's start there. I got a hand up. Two people, three people, four people. So I think we're winning. Five people, six people. Cool. Two and a half. Two and a half, nice. It only feels long when you're on stage. Yeah. Deploy now. Well, this is real. This is real. Like, not edited. This is what it feels like. Now, I don't think two and a half minutes is long. I think we can improve it. But you need to think about all the things need to happen behind the scenes, right? The allocation of resources, the health checking. Like, how do you know what you've put out there is correct?
36:05And you need to wait a while to make sure that the thing doesn't crash. That's why you need to wait at least 60 seconds before you can say, yep, this is good. You need to do a few health checks. because if the thing starts falling over, you don't want to leave that thing running in production, of course. Cool. So I think we're in a good place. The one thing which I wanted to show is if I come back here, can you see that? Is that graph looking good to you? Yeah, cool. So do you see this yellow line? This was the instance that crashed. So this one, if I, there we go, it's San Jose, California. For some reason, there is a lot of requests hitting this instance, and those requests they don't look like human requests so I think we may have some sorts of bot situation going on some sort of I know LLM trying to learn there's yeah there's like a lot of lot of requests and if I'm going to look at this one the CPU utilization this is the same instance right here the one in San Jose California I mean look just how abnormal this instance behaves and if I'm going to remove that you can see all the others so all the other instances the CPU usage is fine, but this one is spiking up to 100 % because it has a lot of requests.
37:15Now, obviously this is in front of the application, so five-minute load average. We can also see here San Jose, California. Yes? Can we see the endpoints that it's serving? The endpoints that it's serving? We can, yes. So let's do like a tiny reveal right now. Jared's like, can we do X? Of course we can. Of course we can, Jared. Of course, yeah. No, we can. We can definitely do this. Okay. So I'm going to switch to this view. And this is the last seven days. And I'm going to make this a little bit bigger for you to see. And can you see that all right? Okay. So you can see that we're here, right?
37:56July 26th. So the application went into production a few days ago. So, not all of it, not completely, but we started routing a bunch of traffic to the application to see how well it would handle our users. Is that the biggest thing we ever did? Almost. It's getting close. I'm still waiting for this. It's getting close. Okay. But this basically shows that we had many, many steps towards this moment. and now, together with you, we've shown you how we can update something that's running live that is serving, I mean, this doesn't sound like a lot of requests, like a thousand, but the granularity is 30 minutes.
38:39And we are sending a portion of the traffic and it's handling it pretty well. And we can see that the biggest users or like the most requests are coming from ORD. Chicago. Chicago, that's the one. Frankfurt next, London Heathrow, and it's not me running load tests in Singapore. So these are like the, and then San Jose, California right here. So we are running live traffic, not all of it, a portion of it, but we wanted to see, will this thing continue working well? Did you know that? No. I don't think so. Yeah. So technically we're not launching PipeDream today because we launched it on Thursday, just me and you.
39:18Exactly. Sorry, team. We didn't. We barely launched it. We launched one out of five. One out of five, yeah. Yeah, so roughly 20 % of requests go through our pipe dream at this point. So whenever you go to changelog.com, that's it. One out of five requests hit the new instance. And we were able to see how does it behave with 20 % of traffic. And it's working. No one complained. Adam didn't even notice. And that's like one of the best things, right, like to roll things out. You do it in such a way so that, I mean, it is a big thing to us and to people that understand and know what goes behind it, but to everyone else, did anything change?
40:01Because if you do this type of job correctly, all people see is maybe little improvements, and if they're not paying attention, even those they will miss. They think you're always just badass. Well, I think we are a good team.
40:18And the other thing which I want to mention is that, And what you see here, again, it feels very, it just happened, right? It's like a small thing. The work that went into it, it was months and months of preparation, months and months of discussion, people joining us, working with us. I want to thank James. I mean, he was the first one that has joined. Thank you, James. Thank you very much. James A. Rosen. Yeah, thank you, James. Thank you. Talking in the various issues, the first one that we had, basically being with us for almost two years now, discussing about problems that we thought were problems.
40:57At some point, we were questioning, like, are we maybe too strict? Are we too demanding out of this? And no, no, I mean, we want things to be better, and this is why we want things to be better. So James, thank you very much for all the conversations, keeping us, like, big picture, like, that's all objective perspective as well. That was so, so helpful. and then Matt, right? Matt Johnson, thank you very much for that. Thank you. Just, thank you. What a matter. Thank you. It was all about like VCL and going a bit deeper just to have like another perspective on VCL. I mean, he has a lot of experience in VCL and Varnish in general, but also documentation, also like a diligent approach to how should we do this so that it's easier for others?
41:42And that was like so great to have that help. Now, that was months and months and months of, I mean, again, all of us have full-time jobs. All of us do something else. But in our spare time, we find a bit of time to help others. And this was that. So thank you very much for that. Matt had a good idea last night. Can I pitch it to you? Of course. Yes, please. Yes. So my desire was a 20-line BCL. Yes. You gave me 1 ,000 lines. Mm-hmm. Matt says... We can count. You guys can just pull most of it out into an ink list. Yeah, that's cheating. but yes. I won't look. Yeah, of course. Great. Every time I go to the repo, I'll be like, oh, this is nice.
42:19We can give you 20 lines, Jerry. We can give you less than 20 lines, yes. I think that's a very good idea. Yeah, just look number one, like step number one. Yeah, exactly. We'll kaisen that, for sure. So, I wasn't prepared to do this, but let's do it. So, we have this is just, we have like a bunch of targets here. There's one that says how many lines? Oh my goodness. Right, so let's just run that live and see what happens. So, how many lines I'm going to tap this. So let's see how many lines we have. Okay. 961. Like, hang on. Let's see what's in Varnish. Hang on a second. Oh, no, we don't want that.
42:52This is not correct. We just want ours. We just want ours. Okay. Shall we change this live? All right. Let's see what's going on. What's going to happen. So why not? So we want only, uh, only VC. Actually, no, Varnish. No, we want inside VCL. So yeah, that's just like one change. So let's go just file. Do you want to do it? Nope. I feel like you're stepping in. All right. So let's see. How many lines? How many lines? There you go. So varnish. Let's do varnish. All right. Let's see that. Varnish, sorry, VCL. VCL. Okay. Let's see if that works. There you go. How many lines? There you go. These are the actual lines.
43:26All the lines. So 364, that's like the main one. And these are like the includes. 24 in this one and 106 in 15. Right. How many total? Less than 1 ,000. I think it's less than 1 ,000. 500? Yeah, ish. Getting to 500, between 450 and 500. A lot of these are just like static redirects. Any savants out there, do the math. Say again. Any savants out there, do the math. Look at that. 15. This is how we do it. 106 plus 24 plus 364. Look at that. 509. 509. 509 lines. So there we have our answer. Cool. So it's still good. Still good. All right. So. Do you want to thank Nabil? Yes, of course. Nabil. How could I forget the wheel?
44:09Of course. So one really important thing is that Varnish cannot terminate backends which have SSL in front. So if the backend is talking HTTPS, Varnish cannot use it out of the box. Varnish Enterprise and other products can, but the open source Varnish cannot. We did a bit of digging, and we realized that's how we learned about Pool Handing Camp, PHK for short, and he was always against including SSL anywhere near Varnish because it would complicate things too much. SSL is really, really complicated. So with Nabil's help, we wrote, I don't know, like he wrote 50, 60 lines of Go code that intercepts all the requests going to those backends, terminates SSL for Varnish, and presents the request unencrypted.
45:00A really simple, elegant solution, one of the almost like sidecars that sits next to Varnish and helps it terminate requests which need SSL. So I'm not sure if that's... Is that a new justice, Nabil? Genius. Absolutely genius. Let's hear it for him. Nabil. Good job, Nabil. And his SSL termination. Thank you. TLS exterminator. TLS exterminator. That's the one. That's a good name. Cool.
45:29Well, friends, it's all about faster builds. Teams with faster builds ship faster. and win over the competition. It's just science. And I'm here with Kyle Galbraith, co-founder and CEO of Depot. Okay. So Kyle, based on the premise that most teams want faster builds, that's probably a truth. If they're using CI providers, their stock configuration or GitHub actions, are they wrong? Are they not getting the fastest builds possible? I would take it a step further and say, if you're using any CI provider with just the basic things that they give you, which is if you think about a CI provider, it is in essence a lowest common denominator generic VM.
46:09And then you're left to your own devices to essentially configure that VM and configure your build pipeline, effectively pushing down to you, the developer, the responsibility of optimizing and making those builds fast, making them fast, making them secure, making them cost effective, like all pushed down to you. The problem with modern day CI providers is there's still a set of features and a set of capabilities that a CI provider could give a developer that makes their builds more performant out of the box, makes their builds more cost effective out of the box and more secure out of the box.
46:45I think a lot of folks adopt GitHub Actions for its ease of implementation and being close to where their source code already lives inside of GitHub. And they do care about build performance and they do put in the work to optimize those builds. But fundamentally CI providers today don't prioritize performance. Performance is not a top level entity inside of generic CI providers. Yes. Okay, friends, save your time, get faster builds with Depot, Docker builds, faster GitHub action runners, and distributed remote caching for Bazel, Go, Gradle, Turbo Repo, and more. Depot is on a mission to give you back your dev time and help you get faster build times with a one line code change.
47:26Learn more at depot.dev. Get started with a seven-day free trial. No credit card required. Again, depot.dev.
47:38We improved it. We're here. We did it. Kaizen 20. One more thing. Okay. This is too far out. This is too far out. Too far. Actually, no. We're good. Yeah, we're good. We're good. Okay. We're doing good. Anything else you want to cover before we do this? There's one more thing that we're going to do. one more thing Kaizen20 any thoughts any comments from the, I mean you're here do you have any questions, do you have any comments do you have any thoughts, anything we have a question, we're among friends can we talk about how you're using Dagger can we talk about how we're using Dagger alright, okay I can show you about that yeah, show them so there is one very tiny change that I have here, which is using dash dash cloud.
48:29This is an experimental feature that exists in the Dagger CLI. The reason why we do this is because we need a remote engine, a remote Dagger engine, so that everything that runs in the context of Dagger is quicker. Over Wi-Fi, it would be over, like my tethered connection, would be very, very slow. So how we use Dagger in this case, let's go here. We have a couple of commands. The one I think that's the most interesting one for example, for running tests. So let me show you what that looks like. I'm just doing just test. You can see there it does like the dash dash cloud. Let's see how fast it goes.
49:05It starts an engine in the cloud. It connects to it. So we need to set up Varnish. We need to connect Varnish to all the backends, the TLS exterminator. And we want to do it in a way that is as close to production as possible. So it's almost like we want to run the system as it runs in production, but we want to do it locally. Okay, in this case, it's a remote engine, but from the perspective of how it gets put together, it's literally just the same context of running containers. And because everything runs in containers, we get the exact reproducibility that we get in Fly. So we get the same configuration, the same Linux subsystem, the same kernel or like a very similar kernel.
49:49And what that means, I mean, in this case, it's even using Firecracker behind the scenes, so it's very close to Fly. so we are able to test the system most accurately and we're even able to run the system most accurately as it would do in production and that part is hard because whatever you do locally if I was running for example on the Mac everything would be different even if I would have a VM things would be different so it's like that containers the container image the interaction between all the components and when we ship something in production it's as close as possible to that image. Even down to the Go version.
50:22So right now, for example, what's happening here, we're pulling down some of it is cached. We're pulling down various dependencies and you can see they're all Linux ones. So Linux, Linux and again, a VM on a Mac, it gets you close, but it's not the same thing. You get subtle differences. I'm not sure if that answers your question. Yeah? Cool. Good use of Dagger. Any other questions before we, in the back, do the big thing? I think Nabil had one, was it? Yeah. Yeah.
50:56Does Varnish only cache to RAM or does it also use disk? So it can use disk as well, but we don't have disk configured. So the configuration is cache to RAM only. It is the fastest one. If we have disks, as you know, the problem is the host, they can't move around. So it's no longer stateless. That has certain challenges about, like, placement. but also disks tend to be a little bit slower. Not by much, but a little bit slower. As an optimization, it would be worth exploring that, especially with NVMe disks, which is what we would get in Fly. So that is something as a future improvement, but right now everything gets served from memory, which is exactly what happens in Fastly as well, because that's what gives you that highest performance.
51:39So follow up to that. our crash last night was because it needed more RAM than we allocated to Varnish. And in Varnish, there's no way to say, just use all the RAM available. So if you tell it that, it uses more than it has available because it tries to allocate more than you have. So you need to set an upper limit. It can't know how much the machine has? Well, it knows, but it doesn't do the allocation correctly. Is that a bug? I don't know whether it's a bug. It's just not working well with the system available to the host. Maybe, maybe. Varnish is how many years old? So 20-something. 20-something.
52:17There's no way that bug is a bug, right? It has to be a decision. Right, so I gained a lot of respect for memory specifically and memory problems because they're very, very hard. I spent maybe three years optimizing memory allocations on the RabbitMQ team for RabbitMQ in the context of Erlang. and I've learned that there are so many subtle differences between how memory gets allocated on different runtimes. In the case of Varnish, obviously it's C, so it's as efficient as it gets, but it's very difficult to know how much you should allocate ahead of time and what you should free, timing, like something has somewhere to give.
52:56And usually what you need to do is over-allocate. Basically, you give it more than it needs so that when you get these spikes, right, There's enough for it to spike so that it doesn't crash things over. Memory these days is cheap. So honestly, skimping on that is not worth it.
53:18And there's a couple of ways we can go around it, like disks is one of them, limiting what Varnish can do, but also seeing if the Varnish memory allocation can improve. Because I know what it takes, for example, what it took in RabbitMQ to do that. it took me years and I was like full time on that so it took a while including to understand what happens behind the scenes so you need to break it down in a way that you map and observe everything when it comes to memory allocation and then you realize what needs to be tuned to your use case that's the other thing because every context tends to be different so the allocations they are generic to make them configurable to you or specific to you so that they're optimized for your use case it takes a bit of understanding of what you actually need.
54:06Yeah. I'm probably reducing it down too much, but I feel like you could just say, this machine has four gigs. Just use three, and if you need more, you've got another gig in there. Right, so... Just don't crash. Yeah, true, yes. You know? Yeah. But my question, my follow-up, I guess, would be, assume that we figure that out, that little dance. Yep. What happens when our instances become overwhelmed? Varnish might not be crashing, but maybe it's slowing down, maybe the machine's bogged, can't do stuff. Is there an auto scale? I mean, the answer is more RAM on the fly instances or more fly instances in other regions or in the same region.
54:45That's right, yeah. So there is a big difference between regions, by the way. And this is something like, this is the sort of thing that you only realize once you start using it, okay? So this is, these are like the last 24 hours. I'm not going to refresh. It's a little bit outdated. I did it like you can see here. It was 10.42 a.m. It was this morning before we started recording. And what you can see here is this one, the San Jose, California, the SJC, is the one which shows the highest fluctuation. A lot of these, once they load up on memory, like Heathrow, they tend to be fairly stable. But then you have a few, for example, this one, Santiago, Chile.
55:20This is like 2.3 gigs. So this one is not using all the available memory. This next one in Sydney is 1.84. And you can see that the memory is decreasing because it doesn't need. I mean, this is something I'm not sure why does this, for example. I wouldn't expect this line to go down. I would expect it to stay stable. So I'm not quite sure what's happening here. But this one, the lowest one in Johannesburg, it's using 816 megabytes of RAM. So this shows you there is a difference between different regions and how many requests they need to serve. So what I'm thinking is we should optimize for the regions that we have, and the ones which are busy, we should give them bigger instances, maybe beefier instances, but others like Johannesburg doesn't need that much.
56:01So maybe we, and the problem is you can't use different scaling strategies for different nodes and they have multiple deployments so it complicates things a little bit. But this is a refinement. Yeah. I think we need more listeners in Johannesburg. I mean, what's up with that? Exactly. That's what I was thinking. That's what I was thinking. All right, there was one other question out there, I thought. It was back here. Yeah. I wanted to just put it around in my comparison to go back and see what the past looks like. Okay, yeah. Yes. I like it. Okay, so... The paths look like in Santa Claus. Right.
56:30I forgot about that. Thank you. Yeah, thank you. Thank you very much. So this is... We're looking at Honeycomb, and one of the integrations that we have in Pipedream is we are sending every single request to Honeycomb and some requests to S3. So, like, we see what's happening with these instances. So what that means is we are able to, for example, if I come back to the boards, if I come back to the boards again, Let's hope the tethering works. It will be a little bit slow. Okay, so let's go PipeDreamRequests, and I think maybe PipeDreamContent, but let's go Requests. We can see the get, okay, and now we can slice them and dice them.
57:12The 404s and the 500s. So maybe let's do gets. Okay, so let's go to the method, and the only thing that we need to do, so this is one hour ago. So these are all the requests in the last hour, and we can say, give me the URL, which is what we've been asking. So group by URL. And what this is going to show us is the get, but also the number of requests. So what you see here is that the most popular request is podcast feed, which got 203 requests in the last hour. And this is global. So we can do one more. We can say, let me remove that and let me remove request. And let me do data center. So we can see which data centers hit the most.
58:00So let's go that. And we can see that Frankfurt, 71 requests went to podcast feed. Chicago, the next one, 47. San Jose, California. So these are the most requested URLs. If we zoom out a little bit, let's look at the last seven days so we get like a bigger perspective. Add it to seven days. Okay, so you can see when it went live. So you can see that for some reason this one, I don't know who this person is, uploads 9 ,500 times. Shall we go and check who this is? I don't think you'll know who this is. Avatars. Somebody has a stalker. People. Let's see. Okay. So let's go to changelog.com. No, let's go.
58:41Where is it? Where was it? This one, this one. Okay. Copy that. Copy pasting. Hard. Uploads. And I think this will be CDN. CDN. There you go. So let's see who this is. oh yeah someone you have a stalker or a few who knows who is that guy yeah yeah you recognize him who's this other guy like 6qd who's so that's z4 or z4 z as you say it over here all right cool all right so let's see what's this next other person this is a fun side question right now Why not? There we go. It's Cable. Cable. There you go. He was in on it. Shall we keep going? Do you want to find who this person is? Let's see all the, yes.
59:26That's like the third most popular one, so we might as well. Come on, be Adam. Yeah, Adam, let's see. All right. Let's try that, uploads. There you go. So someone is loading maybe a JS Party page way too many times. That's possible. Oh yeah. But it will show up here, if it was the case. True. But then we have this randomness thing. Is dysfunctional doing something with something? Oh, on their website? Maybe. So, you know what we could do? We could do user agent. That's the user agent, and we'll see where these requests are coming from. It's gonna be a robot. Empty string. They don't wanna be known.
1:00:08Okay, shall we do... Masquerading and hiding. Let's get to the San Jose URLs. This is what we're trying to get, right? San Jose URLs. Okay, let's do that. So let's do, okay. So it's not even here in the list if you look at that. And look, this one has an empty string. So that's really interesting. We have somewhere an issue. So this needs to be, or no, hang on. This was like when we were doing the testing. So maybe that's one not so much practical AI. All right. Okay, so let's do server data center equals SJC. Yeah. Run query. And let's see, what do we get? Most popular in San Jose. How you can do all this slicing and dicing.
1:00:45Yeah, that's really cool, isn't it? It's so awesome. Look at that. Pocket casts. This MP3 was requested a lot. 428 times. Is this the last episode? Yeah, that one just went out yesterday, right? There you go. So it's just a popular episode in San Jose. That's it. That's better than I thought it was going to be. Which is a hacker. Yeah, no, this is good. Popular in Cali, not a problem. Look, overcast. Pocket casts and overcast and ten of pods. Yeah, they're just downloading stuff. This is good. This is good traffic. We love it. Yeah, nothing wrong with that. Cool. Okay, any other technical or otherwise questions from the audience?
1:01:20Comments, anything. Before Gerhard does his big reveal. All right. Everybody wants to see what you got, Gerhard. All right, let's do it. Cool. So, coming back here. It's the one more thing. This is the important one. No, that's something else. Cool. Flash something. All right, I flashed something, yes. We'll see it right there. So what we're going to do now, we are going to shift all the traffic to PipeDream. So all the production traffic is going to go to PipeDream. Shall we do it? Get your podcast. Of course we should do it. That's why we're here. All right. This is the moment. So all that we have to do, this is how simple it is.
1:02:04It's always DNS. No scripting. It is. No automation. It is DNS. It all comes down to that. Yes. We are going to delete these one by one. These are the A records which are pointing to. Pause. Let me get my own recording of you doing this. Go for it. Okay. Kaizen 20 in Denver. Let's do that. This is going to be anticlimactic because you're going to delete those and then we'll be like, they're deleted. Now, if this one goes down, so let's see if the system can handle all the loads, right? Like what can happen? So after this, the only requirement is we walk away, okay? We do this thing and we go for lunch or something like that.
1:02:40That's what's next is lunch, I think. All right, so boom, we have four more to go. Okay, so now we're - Three more to go, sorry. Yeah, after this one, three more to go. It's not deleting. It's not deleting, it's slow, right? It's my tether. Shout out to DNSimple, big fans. Thank you very much. One more, one more, cool. And the DNS is like one by one. So more and more requests are going to go to this one, which is the pipe dream. The pipe dream. The pipe dream, there you go. All right. So delete. So we're at one out of three. Now half our trash. Yeah, one out of three, yeah. Now half our traffic will be going to Pipe Green.
1:03:12Yep. Look at that. And now 100%. Now, we have one more. So we're 50-50. What's this one? That was it. That's CDN. That's CDN. We have to do the same thing for CDN as well. You've got to delete the CDN ones too. There you go. All right. So this is app requests now. Is this goodbye to Fastly? This is it. This is the farewell to Fastly? This is it. This is a triumphant moment in a morium at the same time. Only if it works. Only if it works, yeah. If not, we have to go crawling back to them. I may need to add these back. Like a dog or a dog. We still love you, Wesley. If this crashes and burns, we'll have to go back for sure.
1:03:45The good news is they have no idea what we're doing. Yeah, exactly. And this is not a live live show, so we're not streaming this. That's right. So it's okay. That's right. It's in this room. Amongst friends. If it doesn't work out, we edit this part out. So that's okay. He always says that we never do. Okay? Cool. We ship it all. There you go. One more to go. I think this is one and one more to go. Now, how long is it? We're at 60-second TTL. So this should be fast. 60-second TTL. This should be fast, yes. All right. If you can get your phone out and hit our website, please. Let us know how it goes, but that's it.
1:04:14We only have these two. Let's generate some traffic. Where's the real-time dashboard showing the activity? Real-time dashboard, of course. Let's do that. Let's do last 15 minutes. Let's see everything crash and burn. Oh, my gosh. No. What's the worst that could happen? Okay. The worst that could happen is all our fly-ins run out of memory. Well, there's no peaks and valleys. Let's go back to here. Let's go to the memory. There we go. Every one minute, let's maybe go to the last one hour. so let's see we had like a spike there but that was this is like 1220 so I think it's still good I think what we're going to see so two things we're going to see we're going to see let's come back here to the pipeline request we're going to see a change like these requests will start going up more and more traffic is going to start hitting look at that oh my goodness that's boom that was like the spike right there more requests getting resolved here status still 200 that's good.
1:05:05So that's all good. And 404 is 500. So things are looking good. Let's see what else do we have. Let's load a few more boards. And the opposite is obviously in here, in Fastly. Nice. So it kind of works still. It works on my machine. It's so fast. Fastly service stats. So these are Fastly service stats. The requests went up as well. I'm not sure what happened there. Why did they go up? Because I just told everybody to go to Right. I don't think we have that many people here, but still, cool. So, there's the requests. All good? Playing MP3s. Playing MP3s. Play the show. Let's do Pyedream service.
1:05:48So there we have a few again. The cache, we can see things going up here. So this is the last seven days. We'll need to zoom in a bit, so let's go 24 hours so that we see the spikes. There you go, that was the spike. Yeah. So. What is that spike? This one is more hits. That's good. More hits. We're getting more hits. That's good. More hits. So it will take time because the real question is, was it all worth it? And the answer to that is, well, do we fix that cash hit ratio? Let's check it out. That's the actual answer to the question. What's the 17 %? Are we going back to that? So let's go back to that.
1:06:2217 % cash hits. Last 24 hours. This is the homepage, right? That's the one that we're focusing at. Sure. So we're looking at the homepage. Last one day. We had 3 ,700 hits. Yes. And we had 33 misses. I think that's better. That's better. It is better. It is better. We Kaizen'd it. It's better. We did it. No way. No way. Do the math on that. Let's see. 3, 7, 1, 5 plus 33. That's 99.1 % hit rate. That's a lot of nines. Yeah. Two. To be exact. That's two nines. That's way more nines than we did. That's two nines. More that we had. There are some nines in there. It was like 70%. 17%, so this is much better.
1:07:01All right, so obviously this will take a while, right, for all the traffic to start shifting through. It is DNS, right, it's cached. But things, look at that, things are happening. Things are happening. So theoretically, 60 seconds later, those TLS records should expire. Exactly. And then require a new hit, which goes to a new route, which is through pipeline. So let's see this, dig change.com, and change.com right now, for me, it returns a single IP address. That's it. Bam. Because we're still in Ashburn. No, this is the Pipedream IP address. This is it. So this is one. And if I do changelog.com, this is the DNS that updates the quickest.
1:07:39That is the Google DNS. That's very fast. So Google DNS knows we're up. There's also, I use DNS checker. Let's see if it's still a thing. It's been a while since I've used DNS checker. A service that checks, tries to resolve the IP address from a couple of locations, more than a couple. Let's see. DNS checker. Let's go changelog.com. Try CDN. We'll do CDN as well. changelog.com. This is, I think, the important one. So all the DNS in San Francisco, it is. I'm going to make this a little bit bigger for everyone to see. It's a new IP address. We can see all the locations. So all of it is the new IPs.
1:08:21We don't see any of the old ones. The world knows about what we did. Yeah, I think so. They took notice. I think it's been good, I think. Yes, question? .
1:08:35That is a fly.io IP address, yeah. That is a fly.io IP address. Let me show you that so we have just IPs. We can see what IPs the CDN is using. And you will see that it's this IP address, which is a dedicated one. That's the IP that we're using. That's it. Should they clap now? Only if you want. You did a car. Thank you, thank you. Mind-blowing. We did a thing. We did a thing. Thank you. Thank you. Thank you. Because you were a part of this. And we did it with you and for you, and this was so good. Thank you very much. Thank you. So a couple of special things. We've already thanked our Pipely folks.
1:09:18Thanks to a couple of Denver liaisons. Dan Moore. Is Dan here? Hey, Dan. How are you? Dan. Thank you, Dan. And Kendall Miller. Did Kendall leave or is he still sticking around? He left. He was here earlier. Thank you to you two for helping us find this theater, for helping us connect with Nora again after all those years. We don't live here and so I had no idea what I was doing or who I was talking to. So always awesome to have locals and friends willing to help out and make it awesome. That's our show. One person didn't get thanked. Yes, Jason Oh yeah, Jason, where is Jason? Come up here, Jason Jason, come here, Jason's our editor He's behind the scenes, but he's very much part of this team, he doesn't get seen He gets mentioned a lot But critical, critical behind the scenes here at ChangeLog Thank you, Jason Thank you, Jason
1:10:18Alright, anything else, Gerhard? Thank you all, I really appreciate it Really appreciate it, thank you all Thank you.
1:10:28There you have it, our first ever Kaizen Live. But I'm pretty sure it will not be the last. You know an idea has legs when you're already brainstorming version 2, before version 1 is even out there. And we certainly were. Stay tuned for more. This particular episode is better on YouTube, and we have more videos from the Oriental Theater coming soon, including BMC's Live Beats show. So subscribe there for clips, shorts, and more goodies at youtube.com slash changelog. And of course, join our totally cool, totally free hacker community Zulip at changelog.com slash community. Have a great weekend.
1:11:06Share changelog with a friend or three who might dig it. And let's talk again real soon.
1:11:31Game on!
From the publisher
Gerhard calls Kaizen 20, 'The One Where We Meet'. Rightfully so. It's also the one where we eat, hike, chat, and launch Pipely live on stage with friends.

