4 ms·
I read it differently. It looks like a good outline of 4 basic approaches to building and hosting web sites. I would word them as: 1. Stateless static site. Th
by hathawsh 4y ago
I read it differently. It looks like a good outline of 4 basic approaches to building and hosting web sites. I would word them as:
1. Stateless static site. There is a variety of ways to build it (such as React or Svelte or purely by hand) and a variety of ways to host it (such as a directory of HTML files hosted by nginx).
2. Function services like Cloudflare workers, AWS Lambda, Google Cloud Functions, Azure Functions, etc. This is a way to store state without having to manage servers.
3. Single conventional Linux server.
4. Distributed containers.
All web developers should familiarize themselves with these 4 basic approaches and prefer them in approximately the order given. It's good to avoid jumping to distributed containers if you can get away with functions, a single Linux server, or even static HTML. It's also important to move down the list as the app grows rather than reinvent K8s.
- crabmusket 4y agoI can't have my database on a separate Linux box? Seems odd to insist on either precisely one server or go straight to container orchestration. That said, I agree with you about the other generalisations! EDIT: actually, where do PaaSes fit into this taxomony? I'd argue that level 2 is actually the PaaS level. You might choose an edge PaaS (Workers), distributed (Fly.io), or centralised (Elastic Beanstalk) depending on your needs. But ultimately this level is: "I write code, you run it". FaaSes are a subset of PaaS providers which focus on stateless models, but there's no reason you can't combine FaaS for your code with a managed database offering.
- NikolaNovak 4y agoI assumed that option 3 was a "Fermi estimation", I. E. "single handed number of servers" I'm used to 3 tier legacy apps (web / app / dB) but I assumed that would fit into number 3 the best, I could be wrong...
- crabmusket 4y agoMaybe it's "on the order of a single server", or conveys that the servers are "statically" arranged and/or manually managed rather than automatically (auto scaling, service discovery)?
- hathawsh 4y agoYeah, that's a better way to put it. #3 is a static arrangement of a small number of servers.
- tbeseda 4y agoThis is a much better outline of the article than the article's own table of contents. Makes much more sense, even if it's still incredibly narrow in scope.
- tony-allan 4y agoIt's not obvious but you can host an entire website or simple web app on AWS Lambda (as simple as a single function).
- indymike 4y agoThis is much better than the article.