Como um churrasco te ajuda a entender o que é a Cloud
Sistemas distribuídos
A definição acadêmica diz que Cloud é um sistema distribuído. No livro Sistemas Distribuídos (2007), Tanenbaum & Van Steen conceituam um sistema distribuído como uma:
“Coleção de computadores independentes que aparecem para os usuários do sistema como um único computador”
Na prática, para um usuário, um sistema distribuído parece ser um único sistema, quando na realidade há diversas máquinas, em localidades diferentes, trabalhando em colaboração e a falha de uma dessas máquinas não incapacita o sistema. É o conceito de transparência.
Há 3 tipos de arquitetura de sistemas distribuídos
Cluster Computing
Um Cluster é um aglomerado de computadores homogêneos, ou seja, com hardware idêntico ou muito similar, onde o objetivo é ter processamento paralelo — cada nó do cluster sendo responsável por parte desse processamento.
Grid Computing
O Grid é o oposto do Cluster. Os computadores são heterogêneos no sentido em que eles podem ter hardwares muito diferentes entre si. A ideia é parecida com a do cluster: combinar o poder computacional de diferentes máquinas.
Cloud Computing
E finalmente chegamos na famosa Cloud. Ela é o Cluster e o Grid terceirizados — eu ou a minha empresa pode comprar uma série de máquinas e combiná-las num Cluster, mas como manter esse Cluster? E se uma máquina queimar? E se precisar trocar algum componente? E se precisar aumentar o poder computacional e comprar mais máquinas, como faço para adicioná-las no Cluster? E se a minha demanda de uso cair, o que fazer com as máquinas?
No modelo de Cloud, essa preocupação é de outra organização que não me vende as máquinas em si, mas sim o direto de usá-las. Em Cloud, passamos a consumir serviços.
Tipicamente se falam em 3 modelos de serviço.
IaaS — Infrastructure as a Service
Na Infraestrutura como um Serviço, são oferecidos os recursos computacionais físicos: servidores, rede, armazenamento. E eu uso esses recursos como quiser, instalando o sistema operacional, configurando a rede, e criando e rodando minhas aplicações em cima desses recursos.
Pensando no exemplo do churrasco, isso é fazer o churrasco num clube. O espaço físico, incluindo a própria churrasqueira, já estão lá. Você usa esse espaço e faz o churrasco como desejar, com as comidas que quiser. E se houver um problema com o espaço — a torneira da pia não funcionar, você só precisa acionar o próprio clube que eles encontrarão uma solução.
Eu posso contratar um espaço condizente com o número de convidados. Se fosse em casa (modelos Grid e Cluster), essa flexibilidade seria perdida. Da mesma forma, é fácil no IaaS contratar mais máquinas ou mesmo reduzi-las.
PaaS — Plataform as a Service
A Plataforma como um Serviço é fazer o churrasco na casa de um amigo. Você só precisa se preocupar em levar as bebidas — as questões do local e de preparar a comida ficam com seu amigo.
Traduzindo para o universo da computação, o PaaS é o ambiente na qual a gente desenvolve e gerencia as aplicações, fornecendo ferramentas pré-configuradas. Por exemplo, no IaaS eu preciso instalar um sistema operacional, instalar e configurar um servidor de banco de dados e só então usá-lo na minha aplicação. No PaaS, eu só peço um serviço de banco de dados e o conecto na minha aplicação. O trabalho é bem reduzido.
SaaS — Software as a Service
Software como Serviço é algo que a gente usa no nosso cotidiano, a todo momento. Na nossa analogia do churrasco, ele é um serviço de buffet — você só escolhe o que quer e então é servido.
Netflix, OneDrive, GoogleDocs, Youtube, Facebook e muitos outros são exemplos de SaaS. Você é servido com um software completo, que é acessado via internet, e para você é um único sistema coeso, mas por trás essas aplicações estão distribuídas em diversos computadores ao redor do mundo.
CaaS — Churrasco as a Service?
O IaaS, PaaS e SaaS são os principais modelos de serviço Cloud e normalmente são que a gente aprende nos cursos. Mas hoje, o mercado pensa e transforma tudo em um serviço.
Um exemplo que eu gosto são o DaaS — Data as a Service e o BDaaS — Big Data as a Service, que são funções e ferramentas analíticas para coletar, tratar, modelar e gerenciar dados, criando informação, insights e relatórios ofertados na Cloud.
Então, embora tenhamos visto as 3 siglas mais usadas, no universo Cloud praticamente qualquer coisa que pode ser ofertada como um serviço, a fim de se economizar trabalho e facilitar a escalabilidade.
Comentários finais
Neste artigo abordamos o assunto de sistemas distribuídos, focando na computação em nuvem e apresentando as definições teóricas básicas que norteiam o assunto. Nesse contexto, vimos a computação em Cluster e Grid e os modelos de serviço mais conhecidos de Cloud, que podem ser resumidos pela imagem abaixo: