Friday, November 28, 2014

Standard RAID levels

The standard RAID levels are a basic set of RAID configurations that employ the techniques of stripingmirroring, or parity to create large reliable data stores from general purpose computer hard disk drives. The most common types today are RAID 0 (striping), RAID 1 and variants (mirroring), RAID 5 (distributed parity) and RAID 6 (dual parity). RAID levels and their associated data formats are standardized by the Storage Networking Industry Association (SNIA) in the Common RAID Disk Drive Format (DDF) standard.

RAID 0[edit]

Diagram of a RAID 0 setup
RAID 0 (also known as a stripe set or striped volume) splits data evenly across two or more disks (striped), without parity information and with speed as the intended goal. RAID 0 was not one of the original RAID levels and provides nodata redundancy. RAID 0 is normally used to increase performance, although it can also be used as a way to create a large logical disk out of two or more physical ones.
A RAID 0 can be created with disks of differing sizes, but the storage space added to the array by each disk is limited to the size of the smallest disk. For example, if a 120 GB disk is striped together with a 320 GB disk, the size of the array will be 240 GB (120 GB × 2).
\begin{align} \mathrm{Size} & = 2 \cdot \min \left( 120\,\mathrm{GB}, 320\,\mathrm{GB} \right) \\
& = 2 \cdot 120\,\mathrm{GB} \\
& = 240\,\mathrm{GB} \end{align}
The diagram shows how the data is distributed into Ax stripes to the disks. Accessing the stripes in the order A1, A2, A3, ... provides the illusion of a larger and faster drive. Once the stripe size is defined on creation it needs to be maintained at all times.

Performance[edit]

RAID 0 is also used in areas where performance is desired and data integrity is not very important, for example in some computer gaming systems. Although some real-world tests with computer games showed a minimal performance gain when using RAID 0, albeit with some desktop applications benefiting,[2][3] another article examined these claims and concluded: "Striping does not always increase performance (in certain situations it will actually be slower than a non-RAID setup), but in most situations it will yield a significant improvement in performance."[4]

RAID 1[edit]

Diagram of a RAID 1 setup
An exact copy (or mirror) of a set of data on two disks. This is useful when read performance or reliability is more important than data storage capacity. Such an array can only be as big as the smallest member disk. A classic RAID 1 mirrored pair contains two disks.[5]

RAID 2[edit]

RAID Level 2
RAID 2 stripes data at the bit (rather than block) level, and uses a Hamming code for error correction. The disks are synchronized by the controller to spin at the same angular orientation (they reach Index at the same time), so it generally cannot service multiple requests simultaneously. Extremely high data transfer rates are possible. This is the only original level of RAID that is not currently used.[6][7]
All hard disks eventually implemented Hamming code error correction. This made RAID 2 error correction redundant and unnecessarily complex. This level quickly became useless and is now obsolete. There are no commercial applications of RAID 2.[6][7]

RAID 3[edit]

Diagram of a RAID 3 setup of 6-byte blocks and two parity bytes, shown are two blocks of data in different colors.
RAID 3 uses byte-level striping with a dedicated parity disk. RAID 3 is very rare in practice. One of the characteristics of RAID 3 is that it generally cannot service multiple requests simultaneously. This happens because any single block of data will, by definition, be spread across all members of the set and will reside in the same location. So, any I/O operation requires activity on every disk and usually requires synchronized spindles.
This makes it suitable for applications that demand the highest transfer rates in long sequential reads and writes, for example uncompressed video editing. Applications that make small reads and writes from random disk locations will get the worst performance out of this level.[7]
The requirement that all disks spin synchronously, a.k.a. lockstep, added design considerations to a level that didn't give significant advantages over other RAID levels, so it quickly became useless and is now obsolete.[6] Both RAID 3 and RAID 4 were quickly replaced by RAID 5.[8] RAID 3 was usually implemented in hardware, and the performance issues were addressed by using large disk caches.[7]

RAID 4[edit]

