3 ms·
> Serverless enforces good architectural practices I'd argue it's the opposite. Since everything gets "thrown away" per request you neglect on caching, memory
by re-thc 2y ago
> Serverless enforces good architectural practices
I'd argue it's the opposite. Since everything gets "thrown away" per request you neglect on caching, memory leaks, subtle bugs etc.
You also need to make trade offs like focusing on cold start as opposed to peak performance etc.
- taylodl 2y agoSince everything gets "thrown away" as you say (though it's not per request), you actually have to focus more on caching in order to maintain any kind of session state (if required by your application). Memory leaks are an interesting matter because, you're right: you really don't care. All the pieces parts comprising your system are continually restarting without impacting the overall resiliency of the system. In fact, quite the opposite is happening - the system is more resilient due to all the mini restarts. You will have to learn techniques for handling cold starts, there's a few different ways to go about it and which one is appropriate, including not worrying about it at all, is dependent on your application and the cold load ramp-up experienced.
- re-thc 2y ago> you actually have to focus more on caching You lose a lot of layers of caching since there's no point in it. You focus on rather poor caching, i.e. you have to use an external cache. You can't store this as part of the current session and access it for the next request, e.g. by the same user. > you really don't care That's on the surface. It's like having a hidden illness that only gets you when something else breaks and suddenly 100s of errors pile up. > the system is more resilient It pretends to be. You often get bugs that aren't so obvious and never get fixed because it's now hidden so deep. > You will have to learn techniques for handling cold starts The nuance here is you're learning to prefer faster cold starts at all costs including trading for warm start performance. It's making the world worse.
- taylodl 2y ago> External caches are resilient to total failure and the need to failover to another environment. > Memory leaks are a non-issue - seriously, you're processing the transaction and durably storing the result and going away. I've seen systems written this way that have been running for over 20 years. > The system is more resilient, there's no pretense to it. I have anecdotal data from many projects developed by many teams in multiple companies now that show the business disruptions have decreased and decreased considerably. > Not all systems are affected the same way by cold starts, some aren't affected at all. You do have to plan for it and understand how cold starts affect your system and whether any remediation is required. > It's making the world worse - that's a subjective opinion. I call faster time to delivery with fewer business disruptions better. We're currently delivering capabilities the business thought would take far longer to develop and would cost a lot more in operations costs. I call that making the world better.
- re-thc 2y ago> I've seen systems written this way that have been running for over 20 years. So? History and same mistakes have repeated for centuries in many areas. Does that make it good? > I have anecdotal data from many projects developed by many teams in multiple companies now that show the business disruptions have decreased and decreased considerably. And so? Someone else likely has anecdotal data otherwise. How do you even show this? Was everything else the same except this "server" vs "serverless" change? That in itself is impossible unless you know how to freeze time. Lots of variables in your company are likely different every week or month. People come and go. The market changes. Etc. > some aren't affected at all. Like if you close your eyes and pretend it doesn't exist? Sure. If you don't care it definitely doesn't exist otherwise cold starts are always slower, the end. It's not just about the programming language, jit, VMs or anything. It's a worse outcome. > that's a subjective opinion It's objective based on your measures of objectiveness - as seen above. > I call faster time to delivery with fewer business disruptions better. Is that a given? How did you jump to this? Either approach has its complexities. I've seen "serverless" take longer to deliver. > I call that making the world better. How does that make it better? What does doing better than an estimate have to do with serverless? You can do that regardless. We're here just going over the straw man. Where's your actual argument? About server vs serverless. Not something else.