Capacity and Scaling
When we talk of “The Cloud” we immediately think about unlimited computing power and the elasticity of consumption (or reservation) of such power. The cloud makes it very easy to reserve and release capacity and in turn scale up and scale down the consumption of such capacity. In the case of computing offered by IaaS there is still a need to deal with VM instances and operating processes. But with PaaS such things move into the background, becoming nearly invisible to the management of the application, except when things go wrong which I will come back to later.
Auto scaling forces us to see the application as distinct from its instantiation, execution and (data) flows in the cloud. In theory an application can exist in the cloud but yet have no capacity reserved or assigned. This is the “nothing” within the cloud universe and it presents a problem when we consider application management. How do we know of this nothing without creating something to tell us. And how can we distinguish one form of nothing from another and relate the causes of such happenstances.
“All things appear and disappear because of the concurrence of causes and conditions. Nothing ever exists entirely alone” - Buddhism
Clearly the application needs to exist independent of its many instances, which are merely vehicles for execution and consumption. But what is an application when it has no running processes? We would still like to view it like it was running (living), in some form, even when it is doing nothing, owning no resources and holding no space. This is where Simz comes in. Simz is the application. It is not one particular application process, it is all of the processes that have been created as well been destroyed. It offers a continuity beyond the lifecycle of any process. More importantly Simz offers a succinct memorization of past behavior of an application via the metering model, which includes activities (probes) and resources (meters). Simz is not some place holder in a cloud management dashboard used for grouping resources or a record in a database or an entry in some log. It is the application, when there is something happening, and when there is nothing happening. It always looks as one whole even though it represents many moving parts including nodes, processes, threads and activities.