Diagram of a RAID 4 setup with dedicated paritydisk with each color representing the group of blocks in the respective parity block (a stripe)
RAID 4 uses block-level striping with a dedicated parity disk.
In the example on the right, a read request for block A1 would be serviced by disk 0. A simultaneous read request for block B1 would have to wait, but a read request for B2 could be serviced concurrently by disk 1.
RAID 4 is very uncommon, but one enterprise level company that has previously used it is NetApp. The aforementioned performance problems were solved with their proprietary Write Anywhere File Layout(WAFL), an approach to writing data to disk locations that minimizes the conventional parity RAID write penalty. By storing system metadata (inodes, block maps, and inode maps) in the same way application data is stored, WAFL is able to write file system metadata blocks anywhere on the disk. This approach in turn allows multiple writes to be "gathered" and scheduled to the same RAID stripe—eliminating the traditional read-modify-write penalty prevalent in parity-based RAID schemes.[9]

RAID 5[edit]

Diagram of a RAID 5 setup with distributed paritywith each color representing the group of blocks in the respective parity block (a stripe). This diagram shows left asymmetric algorithm
RAID 5 comprises block-level striping with distributed parity. Unlike in RAID 4, parity information is distributed among the drives. It requires that all drives but one be present to operate. Upon failure of a single drive, subsequent reads can be calculated from the distributed parity such that no data is lost.[10] RAID 5 requires at least three disks.[11]
In comparison to RAID 4, RAID 5's distributed parity evens out the stress of a dedicated parity disk among all RAID members. Additionally, read performance is increased since all RAID members participate in serving of the read requests.[12]

RAID 6[edit]

Diagram of a RAID 6 setup, which is identical to RAID 5 other than the addition of a second parity block
RAID 6 extends RAID 5 by adding another parity block; thus, it uses block-level striping with two parity blocks distributed across all member disks.

Performance (speed)[edit]

RAID 6 does not have a performance penalty for read operations, but it does have a performance penalty on write operations because of the overhead associated with parity calculations. Performance varies greatly depending on how RAID 6 is implemented in the manufacturer's storage architecture—in software, firmware or by using firmware and specialized ASICs for intensive parity calculations. It can be as fast as a RAID-5 system with one fewer drive (same number of data drives).[13]

Implementation[edit]

According to the Storage Networking Industry Association (SNIA), the definition of RAID 6 is: "Any form of RAID that can continue to execute read and write requests to all of a RAID array's virtual disks in the presence of any two concurrent disk failures. Several methods, including dual check data computations (parity and Reed-Solomon), orthogonal dual parity check data and diagonal parity, have been used to implement RAID Level 6."[14]

Thursday, November 27, 2014

Virtual server storage: Choosing between Fibre Channel, iSCSI and NAS

One of the most critical, and challenging, architecture decisions an IT professional has to make is choosing a virtual server storage setup. Even with such a wide variety of choices, there isn't a singular solution that is the absolute best for virtual servers. And because every work environment varies greatly, a data storage system that complements one solution may not work well with a different system.
Although Fibre Channel (FC) has been the primary choice for several years,network-attached storage (NAS) and iSCSI have become increasingly popular alternatives for virtualization because they provide solid performance for companies working with smaller budgets.

Fibre Channel storage

While FC storage has strong performance and reliability, those factors add up to both high cost and complications in the data center. FC is the most popular choice for larger virtual environments specifically because of its speeds -- 8 Gbps is common now, and 16 Gbps is finding more widespread availability. In addition, FC is a much more reliable technology, making it a more prominent choice for companies. Storage networks built on FC are more isolated, therefore more secure than storage devices that are Ethernet-based. In comparison, however, the requirement of host bus adapters (HBAs) and switches make FC more costly. In addition, FC environments are much more complex to manage and implement because their initial configurations differ greatly from a traditional network infrastructure. Not all companies have staff with FC storage-area network (SAN) administration experience, so building and overseeing a SAN often translates to hiring a specialized IT admin or sending a current IT admin into training. This additional training or hiring translates to an added implementation cost that companies might not initially anticipate. Other advantages of FC storage include the ability to boot from SAN so finding a local host storage isn't necessary. VMware vSphere VMFS volumes can be used with block-level storage, meaning integration is less of a hassle for VMware customers.
For customers with many high disk input/output (I/O) virtual machines (VMs) running on their hosts, FC storage can translate well as a maximum performance option. If you're interested in running FC storage over traditional Ethernet components, Fiber Channel over Ethernet (FCoE) can be another option, however because it requires 10 Gbps Ethernet networking, it can be a pricey option. FC storage also means IT administrators must acquire specialized (and often expensive) components, including switches, cables and HBAs. Another thing to keep in mind is that within FC storage, authentication and encryption are more difficult to implement, as the storage solution has fewer security controls.

Sidebar: I/O virtualization

