Even if you always have to scale up for 1-2 hours per day, using dedicated hardware that's idle the rest of the day is probably cheaper in most cases.
Even if you always have to scale up for 1-2 hours per day, using dedicated hardware that's idle the rest of the day is probably cheaper in most cases.
But in the end, the pros significantly outweigh the cons. Our resource consumption is naturally extremely elastic. While we'll always need to slightly over-provision to maintain some headroom, adding/removing nodes throughout the variance saves quite a bit of $.
1. You can get started for dirt-cheap or in some cases, free
2. There's a common API for requesting new instances and performing maintenance tasks
3. There are extra services available to help build your apps such as SES, S3, and RDS to name but a few I found very helpful.
I'm not saying anything in this thread is wrong. But in software engineering, we say "write the code that only you can write", which is a suggestion (but not a rule) to use pre-built libraries instead of trying to make your own. Perhaps we should also say, "run the instances that only you can run".
Only true if you commit to vendor lock-in. If you use a higher-level cloud agnostic library, then it likely works with openstack as well so you can manage on-prem and off-prem instances the same.
One problem we HAVE seen is a reduction in maximum bandwidth. Since we're CPU limited, however, it hasn't really been an issue.