Entendendo Cloud Computing em 6 Camadas
Muito se fala sobre o assunto, e ao mesmo tempo, ainda há muito a ser entendido e evoluído.
O termo é utilizado tão amplamente, para diferentes tipos de serviços, que fica difícil de entender exatamente o que é Cloud Computing e como ela pode nos ajudar.
A confusão mais comum que vejo é gente se referindo a Cloud Computing como um serviço ou técnica específica, quando na realidade o serviço (ou técnica) referido é apenas “uma das” formas de implementação de Cloud Computing.
ENTÃO O QUE É, DE FATO, CLOUD COMPUTING?
De maneira mais breve, Cloud Computing, também referenciado como “Computação em Nuvem”, vem da proposta de contratar e pagar a utilização de software, informações e/ou recursos computacionais sob demanda, abstraindo os procedimentos técnicos de instalação e manutenção da infra-estrutura envolvida.
ENTENDENDO CLOUD COMPUTING EM 6 CAMADAS
Sam Johnston escreveu um artigo explicando As seis camadas da Computação em Nuvem, as quais eu descrevo aqui:
CLIENTE
Client Cloud está no topo da lista como a forma mais simples e abstrata de utilização da Computação em Nuvem.
Client Cloud pode ser qualquer software ou hardware que ofereça seus serviços baseado em uma nuvem computacional.
Em muitos casos esses Clientes de Nuvem podem ficar praticamente inutilizáveis sem o correto funcionamento da Nuvem a qual eles dependem.
Um exemplo mais claro deste tipo de implementação é o iPhone.
Primeiro é importante ter em mente que o iPhone foi lançado com a proposta de ser muito mais do que um telefone.
As pessoas não compram um iPhone apenas para fazer e receber chamadas. O compram por causa de um algo mais.
E esse algo mais vem da iPhone App Store, que oferece uma série de aplicativos para transformar o seu iPhone em um… brinquedinho.
Pois bem, a iPhone App Store é uma aplicação hospedada em uma nuvem computacional, e o iPhone, um cliente.
Todo aplicativo instalado em um iPhone depende do perfeito funcionamento da Nuvem a qual hospeda a iPhone App Store.
Veja que neste caso a iPhone App Store contempla todas as características existente na definição acima:
- São cobrados apenas os aplicativos instalados no iPhone;
- Quanto mais aplicativos são baixados, maior o valor cobrado;
- Toda infra-estrutura necessária à manutenção da nuvem e instalação dos aplicativos, é abstraída e mantida pelos responsáveis pela Nuvem (Apple).
SERVIÇOS
Também conhecidos como Web Services, são softwares desenvolvidos para suportar a interoperabilidade entre sistemas.
Um exemplo de um webservice bastante útil e utilizado é a busca por CEP’s dos correios, onde qualquer pessoa pode desenvolver um software (ou site) que acesse este serviço, e utilize a informação retornada, em seu sistema.
Novamente o valor cobrado está de acordo com o volume de acessos ao serviço e, toda infra-estrutura necessária a manutenção do serviço fica a cargo do próprio correio.
Para quem paga, basta utilizá-lo.
APLICAÇÃO
A disponibilização de aplicações em Cloud Computing tem se mostrado uma das grandes tendências do mercado atual.
Liderada pelas iniciativas de Software as a Service (SaaS), as aplicações disponibilizadas por meio de Computação em Nuvem normalmente eliminam a necessidade de o usuário instalar um programa em seu computador local, aliviando as necessidades de manutenção, suporte e atualizações.
Para quem substitui aplicações web desenvolvidas sob media, por Software como Serviço, outras tarefas que costumam ser eliminadas são a manutenção dos registro de domínios, contratação do serviço de desenvolvimento, hospedagem e manutenção dos servidores.
O exemplo mais conhecido desta modalidade de Nuvem é o Google Apps, onde é possível editar, hospedar e compartilhar seus documentos, agenda e e-mails, entre outras coisas.
Mais uma vez as vantagens da Computação em Nuvem vêm a tona eliminando a necessidade desenvolvimento e manutenção dos softwares e servidores envolvidos na solução, além do fato de a cobrança ser feita de acordo com a sua utilização. O que permite um custo mais ajustado à realidade do negócio.
PLATAFORMA
A oferta de Platform as a Service (PaaS) -ou em português, Plataforma como Serviço- tem um conceito um pouco diferente das aplicações.
Enquanto SaaS oferece aplicações prontas para os usuários finais, PaaS oferece uma plataforma de desenvolvimento e deployment, para desenvolvedores.
Normalmente os provedores de PaaS trabalham apenas com poucas linguagens de programação.
O exemplo mais conhecido desta modalidade de Cloud Computing é o Google App Engine (GAE), que trabalha exclusivamente com Python e está atualmente expandindo sua oferta para Java (ainda em desenvolvimento).
A ideia então é que os desenvolvedores possam criar suas aplicações, dentro de padrões pré-estabelecidos pelo provedor, testem-as localmente e as enviem para o GAE.
A partir daí o provedor passa a ser responsável por toda a infra-estrutura necessária à disponibilização da aplicação na Internet: infra-estrutura de redes, instalação, manutenção e configuração de servidores, banco de dados, dimensionamento e escalabilidade, segurança e etc.
Nesta modalidade, normalmente, o desenvolvedor não tem acesso ao sistema operacional do servidor.
Mais uma vez toda a complexidade de instalação e manutenção da infra-estrutura, é abstraída de seus clientes, cabendo a estes, apenas a utilização do serviço.
ARMAZENAMENTO
Os serviços de Cloud Storage têm por finalidade prover um espaço virtual para armazenamento de dados e arquivos.
A utilização do serviço, neste caso, varia de acordo com a necessidade do cliente.
O mais comum é que este serviço seja utilizado para backups, armazenamento e hospedagem pública de arquivos, ou ainda, como banco de dados não relacional.
Os exemplos mais conhecidos desta modalidade de serviço são o Amazon S3, Dropbox e UbuntuOne.
O serviço é cobrado de acordo com o espaço utilizado pelo cliente e a quantidade de acessos aos arquivos e/ou dados.
INFRA-ESTRUTURA
Como o próprio nome sugere, Infrastructure as a Service (IaaS) tem como base a oferta de Infra-estrutura como serviço.
Dentro desta modalidade o cliente pode comprar diferentes serviços de infra-estrutura como: servidores (com diferentes capacidades de processamento e memória), armazenamento, banco de dados relacionais, firewall, load balance, infra-estrutura de redes e etc.
Tudo isso (muitas vezes) por meio de uma interface e com poucos cliques e alguns minutos.
O que é abstraído do cliente, neste caso, é a infra-estrutura de hardware. Por exemplo, no caso do Amazon EC2, o cliente compra a capacidade computacional (determinada através de padrões internos à Amazon), mas não escolhe se o hardware é um Intel ou AMD, se é um processador QuadCore ou dois DualCore’s.
Ao mesmo tempo o cliente não tem contato e nem preocupação com a parte física dos componentes contratados. Estes são instalados, pré-configurados e disponibilizados prontos para a utilização.
Cabe ao cliente apenas a personalização das configurações, de acordo com suas necessidades.
Atualmente, a maior referência desta modalidade de Cloud Computing é o Amazon Web Services.
CONCLUSÃO
Espero que este post tenha esclarecido as principais modalidades de serviços de Cloud Computing praticados na atualidade, bem como de que forma eles funcionam e a qual público alvo eles são direcionados.
Com certeza essa é a grande tendência do momento, visto que além de proporcionar um custo mais adequado ao momento do negócio, costuma abstrair os procedimentos técnicos de mais baixo nível, liberando mais tempo dos profissionais (da contratante) para trabalharem em tarefas que gerem maior valor ao core business.
Ronan Lucio Pereira