I/O virtualization is increasingly being used with server virtualization. It enables a single physical I/O adapter to appear as multiple virtual network adapters (NICs) or host bus adapters (HBAs). One of the challenges with server virtualization is that hosts require a large number of I/O adapters to connect to both data and storage networks. A typical host may have six to eight NICs used for general network connectivity, and at least two NICs or HBAs to connect to storage networks. I/O virtualization lets you consolidate many I/O adapters on a host into a single adapter or two that can handle all I/O requirements. I/O virtualization is implemented in several different ways. Companies like Xsigo Systems Inc. emulate HBAs and NICs over either standard Ethernet or InfiniBand fabrics. Virtensys takes a different approach and uses a PCIe extension adapter to connect to an appliance that contains shared I/O adapters. Both approaches can greatly simplify host I/O connectivity, and reduce hardware costs and host power consumption.
Though it may seem obvious, if you already have an FC SAN implemented in your environment, using it with virtualization is the logical choice, as expanding an existing SAN is cheaper and simpler than a brand new implementation.

iSCSI storage

iSCSI storage is a popular and solid alternative to Fibre Channel. iSCSI is ablock-based storage like FC but it uses traditional Ethernet network components for connectivity between hosts and storage devices. Because you can use existing Ethernet components, iSCSI is often much cheaper to implement. iSCSI works by using a client called an initiator to send SCSI commands over a local-area network (LAN) to SCSI devices (called targets) located on a storage device.
iSCSI initiators can be software or hardware based. Software initiators use device drivers that are built into the hypervisor to use Ethernet network adapters and protocols to write to a remote iSCSI target. Hardware initiators use a dedicated iSCSI HBA that combines a network adapter, a TCP/IP offload engine (TOE) and a SCSI adapter into one device to help improve the performance of the host server. While software initiators work just fine in most cases, hardware initiators offer slightly better I/O performance and use less host resources. You can also boot from hardware initiators; in addition, a new technology called iSCSI Boot Firmware Table (iBFT) will let you boot using a software initiator if the installed network interface card (NIC) and hypervisor support it.
iSCSI performs very well on 1 Gbps Ethernet networks, but switching to 10 Gbps can give it a huge boost and put it on par with (or better than) FC. Most hypervisors support 10 Gbps iSCSI, but the cost may be so high that it will be just as expensive as FC to implement. The biggest risks to using iSCSI are the additional CPU overhead when using software initiators (which can be mitigated with hardware initiators), and the more fragile and volatile network infrastructure it relies on. The latter issue can be addressed by completely isolating iSCSI traffic from other network traffic.

Advantages of iSCSI storage

  • Lower cost alternative to FC storage that uses standard Ethernet components; iSCSI storage arrays also tend to cost less than FC arrays
  • Software initiators can be used for ease of use and lower cost; hardware initiators offer maximum performance
  • Block-level storage (like FC) that can be used with vSphere VMFS volumes
  • Speed and performance is greatly increased with 10 Gbps Ethernet
  • No special training/skills needed to implement and manage the technology
  • Supports authentication (CHAP) and encryption for security, as well as multipathing for increased throughput and reliability
  • Can be deployed more quickly than FC

Disadvantages of iSCSI storage

  • Because iSCSI is most commonly deployed as a software protocol, it adds to CPU overhead vs. using hardware-based initiators
  • Performance is typically less than that of FC SANs
  • Typically doesn’t scale as high as FC storage systems
  • Network latency and non-iSCSI network traffic can diminish performance
iSCSI also offers more variety and greater flexibility when it comes to choosing data storage devices. You can purchase a range of iSCSI storage products, from small dedicated iSCSI storage devices for less than $2,000 to large enterprise-class devices. Keep in mind that when it comes to performance you generally get what you pay for. If you have a large number of VMs and heavy workloads, you need to spend more for a storage system. iSCSI is a great choice for many companies that want affordability and simplicity. While iSCSI is often criticized for its performance, a dedicated, properly configured iSCSI system can perform nearly as well as a Fibre Channel setup and will be adequate for many environments.

NAS

