Down with Cloud Native
I’ve been working across quite a few tech stacks in recent months, and I’ve come to an interesting conclusion.
For most of the 2010’s, cloud native solutions (think Firebase, Heroku, Vercel) have offered developers a lofty value proposition. They’ll handle all the ‘dev-ops-y’ bits, the scaling, the low level security for you. You offload that mental load to them. And in exchange for this generosity, you’ll pay them handsomely and increasingly cement yourself in their ecosystem.
Throughout this entire period, decades old tools like a copy of Ubuntu server edition, nginx and some systemd sprinkled in continued to work perfectly, but with a learning, and forgetting, curve that never quite outcompeted the cloud native abstractions.
Setting up an nginx config is something I’ve done few enough times that each encounter feels like I’m helplessly messing around with a system far too complex for me to be interested in wrapping my head around. There seems to be tens of configuration options I might need, and a lot of effort to go about discovering what all those options are. Once you begin enumerating the other various little inconvenient configs that need setting up, and the thought of maintaining them all - a quick win like Firebase or Vercel begins to appear quite appetising. Of course I didn’t set out for vender lock in and crazy pricing - but after all - how can I be expected to do all this to get a simple index.html out there?
The cloud offerings have won on two metrics:
Developer Advertising: Docs, conferences, certifications, YouTubers. Doesn’t take much of this before an approach seems like TheWay
Fast time-to-demo: Offerings that let you get an almost-production-ready demo up in minutes instead of hours
Compare these two the tried and true “old way”, where you’re met with hundreds of man pages and an empty terminal, it’s easy to see where most dopamine loving developers end up.
But here comes AI. Years of stack overflow posts, blogs, and steady unchanging APIs mean there’s billions of tokens worth of programming compressed into GPT-4’s weights, and the (somewhat unsurprising) insight I’ve noticed is that ChatGPT is remarkably good at routine sysadmin, config, setup, style tasks.
All of a sudden, setting things up “the old way” has:
Perfect personalised advocacy - no amount of well written help docs can beat a conversation. Discoverability trumps everything, and GPT boosts this immensely.
Fast time-to-demo - code generation takes time to first working version again down incredibly.
GPT-4 removes all the friction from doing these less-than-routine tasks, and gives enough confidence that it’s been done correctly for me not to feel entirely naive.
The benefits of “boring” tech are pretty immense in my opinion.
There’s immense confidence that comes from using tools that have been used to build literally everything under the sun, and thus in knowing there’s probably a way to make this fit your use case. The same can rarely be said for cloud-native, having personally ran into issue after issue that are only solved by a random comment on a GitHub issue 15 search results deep from one of googles engineers saying “can’t be done, thanks for your feedback!”. And having an always on assistant that’s very familiar with all the use cases makes them all the more valuable.
Obviously there’s no killing cloud native things any time soon - but I do wonder.