Cloud computing

Cloud computing refers to accessing computing resources that are typically owned and operated by a third-party provider on a consolidated basis in data center locations. It is aimed at delivering cost-effective computing power over the Internet, including virtual private networks (VPN) or even virtual private line networks (i.e., Layer 2 VPN) mapped onto facility providers. Consumers of cloud computing services purchase computing capacity on-demand and are not generally concerned with the underlying technologies used to achieve the increase in server capability.

In terms of the problem it solves, it is less new technology and more "a new deployment model."

It has similarities to a number of network-enabled computing methods, but some unique properties of its own. The core point is that users, whether end users or programmers, request resources, without knowing the location of those resources, and are not obliged to maintain the resources. The resource may be anything from an application programming interface to a virtual machine, on which the customer writes an application, to Software as a Service (SaaS), where the application is predefined and the customer can parameterize but not program. Free services such as Google and Yahoo and Hotmail are free SaaS, while some well-defined business applications, such as customer resource management as provided by Salesforce.com, are among the most successful paid SaaS applications. PayPal and eBay arguably are SaaS models, paid, at the low-end, on a transaction basis.

"What goes on in the cloud manages multiple infrastructures across multiple organizations and consists of one or more frameworks overlaid on top of the infrastructures tying them together. Frameworks provide mechanisms for:


 * self-healing
 * self monitoring
 * resource registration and discovery
 * service level agreement definitions
 * automatic reconfiguration

"The cloud is a virtualization of resources that maintains and manages itself. There are of course people resources to keep hardware, operation systems and networking in proper order. But from the perspective of a user or application developer only the cloud is referenced

It is, by no means, a new concept in computing. Bruce Schneier reminds us of that it has distinct similarities in the processing model, although not the communications model, with the timesharing services of the 1960s, made obsolete by personal computers. " Any IT outsourcing -- network infrastructure, security monitoring, remote hosting -- is a form of cloud computing." The old timesharing model arose because computers were expensive and hard to maintain. Modern computers and networks are drastically cheaper, but they're still hard to maintain. As networks have become faster, it is again easier to have someone else do the hard work. Computing has become more of a utility; users are more concerned with results than technical details, so the tech fades into the background.

Business models
There are two different types of cloud computing customers. The first only pays a nominal fee for these services -- and uses them for free in exchange for ads: e.g., Gmail and Facebook. These customers have no leverage with their outsourcers. You can lose everything. Companies like Google and Amazon won't spend a lot of time caring. The second type of customer pays considerably for these services: to Salesforce.com, MessageLabs, managed network companies, and so on. These customers have more leverage, providing they write their service contracts correctly. Still, nothing is guaranteed.

The second type runs their applications on networked large groups of servers that often use low-cost PC technology, with specialized connections to spread data-processing chores across them.

Security and trust
Security, which includes availability, confidentiality and integrity may well be the greatest obstacle to deploying cloud technology. It simply may not be possible for the user to audit and control certain security mechanisms in the cloud. There is a spectrum of risk-benefit: few would worry about the read-only webcam that shows a view of the nearby harbor being on any cloud; few would accept a military system that controls the use of nuclear weapons being on other than a highly isolated network.

In other words, it is probably realistic to say clouds, as of the latter part of 2009, are secure enough for some missions but not others. The security implementations for some purposes simply are not sufficiently mature. Trust and audit, however, is a broader issue than security controls alone.

Trust, however, is not only a cloud issue. Alan Murphy points out that to get the benefits of clouds, one has to trust the providers for certain things, but doing so continues a trend in information technology. "I have to modify my level of trust, and apply new and stronger safeguards to the rest of my workflow processes (personal and professional) to make sure I’m able to recover if/when there is a massive breach that’s beyond my control. My recovery is something I can control, and I definitely trust myself." In his early work, he did detailed on-site audits of traditional physical data centers. What I took from that multi-year experience: It’s extremely expensive to conduct these types of audits, and at some point the liability baton is passed to the people actually implementing the technology, away from those who designed it. I could interview people all day, and spend weeks walking through their network, but once I left the premises and filed my report, it was up to them to stick to those procedures. We had to trust (in our case legally) that what I saw remained in place...in the cloud model, we have to trust so many new components in the stack. Of course we can have safeguards (SSL) and checks and balances (pen-tests, people who responsibly disclose security flaws) but at a minimum, those require near unfettered access to systems that are no longer in our control and require knowledgeable people to address them. In my auditing days I had unfettered access, during a specific window of time. Once I was done my access went away.

