Something about clouds
Some time ago, when the concept of cloud computing became popular, I didn’t know clearly what it was about and which were the advantages of it. I neither imagine the world behind that technology. And nowadays, I’m still learning and it never ceases to amaze me.
How can be possible that the blog is about an internship at an organization devoted to build a cloud computing solution and there is not a single post telling what a cloud is? That is what I thought ;)
The idea of this post is to give a brief overview of what cloud computing is, at least basic concepts, types of clouds that exists and their importance, to give support to other articles to come.
What is the cloud?
The idea behind cloud computing is to provide a system as a service. In other words, users only need to worry about doing their jobs and they can ignore the management of used resources.
This allows a user to use apps with large hardware requirements that otherwise could not afford.
In a Vurbia talk, an Argentinian cloud computing company, the speaker made an analogy that I really liked and helped me to close this idea a bit more.
Imagine you need to choose how to provide your home with electricity. You can choose between a generator that fit your needs and deal with any issue that may arise, or subscribe to a company that dedicates to it and don’t need to think about what to do in the case something goes wrong.
Obviously the talk was better than that, but hey, I tried!
The thing is that in computing something alike happens, and with Internet and mobile devices popularization this need became more evident.
Cloud computing models
The cloud can be classified by the service model offered. There are several models, but usually only the following are considered.
Software as a Service
Provides the user the ability to use software in the cloud. This is the most common type of cloud computing, and is the farthest away the underlying hardware.
Just one instance of the software runs on the service provider infrastructure and serves multiple clients. That’s why it’s also known as software by demand.
A clear example of SaaS is Google Apps.
Platform as a Service
Allows the user to deploy applications using programming languages and/or supported tools by the platform provider. It’s closer to the hardware, but it still is an abstraction far from the real structure.
This model supports all phrases of the software development cycle and testing, or it can also be specialized in a particular area, such as content management.
Red Hat OpenShift is an example of PaaS.
Infraestructure as a Service
Provides the user with an infrastructure, such as computers (physical or virtual), network connections and storage so that it can run any software, including operative systems. This is the most basic cloud computing model and it’s really close to the hardware. Because of this last thing is that it’s also known as Hardware as a service.
Hypervisor pools within the system can support a great number of virtual machines and have the ability to scale services according users needs. Aditional hardware resources are offered, like raw and file-based storage, networking, virtual machine images and software bundles.
An example of IaaS is OpenStack.
In short, the different service models might look like this.
In the figure I added more examples to make even clearer what type of resources offers each model.
Types of cloud computing
Besides the division into models, clouds can also be classified according to whether they are public, private or hybrid.
- Public clouds are managed by third parties and the information from many clients can coexist in the same server, storage system and other structures. As much as this is so, the client doesn’t know others information contained in the same hardware device.
- Private clouds are administered by the client itself, usually large companies that need high data protection and exclusive service. The user controls which applications to execute and is owner of the physical hardware used to mount the cloud.
- Hybrid clouds combine public and private clouds. To minimize costs without sacrificing fault tolerance, users can opt for this type, protecting sensitive data in private clouds and letting not so valuable information to live in public clouds.
Why choose the cloud?
The cloud is justified when services are required on demand. That is, those resources that are often variable, and we want them to be available when we need, without incurring large costs.
In most data centers and largo companies the resource usage is not maximized and inevitable the available structure is not fully exploited.
The problem is that, in certain moments, that structure is used to the max; but those moments are the least.
What is expected, then, is flexibility. Having the resource fast when it is needed with little user intervention.
A new paradigm
With large processing needs of today’s world, the cloud meant a change in the way how things are done.
New opportunities arise from the hand of this technology and users mind start evolving, seeking new frontiers in what today seems limitless.
Since the possibility of having access to your office anywhere in the world – Zoho -, up to games with large hardware requirements on your smartphone or tablet – Onlive - , ideas that can be supported by the cloud are very tempting.