The big difference between iSCSI and NAS (specifically, NFS) is the type of protocol used to write data to the storage device. iSCSI uses a block protocol and data is written in blocks by the virtual host to the storage device. The host server is responsible for maintaining the disk file system on the storage device just as it would with local disk. NAS, on the other hand, uses a file-sharing protocol and the host server simply communicates with the storage device that maintains the disk file system.
With NAS, you’re essentially offloading the storage device functions responsible for writing data to the drives from the host server to the storage device. NAS uses a special software NFS client built into the hypervisor that uses a network adapter in the host to communicate with the NFS server.
All the major virtualization platforms support using NAS devices for theirvirtual machines. Because NFS is a widely supported protocol, there are many different options for using NAS storage with your virtual hosts. These can range from taking a standard physical server and converting it into an NAS server, using virtual NAS software or using a dedicated storage appliance. The costs and performance characteristics with each option can vary greatly; dedicated appliances offer the best performance at the greatest cost.
Almost every storage vendor offers a NAS storage device that supports NFS. With block storage devices, allocating storage will consume the full space right away, but with NAS, capacity grows as data is written to it. Regardless of your budget, you can easily find a good NAS device that will meet your requirements.
In most cases, NAS won’t equal the performance of a Fibre Channel SAN, but a properly architected NAS system can meet the performance needs of most workloads. Similar to iSCSI, NAS uses NICs to communicate with storage devices, which may mean a 1 Gbps speed limit, but newer 10 Gbps NICs offer a huge speed increase if you can bear the cost. The performance of NAS is nearly the same as iSCSI. As long as the CPU doesn’t become a bottleneck, the maximum throughput of both iSCSI and NAS is limited by the available network bandwidth.

Advantages of NAS

  • Many NAS storage devices use thin provisioning by default, which can help conserve disk space
  • File locking and queuing are handled by the NAS device, which can result in better performance vs. iSCSI/FC where locking and queuing are handled by the host server
  • NAS doesn’t have a single disk I/O queue like block storage devices, which can result in greater performance; NAS performance is based on the bandwidth of the network connection and the capabilities of the disk array
  • Can be less costly to implement than FC storage as it uses standard Ethernet components; NAS arrays tend to cost less than FC arrays
  • No special training/skills are needed to implement and manage the technology
  • Expanding virtual datastores is done easily by increasing the disk on the NFS server; datastores will automatically increase accordingly
  • Snapshots, cloning and so on are done at the file system level instead of the LUN level, which can offer greater flexibility and more granular support

Disadvantages of NAS

  • Booting directly from a shared storage device isn’t supported with NAS devices
  • There is CPU overhead as the hypervisor must use a software client to communicate with the NAS server
  • Some vendors don’t recommend NAS storage for certain sensitive transactional applications due to latency that can occur
  • Support for new virtualization features sometimes lags vs. block storage devices
  • NAS doesn’t support multipathing from a host to the NAS server; only a single TCP session will be opened to a NAS datastore, which may limit performance
You shouldn’t be discouraged by some of the disadvantages of using NAS, as they may only apply to specific circumstances or result from poorly architected NAS solutions. With a properly sized solution that can handle the VM workloads on your hosts, NAS is usually as good a choice as a block-storage device. In the past, NAS had limited support from virtualization, but it’s now fully supported.

And the winner is . . .

There are a lot of factors to consider when choosing a storage device for your virtual environment, but decisions ultimately come down to simple factors such as budget, performance and capacity. Many storage devices now come with direct integration support for virtualization so this can also be a big factor. VMware vStorage APIs offer many benefits that allow for tighter integration between the storage device and the hypervisor, as well as offload many storage-related tasks from the hypervisor to the storage array.
Another area of concern is support. While Microsoft Hyper-V has pretty broad support for just about any storage array supported by Windows, VMware has a strict hardware compatibility guide that lists all supported storage devices. One reason for this is that VMware has very deep API integration and the guide ensures that storage devices have been tested with vSphere. It also lists the various integration features supported for each array.
While Fibre Channel is a well-established storage platform, don’t be afraid to try iSCSI or NAS devices as more affordable alternatives. With a wide variety of iSCSI and NAS products to choose from, you’ll have to research their capabilities and scalability to ensure that they’ll meet your requirements. Storage is the most critical design decision you’ll make for your virtual environment, so spend the time researching the alternatives to understand the different technologies and features that are available.
Eric Siebert is an IT industry veteran with more than 25 years of experience who now focuses on server administration and virtualization. He’s the author of VMware VI3 Implementation and Administration (Prentice Hall, 2009) andMaximum vSphere (Prentice Hall, 2010).
This story was previously published in Storage magazine

