Cloud computing is a business and economic model that offers a way to access computing resources on demand: hardware, software, network and storage. The biggest driving force behind cloud computing are FLEXIBILITY, ELASTICITY and SIMPLICITY. Cloud computing is making it possible for companies to focus on business, instead of buying and running servers and software. Cloud comes in various flavours i.e. Public, Private and Hybrid.
- Public cloud: Where the cloud infrastructure is made available to the general public or industry and is owned by the cloud service provider selling cloud services.
- Private cloud: Where the cloud infrastructure is operated and owned by your organization and may exist either on-premise or off-premise.
- Hybrid cloud: Where the cloud infrastructure is a combination of public and private cloud that are bound together by standardized or proprietary technology that enables data and application portability.
Cloud computing service majorly fall in three service category i.e. Software as a Service (SaaS), Platform as a Service (PaaS) and Infrastructure as a Service (IaaS).
Infrastructure as a Service (IaaS):
Customers rent computing resources (e.g. servers, network, storage and operating systems) as on demand instead of buying and installing in their own data centre. This service also include Dynamic scaling i.e. provision/ de-provision of computing power based on demand. Generally IaaS can be obtained as public or private infrastructure or a combination of the two.
IaaS makes more sense in following situations;
- Volatile demand – any time there are significant spikes in terms of demand on the infrastructure i.e. E-commerce applications when load increasing during sale/promotion time.
- Start-ups/ small organization with no capital to invest in hardware purchase.
- Organization is growing rapidly and scaling hardware would be problematic
- Organizations wish to limit capital expenditure and to move to operating expenditure
- Stable organizations would like to develop application rapidly or want to try application on multiple infrastructures
- Research specific projects which require high computing
Examples: Amazon EC2, Rackspace
Platform as a Service (PaaS):
Cloud providers delivers solution stack – capability to manage all software development stage from design, to build and deployment, to testing and maintenance in available in the cloud. Here cloud provider delivers more than an IaaS provider. The cloud provider analyses load and performs dynamic scaling of the deployed application. Many PaaS applications need to carry some proprietary platform specific code. This makes application portability expensive from one PaaS vendor to another PaaS vendor.
PaaS is useful where multiple developers will be working on a development project and developers wish to automate testing and deployment services.
Examples: Google App Engine, Microsoft Azure Services, Force.com platform, Heroku
Software as a Service (SaaS)
These are business services hosted by Cloud Provider and sold as services.
Gartner defines software as a service (SaaS) as software that is owned, delivered and managed remotely by one or more providers. The provider delivers a software based on one set of common code and data definitions that is consumed in a one-to-many model by all contracted customers at anytime on a pay-for-use basis or as a subscription based on usage metrics.
Examples: Gmail, Yahoo Mail, SalesForce.com
For effective and efficient use of cloud services, these need to measure and monitor periodically.