4 ms·
Yes and no. If everything needs 5 databases, 4 queues, 3 caches and all of this is written in 7 different languages, then yeah I guess cloud is the way to go.
by muskmusk 4y ago
Yes and no.
If everything needs 5 databases, 4 queues, 3 caches and all of this is written in 7 different languages, then yeah I guess cloud is the way to go.
If you just shove shit into postgres and pull it out again using something like postgraphile then I don't think cloud does much for you.
The Flipside of the "computers gets faster and faster"-argument is that more and more can be done on one machine.
Compute supply is growing faster than demand. Today's apps are not that much more complex than the apps of 10 years ago, but computers are much faster. Human beings read and type at the same speed today than 10 years ago so I don't really see this changing massively.
Obviously all the BigCos listed can't run on one machine, but a very large percentage of stuff can.
- mike_hearn 4y agoAgree. A lot of the movement to try and develop everything inside Linux containers is driven by a few factors, none of which are particularly fundamental and which may see a reversal for unrelated reasons in future: 1. The insistence on doing UI exclusively via web browsers. They aren't particularly well suited to it and at some point competition for them may arise. 2. The insistence on using complicated proprietary cloud services to allow scalability, without actually doing any scalability calculations to justify it. A modern dedicated server is a staggering piece of kit. NVMe SSDs are game changers. You can scale a bog standard ordinary RDBMS setup to very large amounts of load without needing any special cloud databases at all, and it'll be easier to program. People don't realize this because they tend to think about scaling in binary terms: "it scales infinitely"/"it doesn't scale and that's bad". That sort of mental shortcut can be OK when money is free, but, well, we're entering a period where it may not be. The sort of engineers who can actually do load tests and figure out plausible maximum QPS for their load can pay for themselves quickly. 3. The fact that the only competition for Linux on the server side is cloud APIs and services, and Linux badly needs the competition. 4. The popularity of toolchains/languages with extremely weak portability layers and convoluted packaging systems. Java nailed this. Python, Ruby, Go ... not so much. This inevitably pushes people who use those tools towards using their local OS as a glorified terminal window manager for dialing in to Linux VMs because nothing works right if they try to use Windows or macOS directly. If your app genuinely needs something only AWS can provide then yes, you have to develop in the cloud and not against a local implementation. But that's a bug not a feature, and if you're in that boat then you're exposed to all sorts of problems beyond needing to develop against production (e.g. opacity of failures, unexpected cost explosions). If you can run the bulk of your app on a JVM with a Postgres connection then that's a competitive advantage - your devs can use the environments they're most comfortable with, you've got full insight into the whole stack if anything goes wrong, outages can't shut down the whole development team and you're not racking up cloud charges for development purposes.
- namaria 4y agoA Phoenix web app can extract amazing amounts of juice out of a 5$/month VPS. But shinny tool on CV = $$$ so...