O que é Computação em Nuvem ou Cloud Computing e quais os principais tipos?

folder_openSem Categoria

Update 2020: atualizado para novas tecnologias, incluído FaaS, DaaS, DBaaS, NaaS, CaaS, melhorado legibilidade e exemplos

Computação em Nuvem é o termo aplicado para um conjunto de recursos computacionais, normalmente armazenados em um Datacenter, disponível sob demanda.

“Computação em Nuvem” é uma tradução do original em inglês “cloud computing“, o termo se tornou popular no final de 2006, depois que Eric Schmidt (então CEO do Google) usou o termo para se referenciar aos serviços disponíveis via Internet (SaaS) e pouco tempo depois foi anunciado a plataforma de Elastic Cloud Computing da Amazon, embora o conceito e a comparação da Internet com uma nuvem tivesse ocorrido bem antes.

Cloud Computing passou a ser utilizado para designar tecnologia contratada sob serviço (normalmente pagando-se uma mensalidade), embora muitas das tecnologias já estavam disponíveis a décadas e os serviços já eram oferecidos a vários anos.

A parte que diferencia a prestação do serviço de Computação em Nuvem dos demais serviços é a elasticidade da demanda, podendo aumentar ou diminuir o poder computacional, de armazenamento e transferência sob demanda, em questão de minutos ou segundos, sem precisar de alterações em contratos, aquisições de novos equipamentos ou provisionamento que demoraria horas ou dias.

Existem várias formas da prestação do serviço e duas formas de classificar o mesmo.

Classificação dependendo onde são hospedados

A computação em nuvem pode ser nomeado dependendo onde estão alocados os recursos, existem três tipos distintos:

1. Public Cloud (Nuvem Pública)

Chamamos de Nuvem Pública quando os recursos são compartilhados entre os clientes e o serviço de computação é prestado por uma empresa terceira (diferente de On Premise, onde os serviços e equipamentos são da própria empresa contratante).

Nesse formato, a aplicação ou serviço é hospedado em um fornecedor que atende diversos clientes simultaneamente, pela Internet, por links dedicados ou mesmo isolando por VPN, e existe uma camada de software (que pode ser o hypervisor quando for IaaS) que isola os dados entre os clientes, para que um não enxergue os dados dos demais.

Existem várias vantagens:

  • Rápido Provisionamento – normalmente é possível criar novas máquinas virtuais, novas contas e utilizar recursos em poucos minutos
  • Custo sob demanda – é possível iniciar uma aplicação nova com poucos recursos e ir aumentando com o tempo, em alguns casos, é possível adequar a computação contratada com a demanda, atendendo a picos de uso em determinados horários e dias
  • Custos reduzidos frente à Nuvem Privada, principalmente quando comparamos com ambientes profissionais e certificados, os fornecedores de Computação em Nuvem normalmente possuem certificações de Segurança física e da Informação, políticas ambientais e alguns até tem metas de redução de emissão de carbono

A principal preocupação é com o sigilo dos dados, ainda mais com diversas notícias de vazamento de dados que surgem na mídia, por isso é importante ter uma boa equipe, certificada e treinada nas tecnologias e escolher entre os principais fornecedores do mercado.

Algumas empresas e principalmente órgãos governamentais podem ter obrigações legais que podem impedir o uso de nuvem pública.

Mesmo onde existem restrições, é comum ser utilizada pelas empresas para aplicações secundárias para o negócio, como e-mail, hospedagem de sites, vídeos e material de marketing, mas também tem sido fortemente adotada devido a alguns aplicativos líderes de mercado só estarem disponíveis nessa forma de comercialização, como o Salesforce, Slack, Google Docs, entre outros.

Existem muitos fornecedores, os principais e mais famosos são os que fornecem IaaS (Google Cloud, Amazon AWS e Microsoft Azure), mas qualquer software que é servido pela Internet é considerado como Nuvem Pública, e aí o céu é o limite, alguns exemplos: SalesForce, Strava, Gmail, Facebook, Conta Azul.

2. Private Cloud (Nuvem Privada)

