What is Cloud Computing?
Cloud computing is the on-demand delivery of services—servers, storage, databases, networking, software, analytics and more—over the Internet the cloud with pay-as-you-go pricing.
How Does Cloud Computing Work?
Cloud computing provides a simple way to access servers, storage, databases and a broad set of application services over the Internet.
There are three types of Service providers-
IAAS (Infrastructure as a Service): The provider which provide you all the infra you require to start your business are IAAS providers. This means CSP (Cloud service providers) will be giving you infrastructure like servers, networks, Storage and operating systems an on-demand service and managing it.
- Generally includes multiple users on a single piece of hardware
- Resources are available as a service
- Allows dynamic scaling capabilities – the cost varies based on the infrastructure selection
- Very flexible cloud computing model and gives organizations a complete true control over their infrastructure
- Ideal for organizations which need complete control over their high performing applications
- Also suitable for startups and small companies which do not wish to spend time and energy in procuring hardware and software.
- Suitable for growing organizations which are not yet sure about the application and expect it to evolve over a period and hence do not want to commit to hardware/ software resources
- Suitable for applications which see volatile demands – where scaling up or down is critical based on traffic spikes or valleys
PAAS (Platform as a Service): PaaS is the similar to SaaS in many ways. Instead of delivering the software over the web, PaaS offers a platform for the creation of software (which is then delivered over the web).Developers work on PaaS platform and concentrate on software application building without having to worry about software updates, operating systems, load balancing, storage, or other details related to infrastructure.
- Built on top of virtualization technology – you can demand for resources as per your need and scale up/ down as per the requirement
- Provides varying services to facilitate development, testing, deployment and hosting of software applications in integrated development environment
- Multiple users can utilize the same development application
- Integrated web services and databases
- Billing and subscription is managed by tools
- When multiple developers are working on the development or when external parties are involved in the development process, PaaS is a great option to bring in the speed and flexibility to the development process
- For organizations following Agile Methodology for software development, PaaSeases the difficulties associated with rapid development and iteration of application
- When you wish to spread your Capital Investment – by providing the underlying solid infrastructure, PaaS model reduces the organization’s overhead costs
- Large organizations who want to customize applications
SAAS (Software as a service): In this model, complete abstraction is done to the user as software is hosted somewhere else, and user just uses that as a service. To be more precise the best example is – GOOGLE DOCS (Microsoft office is installed somewhere else, but we use it as a service and we don’t need to install it, rather we can create documents presentations etc. without office on our systems). Some of the popular SaaS products are Salesforce, Google Apps, NetFlix, WebEx, GotoMeeting and DropBox.
- Software is hosted on a remote server and is always accessible through a web browser over Internet.
- Application is managed from a central location
- Application users don’t need to worry about hardware, software updates and patches
- Any integration with the third party applications are done through APIs
- Applications where the demands spike or reduce significantly – For example: taxation software has high demand during tax filing season, hotel reservations see a spike during holiday season and so on
- Applications which have demand for web as well as mobile access – For example: Sales management software, CRM systems
- Short term projects which require collaboration – the pay-as-you-go model makes it convenient to quickly setup and use
- Start-up businesses which want to quickly launch eCommerce sites without worrying about server configurations and software updates
Layers of the cloud architecture
Architecturally, Cloud can be divided as 4 layers:
Physical/Hardware layer: Contains physical servers, network etc.
Infrastructure layer: Virtualized servers, networking and storage resources. Infrastructure as a Service is the hosted delivery of infrastructure services such as servers, networks and other hardware to consumers. IaaS provides consumers access to on-demand, scalable storage and compute power.
Platform layer: which contains components or services like Windows Azure, Google App Engine. A platform for development, deployment. Platform as a Service offers a complete platform and the tools to develop and deploy applications on the platform.
Application Layer: This is the layer end users interact with. This contains software which are delivered as service like Gmail, Salesforce, dropbox etc. Software as a Service is the hosted delivery of Software that consumers can access over the internet. Two features of a SaaS application are scalability and configurability. SaaS applications should be able to quickly scale with demand. In mature SaaS applications, the customer should be able to customize their instance of the software using meta-data.
Cloud Deployment/Infrastructure Models
Public Cloud – When Cloud infra is shared amongst more than one organization or individuals and they use that infra over network which is for public use that is public Cloud. For e.g. I am a CSP and have a physical server. On that I can create 4 different VMs and give those 4 VMs to 4 different organizations over a network.
Private Cloud – When the underlying hardware is dedicated to one organization and is managed my either CSP or internally by an organization, leveraging the advantages of Cloud Computing is Private Cloud. It’s obviously expensive than Private cloud.
Hybrid Cloud – Combination of at least one private and public cloud is hybrid cloud.
Community Cloud—when we have a private cloud not for one organization, but for more than one having common concerns or legal requirements, it is called cloud for community. That Community shares the cost with all the advantages of private cloud. Community cloud takes benefits of both public cloud (e.g. minimal shared infrastructure costs, pay per use basis billing) as well as private cloud (e.g. added privacy level, policy compliance).
|Cloud Storage Type||Host||Owner||Access||Users|
|Public cloud||service provider||service provider||Internet||public as individuals, organizations|
|Private cloud||Enterprise (Third Party)||Enterprise||Intranet, VPN||Business organizations|
|Hybrid cloud||Enterprise (Third Party)||Enterprise||Intranet, VPN||Business organizations|
|Community cloud||Community (Third party)||Community||Intranet, VPN||Community members|
A successful cloud application will focus on these five pillars of software quality: Scalability, availability, resiliency, management, and security.
|Scalability||The ability of a system to handle increased load.|
|Availability||The proportion of time that a system is functional and working.|
|Resiliency||The ability of a system to recover from failures and continue to function.|
|Management||Operations processes that keep a system running in production.|
|Security||Protecting applications and data from threats.|