WHAT IS CLOUD COMPUTING STACK (SAAS, PAAS, IAAS)

Recently, I read an article that Gartner has named Microsoft as a Leader in its 2014 Cloud Infrastructure as a Service (IaaS) Magic Quadrant report. This comes on the heels of Gartner recognizing Microsoft as a Leader in the Enterprise Application Platform as a Service(aPaaS) market in its 2014 Enterprise aPaaS Magic Quadrant – making Microsoft the only public cloud vendor to be named a Leader for bothPaaS and IaaS. With more than 57 percent of the Fortune 500, including ToyotaNBC Sports and Avanade, and startups like Mural.lyFuphie LLC and LiquidSpace are discovering the power of “Microsoft Cloud Services”. MSDN Subscribers – activate your account and receive up to $150/month of Azure credits.Magic Quadrant 2014 for Cloud Infrastructure as a ServiceMagic Quadrant 2014 for Enterprise Application Platform as a ServiceAbove and the fact that we (@MazikGlobal) also have our own solution named “MazikCloud”; I get this idea of writing a Blog on the “Cloud Computing” because it is a growing misconception (or misunderstanding) among many of us regarding the word “Cloud” and its different offerings and artifacts. At first we heard about two things, Public Cloud and Private Cloud, that revolutionized the IT Industry and somehow our life living with these changes (earlier, whenever any of our service, say Email, gets down our IT guys used to say that there is some issue with the Mail Server and now we only hear, “Cloud is Down”). Also, in past few years we are seeing more offering and variations of this “Cloud” thing. Just like the “TCP/IP Stack” which consist of different “Layers”, Cloud Computing is also defined as a “Stack” and in its “Layer” we get different “Service Offerings / Feature Sets”. As we can describe the whole “TCP/IP Stack” and its artifacts in a single word “Networking”, the same can be done with the “Cloud Computing Stack” that is “Virtualization” which is the fundamental component of the whole Cloud Stack. Look into the below diagram to have an idea (High-Level) of the three layers of the Cloud Computing:Cloud-Service-Models

Cloud Computing

Cloud Computing is often described as a stack, as a response to the broad range of services built on top of one another under the moniker “Cloud”. The generally accepted definition of Cloud Computing comes from the National Institute of Standards and Technology (NIST), essentially says that; Cloud computing is a model for enabling convenient, on-demand network access to a shared pool of configurable computing resources (e.g., networks, servers, storage, applications, and services) that can be rapidly provisioned and released with minimal management effort or service provider interaction. What this means in plain terms is the ability for end users to utilize parts of bulk resources and that these resources can be acquired quickly and easily. NIST also offers up several characteristics that it sees as essential for a service to be considered “Cloud”. These characteristics include;
  • On-Demand Self-Service: The ability for an end user to sign up and receive services without the long delays that have characterized traditional IT
  • Broad Network Access: Ability to access the service via standard platforms (Desktop, Laptop, Mobile, etc.)
  • Resource Pooling: Resources are pooled across multiple customers
  • Rapid Elasticity: Capability can scale to cope with demand peaks
  • Measured Service: Billing is metered and delivered as a utility service
More than putting and solving puzzles around categorization, we believe that in order to maximize the benefits that Cloud Computing brings, a solution needs to demonstrate these particular characteristics. This is especially true since in recent years there has been a move by traditional software vendors to market solutions as “Cloud Computing” which are generally accepted to not fall within the definition of true Cloud Computing, a practice known as “Cloud-Washing.” The diagram below depicts the Cloud Computing stack – it shows three distinct categories within Cloud Computing: Software as a Service, Platform as a Service and Infrastructure as a Service and the composition of the each category:Cloud_Computing_LayersIn this article we look at all three categories in detail however a very simplified way of differentiating these flavors of Cloud Computing is as follows;
  • SaaS applications are designed for end-users, delivered over the web
  • PaaS is the set of tools and services designed to make coding and deploying those applications quick and efficient
  • IaaS is the hardware and software that powers it all – servers, storage, networks, operating systems
To help understand how these 3 components are related, some have used a transportation analogy; By itself, infrastructure isn’t useful – it just sits there waiting for someone to make it productive in solving a particular problem. Imagine the Interstate transportation system in the U.S. Even with all these roads built, they wouldn’t be useful without cars and trucks to transport people and goods. In this analogy, the roads are the infrastructure and the cars and trucks are the platform that sits on top of the infrastructure and transports the people and goods. These goods and people might be considered the software and information in the technical realm. It is important to note that while for illustration purposes this article draws a clear distinction between SaaSPaaS and IaaS, the differences between these categories of cloud computing, especially PaaS and IaaS, have blurred in recent months and will continue to do so. Nevertheless, with a general understanding of how these components interact with each other, we will turn our attention in more detail to the top layer of the stack, SaaS.

