Cloud Computing is an Internet service that logically provides (ideally automatically and transparently) expandable and redundant computing power, expandable and redundant storage, and an interface that hides this expandability and redundancy from distributed application developers. Of course, automatically “expandable” should include automatically “shrinkable” as the demand decreases.
High Availability and Security are important attributes of Cloud Computing, and the amount of availability and security are of course vendor dependent. Typical Cloud Computing vendors would claim at least 5 nines of availability. Quantifying security is difficult, but complying to various security standards is a good start for the vendor.
Another important attribute for a Cloud Computing service is policy enforcement. It should be flexible, feature rich, and each to use for the cloud user’s administrator.
Additional features are exposed to the developer with distributed computing interfaces. These could include (and again charged by usage):
- Natural disaster protection. This includes multiple sites at multiple locations with semi-automatic fail-over.
- Archiving services. This is a final level of storage, that is no longer “on line” and is therefore considerably cheaper.
- Printing/publishing. Imagine a large high-end printer or other media producing device that is directly accessible to distributed applications running on the Cloud. The output could be automatically bound or packaged and shipped to the end user. This is high-end paper (or book) publishing. It should be available and cheap for both high and low volumes. The virtual aspect of the Cloud could enlist printing/publishing services of local (to the user) vendors so that the output could arrive at the location of the user’s choice in merely hours (or even minutes), not days.
- Of course, Software as a Service (SaaS) could provide all enterprise applications. The Cloud vendor could also charge to develop and support customized applications.