Application auto-scaling in PaaS enables your application to react to changes in workload and automatically allocate the necessary resources to handle your current demand without an administrator having to do it by hand. In my earlier post I explained and demonstrated how WAS ND Liberty Profile and Full Profile provide auto-scaling for on-prem applications. None of the other application servers provide the auto-scaling functionality found in WebSphere Application Server. However some PaaS platforms are trying to fill this gap. For example, Red Hat OpenShift does have an auto-scaling capability that can be used to scale JBoss EAP gears and other web gears automatically. Lets take a look at the differences between BlueMix and OpenShift auto-scaling (see respective IBM and Red Hat documentation on this topic).
You may want to watch the IBM BlueMix auto-scaling demo to understand how it works in practice.
While many PaaS vendors claim to do similar things, the devil is in details (as always). BlueMix and OpenShift Online both claim to provide auto-scaling capability for Java Application Servers, however there are significant differences in how it is implemented and how the user can control it. It turns out that BlueMix provides a lot more granular control over the auto-scaling decision process. Take a look at the comparison below – I think the difference is pretty clear.
|User defined scaling metrics:|
|# of connections||No||Yes|
|User controlled options:|
|Cooldown period for scaling in & out||Yes||No|
|Scale in & out instance count||Yes||No|
|Max & min instance count||Yes||Yes|
To be fair to Red Hat, there is a capability to write your own auto-scaling plugin for OpenShift as described in this article, however the average user is not likely to embark on this endeavor as it is fairly easy to bring havoc into the application by introducing an error in a complex hand written script.