Quick Introduction to Cloud
Cloud refers to hosted services over the Internet. For example, Google Drive and GoogleDocs are cloud services. Google Drive allows you to save your files on their hardware. GoogleDocs is a collection of software (word processor, spreadsheet, etc.) hosted on Google's servers. The software resided on Google's hardware and uses their memory and CPU. You access it through the Internet. The are three category of cloud services:
- IaaS: Infrastructure as a Service
- PaaS: Platform as a Service
- SaaS: Software as a Service
IaaS providers provide highly automated and scalable computing resources accessible through an API and/or dashboard over the Internet. It allows users to build their own virtual data centre.
PaaS facilitate building highly scalable and applications. Examples include Heroku, Google App Engine, and OpenShift.
Hosting software on your servers require reliable hardware, network, and skilled technical staff. SaaS takes away the need for all this. The cloud will take care of all these technical problems and all you have to do is access the software through the Internet.
Elasticity means the ability to increase or decrease resources and services as your needs change. Suppose you are using 5 CPUs and 24 Gig or RAM and your virtual servers cannot cope with the load, you would want to add more CPUs and memory. This can easily be done in the cloud with a few clicks in the dashboard in real time. When you add more CPU or RAM to your virtual machines, it is called scaling up. When you reduce CPU or RAM, it is called scaling down Collectively, this is called vertical scaling. When you add more nodes or components, it is called scaling out. When you reduce nodes, it is called scaling in. Collectively, this is called horizontal scaling.
Apps must be designed to take advantage of scalability. If an application is designed to use only one CPU at a time, allocating 3 CPUs will not help speed up the execution of your jobs. In the cloud, you have access to infinite CPU and memory. Hardware limitation is no longer an bottleneck. The bottleneck is how much resources you can afford to buy and the ability of your apps to elastic services.