Various sectors and industries have compliance requirements, such as Payment Card Industry Data Card Standard (PCI DSS), HIPAA in health care, and FISMA in the U.S. Government. There are no general answers if cloud computing can be trusted for compliance, but analysis may show some customer-cloud combinations where it can, and some when it cannot. Several vendors have said they either are PCI DSS compliant, or, like Amazon, “in the process of, and will continue our efforts to obtain the strictest of industry certifications in order to verify our commitment to provide a secure, world-class cloud computing environment.” Savvis describes PCI compliance in some detail; Terremark states it is compliant but does not go into detail.

Offerings
There is no single industry-accepted definition. Some services broker extra capacity available on enterprise servers, as well as resources in pools of managed virtual servers. Others sell capacity on virtual servers. Yet others include any external computing resource, even to outsourced backup services, within the definition.

While the details of the service vary, some common features of sizing apply:
 * Separation of application code from physical resources.
 * Ability to use external assets to handle peak loads (not having to engineer for highest possible load levels).
 * Not having to purchase assets for one-time or infrequent intensive computing tasks.

Broad types of commercial services include:
 * Software as a Service
 * Utility computing, but using virtualization services rather than remote access to shared data centers. One model builds virtual application servers, while others build virtual datacenters with multiple servers
 * Web services in the cloud: Similar to SaaS in that the user interface is web-based, but differing in that programming, at a higher level of abstraction than in utility computing, is necessary. They vary from business-function-specific to industry APIs.
 * Platform as a Service: yet another SaaS variation, these are constrained by the vendor's architecture, but allow considerable customization, but more as a mashup than an application. Salesforce.com is seen in this space as well as in pure SaaS.
 * Managed Service Provider (MSP): An application exposed to IT rather than to end-users, sometimes called a virtual infrastructure service. There might be limited, largely transparent services for end users, such as automated backup and recovery.
 * Service commerce platforms: Sometimes called a "virtual personal assistant" or "intelligent assistant", they derive from a class of research in which one's computer learns the user's personal preferences. they may combine aspects of office applications such as calendar, scheduling with a list of approved vendors. One might set up a trip in one's calendar, and then go to the platform to order the travel; the platform would know you prefer window seats and late night flights.
 * Cloud integration: inter-cloud linkage (e.g., OpSource, CapeClear)., perhaps to allow business-to-business rather than user-to-service functionality

Software as a Service

 * Salesforce
 * Medical records

Quite a few business services are really SaaS, such as PayPal and eBay; they are services to facilitate transactions between users. The creation of various credit card and check payment features are examples of how SaaS can be customized without programming.

Utility computing
Amazon.com, Sun, IBM, and others who now offer storage and virtual servers that IT can access on demand to virtual application servers, while others build virtual datacenters with multiple servers (e.g., 3Tera's AppLogic and Cohesive Flexible Technologies' Elastic Server on Demand. Liquid Computing's LiquidQ offers similar capabilities, enabling IT to stitch together memory, I/O, storage, and computational capacity as a virtualized resource pool available over the network.

Amazon Elastic Compute Cloud (Amazon EC2) is a cloud offering on which customer developers write application on a wide assortment of virtual machines, which the customer builds from choices among operating systems, data bases, web servers, etc.

Java services also are offered in clouds, but there is differentiation among the offerings. Nikita Ivanov describes two basic approaches, which are not mutually exclusive, but different products tend to have one or the other dominate. The first is much like the way a traditional data center is organized, where the developers have little control over infrastructure. "The second approach is something new and evolving as we speak. It aims to dissolve the boundaries between a local workstation and the cloud (internal or external) by providing relative location transparency so that developers write their code, build and run it in exact the same way whether it is done on a local workstation or on the cloud thousands miles away or on both."


 * 1) Heavy UI oriented. These types of applications or framework usually provide UI-based consoles, management applications, plugins, etc that provide the only way to manage resources on the cloud such as starting and stopping the image, etc. The key characteristic of this approach is that it requires a substantial user input and human interaction and thus they tend to be less dynamic and less on-demand. Good examples would be RightScale, GigaSpaces, ElasticGrid.
 * 2) Heavy framework oriented. This approach strongly emphasizes dynamism of resource management on the cloud. The key characteristic of this approach is that it requires no human interaction and all resource management can be done programmatically by the grid/cloud middleware - and thus it is more dynamic, automated and true on-demand. Google App Engine (for Python), GridGain would be good examples.

