I had Adrian Cockcroft on, I think like maybe a year or maybe two years ago now, and he just talked about like the origins of serverless at AWS and like how Netflix was involved and like hearing... and I've worked in Serverless as well over the years, but not to the extent that you all, like 100% all in.
Reflecting on that conversation with Adrian, it was just talking about like the speed and agility that Netflix engineers had at the time, when like this was all just kind of coming into fruition, like the idea of serverless. But there's so many great fits for it in the modern business, but I still feel like it's one of those things. It's like despite the fact that you see it everywhere in the cloud, I feel like so many companies did not get to that ideal place that Adrian kind of pitches. And it seems like Extend has really gotten there.
And when you talk about stuff like the active-active stuff you're doing and the multi-region stuff you're doing, that's one of those things that, as an operator, it's like that is so hard to do in a server full world. Right. And it's much, I feel like it's much easier to do in the serverless world.
And so this is one of those things. It's like, you know, it's that pipe dream that so many companies want to chase. They want that great disaster recovery story - "I'm in multi-regions, I can just cut over." But it's just so hard to get there and it's so hard to just adopt serverless in like a sane, non-chaotic way. And so I would love to just learn about how your team just got to the point where you're like, serverless is the way for us.
We're going to eschew the servers, eschew the networking. What decision took you there?
And then how did you start going about designing the architectures and processes to really get your engineers to embrace it and own it?
So the first one I see is the local development story and there's like, you know, there's like the lambda simulators, the DynamoDB simulators. But like, once you get outside of like the first major class of serverless, that's where it starts to get hard to do local development.
The second place I see it is... it's funny, like serverless, I feel like when you look at code bases, like IaC code bases, you have a lot more IaC in a serverless world than in a serverless world. And I feel like that's one of the things that kind of can be rough is the like IaC can typically feel like outside of the developer's domain. And I feel like that's one of the places we see a lot of people kind of like start to choke up in adoption is like, there's a lot of this IaC to manage the thing or SAM or something like that. And then that always kind of falls back on the Ops team, right? And now you got this blocker of like, well, we're serverless. It's supposed to be so easy, but the Ops team does the IaC.
And then I think the third one where I see people trip up on serverless is they're like, "It's super duper cheap." And then they make some bad decisions and they're like, "Holy moly, this thing is not super duper cheap." And there's CapEx and OpEx, you know, logic that goes into what is cheap there.
But like, starting with just like the developer story, like, how does Extend think about developers, like, building a new service, like, whether it's an app runner or a Lambda or a step function. What does my development story look like?
How can you build a good from zero lines of code to production on serverless and make it fluid for the developer?
You know what I love is, as a person that runs a company that like sells a Dev tool, like DevX is such an important role in developer tooling. I love that you said, like, you have DevX people on your team that is focusing on your actual developer's experience, which is, I think, rad.
Like the developer experience... I feel like in so many, especially like a budding platform team, like when you're trying to like, you know, kind of work through like the primordial ooze of like, "What is Ops and SRE? And what is our platform going to be like?" The DevX is something everybody on the engineering team is talking about. It's in Slack somewhere, right? It's like, "Oh, this sucks, that sucks, this sucks, that sucks." And like, people are just trying to keep track of what sucks and it's usually going to the bottom of the stuff we fix list. Right.
It's like, there's stuff that the customers say suck and then there's stuff that the Devs say suck and like that sits to the bottom. And it's up to all of us to kind of make it better or, you know, the Ops person that's starting to move towards platform engineering to say like, "Hey, how can we get a really good MVP that makes the developer experience better?" But it's always still kind of a thing you do as a part of your job. And it's like when it's a shared responsibility, it's no one's responsibility. Like, you know, like, who's accountable for it and like, I love the fact that you guys are doing that.
I venture to say that that's probably where a lot of this efficiency comes from in your team, is that you have people dedicated to making our Devs more efficient, which is the name of the game at the end of the day, right?
I'm going to use a phrase that is probably going to immediately make you vomit, but like... it'd probably make everybody vomit... but it feels like there's almost like a cultural synergy to like the way you all are approaching your IaC and Ops, right?
Like, I'm a person, I love Terraform and OpenTofu, obviously. I work in a space where I typically touch a lot of clouds and so it's hard to lean into an AWS CDK because here, there, whatever, right?
And one of the things that's always interesting to me is when deciding on an IaC tool... Terraform is such an easy go to, especially if you're multi-cloud... but there's so many companies, it's like, "You're not locked in, but you're not fucking going anywhere." You know what I mean?
It's like with you guys, you all decided you want to go with serverless, you want active-active, you want multi-region, you're probably not going to just be like, "Hey, we should move to Azure today." And so it doesn't matter.
I guess an OPS person is like, "Well, we don't want to be locked in, so we can't choose the cloud's tool because then we won't have that ability to leave if we need to." But like, you know, as a person that loves Terraform and OpenTofu, like, CDK sounds like such a good fit.
AWS CDK sounds like such a good fit for a team who's just 100% in on AWS.
I feel like this is one of those places where you could have made a decision as an Ops team that could have just crippled the Development team across the board and said, "Hey, you know what? Because in the future we might do a Google thing or we might do an Azure thing. We're going to use Terraform." And like now all of a sudden those engineers are just ground to a halt, right? As far as like their agency and being able to control their infrastructure.
One of the things that I think the AWS CDK did such a good job of that Terraform has just fumbled for a decade is these constructs. Like this is the thing that is so hard about the cloud.
Like if you look at almost any control plane, especially on the serverful side, there's the operational plane and then there's like the developer plane and they're mixed in the API call, right? Like you look at postgres and it's like, "Hey, tell us about all of your availability and all the stuff that your Ops team cares about and what the developer cares about in one API call." Right? And like the thing that's hard about that is like I need that abstraction as a developer. Like to me I'm like, "I want Postgres and there's this operational plane I don't care about."
And the AWS CDK constructs have done such a good job of like, "These are base layers that you can kind of like layer on top of each other to get to the abstraction that you need." And Terraform is like, "We solve this by like wrapping a public module around like every single cloud service." And it's just like... it's just kind of like this pass through layer that never meant anything.
I feel like that is one of those places where there's just so much more potential in self-service for developers because the ecosystem did such a good job of making abstractions and building blocks a core part of the tooling, versus this thing that they're thinking about a decade later.
It was funny. There was a company I worked for a number of years ago where we built one service in Serverless. I wrote an article about it - I'll put it in the show notes for anybody who's curious. It's very old but like coming back to your cost point, like they cut costs all the time and we built this service and it was just this one-off thing.
We were just building real quick for like one customer and then it was just one of those things where it's like three months later like our sales team's like, "Hey, we're going to every... all customers are going to be using it now." We're like, "Yo, this was just like a one-off thing we built real quick for one person." They're like, "Whole entire globe's using it, including like some of the biggest websites on the internet."
And then all of a sudden we moved from this thing where like we didn't think about the cost of it whatsoever to just the API gateway for this one endpoint was $32,000 a month, right? Like it just, it appeared overnight, like it just boom and hit us.
And it's funny because like when I'm writing this article... my whole team had, we had a ton of Kubernetes experience. Ton of Kubernetes experience. We had a ton of Kubernetes clusters already running. And so we rewrote this service from serverless to just a, you know, small app running in Kubernetes and literally the cost went down to like dollars of prepaid compute.
And it was really funny when I wrote this article, people were like, "Ah, see, like you see how expensive serverless is." And I think people kind of miss the point. It is expensive and because we have a team that understands Kubernetes, it's cheap for us to move it. But if you didn't have that team, all of a sudden, a service that cost you $300,000 a year, that's making money and you're not paying for an ops person, it's no longer expensive, right?
And I feel like a lot of times when people look at serverless, it can scale really quickly, it can get expensive really quickly, but a lot of times we don't take into account the full picture, especially in an org like yours where you've done a lot of the work, where you don't have to have DBA admins, network admins, that is cost savings that the business doesn't necessarily see day in, day out. And then your CFO sees the serverless bill and is like, "Oh my god, AWS costs too much."
Yeah, I remember that. Oh my gosh, I remember, that Lambda I was talking about earlier, we had a thing where we could turn on CloudWatch logs on and off in it. When we turned it on, like it was like $600 a day in logs. Like as soon as we turned the logs on, it was like we had an environment variable to control whether or not we logged. So we were just like, we'll only turn on logging like when we really need to look at stuff. Like it was so, so expensive.
It is so funny how expensive observability has gotten like from like the Datadog $60 billion company.
But like, yeah, I talk to people about this like pretty frequently. Like we don't, on our product, like, we don't do any logging internally. Like, we only do OTel and people are like, "Oh, isn't that expensive?" It's like, "Well, it is if you also do logging." Right? Like, observability has just gotten, it seems like it has gotten very, very expensive.
I feel like so many companies... it's like we have to store all of our logs and all of our metrics and all of our traces. And it's just like three things stored three ways in three different places with three different bills. And I feel like that is such a place where people are just still struggling to get like a... Like we just had logging, like we just had like the three pillars for such a long time and it's just like we've built so much shit on top of that shit and it's just like somebody's clutching some dashboard like it's so important, it is so hard to move away from it.
It's so hard to get to a better observability world because we have these like sunk costs that we're still stuck to. But it is just so funny that you're like the most expensive part is the observability. Oh man.
I said this the other day on LinkedIn, like it is the time to learn it, right?
It's really interesting because like with AI, with the commoditization of intelligence, where it's just like I can just buy it, I can buy thought now, right? Like there's no moats anymore. Like that's the crazy thing.
You've got Extend. I've got my business, Massdriver. It's like, okay, well today I can tell my code base to add a feature. It's a pretty good code base, it's clean. Like we follow so many practices. There's a lot of really good context. We've set AI up to succeed.
There's a lot of code bases that aren't that way, but look where we are today. A year ago I wouldn't have thought I could have one shotted this with anything. A year from now you probably will be able to one shot some pretty good functionality into a shitty code base, right?
And so when we get to a point where SDRs and salespeople are just one shotting software into existence, like the moats become really interesting. Like you're saying, it's like one or two companies are going to own everything. It's like OpenAI can now look at your business and go, "Wow, that's interesting. This company makes a lot of money. Let's just will that functionality into existence in our product."
Now the only moats are like your product quality and your support. Because it's sure as shit not your employees' work output, especially in like the software world, right? So it's going to be real interesting.
That's one of the things that like wears at me. It's like, right now I'm getting free labor - that's the way I see it. I'm getting a ton of free labor and I'm going to use it.
I don't know where this goes. And if you tell me it costs five to ten grand a month, I might pay for it. I don't know that like Macy's is going to go buy $10,000, $5,000 a month licenses for it.