Quando a aplicação ou máquina virtual é hospedada dentro da empresa, em uma infraestrutura que a empresa comprou ou alugou para uso próprio exclusivo.

Embora tenha maiores custos iniciais para aquisição e instalação, normalmente é a preferida para armazenar dados estratégicos e que precisem de tempo de resposta rápido, pois os servidores estão dentro da empresa, garantindo uma baixa latência de rede e garantindo maior segurança, pois ninguém fora do perímetro da empresa terá acesso sem passar pelo firewall da empresa.

Normalmente é caracterizada pela virtualização de servidores, mas uma Nuvem Privada só pode ser considerada assim se tiver uma camada extra, que permita o self-service de aplicações sob demanda, como por exemplo, a equipe de Marketing instalar um “virtual appliance” de mercado que faz análise de redes sociais.

3. Hybrid Cloud (Nuvem Híbrida)

É considerado Hybrid Cloud quando a empresa faz uso de ambos os locais de armazenamento: remoto em uma Nuvem Pública e local em uma Nuvem Privada e utiliza uma camada de software que permita transferir cargas de trabalho entre ambas.

Seria o modelo ideal, onde a empresa tem uma quantidade de recursos computacionais locais para dar conta do dia a dia e quando precisar executar tarefas mais intensivas, pode alocar recursos extras de um fornecedor sob demanda.

O principal desafio para adoção da Nuvem Híbrida são os custos de conexão e transferência dos dados.

Algumas empresas podem ter restrições com a segurança das informações, já que normalmente uma Nuvem Privada executa softwares com informações críticas e confidenciais, seriam necessário vários controles para transferir esses dados para terceiros, mesmo que por um curto espaço de tempo.

Classificação pelo tipo de gestão e serviço oferecido:

Existem basicamente três modelos de negócio e tecnologias, embora alguns fornecedores possam listar mais modelos, são variações dos principais modelos: SaaS, PaaS e IaaS. Para fins didáticos, vamos abordar todas as camadas consideradas no mercado.

Esses modelos de negócio diferenciam entre si de acordo com a responsabilidade do fornecedor, como demonstrado no gráfico abaixo, no modelo mais completo (SaaS) o fornecedor é responsável por tudo do software, até as camadas mais abaixo onde o fornecedor fica responsável por menos camadas, cabendo ao cliente contratante mais responsabilidades.

Tipos de computação em nuvem: SaaS, FaaS, PaaS, CaaS, IaaS, Co-Location.
Tipos de Serviços em Computação em Nuvem

1. Software as a Service (SaaS)

É considerado SaaS quando uma aplicação é vendida sob a forma de serviços.

Diferente da venda de aplicativos como licença de software, que permite o uso do software por tempo ilimitado a partir da aquisição da licença por um único pagamento.

A venda como serviço normalmente é feita como um pagamento mensal para que o serviço fique disponível sob responsabilidade do fornecedor, que providencia infraestrutura de servidores e conexões necessários para a prestação do serviço, além de serviços como monitoramento, backup, atualizações, segurança, etc.

Normalmente é vista com bons olhos pelos fornecedores e clientes: os fornecedores porque garantem uma renda fixa mensal independente de novas vendas e os clientes porque pagam apenas pela utilização, normalmente medida em quantidade de usuários ou recursos computacionais alocados para ele, dividindo os custos de uma estrutura maior entre múltiplos clientes que se beneficiam da escala.

Outra característica que agrada os clientes, é que o fornecedor fica responsável pela evolução da ferramenta, as atualizações são aplicadas automaticamente e ficam disponíveis para todos os clientes.

O principal exemplo de fornecedor de software é a Salesforce, líder mundial em sistema CRM, mas existem diversos serviços mais populares que podem ser classificados como SaaS, como Google Docs, GMail, Office365, Strava, Conta Azul, Workday, MailChimp, Slack, e mesmo sites populares como Facebook, LinkedIn e Dropbox.

A principal objeção é que o cliente tem pouquíssimo controle, não controla quando irão ocorrer manutenções, nem periodicidade do backup (a não ser em casos onde o contrato prevê) e depende das APIs do software para integração com outros softwares e acesso aos dados.

2. Function as a Service (FaaS)

