|
|
|
|
|
by falcolas
2872 days ago
|
|
> But removing the necessity of managing scaling, individual instances, and OS / software patching is significant. With AWS (and other cloud provider) APIs and tools like Packer, these difficulties are vastly overstated. Building VM images is just another step in the CI/CD pipeline, and patching and deploying a zero day fix becomes "kick off the CI/CD pipeline". You can even do automated unit testing of an image with tools like Inspec. Scaling is an API call to change a "desired instance count" value (if it's not already automated), and complex problems with any individual instance can be resolved with STONITH (terminating the instance). |
|
There is a non-zero cost in maintaining that process, including paying people to know and understand things like Inspec, packer, and Linux troubleshooting. There are also full OS upgrades where assumptions made could be invalidated, along with revising your process accordingly.
> Scaling is an API call to change a "desired instance count" value (if it's not already automated)
That automation is significant complexity. You'll be maintaining whatever health / resource checks are necessary to determine when scaling up is necessary, when scaling down should be done, what initialization / teardown tasks need to be done, etc. You'll also need some kind of health checks / monitoring to ensure this process is operating as it should so that you can detect if there's a problem with it. All of that needs to be known / understood / documented / maintained by someone.
And that's only for the stateless part. If you're trying to do with same with a relational database, it only gets tougher.
> and complex problems with any individual instance can be resolved with STONITH (terminating the instance).
Only if the problem is truly non-recurring and only in a single instance. Otherwise, it will be Linux troubleshooting to find out if it's your software, an OS patch, a third party software patch, or some other issue.