Here's a simplified cloud computing overview for IT infrastructure and operations professionals as well as software developers and engineers who are new to this space.
Cloud computing is seen as an important forward-looking model for transforming how IT operates as a services-focused organization. By pooling cloud computing resources and enabling self-service access, clouds offer these potential advantages:
Self-service Provisioning - Allows users to deploy their own sets of cloud computing resources (machines, network, storage, etc.) as needed without the delays and complications typically involved in resource acquisition; IT supports ongoing customization and enhancement of cloud user experience, while monitoring, managing, and expanding as required the underlying cloud computing infrastructure.
Scalability - Decouples the fluctuating needs of individual users from typical infrastructure constraints, thus easily accommodating rapid increases or decreases in cloud computing resource demand.
Reliability and Fault-tolerance - IT can focus on improving critical pieces of cloud computing infrastructure to achieve pre-determined levels of reliability. Policies addressing expected levels of reliability can be continuously reassessed and updated without user involvement.
Optimization/Consolidation - Maximizes the usage and increases the efficiency of existing cloud computing infrastructure resources. Extends infrastructure lifecycle. Reduces capital expenditure.
QoS (Quality of Service) - Allows IT to dynamically reassess the SLA associated with users or groups of users for the cloud computing resources allocated. Allows the organization to react quickly to changing conditions without unnecessary user involvement or knowledge.
Well-defined API - Using a well-defined and stable industry standard API avoids lock-in and ensures interoperability with an ever-growing number of tools and cloud service providers.
As-needed Availability - Aligns cloud computing resource expenditure with actual resource usage thus allowing the organization to pay only for the resources required, when they are required.
The three primary cloud deployment models are public, private, and hybrid clouds.
A public cloud is one in which "(t)he cloud infrastructure is made available to the general public . . . and is owned by an organization selling cloud services." (NIST) The cost of the infrastructure is shared across many organizations, and public clouds tend to be very large and thus able to take advantage of economies of scale. This means that applications can often be deployed in public clouds at lower costs than other cloud deployment models. On the other hand, data control represents a significant challenge for public cloud applications. Many companies house applications and confidential, proprietary data that would not be appropriate to be placed in a shared computing and storage environment.
A private cloud is one in which the ". . . infrastructure is operated solely for an organization." (NIST) Private clouds attempt to provide similar convenience and elasticity of resources that public clouds provide, but allow an organization much greater control over the location of and access to the company's applications and data.
A hybrid cloud deployment typically tries to maximize the benefits of both public and private clouds. A company will have two or more unique clouds available, but these clouds ". . . are bound together by . . . technology that enables data and application portability (e.g., cloud bursting for load balancing between clouds)." (NIST) Hybrid cloud deployments allow an organization to take advantage of the cost benefits associated with public clouds while simultaneously protecting confidential data in private clouds. Hybrid clouds also provide a mechanism for better business continuity and faster disaster recovery. If a public cloud hosting an application goes down, that application can theoretically be reinstantiated in the private cloud with little downtime.