Software as a Service

Software as a Service (SaaS) is defined as (by WikiPedia); “…software that is deployed over the internet… With SaaS, a provider licenses an application to customers either as a service on demand, through a subscription, in a “pay-as-you-go” model, or (increasingly) at no charge when there is opportunity to generate revenue from streams other than the user, such as from advertisement or user list sales”. SaaS is a rapidly growing market as indicated in recent reports that predict ongoing double digit growth. This rapid growth indicates that SaaS will soon become commonplace within every organization and hence it is important that buyers and users of technology understand what SaaS is and where it is suitable.

Characteristics of SaaS

Like other forms of Cloud Computing, it is important to ensure that solutions sold as SaaS in fact comply with generally accepted definitions of Cloud Computing. Some defining characteristics of SaaS include;
  • Web access to commercial software
  • Software is managed from a central location
  • Software delivered in a “one to many” model
  • Users not required to handle software upgrades and patches
  • Application Programming Interfaces (APIs) allow for integration between different pieces of software

Where SaaS Makes Sense

Cloud Computing generally, and SaaS in particular, is a rapidly growing method of delivering technology. That said, organizations considering a move to the cloud will want to consider which applications they move to SaaS. As such there are particular solutions we consider prime candidate for an initial move to SaaS;
  • “Vanilla” offerings where the solution is largely undifferentiated. A good example of a vanilla offering would include email where many times competitors use the same software precisely because this fundamental technology is a requirement for doing business, but does not itself confer an competitive advantage
  • Applications where there is significant interplay between the organization and the outside world. For example, email newsletter campaign software
  • Applications that have a significant need for web or mobile access. An example would be mobile sales management software
  • Software that is only to be used for a short term need. An example would be collaboration software for a specific project
  • Software where demand spikes significantly, for example tax or billing software used once a month
SaaS is widely accepted to have been introduced to the business world by the Salesforce Customer Relationship Management (CRM) product. As one of the earliest entrants it is not surprising that CRM is the most popular SaaS application area, however E-mail, Financial Management, Customer Service and Expense Management have also gotten good uptake via SaaS. Software as a Service may be the best known aspect of Cloud Computing, but developers and organizations all around the world are leveraging Platform as a Service, which mixes the simplicity of SaaS with the power of IaaS, to great effect.

Platform as a Service

Platform as a Service (PaaS) brings the benefits that SaaS bought for applications, but over to the software development world. PaaS can be defined as a computing platform that allows the creation of web applications quickly and easily and without the complexity of buying and maintaining the software and infrastructure underneath it. PaaS is analogous to SaaS except that, rather than being software delivered over the web, it is a platform for the creation of software, delivered over the web.

Characteristics of PaaS

There are a number of different takes on what constitutes PaaS but some basic characteristics include;
  • Services to develop, test, deploy, host and maintain applications in the same integrated development environment. All the varying services needed to fulfil the application development process
  • Web based user interface creation tools help to create, modify, test and deploy different UI scenarios
  • Multi-tenant architecture where multiple concurrent users utilize the same development application
  • Built in scalability of deployed software including load balancing and failover
  • Integration with web services and databases via common standards
  • Support for development team collaboration – some PaaS solutions include project planning and communication tools
  • Tools to handle billing and subscription management
PaaS, which is similar in many ways to Infrastructure as a Service that will be discussed below, is differentiated from IaaS by the addition of value added services and comes in two distinct flavours;
  1. A collaborative platform for software development, focused on workflow management regardless of the data source being used for the application. An example of this approach would be Heroku, a PaaS that utilizes the Ruby on Rails development language and Windows Azure Services.
  2. A platform that allows for the creation of software utilizing proprietary data from an application. This sort of PaaS can be seen as a method to create applications with a common data form or type. An example of this sort of platform would be the Force.com PaaS from Salesforce.com which is used almost exclusively to develop applications that work with the Salesforce.com CRM.

Where PaaS Makes Sense

