, ,

What is Cloud Computing?

R: Cloud computing is a technology that has the concept, basically, the abstraction of resources¹ through Internet.  

¹ – A good example is the email. It’s a communication resource and you can access your email in Brazil, in Canada or elsewhere. Just having access to Internet and to the e-mail service.

Cool, but what can be abstracted?

Basically, everything. Applications, environments, RAM, HD, etc. These abstracted itens are divided into Delivery Models. Cloud Computing has many delivery models, but the most common and the main ones are:

Delivery Models

  • IaaS (Infrastructure as a Service)

    Abstraction of the Infrastructure.

    • Example in life: Rent a house
      • You do not need to buy materials to build a house from scratch, put electrical wiring and other things. The house is ready and in it you choose what to do.
    • Real example: Servers/Computers in general
      • In IaaS, you do not need to buy a physical computer to do your things. You receive a virtual machine (usually with an operating system that you choose) and do what you want with it. Can use as a server, such as storage, install your programs or anything else that you would do with a computer.
    • Tools:
      • Amazon Web Services (AWS), Microsoft Azure, Google Compute Engine (GCE), etc.

  • PaaS (Platform as a Service)

    Abstraction of the Platform.

    • Example in life: FedEx
      • You do not need to go to the person’s home and deliver your package. You just need to leave your package to the standard that FedEx is asking and deliver to them.
    • Real example: Application Server
      • In PaaS, you do not need to worry about deploying and running an application. You follow the configuration standards and PaaS takes care of deploying and running your application for you. In the case of Java, would be like configuring the WAR generation and deliver to PaaS.
    • Tools:
      • Heroku, Google App Engine (GAE), AWS Elastic Beanstalk, Openshift, etc.

  • SaaS (Software as a Service)

    Abstraction of the Software. (Of the application)

    • Example in life: Amusement Park
      • You do not need to go on all the rides if you just want a roller coaster. So, you pay only the roller coaster and only uses the roller coaster.
    • Real example: Gmail
      • You do not need the entire Google Apps, just want Gmail. Gmail is free, but the important concept here is that you pay for the service, not the product.
    • Tools:
      • Google Docs, Gmail, Salesforce, etc.


DBaaS – Database as a Service
TaaS – Testing as a Service
CaaS – Communications as a Service

There are many other tools, both free and paid. I am putting here a link to some free tools for development. I hope you enjoyed.