Nowadays you can hear everywhere about cloud. Really popular slogans are visible among web: Let’s move to cloud, Cloud first, cloudify your solutions…
What is Cloud Computing?
According to National Institute of Standards and Technology (NIST) Cloud Computing is:
Cloud computing is a model for enabling ubiquitous, convenient, on-demand network access to a shared pool of configurable computing resources (e.g., networks, servers, storage, applications, and services) that can be rapidly provisioned and released with minimal management effort or service provider interaction. This cloud model is composed of five essential characteristics, three service models, and four deployment models. ( http://nvlpubs.nist.gov/nistpubs/Legacy/SP/nistspecialpublication800-145.pdf )
The easiest way to describe Cloud is that you are renting the computing power for your own usage according to agreement or contract between you and the provider.
Cloud infrastructure contains hardware and software set up for running environments, services or platforms. It contains physical and virtual (abstraction) layers.
The company that is Cloud provider has own Data Center with servers (physical servers) and renting this servers power for other people’s/companies’ usage. It does not state that you are borrowing one physical computer or storage, mostly you are renting a part of it. You can use the same hardware with other people simultaneously, not even knowing that someone else is there at the same time. Public Cloud services are accessible to anyone for certain price for a requested service. Examples of Public clouds Microsoft Azure, AWS, Rackspace Cloud etc.
It is inaccessible outside corporate/company’s network. It is private possession of company, e.g. Data center facility probably is rented but equipment, maintenance is on the side of company. Basically, these are virtualized servers and its computing power are delivered for companies service. Such example of Private Cloud could be VMware ESXi, HyperV, OpenNebula (http://opennebula.org/) etc.
it is a mixture of private and public cloud. Popular in large companies. For example company has applications which are really critical to the business or it is not beneficial or impossible to move it into Cloud (due to some restrictions). In such situations companies decide to reduce their Data Center load and have their own Private Cloud for group of applications with restrictions and move to Public Cloud other services that can be hosted there. Finally you have connection between on premise and cloud. I.E. HyperV on premise and Azure as public cloud.
Quite new term, describing the infrastructure which is shared among several groups or organizations that have common concerns or needs. It could be related to specific security or restrictions for example Data cannot leave the country, performance requirements e.g. High Available Solutions. The goal is to share benefits and costs among all interested parties. Community Cloud could be Private Cloud, Hybrid Cloud or Public Cloud. Everything depend on common needs among the stakeholders.
Benefits of Public Cloud:
1. This is service on demand. You do not have to take care about Hardware completely. Cloud provider has to take care about providing you computing resources such as RAM and CPU. Also you do not have to verify firmware, patches take care about virtualization layer. Everything will be ready. The same is with Storage, there will be as much space as you need or can pay for.
2. No compatibility issues – maybe I can state nearly no. Every service available in Public Cloud is tested and it will work. The problems with Compatibility could occur when you want to implement any specific configurations or features.
3. Network – Network connection among all components in Data Center are resolved by Provider.
4. Fast Growing and improving – the more customers are interested in cloud the faster its possibilities are growing. More Data Center locations are being built and in parallel more options and features are available. With growing popularity Public Cloud providers are offering larger variety of products and services for customers e.g. not only popular commercial solutions such as RHEL, SLES and Windows OSes but also open source solutions such as Debians, CentOS.
5. Automation – you can use tools like Puppet, Chef to automate configuration management in cloud.
1. Not all configurations could be applicable.
2. Not every application is able to be virtualized. Sometimes applications needs physical infrastructure to be fully functional. Not every physical component can be virtualized. e.g. FX Flight Simulator needs shaders which automatically excludes the application from being installed in virtual environment which does not support virtualization of shaders.
3. Not everything will run for you faster – of course in cloud providers are offering you services some of them are for reasonable price but may not meet your speed requirements.
4. Network connectivity – Everything depends how far you are from Cloud Provider Data Center, your connectivity and bandwidth. It may happen that you will face huge delays. E.g. Microsoft is providing a website on which allows you to measure latency from your web browser info the Blob Storage Service in each of Microsoft Azure DC. http://azurespeedtest.azurewebsites.net/
5. Complex costs structure – e.g. in Azure you have to identify what you are paying for. This is not only what you use, but what you reserve. Tricky part is also payment for exporting the data, this is not only regarding getting data from Azure Cloud, but also migration of data within Azure.
To be continued ….