- Cloud computing as a use model, where we are interested in computing results and not in how we implement them.
- Cloud computing as an access model, where we can access an application from everywhere.
- Cloud computing as an infrastructure model, where capacity is not reserved upfront, and it changes elastically.
We therefore cannot talk about a unique cloud computing model anymore. Multiple models make up the cloud and they are actually independent problems, each with its own research efforts, difficulties, and implementations. There are also different types or deployment models: There are public clouds (also known as external clouds), in which users access the cloud via interfaces using web browsers. Resources are provisioned on a fine-grained basis, which clearly consists a form of utility computing. Private clouds are set up inside an organization’s internal data center. They provide more control over deployment and use than public clouds, in a similar way than Intranet functionality. Amid the two previous approaches, hybrid clouds are private clouds linked to one or more external cloud services. They provide more secure control of data and allow various parties to access information over the Internet. They also have open architectures to be able to integrate themselves in larger, external management systems.
From these different models we can elaborate a list of aspects that every company should assess before adopting a cloud computing solution. In the following list I summarize some that I consider most relevant:
- Cloud providers are responsible for security management using (hopefully) a specialized team that applies state-of-the-art technologies.
- The coherence problem derived from data synchronization is now responsibility of the provider.
- Licenses are “pay-per-use”, instead of a high initial fixed cost.
- Systems are automatically upgraded by the cloud provider.
- Collaborative work is easier (Google Docs and similar products are a great example of this).
- Lightweight clients can access the cloud from anywhere there is an Internet connection.
- Energetic costs are minimized.
In my opinion, Cloud computing help differentiate companies by reducing time in those tasks that are not principal in their business and, at the same time, enables new delivery methods that help increase competitiveness. However, cloud computing is not a universal solution to every computing need. Some problems, scenarios and applications are not appropriate for a cloud environment, and there is also a risk of downtime, so the recommendation is that businesses should migrate their less critical services first. Businesses must conduct a rigorous analysis before looking into a migration to the cloud, and this analysis must not overlook some weak points:
- There is not full control over the service’s internal management.
- There is a high dependency on an Internet connection.
- There is an inherent migration risk if the cloud provider goes out of business. Which tools and procedures are available to export our data from the cloud provider? This phenomenon is technically called the “lock-in problem”.
- There is some uncertainty about the performance of computations in the cloud. Bottlenecks can occur in data-centric applications.
I left out two of the most important aspects of cloud computing, or at least they are the main causes of concern to users and companies around the world, according to many surveys: security and privacy. They are tangled concepts that have deserved great attention from the research community, and I will try to explain them in a future post.