Computational Complexity
Bounded rationality is not only an attribute of humans, but a very real factor in numerous decision problems due to computational complexity.
We have argued above that service providers can achieve extremely high utilization, while customers can benefit from leveraging dispersed resources. While generally true, the problem of satisfying demand of varying levels out of a distributed pool of resources constrained by say, distance, turns out to be computationally intractable. Elsewhere (Weinman, 2011b) I’ve proven that CLOUD COMPUTING DEMAND SATISFIABLITY is strongly NP-complete, i.e., not currently believed to be perfectly solvable in a useful amount of time, based on a transformation of BOOLEAN 3-SATISFIABILITY.
The implications are that there will always be some “friction” or “entropy” in the system. In turn this means that even if there is exactly the right aggregate capacity in a distributed cloud system, there may be no way to effectively determine in useful time the right assignment of capacity to demand. Even the mere act of determining service node locations has also been shown to be intractable (Megiddo and Tamir, 1983).
We have discussed the benefits of consolidation, i.e., demand aggregation into pooled resources. We have also discussed the benefits of dispersion in user experience enhancement. Unfortunately, we can’t have both: we can choose to optimize the statistics of scale by building fewer consolidated facilities, and we can choose to optimize user experience by building more, dispersed facilities. The computational complexity results tell us that not only are there tradeoffs, but that determining an optimal tradeoff is intractable.
Axiomatic Foundations
While the topic of foundations arguably should be discussed first, we have left it until the end, because now their usefulness will be clearer. At one extreme, one might tie cloud computing to specific implementations of specific releases of specific hardware and software products. However, from the analyses above, it should be clear that the cloud, or at least a C.L.O.U.D., can be considered as an abstract concept.
As such, it can admit to an axiomatic formulation. Briefly, one can define (Weinman, 2011a) a cloud structure—in the spirit of a finite state automaton or Petri Net—as a structure that is a 6-tuple , where is metric space, i.e., a set of points with a distance metric, is time which is a measure space, i.e., a set of periods with a suitably-behaved duration measure; G = (V, E) is an oriented graph; is a set of states, is an initial state; and is a transition function which may be deterministic or non-deterministic, and possibly recursively defined. Each state in combines assignments of resource capacity and demand, resource allocations, node location, and pricing. Such a rich state definition captures the multiple interrelationships that may exist in the real world: capacity relative to demand drives pricing in accordance with price elasticity of demand and capacity increases to exploit market needs, pricing and resource location drive allocations as users seek the cheapest and nearest services, and allocation patterns lead to capacity planning for new resource levels. This definition is abstract and rigorously built on the foundations of mathematics: metric spaces, measure spaces, axiomatic set theory, σ -algebras, vector spaces, and the like.
A cloud can then be axiomatically defined as an entity with this structure that meets the five cloud axioms we’ve specified above, also suitably formalized.
As a result, we can consider a wide variety of clouds: compute clouds, hotel clouds, rental car clouds, restaurant clouds, and the like. Hamburger chains and hotel chains have numerous abstract structural similarities to the large cloud computing providers, after all.
Many of the results above are of direct importance to the business value of cloud computing, but, critically, are of general and broad applicability.
Summary
There are many important considerations as consumers, enterprises, and civilian, defense and intelligence agencies evaluate using various cloud patterns for some or all of their computing needs. In assessing those options, financial considerations are an important component. While exact cost figures for alternatives are important, a broad understanding of the theoretical underpinnings of the multiple values that cloud computing can provide are helpful.
In what might be called General Cloudonomics, we can see that these principles apply not only to computing, but any business with pay-per-use pricing for shared resources ubiquitously accessed over a network. Moreover, these general principles can help us navigate the current cloud world, which may be described as energetic positioning of a technology and business model that has clear benefits that have been proven across a variety of domains. Appropriate hybrids of owned, dedicated resources and on-demand, pay-per-use resources can minimize cost while maximizing flexibility and elasticity, although tradeoffs will always exist based on which performance parameter is prioritized. Moreover, not only are there tradeoffs, but limits to optimization due to the computational intractability of a number of problems revolving around geographically dispersed, networked architectures with various constraints on connectivity and capacity.