IDC have made a good attempt at defining the basics as:
An emerging IT development, deployment and delivery model enabling real-time delivery of products, services and solutions over the Internet (i.e. enabling cloud services). In other words cloud computing is the IT environment that encompasses the stack of IT and network products that enables the development, delivery and consumption of cloud services. A partial list of cloud computing attributes include the following:
- The infrastructure consists of servers, storage, networks, etc., that can economically scale to very high volumes, preferably in a granular fashion
- The software provides Web-based UIs, Web services APIs, multitenant architecture and a rich variety of configuration options
- The application development and deployment software supports the development, integration or runtime execution of cloud application software
- The system and application management software supports rapid self-service provisioning and configuration, usage monitoring, etc
- IP networks connect end users to “the cloud” and the infrastructure components of the cloud to each other, leveraging network-embedded technologies for quality-of-service, security and optimized application deliveryPricing agreements with cloud services providers scale technology costs with their cloud services volumes/revenues.
Consumer and business products, services and solutions delivered and consumed in real-time over the Internet. They also define eight key attributes:
- The service must be location-agnostic, meaning it does not matter where the user sits when accessing the service. Generally, third parties provide these services, but this is not essential. Companies can implement the cloud model with their own organization, for use by their own employees
- The service offers standards-based, universal network access. This does not preclude service providers offering security or quality-of-service value-added options
- The service offers online, simplified specification of services requirements. It eliminates the need for lengthy implementation services for on-premise systems that support the service
- Near real-time deployment and dynamic and fine-grained scaling
- Pricing for the service is fine-grained and usage-based, though as a convenience to some customers, providers may mask pricing granularity with long-term, fixed-price agreements
- Browsers are used to interact with the service
- Web services APIs are used to interface with the service, providing a standards-based framework for accessing and integrating with and among cloud services
- Shared resources/common versions. System resources are shared among users, improving supplier and customer economics; there is some ability to customize “around” the shared services, via configuration options with the service, workflow/process management among services, etc.
Within Cloud services there are also three fundamental types of service:
- Infrastructure-as-a-Service (IaaS) – You manage your applications, data, operating system, middleware and runtime. The service provider manages your virtualization, servers, networking and storage
- Platform-as-a-Service (PaaS) - You manage your applications and data and the cloud vendor manages everything else
- Software-as-a-Service (SaaS) - You run your business programs in the cloud where all aspects are managed by the cloud vendor.
Just to add to the complexity we also need to explain that Cloud services can be:
- Public Cloud – You register, pay for and use the service and share with all other users
- Community Cloud – You share services with other similar organisations
- Hybrid Cloud – Mix and match of the other cloud options
- Private Cloud – Dedicated platforms and applications.
The majority of public cloud deployments are generally used for web servers or development systems where security and compliance requirements of larger organizations and their customers is not an issue. Private cloud computing, on the other hand, by definition is a single-tenant environment where the hardware, storage and network are dedicated to a single client or company.
The public cloud is defined as a multi-tenant environment, where you buy a slice of the server in a cloud-computing environment that is also shared with a number of other clients or tenants.
Public clouds include the follow features:
- Utility Model – Pay-as-you-go model, where you pay by the hour for the compute resources you use. This is a great option if you’re building and decommissioning development servers on a regular basis
- Contract free – If you want to scale down or up after only 2 hours of use you can as there is no contract requiring your ongoing use
- Shared – Your server shares the same hardware, storage and network devices as the other tenants in the cloud. Meeting compliance requirements, such as PCI or SOX, is not possible in the public cloud
- No Control of Hardware – You can’t select the hardware, cache or storage performance (SATA or SAS). Your virtual server is placed on whatever hardware and network, the public cloud provider assigns for you
- Self support – Buyers setup and manage the details of their servers.The majority of public cloud deployments are generally used for web servers or development systems where security and compliance requirements of larger organisations and their customers are not an issue.
The goal of a community cloud is to have participating organisations realize the benefits of a public cloud such as multi-tenancy and a pay-as-you-go billing structure, but with the added level of privacy, security policy compliance usually associated with a private cloud. The community cloud can be either on-premises or off-premises, and can be governed by the participating organizations or by a third-party Managed Service Provider (MSP).
Private cloud hosting is a single-tenant environment where the hardware, storage and network are dedicated to a single client or company.
Private cloud computing has the following features:
- Security – Because private clouds are dedicated to a single organization, the hardware, data storage and network can be designed to assure high levels of security that cannot be accessed by other clients in the same data centre
- Compliance – Sarbanes Oxley, PCI and HIPAA compliance cannot be delivered through a public cloud deployment. Because the hardware, storage and network configuration is dedicated to a single client, compliance is easier to achieve
- Customisable – Hardware performance, network performance and storage performance can be specified and customised in the private cloud.
There are a number of ways to run a Cloud services depending on how much you feel comfortable in leaving to your provider. The cheapest option is usually to leave it all to your provider and accept sharing a platform with other organizations. This isn’t going to suit everyone, or might fail to meet any specific compliance requirements that you may have.
It is very easy to get submerged in technology and terminology as most providers will be keen to sell you their particular flavour of Cloud. The best advice is to take a step back and address this from the perspective of the business. Consider IT as a service and decide how that service should be delivered to you to best meet your business objectives and strategy.
It goes without saying that you will need expert and independent advice here to help you navigate through the options. You also need to bear in mind that your requirements may, and probably will, change over time so the flexibility of change needs to be engineered into your solution.