A representation system
for the cloud
The design of CALM.io (Cloud Application Lifecycle Management) was one of the most frustrating, immersive and meditative experiences for me. Frustrating because virtual computing is an industry filled with opinions, jargons, acronyms and multiple references for the same thing. Immersive because I had very little idea and it was a sea of information for me to take a swim in and make sense of, for myself and, meditative because diving into the complexity brought me to a point where I arrived at a simple understanding of it, eventually.
CALM's pitch to the customers is that it
1. Allows for a creation of blueprints for a defined configuration of their virtual infrastructure and then,
2. A window/glass-pane in which the DevOps, who manage this infrastructure, can view and manage the infrastructure when it is up and running
For the above broadly 2 scenarios, there needed to be created a drawing space for the blueprint of the infrastructure and then, a console which allowed for the viewing of the virtual machines which were essentially my application. This gave rise to the metaphors of the blueprint canvas and the deployment console.
Metaphors for the cloud
In the end, the metaphors to be used revealed themselves quite obviously. The cloud, the true nature of which is not really interpreted in terms of UI yet, came to me as really being up in the sky or space and hence space became the container of the virtual infrastructure.
A tactility to the design
My intention with the design of the interface was to give the users a sense of tactility to the environment they were working in. In the blueprint canvas, the sense of tactility was provided by the skeuomorphic representation of the services (virtual machines). The user feels like he is moving around actual objects.
A sense of layers
3 layers emerged as a part of the simplification process for the design of CALM:
1. Services: The base layer is that of the services (virtual machines) that have been defined by the user. These are the minimum required for the virtual infrastructure to be defined.
2. Dependencies: The machines depend on one another for the exchange of data. The dependency arrows are straight lines which do not convey an obvious sense of movement.
3. Task flows: Tasks are created on top of the services and dependencies' definition to enable actions on top of the infrastructure. These task flows could be anything from shutting down to pausing or taking a backup of the infrastructure. The task flow arrows have a curvature which convey a sense of movement between the different tasks.
The framework for the interface
An interface framework was also defined to keep clarity of communication over the nomenclature with the developers and managers of the project. Shown below are some aspects of this framework and the communication.