In theory, you’re supposed to provision a machine for your application that’s just the right size (plus a certain percentage of overhead). If you do that, you’re volunteering some evening and weekend time when the application reaches its limits.
So what do you do? You pick the largest machine from the list that you think you can get away with. You don’t want the headache of redeploying any time soon, since you would have to provision a new machine, set up any pre-requisites on the server, and get your application stood up. (I’ve certainly been guilty of this.)
Now, contrast that with what happens with PaaS. Your application is deployed and running for a while. Then you get a call – maybe you’re hitting a high water mark on CPU or memory, or maybe they called at 4:30 on Friday because they forgot to mention that 5,000 new users are being provisioned over the weekend.
How do you get more resources with PaaS in the picture? You push the button marked “add another instance” next to the component that needs scaling, and the platform takes care of the rest over the next 30 seconds. A new instance is deployed, and traffic is round-robined. No need to set up a machine or install any pre-reqs. No need to add a load balancer or mess with DNS.
Because it’s so much easier to expand resources, we’re finding that people don’t feel the need to over-provision, so locked in excess resource goes down…… And all without an auditor making you grumble.