Numa modalidade que permite alta escalabilidade, FaaS permite a execução de um pedaço pequeno de código sob demanda, a fim de atingir alta escalabilidade sob demanda.

Normalmente requer um desenvolvimento específico, mas traz vários benefícios em termos de custos.

Um exemplo prático, um App que faça reservas de mesas em restaurantes pode ter horários e dias específicos de picos de uso, como a hora do almoço, jantar e dias festivos. Em outros horários e dias, a carga é pequena.

Esse App poderia se beneficiar se a parte de servidores escalonasse dinamicamente e é justamente o que pode ser feito usando FaaS, algumas pequenas funções, responsáveis pela consulta e reserva podem estar disponíveis como FaaS.

O provedor de Computação em Nuvem fica responsável por escalonar e executar a função em quantos servidores forem necessários (até algum limite de custo estabelecido), dando escala quando necessário e reduzindo os custos nos demais horários.

Mas, se pararmos para pensar em termos de tecnologia, FaaS não deixa de ser um tipo de SaaS, pois oferece a execução em uma determinada linguagem (como Python, Java, PHP ou Node.js) sendo servida por um tipo específico de conexão.

Exemplo de serviços são o Amazon Lambda, o Azure Functions e o Google Cloud Functions.

3. Containers as a Service (CaaS)

Desde a popularização das soluções como o Docker e Kubernetes, alguns provedores de computação em nuvem passaram a oferecer serviços de Containers.

Nessa modalidade, o fornecedor fica responsável por oferecer uma aplicação específica, por exemplo, um serviço banco de dados, ou uma plataforma de Inteligência Artificial.

O fornecedor de computação em nuvem também é responsável por tudo o que está abaixo do Container, como infraestrutura, performance, backup, redundâncias e conectividade.

Novamente, do ponto de vista da tecnologia, não deixa de ser um SaaS, pois está sendo entregue um tipo específico de software (banco de dados, inteligência artificial, cache).

São exemplo de serviço de CaaS: Azure Kubernetes Service, Google Kubernetes Engine, Amazon Elastic Kubernets Services.

4. Plataform as a Service (PaaS)

PaaS é o termo indicado quando o fornecedor entrega uma plataforma de desenvolvimento de software e hospedagem de aplicativos, que pode ser usada em diferentes ambientes, ou mesmo em um único fornecedor.

Para utilizar PaaS, um software deve ser desenvolvido utilizando as bibliotecas e funções de uma determinada plataforma.

Isso normalmente permite escalabilidade do software, com recursos como rodar em múltiplos servidores em grid, alta disponibilidade e resiliência a falhas.

Essas plataformas normalmente também resolvem problemas de autenticação, segurança, acesso a banco de dados, interfaces, APIs, entre outras funcionalidades.

Alguns exemplos de fornecedores de PaaS são Spring.io (parte do Pivotal), Pivotal Cloud Foundry, Amazon Elastic Beanstalk, Azure WebApps, Google App Engine, Heroku, entre outros.

A principal vantagem é não ter que combinar diversos componentes para conseguir as funcionalidades que deseja no software.

A desvantagem de utilizar uma plataforma é ficar preso no fornecedor, dependendo do mesmo para correções e evoluções, correndo o risco do desenvolvimento da plataforma tomar rumos diferentes dos almejados pelo negócio.

5. Infrastructure as a Service (IaaS)

IaaS é o termo aplicado quando o fornecedor entrega recursos computacionais de infraestrutura, como servidores, espaço de armazenamento e capacidade de rede, sob uma taxa mensal de utilização.

O modelo mais básico seria o aluguel de um servidor físico em um datacenter, onde o cliente não precisa se preocupar com garantia e disponibilidade do servidor, contratação de links e disponibilidade de energia elétrica, tudo fica a cargo do fornecedor de Datacenter.

Hoje em dia e principalmente para obter baixos custos com alta redundância, é vendido como virtualização de servidores sobre um hypervisor e os clientes não tem que se preocupar com a camada de drivers.

Para os clientes basta contratar uma máquina virtual, indicar o sistema operacional desejado e receberá o mesmo instalado, com toda a parte de rede, como IP e roteamento configurados e utilizando recursos compartilhados com outros clientes.

