Have you moved into a public cloud lately? The first step is to choose the size of the machine instance from a standard machine configuration that has enough vCPUs and enough memory. Of course, cloud providers offer custom machine instances, so you can pick the exact right amount of vCPUs and memory.
But whether it’s a standard or a custom machine instance, enterprises simply guess at the correct size, using on-premises systems as a guide. It’s a logical approach, but it’s not realistic. You rarely run the same workloads on the same server types in the clouds. Moreover, most applications will undergo some refactoring before they end up in the cloud. It’s apples and oranges.
As a result, many enterprises overestimate the resources they need, so they waste money. Some underestimate the resources they need and, thus, suffer performance and stability problems.
Cloud providers will tell you that their standard machine instances let cloud users select the best configurations for their workloads. Clearly, that’s not true. What the public cloud providers should do is build mechanisms that automatically configure the machine for the exact right amount of resources for the workload at hand: autosizing. If a platform is running a workload, it should be able to atomically profile that workload and configure that machine for the workload’s exact needs.
Yes, cloud providers already offer autoscaling and autoprovisioning, and that’s great. But they don’t address machine sizing.
The cloud providers should be able to offer autosizing of machine instances, with a little work. We already have infrastructure as code, where the applications themselves dynamically configure the resources they need. The same concept should be applied to machine instances, so users don’t have to guess. After all, they’re not the cloud infrastructure experts — the providers are.
If customers ask, maybe it will happen.