While definitions of cloud computing vary, all are based on the notion that cloud resources are abstract, meaning that users and applications are assigned to resources ad hoc, enabling the flexible use of a resource pool and higher utilization. The management of the resource pool is the responsibility of a cloud owner, which must meet all service-level guarantees associated with its cloud offering. But the difficulty in this is related to just what those resources are.
From vendor announcements, one could conclude that cloud computing was a "super" form of server virtualization, simply a kind of network virtualization or possibly a completely new data center paradigm. In fact, it is really all these things, but all cloud computing definitions have a common thread: networking.
Networking --ubiquitous, high-performance, high-reliability networking --is the key element in cloud computing and the key differentiator between cloud architectures and other IT strategies. Cloud computing presumes that the declining cost of network connectivity creates a broader fabric on which IT resources can be placed. This happens because the performance and cost differential between local and remote resources is reduced by a network's connectivity. The result is a larger resource pool that can be allocated more effectively to maintain a high level of utilization, reducing wasted capacity.
For a cloud application to perform, it must have the application software, data, storage, processing, and the network connectivity needed to bind these IT elements into a cooperating system. One of the primary issues in the efficiency of the cloud is the extent to which these resources can be flexibly assembled and mapped to the "virtual" view the user has of cloud resources in general. Much depends on the specific type of application being run and whether a cloud is "public" or "private".
Resources in the cloud
The notion of cloud computing as an application of "virtualization" is true but also misleading. Most people associate virtualization with the notion of server virtualization and virtual machines, and while these are components cloud computing, the cloud computing concept requires a much broader virtualization view. A cloud computing complex appears as a single abstract resource that can support any application or application component, and when the application is needed (because someone runs it on the virtual computer representing the cloud) it is assigned specific resources from the pool available. In cloud computing, the most significant question is the flexibility of this "resource brokerage" process, because constraints on how resources are assigned have a major effect on overall resource utilization and thus the benefit that cloud computing can offer.
Storage resources. The most significant question in efficiency and resource utilization is likely to be the location of the database supporting the application. If storage and servers are to be allocated separately for optimum utilization, rather than as a unit, storage network performance is critical. This means that it is difficult to allocate storage resources across a wide area network (WAN) connection, and some cloud computing software provides a distributed cloud-optimized database management system (DBMS) to facilitate data virtualization and improve performance overall. Most cloud computing resource brokerage techniques would locate the application server and application storage in the same data center, where storage area network (SAN) connections can be used. This technique is also the norm for private clouds, where enterprises tend to have several cloud data centers with server farms and large SANs. This is why data center networking and SANs are critical parts of nearly all cloud computing architecture -- both on the vendor and the user side. In private cloud applications, these issues are controllable.
Security issues. Meanwhile, public cloud computing services present data performance and security issues that are harder to manage. The question of where the source/destination data will be stored can be significant,because the connection to the public cloud is a WAN, and even with today's available bandwidth and prevailing bandwidth cost, it can be difficult to provide an optimum pipe to a cloud application.
Databases. Some public cloud applications may involve "data crunching" of databases. Depending on the size of the database and the percentage of items being accessed by the cloud application, it may be smart to load the needed data onto the cloud in one step and then access it there. The process of uploading data to the cloud is a batch function, but the process of accessing data is interactive, and storage delays accumulate with the number of database accesses performed.
Managing resource pools
Resource efficiency of cloud computing applications depends largely on the concept of economy of scale and utilization optimization. When applications are run, they must be assigned resources, and optimal application costs are achieved when all the resources in a pool can be allocated to some application. That requires a large resource pool and high efficiency in allocating the resources. Thus, cloud computing is most economical where the cloud's resource pool is large.
A large resource pool can also improve the management efficiency of cloud computing, which in many cases contributes more to economical operation than does server and storage costs. Enterprise IT operations costs can be more than double the cost of the hardware and software, and having a single pool of servers and storage to manage based on a single internal service-level agreement (derived from application performance and availability requirements) usually improves management and support.
The size of the cloud resource pool and the flexibility with which resources can be allocated to applications on demand determines how efficient a given cloud implementation can be, and thus the savings cloud computing can offer. These are the primary factors to be considered when developing private cloud computing, and they should also be considered in public cloud computing offerings because they'll likely determine whether the provider can meet service-level agreements and commitments and sustain stable pricing.
|Tom Nolle, is president of CIMI Corporation, a strategic consulting firm specializing in telecommunications and data communications since 1982. He is a member of the IEEE, ACM, Telemanagement Forum, and the IPsphere Forum, and is the publisher of Netwatcher, a journal in advanced telecommunications strategy issues.|