Q: Does Azure IaaS provide a scale-up capability?
A: Azure IaaS provides an auto-scale capability that's enabled for Availability Sets at the Cloud Service level. At a basic level, it works by the administrator pre-creating all the virtual machines that might be required and placing them in an Availability Set. The auto-scale is then configure for the Availability Set with thresholds defined for the minimum/maximum number of virtual machines that should be running, increments for starting/stopping, and the trigger for scale (i.e., CPU or queue depth). This is a scale-out capability, because additional instances of a service are added/removed by starting/stopping virtual machines.
Scale-up works by changing the resources of a virtual machine (e.g., adding CPU, memory, disk). This isn't available as a native Azure auto-scale capability. The primary reason is that the size of an Azure virtual machine can't be changed dynamically. To change the size of an Azure virtual machine, which changes the CPU/memory, the virtual machine has to be de-provisioned and re-provisioned—potentially on a new server, which introduces a period of unavailability of the service running inside the virtual machine. In general, this isn't desirable and doesn't occur when you scale-out instead.
If you really want to implement scale-up, you can accomplish it fairly easily by creating an Azure Automation (PowerShell workflow running in Azure) that checks the metrics of an Azure virtual machine. If necessary, the virtual machine can be stopped, its size changed, then restarted. However, a period of unavailability would occur during this scaling.