====== What is "Cloud"? ====== The U.S. National Institute of Standards and Technology published a formal defi­nition of cloud computing in which it defined five essential characteristics: ((NIST, The NIST Definition of Cloud Computing, Special Publication 800-145, http://csrc.nist.gov/publications/nistpubs/800-145/SP800-145.pdf)) * //On-demand self service// -- The ability for cloud users to add capabilities (such as virtual machine instances or storage, and so on). * //Rapid elasticity// -- The ability to add or remove resources on demand. * //Measured service// -- The cloud service provider collects, controls, reports on, and optimizes resources (bandwidth, CPU usage, and so on). Users’ consumption of these resources is usually the basis for service charges. * //Resource pooling// -- Resources are shared by multiple consumers transparently. Users do not know where the resources are located or what other tenants may be using them. * //Ubiquitous network access// -- Capabilities are accessed via heterogeneous networks. Cloud computing can be delivered as a "public cloud" where anyone can register and use the resources. Examples include [[http://aws.amazon.com/|Amazon Web Services (AWS)]] and [[http://www.windowsazure.com/en-us/|Windows Azure]]. An alternative to public clouds is the "private cloud," which involves deploying a cloud onsite for internal use by a single company. This can be done by building a solution based on [[http://www.openstack.org/|OpenStack]] or by using a proprietary product such as one from VMware, Microsoft, or Cisco. The last option, and my personal favorite, is the "hybrid clouds" which is using both a public and private cloud as a single solution. Hybrid clouds have the advantage of providing a good balance between flexibility and performance. On the other hand, hybrid clouds mean more complexity and security challenges. Cloud capabilities are delivered over the network “as a service.” There are three main types of service delivery: * //Infrastructure as a Service (IaaS)// -- This type of service is usually provided by com­panies such as Amazon (AWS). The cloud capabilities are basic building blocks like virtual machines, storage, network bandwidth, and so on. * //Platform as a Service (PaaS)// -- In this type of cloud computing service, the pro­vider delivers infrastructure software components such as databases, queues, and monitoring. Windows Azure is an example of this type of service. * //Software as a Service (SaaS)// -- These services are usually provided by smaller com­panies that deliver complete business capabilities. An example is Sales­force.com, which delivers a CRM solution as a service.