What is scalability anyway?
brooker.co.za
brooker.co.za
The part that nobody ever says out loud: and where the cost of removing incremental work is also approximately constant.
A solution targeting server or desktop environments doesn’t necessarily scale down to microcontroller scale. One of the things that makes both SQLite and Linux so popular is how they scale well into really small environments.
Arguably more important than microcontroller scale, these days, is whether it runs well on Android. The cost of manufacturing custom hardware is enormous, but piggybacking off the Android ecosystem can often eliminate most of the need for custom hardware. Of course, Android is a very different target than Linux...
All three and possibly more. I think it all depends on what you're doing.
> For example, S3 and Lambda are basically free for usage with near-zero traffic
Just to build on this a little bit, even this has limits: if your operating environment has extremely lower power availability (so, low available bandwidth), maybe S3 has too much data transfer overhead!
It isn’t a dichotomy between flat step segments punctuated with spikes vs pure linear growth (where someone else has taken the spike hits for you).
It is linear growth segments punctuated with spikes, vs. raised linear growth without spikes.
In practice, spikes won’t be completely eliminated. Even with the most seamless cloud solutions, some rearchitecting is likely.
Also, I interpret the cost graphs as measuring the combined effort, time & risk costs. I.e. spikes represent both predictable & unpredicted efforts and delays.
The delays perhaps being the best reason to pay (linearly) more per capacity, since delays negatively impact (ideally super linear) business growth.
A basic rule of thumb I try to follow is: as long as you have at least two instances, don't immediately think about hundreds or thousands of instances for spikes that will never exist. Scaling from 1 to 2 (to remove SPOF) is much harder than scaling from 2 to 3, or 20. You have already removed some implicit "localhost" assumptions.
This is the timeline I choose to live in.