Sunday, March 25, 2012

Infrastructure as a Service: The Software Fabric

The theory and application of Infrastructure as a Service (IaaS) has become a leading pioneer in the advancement and development of the software being the distributed platform. Resting solidly on the shoulders of giants, IaaS is essentially a software package. The various components have been assembled, organized, and configured to operate as a powerful, multi-purpose service

IaaS offers a diverse number of functions, generally represented as modules, which span several areas of focus. By mixing and matching these various modules, specialized IaaS configurations are possible which place emphasis on certain key areas.

The following example contrasts two instances where IaaS should be customized for practical and technically strategic reasons. A federal agency may require total network isolation due to the sensitive nature of the work undertaken. Such a feature is generally not required by a software development company. Instead the software development company might have a specialized need for peak computational performance and outstanding resource availability uptime.

One such aspect is whether the IaaS package supports multiple tenants. This essentially means that a single IaaS setup can play host to several customers. Each customer would be separately billed for their own time and usage. This function of an IaaS would be attractive to a company specializing in providing IaaS hosting for various enterprise customers.

Through the availability of tenant modules, custom IaaS packages can be delivered that allow the possibility of actually developing a viable business model around hosting other IaaS providers. Separately monitoring the usage of multiple IaaS packages while simultaneously applying appropriate and accurate billing for each client ensures a functional business model; this is a widely used industry practice which results in a competitive IaaS marketplace.

Another aspect of IaaS is the inherently constructed nature of the various software packages and the availability and accessibility of the code behind the project. A main difference between similar software is whether the code behind the software is available for modification. By making available the source code that drives a piece of software, the company or project group developing the software is essentially “open-sourcing” its product. When this is performed the software can be referred to as being open source. Open source software can generally be taken by other developers and modified to add desired features or remove unwanted ones.

This open source model that some software projects follow is actually directly indicative of just how the IaaS model really operates. Because an array of software components are used as required or desired in various IaaS implementations, the companies assembling these implementations are in a way creating an entirely custom complete solution by “programming” in different software modules. The concept of levels can be used to illustrate the scenario. Instead of programming a software solution to achieve a desired goal at the program level, multiple pieces of pre-written open and closed source software are used in conjunction with one another to meet this goal.

A third aspect of IaaS customization is how officially supported the final shipped product actually is. Generally large corporations instrumental in the assembly and development of certain IaaS implementations offer the option of purchasing support. This value is usually a large percentage of the company’s income and offsets the high initial cost of development.

A dynamic of support is the level and personalization that is available to customers. Ranging from a simple, straightforward knowledgebase to a complete 24/7 direct phone support line up through actual on-site technician visits the level of support can vary drastically. This broad range of customer support can actually be seen throughout the computer IT software and hardware industry. By offering such a diverse array of technical support options, more power of choice and customization is given to the enterprise customer. This determination can then be used to base other decisions from, such as the budget and employee base of in-house technicians.

Some of the larger IaaS projects are Eucalyptus, HP CloudSystem, IBM CloudBurst, RackSpace’s own OpenStack, and VMware vCloud. Each of the companies behind these IaaS implementations differs in some way, in fact oftentimes significantly.

For instance, with OpenStack’s development being fundamentally open source, several other companies have been able to leverage the substantial technological strides that RackSpace has accomplished through their ongoing product development. This lends itself to specialized, often commercially supported, variations of OpenStack, such as Project Olympus, developed by Citrix.

With the multitude of IaaS products available on the market it really is no wonder why the entire industry has accelerated to the velocity that it is at. With such critical mass the field of IaaS can only be expected to at some point plateau, at which point it will become an established standard. As discussed previously, essentially what IaaS actually has become is yet another layer in the technological stack of computing power. Designed to facilitate ease of use when working within a cloud-based environment, IaaS will soon assume its permanent location alongside the likes of computational layers such as content management systems and virtualization platforms.