Some cloud computing applications do try to replicate compute-intensive supercomputer applications using highly distributed parallel processsing.

Web services in the cloud
Similar to SaaS in that the user interface is web-based, but differing in that programming, at a higher level of abstraction than in utility computing, is necessary. Some are restricted to an business function specific set of APIs (e.g., Strike Iron and Xignite) to a wider range of APIs in Google Maps, ADP payroll processing, the U.S. Postal Service, Bloomberg, and even conventional credit card processing services.

StrikeIron, for example, might be considered a computer-to-computer mashup, integrating external data bases with enterprise data, and combining them within a common business functions such as call centers, customer resource management and eCommerce. It refers to its offering as "Data as a Service", and accepts some of the data sources described above, such as the U.S. Postal Service. . Xignite is more specific to the financial industry, retrieving data such as stock quotes, financial reference data, currency exchange rates, etc.

Platform as a Service
Salesforce.com, when it supports third-party applications, is seen in this as well as in pure SaaS. Google App Engine is here. Mashup-specific platforms include Yahoo Pipes or Dapper.net.

Managed Service Provider (MSP)
MSP services are not limited to clouds; they can include remotely managed onsite appliances, combinations or appliances or clouds, or full clouds. Cloud storage is one area of MSP, as well as various email related services ranging from malware scanning to email services to anti-spam to regulatory-compliant archiving.

Managed security services delivered by SecureWorks, IBM, and Verizon fall into this category. Other offerings include Desktop management services, such as those offered by CenterBeam or Everdream.

Cloud storage is a model of networked data storage where data is stored on multiple virtual servers, generally hosted by third parties, rather than being hosted on dedicated servers. There are cloud storage service for the small and home office market, such as Carbonite (backup) and MozyHome (backup).

Even the consumer services differentiate, from being a "flash drive in the cloud" to offering encryption, incremental backups, data sharing, etc.

Cloudsafe points out that for digital content, such as video, one uses an application to access it, not the file system. "If your application is housing your metadata, and only object storage is required, the Simple Object interface can be accessed with either a Java SDK, or HTTP/REST API... the resulting object ID is stored directly within the application." Filesystem interfaces are available if needed, as with loading content. There are high-end massive data backups, as well as federated data bases.

Service commerce platforms
Vendors in this space, such as Rearden Commerce and Ariba, are brokers between customers and service providers.

Cloud integration
Cloud integration comes, at least in part, from virtualization vendors. A Gartner Group analyst, Cameron Haight, says it is really several years away, with issues such as how "one cloud provider can consume the metadata associated with a virtual machine from another vendor," the metadata describing the service requirements of that virtual machine. There is a controversy over the business approach taken by VMWare, whose management tools will support only its own hypervisor, as opposed to the more general approach of Citrix and Microsoft. Red Hat is also moving into the virtualization market, with cloud integration, through the open source project called DeltaSource.org, to facilitate private-public cloud integration.

There are over 1,000 vendors of VMware's vSphere, including AT&T, Savvis and Verizon Business. VMware is offering its vCloud API to the Desktop Management Foruml, which they say is responsive to open standards. An industry analyst said that making the API available without the infrastructure is marketng, not interoperability.

Underlying architecture
Internally, cloud computing almost always uses several kinds of virtualization. The application software will run on virtual machines, which can migrate among colocated or networked physical processors. The virtual machines may be deliberately machine- and OS-independent (e.g., Java virtual machine), or virtualized operating system instances.

From the provider perspective, some of the advantages of offering cloud, rather than more conventional services, include:


 * Sharing of peak-load capacity among a large pool of users, improving overall utilization.
 * Separation of infrastructure maintenance duties from domain-specific application development.
 * Ability to scale to meet changing user demands quickly, usually within minutes

For reasons of commercial reliability, however, the resources will rarely be consumer-grade PCs, either from a machine resource or form factor viewpoint. Disks, for example, are apt to use Redundant Array of Inexpensive Disks technology for fault protection. Blade server, or at least rack mounted server chassis will be used to decrease the data center floor space, and often cooling and power distribution, complexity. These details are hidden from the application user.

The cloud provider can place infrastructure in geographic areas that have reduced costs of land, electricity, and cooling. While Google's developers may be in Silicon Valley, the data centers are in rural areas further north, in cooler climates.