Os fornecedores de IaaS adquirem servidores cada vez maiores, com dezenas de processadores e centenas de Gb de memória, capazes de atender dezenas a centenas de clientes em paralelo de forma eficiente em termos de consumo energético e de espaço físico.

Quando se utiliza virtualização de servidores dentro da empresa, utilizando algum software de gerência avançado com o vCloud Suite, também pode ser considerado como IaaS, onde a equipe de Infraestrutura de TI fornece recursos para a equipe de Aplicativos, Desenvolvimento e Sistemas de TI como serviços.

Em empresas maiores, utilizando os softwares adequados, é possível até contabilizar os departamentos por uso, dividindo os custos da TI proporcionalmente ao uso.

São exemplos de IaaS em Nuvem Pública o Amazon EC2, Azure Virtual Machines e Google Computing Engine.

6. On Premise normalmente não é computação em Nuvem

Quando não se quer utilizar Computação em Nuvem, as empresas tem como opção adquirir servidores e instalar localmente, tendo equipe ou fornecedores contratados para tratar de todos os detalhes técnicos.

Mesmo quando se utiliza Virtualização, dizemos que é On Premise quando não existe uma camada de Self-Service para os usuários.

Normalmente em On Premise algumas ofertas de software mais recentes não estão disponíveis, por exemplo, não é possível contratar o SalesForce e diversas outras ofertas de software (SaaS) On Premise.

Uma empresa que tenha seus sistemas já instalados e integrados, normalmente com apenas uma localidade para seus funcionários, pode optar por utilizar esse modelo.

7. Co-Location também não é Computação em Nuvem

Quando a empresa tem vários escritórios regionais e equipe remota, que precisa acessar os sistemas, mas ainda quer ter controles sobre versões de software e acessos, pode optar por Co-Location.

No Co-Location, a empresa aluga um espaço físico do Datacenter, com energia elétrica e conectividade e instala nele seus servidores físicos.

Ainda em Co-Location, a empresa pode alugar os servidores do Datacenter ou de um terceiro.

Normalmente falamos que esse tipo de contrato não é computação em nuvem, pois não existe elasticidade na prestação dos serviços, ou seja, não é possível alocar novos recursos rapidamente e sob demanda como na computação em nuvem.

Se por um lado a empresa tem a garantia de ter os recursos computacionais dedicados para si, não pode escalonar a capacidade para além dos equipamentos existentes sem alterações de contratos e aquisição de novos equipamentos, o que pode demorar vários dias ao contrário de minutos como seria em Computação em Nuvem.

A principal vantagem desse serviço para a empresa é utilizar a estrutura do Datacenter, que normalmente conta com Segurança Física, redundância de Energia Elétrica e redundância de Conectividade.

Ainda para a empresa, tem a vantagem de maior controle sobre os recursos computacionais, acessos e serviços.

Por outro lado, a empresa fica com as responsabilidades, como aplicação de patches, políticas de segurança, backup, redundâncias e gestão geral do ambiente.

Outros tipos de serviço

O mercado oferece outros tipos de serviços, derivados dos listados acima, classificando como Computação em Nuvem e outros que tentam se passar como Computação em Nuvem, seguem alguns deles:

Database as a Service (DBaaS)

Ao oferecer Bancos de Dados como serviço, o fornecedor fica responsável por licenciamento, atualizações, segurança, backup, replicação, performance e disponibilidade.

O cliente normalmente especifica a capacidade de dados necessária e o nível de redundância que precisa (resiliência geográfica por exemplo), podendo focar em outras áreas do negócio enquanto o fornecedor é responsável pela gestão do banco de dados.

Assim como outros modelos, DBaaS não deixa de ser uma oferta de SaaS, onde é fornecido acesso a um software de banco de dados ao invés de uma aplicação de negócio.

São exemplos de DBaaS: Amazon DynamoDB, Amazon Aurora, Amazon DocumentDB, Google Firebase, Google Cloud BigTable, Azure SQL Database, MongoDB Cloud Atlas, Oracle Cloud Database Services, entre outros.

