Tópicos quentes de pesquisa na área de Internet - Parte III: Cloud Computing

Daremos continuidade a série de postagens sobre os tópicos quentes de pesquisa na área de Internet, na qual já foi falada sobre CDNs e Internet das coisas. Falaremos sobre Cloud Computing ou Computação em Nuvem. 

A computação em nuvem é hoje uma realidade e muitos usuários já a usam mesmo sem saber. Por exemplo, quando um usuário coloca um arquivo em um serviço do tipo Dropbox ou Google Drive, ele está fazendo uso de uma infraestrutura de computação em nuvem. Quando usa um serviço de formulários online, como SurveyMonkey ou Typeform para suas pesquisas, também está. 

Apesar disso, para muitas pessoas o conceito de nuvem é um tanto quanto etéreo e abstrato. Afinal, se um usuário coloca um arquivo em um serviço em nuvem para onde isso vai? Para entender melhor é preciso voltar um pouquinho na história da computação. No início apenas grandes empresas tinham a possibilidade de possuir os mainframes, que nada mais são que computadores de grande porte com a capacidade de oferecer serviços de processamento a milhares de usuários conectados através de milhares de terminais. Nessa época, os terminais em si não tinham praticamente nenhum poder de processamento, sendo que os mainframes centralizavam todas as operações. 

Com o advento dos PCs muitas das tarefas que antes eram executadas em um mainframe passaram a ser possíveis de ser realizadas localmente e assim o poder de processamento se tornou um pouco mais distribuído. Nesse contexto, o modelo cliente-servidor, que ainda hoje é o mais utilizado, tornou-se predominante. O servidor roda um ou mais serviços ou programas que compartilham recursos com os clientes. Já um cliente (que normalmente é uma máquina de usuário) inicia uma comunicação através de uma rede de computadores, solicitando conteúdo ou serviços de um servidor. Há vários exemplos de aplicações que seguem esse paradigma como o e-mail, a Web e as impressoras em rede. Inicialmente nesse modelo o servidor possuía um endereço lógico conhecido, além de se conhecer sua localização física (muitas vezes, no data center da própria empresa). 

Pode-se pensar na computação em nuvem como uma evolução desse modelo no sentido de que o servidor não tem necessariamente uma localização conhecida. Além disso, os serviços prestados pelo servidor são geralmente terceirizados e executados de forma distribuída. Um usuário não é capaz de saber se apenas um servidor é responsável por toda a execução de um processamento ou se há vários envolvidos. Há a possibilidade de coordenação entre vários servidores em diferentes localidades para a “entrega” do serviço solicitado pelo cliente. Por isso, a ideia de nuvem aparece. 

A computação em nuvem se baseia na virtualização de servidores, que nada mais é do que emular um servidor de forma virtual, configurando em um software de virtualização quanto de memória RAM, espaço de armazenamento, processador e sistema operacional aquela máquina vai ter. O interessante é que numa máquina real é possível ter quantas máquinas virtuais forem desejadas, com diferentes configurações que atendam o que for necessário. Basicamente esses servidores virtuais compartilham o mesmo hardware e podem rodar simultaneamente de forma otimizada. Para ajudar na compreensão analisemos um exemplo: imagine um servidor real com um processador Intel i7, 10GB de memória RAM e 1TB de espaço de armazenamento (HD). Nele foi instalado um software de virtualização e com isso foram configuradas 2 máquinas virtuais, sendo que uma roda Windows e tem disponível 8GB de RAM e 500MB de HD, enquanto a outra roda um Linux e tem disponível 4GB de RAM e 800MB de HD. Somando as capacidades das máquinas virtuais notamos que o valor é maior do que o existente na máquina real. Mas isso não é um problema porque os valores configurados são os máximos a serem atingidos no caso da outra máquina virtual estar ociosa ou superdimensionada. Quando uma máquina virtual não for mais necessária, ela pode ser simplesmente apagada da memória da máquina real. 

Há várias vantagens em se usar a computação em nuvem, sendo que dentre as principais estão a alta disponibilidade dos serviços, a alta capacidade de processamento, os custos reduzidos em comparação a uma solução interna e a grande flexibilidade para ampliar ou diminuir a capacidade de processamento ou de armazenamento (o que se conhece como elasticidade). Por outro lado, há desvantagens que devem ser consideradas na hora de se adotar a nuvem como a redução de desempenho, o esforço de portabilidade de aplicações já existentes internamente para a nuvem, o atendimento a regulamentação de países específicos e os riscos de segurança, especialmente em relação ao vazamento de informações e violação à privacidade. 

Hoje existem 3 categorias de serviços de computação em nuvem. O mais conhecido é o SaaS (Software as a Service) em que o provedor de serviços fornece um programa que fica em um servidor remoto e as aplicações são acessíveis por meio de dispositivos do cliente, com uso de interfaces simples, como a Web. O usuário não gerencia ou controla nenhum item da infraestrutura que hospeda o software, sendo somente possível ajustar configurações específicas a nível de usuário. Exemplos desse tipo de serviço são o Google Drive, Dropbox, SurveyMonkey e Typeform. 

Ainda existem as categorias conhecidas como PaaS (Platform as a Service) e IaaS (Infrastructure as a Service) que no geral são mais voltadas para equipes de desenvolvimento de software. Uma das empresas mais conhecida que fornece esses tipos de serviço é a Amazon Web Services (AWS). 

Apesar da computação em nuvem já ser uma realidade e estar sendo comercializada, ainda há muitos desafios a serem superados, os quais são tópicos relevantes de pesquisa na área da Internet e de redes de computadores. Um dos mais relevante concerne às questões de segurança, em como minimizar o vazamento de informações. Isso porque há a possibilidade de explorar vulnerabilidades em relação ao incorreto isolamento entre os servidores virtuais. 

No próximo post continuaremos falando sobre tópicos quentes de pesquisa na área de Internet. Até lá!