I thought I'd provide a glossary of terms that I use in the "cloud" space.
VM: A virtual machine.
Virtual Application: Either a stand-alone or multi-tenanted system which provides a user remote access to an application.
Cloud: One of more physical devices combined together to provide a system for creating, managing and subsequently destroying instances of virtual machines or platform environments or virtual applications, depending upon which level of the computing stack you're talking about.
Node: A physical device making up the cloud.
Slices: The collective name for the instances that exist on a specific cloud.
Private cloud: The provision of a cloud for private use i.e. within a company and behind the firewall.
Public cloud: The provision of a cloud for external use.
For example FlexiScale is a Public cloud which allows consumers to create, manage and destroy VMs on a back-end consisting of a unknown number of nodes.
Cloud controller: The node[s] which act as the main controller[s] managing all cloud operations.
Cluster controller: The node[s] which control the provision of instances by other nodes. The controlled nodes being referred to as a cluster of nodes.
Bounded cloud: A cloud where the size of an instance cannot exceed the size of a node.
Unbounded cloud: A cloud where the size of an instance can exceed the size of a node.
Structured cloud: A cloud which provides defined services for discrete activities such as storage (for example S3 or EBS).
Unstructured cloud: A cloud which provides no defined services.
Persistent cloud: A cloud where the instance is persistent and can be stopped and restarted (for example the local VM storage such as the virtual hard drive is persistent).
Non-persistent cloud: A cloud where the instance is not persistent and cannot be stopped and restarted.
For example Amazon EC2 is a bounded, structured and non-persistent cloud.
Fungibility (equivalent terms include my favourite Patration, Software Fluidity, Fungitility & Substitutability)
Fungibility (N.B. This is not the correct use of the word but it is becoming more common): In the context of cloud computing, the term refers to the freedom and portability to move from one service provider to another, at the same level of the computing stack, without hindrance or boundaries. A high level of fungibility requires multiple providers of equivalent services and the easy switching between them without loss of data (including code) and meta-data.
Intra Cloud Migration: The ability to move an instance from one node to another node within the same cloud.
Inter Cloud Migration: The ability to move an instance from one node within one cloud to another node within another cloud with a similar architecture.
Portability: The ablity to move an instance from one [cloud|node] to another [cloud|node] regardless of architecture and including destinations with different architectures from the origin (ie x86 -> ARM, Xen -> KVM, Amazon EC2 -> wherever). In such circumstances where the architecture is different both the origin and the destination must be interoperable.
Cold or Live movement: Live movement is the ability to move a running instance whereas Cold movement requires the instance be stopped prior to movement.
Utility computing: Originating in the 1960s, the idea of providing computing resources as utility services from large utility providers as per the electricity and gas industry. This concept is fundamentally the same as cloud computing, extends beyond billing and has a long history of academic research.
Commoditisation (early to mid 1990s, Neologism): The process by which goods that have economic value and are distinguishable in terms of attributes (uniqueness or brand) end up becoming simple commodities in the eyes of the market or consumers. It is the movement of a market from differentiated to undifferentiated price competition, from monopolistic to perfect competition. This process describes how an innovation transitions from something new to something commonplace through various stages. Initially an innovation with value that provides a differential advantage will be copied by others as custom built systems. As time progresses and the understanding of the innovation increases, standardised products will appear. Finally, given the right circumstances and a high enough demand, services and ultimately utility-like services will appear. This process is complex, non-linear and applies to top level constructs and activities (such as CRM, ERP etc rather than specific products). There is a pressure towards commoditisation arising from the natural cost of copying information being zero, however this pressure is resisted by activities such as patents, secrecy, branding and bewilderment of choice. Cloud is simply the latest manifestation of the shift of the computing stack from a product world of differentiated goods to a service economy based upon perfect competition.
Commodification (mid to late 1970s, Word): The process by which something which does not have an economic value is assigned a value and hence how market values can replace other social values. It describes a modification of relationships, formerly untainted by commerce, into commercial relationships.
Computing stack: A representation of the provision of computing resources as a stack of discrete layers. These layers include:-
- Infrastructure (previously known as the Hardware layer) : The lowest level of the computing stack representing the bare bones, hypervisor and operating system.
- Platform (previously known as the Framework layer): The mid layer of the computing stack representing the development platform and defined services such as storage, messaging system, databases and object stores.
- Application (previously known as the Software layer): The highest order of the computing stack representing the applications and application data services that are built.
Componentisation: From Herbert Simon's theory of organisation is a mathematical proof that shows that the speed of evolution of any system is directly related to the organisation of its subsystems. In business terms the ability to evolve is commonly described as agility. Hence the further commoditisation of the computing stack to standardised components provided as internet services should increase business agility. This is often cited as one of main reasons why cloud computing is so important.
SaaS: Software as a Service. The common name for the provision of the application layer of the computing stack as a remote service. This really should be called Application as a Service but the acronym isn't that popular.
PaaS (previously known as FaaS and SaaS Platform): Platform as a Service. The common name for the provision of the platform layer of the computing stack as a remote service.
IaaS (previously known as HaaS): Infrastructure as a Service. The common name for the provision of the infrastructure layer of the computing stack as a remote service.
*aaS: A derisory term used to describe simultaneously the concept of provision of the computing stack as a service whilst mocking the constant revisionism of terms.