Print as a Service (PaaS) não é Cloud Computing

Aproveitando a onda de siglas “As A Service”, alguns fornecedores de impressão cunharam o termo PaaS para equiparar os serviços.

Nesse modelo de negócio o fornecedor adquire as impressoras, instala as mesmas dentro do cliente e fica responsável pela reposição de toners e cartuchos, manutenção preventiva dos equipamentos, substituição de equipamentos defeituosos e mão de obra para todo esse serviço.

É similar aos serviços de Computação em Nuvem, pois o fornecedor pode ajustar os equipamentos conforme demanda de impressão, adicionar mais impressoras sob demanda e fornecer relatórios detalhados de utilização por usuário ou área de negócios.

Como o serviço ocorre nas dependências do cliente, poderia ser chamado de Nuvem Privada.

Mas não chamamos esse tipo de serviço de Computação em Nuvem pois os fornecedores não tem interfaces Self Service, normalmente a alocação de mais equipamentos requer alterações contratuais e não existe agilidade para colocar um equipamento mais rápido em determinados horários de maior demanda e substituir por um equipamento mais barato nos horários de menor demanda (como pode acontecer no IaaS).

Os serviços de PaaS funcionam como os serviços de Segurança Patrimonial, Portaria, Jardinagem e Limpeza, onde existem empresas especializadas que treinam os funcionários para essas funções e alocam dentro dos clientes, fornecendo as ferramentas e insumos para a prestação dos serviços.

Essa modalidade de serviço normalmente é boa para o cliente, que contrata os serviços de impressão sem precisar despender altos recursos de aquisição dos equipamentos e para o fornecedor que garante uma receita mensal pelos serviços prestados.

A contrapartida é que o cliente nunca sabe com certeza quanto vai pagar na próxima fatura, pois normalmente o contrato é atrelado a quantidade de páginas impressas, que pode variar conforme demanda das unidades de negócio.

Para não dizer que não existe Print as a Service em Computação em Nuvem, existem alguns serviços onde enviamos arquivos e os mesmos são impressos remotamente (nas dependências do fornecedor), depois enviados por Correios ou transportadoras.

Mas isso só funciona para serviços especializados, como impressão de fotos (que requer equipamentos bem específicos para alta qualidade) ou impressão de panfletos e cartazes (novamente, que precisam de equipamentos bem especializados), diferente do serviço de impressão do dia a dia onde é importante a velocidade em que as impressões são entregues aos usuários.

Novamente, não deixa de ser um serviço que já era prestado anteriormente (gráficas) e só evoluiu para usar a Internet.

Network as a Service (NaaS) não é Cloud Computing

Similar ao Print as a Service, algumas empresas passaram a utilizar o termo “As A Service” para serviços de rede.

Nesse modelo os fornecedores entram com equipamentos de redes (Switches e Roteadores) e a prestação de serviços de configuração e gerenciamento dos mesmos, em troca de pagamento mensal.

Pode ser interessante para o cliente por utilizar OPEX ao invés de CAPEX, mas é um serviço que não tem insumos como na impressão e passaria a fazer sentido apenas se a empresa contratante precisasse de muitas alterações de rede no decorrer do tempo, para utilizar serviços especializados da empresa contratada.

Igual o Print As A Service, não tem como contratar a velocidade e capacidade de redes sob demanda, com um equipamento maior nos horários de pico e um equipamento mais barato nos horários mais tranquilos, por isso não consideramos NaaS como Computação em Nuvem.

A única área onde o NaaS fica similar a Computação em Nuvem é quando falamos em Bandwidth on Demand (BOD), quando o provedor de Internet (ISP) pode ajustar a largura de banda de acordo com a demanda.

Mesmo nesse modelo, o ISP precisa instalar cabos e equipamentos capazes de sustentar as maiores velocidades possíveis para depois entregar sob demanda.

Mesmo um grande ISP só é capaz de fornecer uma quantidade limitada de banda Internet para os clientes e normalmente os clientes corporativos irão precisar dessa maior capacidade no mesmo intervalo de tempo (horário comercial), reduzindo a chance do ISP atender a múltiplos clientes sob demanda.

