O termo “Cloud” é provavelmente um dos termos mais usados actualmente no mundo da tecnologia, no entanto, é erro frequente considerar que a Cloud é algo imaterial, abstracto, por analogia à “nuvem”.
É também errado considerar o Cloud Computing como uma tecnologia ou confundir com virtualização (a tecnologia que permite dividir os recursos de uma máquina física em máquinas virtuais).
Segundo o livro Introdução ao Cloud Computing do autor António Miguel Ferreira, Cloud Computing é um conceito e não uma tecnologia como muitos o identificam. Na prática, o Cloud Computing é um modelo de disponibilização e utilização de Tecnologias de Informação e Comunicação (TIC) que representa uma evolução de modelos TIC anteriores.
Segundo o National Institute of Standards and Technology, Cloud Computing é um modelo que permite o acesso ubíquo, conveniente e a pedido, através da rede, a um conjunto de recursos de computação partilhados (tais como redes, servidores, storage, aplicações, serviços, etc) que podem ser rapidamente aprovisionados ou libertados, com um mínimo de esforço e sem interacção com o fornecedor.
O modelo Cloud é composto por 5 características essenciais, 3 modelos de serviço e 4 modelos de implementação.
5 características essenciais:
- 1) On-demand self-service: eu, utilizador, decido quando necessito do serviço e decido quando o mesmo deve ser disponibilizado, sem intervenção humana de um fornecedor. Normalmente isto faz-se a partir de um vulgar browser Web. A maioria dos denominados fornecedores de Cloud, hoje em dia, falha nesta característica essencial.
- 2) Broad network access: tenho acesso ao serviço Cloud a partir de um equipamento, desde que esteja ligado à Internet.
- 3) Resource pooling: a Cloud pressupõe uma optimização dos recursos, pela partilha dos mesmos (mas garantindo, ao utilizador final, a sua fatia reservada de recursos). Por exemplo, os Cloud Servers são uma “fatia” de um servidor físico de maior dimensão. Como clientes diferentes utilizam Cloud Servers diferentes, o servidor físico subjacente é optimizado, ou seja, há menos desperdício de recursos de RAM, CPU, DISCO e energia.
- 4) Rapid elasticity: a possibilidade de fazer upgrade ou downgrade instantaneamente, quando necessário. Eu, cliente, necessito inicialmente de 2 servidores com 16 GB de RAM. Mas no dia seguinte necessito de 10 servidores com 32 GB de RAM, pois o meu negócio cresceu. No entanto, passadas mais algumas semanas, optimizei a minha aplicação e apenas necessito de 4 servidores com 16 GB de RAM, novamente. Esta elasticidade é fundamental. Se sou um utilizador de uma aplicação (por exemplo, de gestão da minha actividade comercial), tenho que ter a possibilidade de criar 5 contas para os meus colaboradores, crescer para 30, ou descer para 2 ou 3. A elasticidade é também uma característica em que falham muitos (falsos) fornecedores de Cloud.
- 5) Measured service: Cloud Computing é visto como um serviço, que se paga à medida da utilização. Aqui entra o conceito de “pay-per-usage”, tal como hoje em dia acontece com o nosso consumo de electricidade ou de água. Não devem existir custos iniciais ou custos recorrentes fixos. A Cloud pura é aquela em que pago muito, se utilizar muito, pago pouco, se utilizar pouco, ou nada, se deixar de utilizar. É um modelo de pagamento após utilização, não de pré-pagamento.
3 modelos de serviço
- IaaS – Infrastructure-as-a-Service: Trata-se da utilização de recursos de infraestrutura básicos de computação e armazenamento. Neste caso os recursos são RAM, CPU e DISCO (que existem num servidor), sistemas operativos (Linux, Windows) ou, simplesmente, capacidade de armazenamento num espaço de storage externo. O fornecedor mais conhecido a nível mundial é a Amazon AWS. Com presença em Portugal (e outros países), temos a Lunacloud.
- PaaS – Platform-as-a-Service: Trata-se da utilização de um ambiente de desenvolvimento ou serviço de bases de dados, tipicamente para programadores. Quem se quer abstrair ainda mais e nem sequer utilizar um servidor Linux (como o que seria acessível num serviço do tipo IaaS), pode simplesmente utilizar capacidade de computação num ambiente de desenvolvimento gerido pelo fornecedor. Um dos exemplos mais conhecidos é o Heroku, mas o Azure da Microsoft é também essencialmente um serviço do tipo PaaS.
- SaaS – Software-as-a-Service: Trata-se do serviço de Cloud que está mais próximo do consumidor final, do utilizador não profissional. Neste caso, o serviço é a disponibilização de uma aplicação, vulgarmente através de uma interface Web normal. O exemplo mais comum é o Webmail (um serviço de e-mail utilizado com um browser), como o Hotmail ou o Gmail. Mas no mundo profissional existe um outro exemplo muito conhecido, de uma aplicação de CRM, o Salesforce. E muitos outros…
4 Modelos de implementação
Os modelos de implementação definem a forma como o serviço nos é prestado. Existem dois tipos principais: cloud privada e a cloud pública e duas variantes: cloud híbrida e cloud comunidade.
Se quere saber mais detalhes sobre Cloud Computing, aconselhamos a lerem o livro Introdução ao Cloud Computing.