Volta e meia recebo e-mails de estudantes que estão desenvolvendo seus Trabalhos de Conclusão de Curso (TCCs) e que querem abordar algum tema relativo à Computação em Nuvem. Coletei algumas de suas dúvidas e vou resumi-las aqui. Talvez possam ser úteis.
Antes de mais nada, precisamos lembrar que existem inúmeros tipos de serviços de Computação em Nuvem. À primeira vista, quando se fala no assunto, aparece a propensão de imaginarmos um único modelo, geralmente de infraestrutura. Mas, existe uma diversidade dos serviços de Computação em Nuvem que podem ser melhor exemplificadas quando os dividimos em camadas. Essas camadas mostram como os serviços de TI podem ser ofertados sob o modelo de Computação em Nuvem:
- Nível 1: camada de infraestrutura em nuvem (infrastructure-as-a-service), com oferta de serviços de hospedagem de capacidade computacional e de armazenamento de dados. É a camada mais básica da Computação em Nuvem. Um exemplo típico são as ofertas de serviços em nuvem da Amazon, chamados de EC2 e S3.
- Nível 2: camada de desenvolvimento e de serviços de gerenciamento em nuvem. Um exemplo são as plataformas de desenvolvimento como as oferecidas pelo Google AppEngine e pelo force.com. Muitas vezes, essas camadas usam serviços e softwares da camada anterior.
- Nível 3: camada de aplicações ou Software-as-a-Service como Salesforce.com, Google Docs ou LotusLive da IBM. Muitas das aplicações Web 2.0 mais conhecidas, como Facebook, Flickr e Linkedin, são serviços baseados em nuvem, embora seus usuários não tenham ideia disso. Esta camada é a parte mais visível da Computação em Nuvem e a que mais enfatiza seus benefícios para os usuários.
- Nível 4: camada de processos, que envolvem processos de negócio baseados nas tecnologias ofertadas pelas camadas anteriores. Um exemplo são os serviços de BPO (Business Processing Outsourcing) oferecidos no modelo de Computação em Nuvem. Ainda incipiente, mas que deve no futuro transformar o próprio mercado de BPO.
Abaixo de todas essas camadas podemos imaginar uma camada zero, onde se situam os fornecedores de tecnologias básicas, que são exatamente os servidores, os discos, os equipamentos de rede, os sistemas operacionais. Esses componentes são a base tecnológica das nuvens. Sim, as nuvens precisam de computadores e de data centers.
Virtualização nas nuvens
Uma tecnologia fundamental ao conceito de nuvem é a virtualização. Virtualização é basicamente o uso de software para simular hardware. Quando alugamos os serviços de uma nuvem, na prática não estamos alugando diretamente computadores reais, mas computadores virtuais simulados por software, em cima dos computadores reais da infraestrutura do provedor da nuvem.
A virtualização não é, em absoluto, uma novidade tecnológica. Suas primeiras implementações datam dos mainframes 360/67 da IBM, que apareceram em 1967. Mas, nos últimos anos, com o aumento da capacidade dos processadores, a virtualização, antes restrita aos mainframes, começou a se espalhar por servidores de pequeno porte, aumentando sua utilidade e sua disseminação.
A virtualização nos permite construir múltiplos servidores virtuais em uma única máquina física. Cada uma dessas máquinas virtuais funciona como se fosse uma máquina real, com seu sistema operacional e aplicações. A virtualização possibilita um uso muito mais eficiente do recursos computacionais, pois compartilha e distribui a carga de vários servidores virtuais em um servidor físico.
O termo infraestrutura como serviços começou a aparecer no final de 2006, como uma sofisticação do conceito e da terminologia de Hardware-as-a-Service, proposto pelo jornalista Nicholas Carr. A idéia básica é que o usuário, em vez de adquirir e de instalar servidores e equipamentos de rede em um data center, poderia usar esses recursos a partir de um provedor externo.
Mas, diferentemente dos modelos tradicionais de outsourcing, a Computação em Nuvem não alocaria um determinado recurso ao contratante. A nuvem alocaria de forma dinâmica e automática os seus recursos, para atender aos requisitos de demanda do cliente.
As características básicas do modelo de Infrastruture-as-a-Service (IaaS) são:
- O usuário não precisa obrigatoriamente dispor de hardware e de software nos moldes tradicionais, ou seja, em seu próprio data center. Pode alocar esses recursos em uma nuvem pública. A capacidade de processamento e de armazenamento é obtida remotamente da nuvem. Por outro lado, ele pode adotar o conceito de nuvem em seu data center, aparecendo então o conceito da nuvem privada.
- Em uma nuvem pública, todos os recursos computacionais estão na nuvem do provedor, que os alocará de forma dinâmica e elástica, para atender às demandas de flutuação do negócio.
- O acesso à nuvem é via Internet. Portanto, banda larga é fundamental.
- Os recursos, de uma maneira geral, sendo compartilhados, tendem a ser usados de forma mais eficiente.
- Todo pagamento é pelo volume de utilização. Usou, pagou pelo que foi usado.
- Esse modelo incentiva a criação de ecossistemas que podem gerar aplicações e serviços complementares à oferta IaaS. Um exemplo é o ecossistema criado em cima da nuvem da Amazon, com inúmeras empresas disponibilizando serviços adicionais usando essa nuvem como infraestrutura. O catálogo de aplicações basedas na nuvem da Amazon pode ser visto neste link.
Modelo SaaS: diferenças, benefícios e funcionalidades
Outro serviço em nuvem interessante é o do Sofware-as-a-Service. O modelo SaaS é um modelo que entrega software como um serviço, de forma diferente do modelo tradicional, no qual a empresa adquire uma licença de uso e instala o software nos servidores da empresa.
O modelo SaaS muda as regras do jogo, transformando a maneira de como software é comercializado. Não existe mais a necessidade de contratos de manutenção, pois esta fica cargo do provedor e não mais da empresa. O usuário passa apenas a usar o software, sem se preocupar com as atividades de instalação, de manutenção, de upgrades, etc.
O benefício pode ser visto através de um exemplo bem simples: um editor de texto. No modelo tradicional, o usuário precisa ter uma cópia do software e de sua respectiva licença de uso no seu desktop ou laptop.
O usuário adquire essa licença para uso 24×7, mesmo que não use o software à noite ou nos fins de semana. Além disso, se ele levar trabalho para casa e tiver que usar um outro computador, como seu PC doméstico, terá que obter uma segunda licença. No modelo SaaS, quando o software não está sendo usado, não está sendo pago. E ele, usuário, pode usar o editor em casa ou no escritório, sob a mesma assinatura, pagando apenas pelo seu uso.
O modelo SaaS não surgiu de um dia para o outro, mas é fruto da convergência de diversas tecnologias (networking, ferramentas de programação e capacidade computacional) que vem apresentando custos continuamente decrescentes.
Por outro lado, os softwares vendidos por modelos de licenciamento estão continuamente se tornando mais complexos e custosos para serem adquiridos, implementados e mantidos. E, em cima desse contexto, está um cenário de negócios exigindo cada vez mais rapidez e menores custos das áreas de TI. A combinação de todos esses fatores gerou um pano de fundo que criou um mercado para que o software possa ser entregue como serviços, a custos bem menores que no modelo atual.
Surgiu então o SaaS, cujo conceito começou a circular por volta de 1999, mas apenas nos últimos anos ganhou espaço considerável de mídia. Uma das iniciativas pioneiras foi o Salesforce.com, embora hoje muitos outros softwares já estejam disponíveis sob esse modelo.
Ainda existe uma grande confusão em torno das diferenciações entre SaaS e o anterior modelo ASP ou Application Services Provider. SaaS está relacionada com a funcionalidade da aplicação, entregue via modelo de subscrição. O cliente não precisa ter a “propriedade” do software.
O ASP é diferente. É um modelo de hospedagem da aplicação, no qual o cliente adquire o software e o instala em um provedor remoto. Por exemplo, o cliente adquire a licença de uso de um ERP e o hospeda em um servidor externo.
A diferença com relação ao modelo tradicional é que no ASP, em vez de instalar e operar o aplicativo nos seus servidores, ele fica em servidores externos. Se um dia o cliente não quiser mais usar esse provedor externo, mas rodá-lo internamente, como ele “possui” o software, simplesmente o instala em seus próprios servidores.
No SaaS, ele não “possui” o software e portanto não pode instalá-lo em seus próprios servidores. Adicionalmente, não precisa se preocupar com a tecnologia em que o software vai operar. No ASP, essa preocupação existia, pois ele tinha que adquirir um software para determinado ambiente operacional.
Software-as-a-Service é um modelo disruptivo. Sua proposição de valor é funcionalidade oferecida e não a “propriedade” do produto. A ideia básica é que você, na verdade, não quer uma máquina de lavar roupa, mas quer a roupa lavada. Você não necessita instalar um pacote de CRM ou ERP, mas precisa apenas das suas funcionalidades.
O cliente não adquire licença de uso, mas paga uma taxa mensal baseada no número de funcionários que acessem o serviço. SaaS, por ser um modelo disruptivo, vai afetar toda a estrutura da indústria de software.
As empresas que se sustentarão nesse modelo tenderão a ter nítida vantagem sobre as que se mantiverem rigidamente presas ao modelo de depender de despesas de capital por parte de seus clientes, para a compra de seus produtos. Claro, não será amanhã, mas é um movimento que já se iniciou.