Por isso evitamos chamar os serviços de NaaS de Computação em Nuvem.

Desktop As a Service (DaaS) é Computação em Nuvem

Uma oferta que ficou viável mais recentemente é a de Desktop As a Service, que significa entregar soluções em um Desktop rodando em ambiente virtual, gerenciado e sob demanda.

Com datacenters nas mais diversas localidades, os principais fornecedores de Computação em Nuvem podem entregar experiências de Desktops com baixa latência, alta performance e segurança.

Utilizando tecnologia de VDI, é possível acessar um Desktop hospedado na nuvem, que possui todos os controles que a empresa precisa em termos de segurança, e fornece flexibilidade para os usuários acessar de qualquer lugar e dispositivo.

É possível contratar desktops Windows, Linux e até MacOS, a empresa pode personalizar os aplicativos ofertados, instalar sistemas personalizados e sempre entregar as correções de segurança e antivírus atualizado, como em um ambiente de VDI, mas só paga pelo uso efetivo desses Desktops.

DaaS não deixa de ser uma oferta de IaaS, pois o fornecedor de nuvem entra com equipamentos físicos, software e serviços de gerenciamento mais básicos, enquanto a empresa fica responsável por personalizar a experiência e entrega de aplicativos.

São exemplos desse tipo de solução o Amazon WorkSpaces e o Azure Windows Virtual Desktop.

Web Hosting & E-mail Hosting

A hospedagem de sites e de e-mails por provedores pode ser considerada como um tipo de Computação em Nuvem, mas muitos especialistas irão divergir devido a vários tipos de ofertas no mercado.

Nesse serviço, o fornecedor fica responsável pela infraestrutura de servidores, redes, segurança, backup e tudo mais, como na Computação em Nuvem.

Na verdade, olhando bem de perto, Web Hosting hoje em dia é muito similar a ter FaaS + DBaaS, pois muitos sites rodam sobre uma linguagem de programação (PHP por exemplo) e precisam de um banco de dados (MySQL por exemplo) para gerenciar o conteúdo dinâmico.

Web Hosting difere dos FaaS na escalabilidade, pois muitos serviços de Web Hosting oferecem apenas um servidor compartilhado entre centenas a milhares de clientes, quando esse servidor atinge o limite, um novo servidor é alocado para mais algumas centenas ou milhares de clientes.

Alguns fornecedores de Web Hosting podem ir além, oferecendo um serviço diferenciado, com múltiplos servidores para os clientes, permitindo escalabilidade e redundância.

Existem também serviços de CDN (Content Delivery Network), onde uma página pode ser replicada entre várias regiões e países, para atender aos usuários de uma localidade mais próxima, oferecendo redundância aos links internacionais e melhor performance.

Assim, Web Hosting fica em uma zona cinzenta entre ser ou não ser Computação em Nuvem, por um lado existem serviços muito simples sem redundância e escalabilidade, por outro lado existem serviços bem completos com banco de dados, redundância global e escalabilidade com vários servidores.

O mesmo acontece para E-mail Hosting, é comum vermos especialistas se referenciando ao Gmail e ao Outlook Online do Office 365 como Computação em Nuvem, mas dizendo que um pequeno provedor não tem esse serviço por falta das redundâncias e presença global.

Conclusão

Diversas ferramentas surgiram para tornar mais fácil a administração desses ambientes, entre elas podemos destacar o VMware vCloud Suite, que permite mover cargas de trabalho (normalmente máquinas virtuais) entre nuvens públicas e privada sob demanda e de forma automatizada, através de políticas pré-estabelecidas.

São funcionalidades normalmente encontradas em computação em nuvem: escalonar recursos computacionais sob demanda (aumentar ou diminuir a carga) e fácil administração.

Computação em nuvem é uma forte tendência nas empresas, pois permite que usuários finais com pouco conhecimento possam utilizar os recursos computacionais sob demanda, sem necessidade de um especialista tomando conta de todos os recursos necessários e que pequenas demandas possam pagar apenas uma fração da infraestrutura mínima para execução de um aplicativo.

Tags: ,

Related Posts

Menu