PaaS is especially useful in any situation where multiple developers will be working on a development project or where other external parties need to interact with the development process. As the case study below illustrates, it is proving invaluable for those who have an existing data source – for example sales information from a customer relationship management tool, and want to create applications which leverage that data. Finally PaaS is useful where developers wish to automate testing and deployment services. The popularity of agile software development, a group of software development methodologies based on iterative and incremental development, will also increase the uptake of PaaS as it eases the difficulties around rapid development and iteration of software. Some examples of PaaS include Google App Engine, Microsoft Azure Services, and the Force.com platform. Utilizing a PaaS development environment has resulted in the creation of these applications being significantly faster than would otherwise be the case. In some examples, in the absence of PaaS, the cost of developing the application would have been prohibitive.

Infrastructure as a Service

Infrastructure as a Service (IaaS) is a way of delivering Cloud Computing infrastructure – Servers, Storage, Network and Operating Systems – as an On-Demand Service. Rather than purchasing Servers, Software, Datacenter Space or Network Equipment, clients instead buy those resources as a fully outsourced service on demand. Within IaaS, there are some sub-categories that are worth noting. Generally IaaS can be obtained as Public or Private Infrastructure or a combination of the two. “Public Cloud” is considered infrastructure that consists of shared resources, deployed on a self-service basis over the Internet. By contrast, “Private Cloud” is infrastructure that emulates some of Cloud Computing features, like virtualization, but does so on a Private Network. Additionally, some hosting providers are beginning to offer a combination of traditional dedicated hosting alongside Public and/or Private Cloud networks. This combination approach is generally called “Hybrid Cloud”.

Characteristics of IaaS

As with the two previous sections, SaaS and PaaS, IaaS is a rapidly developing field. That said there are some core characteristics which describe what IaaS is. IaaS is generally accepted to comply with the following;
  • Resources are distributed as a service
  • Allows for dynamic scaling
  • Has a variable cost, utility pricing model
  • Generally includes multiple users on a single piece of hardware
There are a plethora of IaaS providers out there from the largest Cloud players like Microsoft Azure, Amazon Web Services and Rackspace to more boutique regional players. As mentioned previously, the line between PaaS and IaaS is becoming more blurred as vendors introduce tools as part of IaaS that help with deployment including the ability to deploy multiple types of clouds.

Where IaaS Makes Sense

IaaS makes sense in a number of situations and these are closely related to the benefits that Cloud Computing bring. Situations that are particularly suitable for Cloud infrastructure include;
  • Where demand is very volatile – any time there are significant spikes and troughs in terms of demand on the infrastructure
  • For new organizations without the capital to invest in hardware
  • Where the organization is growing rapidly and scaling hardware would be problematic
  • Where there is pressure on the organization to limit capital expenditure and to move to operating expenditure
  • For specific line of business, trial or temporary infrastructural needs

Conclusion

Cloud Computing is a term that doesn’t describe a single thing – rather it is a general term that sits over a variety of services from IaaS at the base, through PaaS as a development tool and through to SaaS replacing On-Premise Applications. For organizations looking to move to Cloud Computing, it is important to understand the different aspects of Cloud Computing and to assess their own situation and decide which types of solutions are appropriate for their unique needs. Cloud Computing is a rapidly accelerating revolution within IT and will become the default method of IT delivery moving into the future – organizations would be advised to consider their approach towards beginning a move to the clouds sooner, rather than later.

Sources

  1. http://www.rackspace.com/knowledge_center/whitepaper/understanding-the-cloud-computing-stack-saas-paas-iaas
  2. http://csrc.nist.gov/groups/SNS/cloud-computing/
  3. http://en.wikipedia.org/wiki/Software_as_a_service
  4. http://en.wikipedia.org/wiki/Platform_as_a_service
  5. http://www.qrimp.com/blog/blog.The-Difference-between-IaaS-and-PaaS.html
  6. http://www.zdnet.com/blog/forrester/is-the-iaaspaas-line-beginning-to-blur/583
  7. http://www.zdnet.com/microsofts-azure-cloud-team-moves-toward-blurring-the-iaaspaas-lines-7000026708/
  8. http://www.networkworld.com/news/2010/050610-gartner-saas-adoption-on-the.html
  9. http://aws.amazon.com/
  10. http://azure.microsoft.com/
  11. http://www.rackspace.com/
  12. http://www.salesforce.com/
  13. http://www.salesforce.com/platform/
  14. http://www.zendesk.com