Cloud computing is everywhere. The concept is difficult to grasp and encompasses a multitude of varying technologies. It is built upon strange and complex mathematically based systems that have been in development for decades and yet are still vaguely understood at a fundamental level by a vast percentage of those who use them. It is easier for a novice (as most of us are) to approach comprehending the meaning of cloud computing by developing arbitrary, umbrella terms to describe the multiple of layers of technological abstraction.
Another angle to understanding cloud computing is to look at the historical trend of computing in general. Akin to a centralized powerhouse of processing power, computers were originally contained in mainframes housed in a single location and administered by a team of highly-trained technicians. Over time technology became increasingly affordable. This led to corporations establishing their own fragmented and secular systems not exhibiting the benefits of cloud computing.
Critical to the sustainability of always-on and accessible computing power, characteristics like high performance, reliability, scalability, and a standard application programming interface (API) were never always promised. Attempting to ensure each of these characteristics inflated the cost of ownership and maintenance by an astronomical margin. Even with the best practices and most enviable budgets, entire divisions dedicated to guaranteeing maximum uptime of the critical systems fell short of providing a failsafe infrastructure.
Recently the advancement of cloud computing seems to have placed the final piece of the puzzle into the picture and solved the problem of chronically unreliable systems. By promising the fulfillment of each cited characteristic and simultaneously delivering a solution for a price that rivals singularly owned physical computer systems, cloud computing delivers a product with an affordable cost now readily accessible to virtually every government, corporate, and personal entity with a project and a plan.
To understand the importance of cloud computing, we might look at one technological aspect. Several models of cloud computing have been developed and represent a layered approach to offering a solution tailored to the needs of the customer. This focus of this blog post is Infrastructure as a Service (IaaS). IaaS can be thought of as a container term encompassing two other progressively more specialized models, Platform as a Service (contained within IaaS) and Software as a Service (contained within SaaS).
The ability of companies like Amazon Web Services and RackSpace to offer software virtualized versions of traditionally hardware devices such as firewalls, routers, and entire network infrastructures defines the IaaS product. Adhering to the requirements of high performance, reliability, scalability, and a standard API, virtual representations of these hardware devices means that physical issues which have plagued their deployment and daily use in the past no longer matter. If a computer glitch does occur and causes the “router” to fault, instantly another virtual copy can be generated. Likewise the unwise modification of a virtual firewall’s access control lists resulting in a “hardware” lock-up and failure can be instantly reverted simply by restoring from backup the entire virtual device.
One such suite of virtualization technologies has been developed by RackSpace, they call it OpenStack. OpenStake is comprised of three distinct modules, Compute (codenamed Nova), Object Storage (codenamed Swift), and Image Service (codenamed Glance). These three components represent individually powerful and necessary processes to facilitate a fully-functioning IaaS system.
Compute is software that has been designed to initiate and administer massive networks comprised of pseudo-hardware, such virtual components as mentioned above. The ability to quickly deploy virtual hardware and network systems is the reason Compute exists. Compute also offers the underlying scalability aspect required when handling involved processing requests, such as those that might be found when running complex database queries and critical financial transaction processing.
Object Storage excels in offering a strong, highly redundant and scalable storage system that can be used to house giant caches of files as objects. The importance of data that can persist through crippling hardware loss is integral to a system that uses it. Because a system transforms this data into useful and valuable information, OpenStack Object Storage is developed, maintained, and kept separately from the main Compute module.
Finally OpenStack Image Service allows for virtualization programs to quickly access operating systems which have been stored in a variety of formats and installed to a file container. The capability to swap out entire operating system images is imperative in the IaaS industry. Due to critical systems requiring maximum uptime, frequent backups of the entire operating system is vital. The occasional restoration is also needed and therefore the ability to revert the entire operating system to an earlier backed-up version is a crucial requirement.
Another strongpoint of OpenStack is that it is essentially open source. What this means is that publically available code, such as that from NASA and RackSpace’s Cloud Files platform, has been used to assemble an ensemble of compatible software products into a comprehensive cloud computing fabric. Being able to do this means the OpenStack software can in turn be redistributed freely and installed on another company’s own mainframes. Thus the technology is leveraged to ensure a higher-quality, more advanced underlying computing infrastructure.
Cloud computing can be seen as a developing technology, not yet perfected but well on its way to being so. Due to projects like OpenStack, up-and-coming, enterprising companies can integrate the software into their own product offerings and further develop a unique enhancement that eventually impacts and betters the entire industry. This is actually the idea behind the much larger concept of open source. Perhaps in the next entry I will discuss how open source has become a movement within the whole global information and communications technology industry.