Fundamentos da computação em nuvem

Plataforma como serviço (PaaS)

O modelo de serviço que tira o sistema operacional e o runtime do seu colo, então você envia código e a plataforma o executa, com AWS Elastic Beanstalk, Heroku e Google App Engine como os produtos que o entregam.

Iniciante 15 minutos 4 Objetivos de aprendizado
  1. Definir Plataforma como Serviço (PaaS) segundo o framework do NIST
  2. Identificar quais camadas passam do cliente para o provedor entre IaaS e PaaS
  3. Contrastar a implantação da mesma aplicação via IaaS e via PaaS
  4. Explicar a fronteira entre PaaS e o modelo serverless coberto mais adiante neste curso

E se você nunca quisesse tocar no sistema operacional?

A lição anterior terminou com você dono de uma instância EC2: aplicando patches no sistema operacional dela, instalando um runtime, configurando um firewall. Agora imagine um desenvolvedor sozinho, com uma aplicação web para lançar até sexta-feira e zero interesse em qualquer uma dessas tarefas. Ele não quer escolher uma AMI, dimensionar um load balancer nem ler um changelog de patch. Ele quer entregar código e ver rodando. Plataforma como Serviço é o modelo construído exatamente para essa troca.

A definição do NIST, na prática

O NIST define PaaS como a capacidade de "implantar na infraestrutura de nuvem aplicações criadas ou adquiridas pelo consumidor, criadas usando linguagens de programação, bibliotecas, serviços e ferramentas suportadas pelo provedor". O consumidor não gerencia a infraestrutura subjacente, incluindo rede, servidores, sistemas operacionais ou armazenamento, mas controla a aplicação implantada e, muitas vezes, as configurações do ambiente que a hospeda.

Leia isso ao lado da definição de IaaS da lição anterior e a mudança fica precisa: o sistema operacional, que era seu na IaaS, agora pertence ao provedor. O que resta para você é a própria aplicação e as configurações ao redor de como ela roda.

Quem gerencia o quê, atualizado

CamadaIaaSPaaS
Rede, servidores, virtualizaçãoProvedorProvedor
Sistema operacionalVocêProvedor
Runtime e middlewareVocêProvedor
Código da aplicaçãoVocêVocê
DadosVocêVocê

A mudança inteira está em uma linha: o sistema operacional e o runtime cruzam de "você" para "provedor". Essa é toda a diferença entre os 2 modelos, e ela merece mais atenção do que uma única linha sugere, porque é exatamente a fronteira que um cenário de prova testa.

Produtos reais que entregam PaaS

  • AWS Elastic Beanstalk: empacota instâncias EC2, um load balancer e auto scaling atrás de uma única implantação, ainda construído sobre a IaaS da AWS por baixo, mas você nunca toca nessas peças diretamente
  • Heroku: você roda git push heroku main, e o Heroku detecta a linguagem, instala as dependências e implanta, sem nenhuma configuração de servidor para frameworks padrão
  • Google App Engine e Azure App Service: a mesma troca, você envia o código, a plataforma o executa

Exemplo prático: a mesma aplicação, de 2 jeitos

Implantar uma pequena aplicação web em Ruby pela EC2 significa lançar uma instância, instalar o Ruby e suas dependências, configurar um servidor web, conectar um load balancer e montar um grupo de auto scaling, vários passos separados, cada um seu para acertar e manter com patches em dia. Implantar a mesma aplicação pelo Heroku significa rodar git push heroku main. O Heroku lê o código, reconhece que precisa de um runtime Ruby, faz o build e começa a atender tráfego, tudo a partir desse único comando.

Isso não é uma versão menor do mesmo trabalho. É um trabalho diferente: você parou de gerenciar infraestrutura e passou a gerenciar só a sua aplicação.

O erro comum: PaaS não é "zero decisões de infraestrutura"

É tentador assumir que a PaaS elimina completamente o pensamento sobre infraestrutura. Não elimina. Você ainda escolhe um tamanho de dyno ou instância, ainda define variáveis de ambiente e ainda paga pela capacidade que alocou, esteja ela atendendo tráfego agora ou não: um dyno do Heroku que você provisiona continua rodando, e cobrando, até você mesmo reduzi-lo. Um modelo que só cobra pelo instante em que seu código realmente executa é outra ideia, computação serverless, e este curso cobre isso mais adiante, no tema Arquiteturas Modernas de Nuvem. A PaaS reduz sua tarefa de infraestrutura. Não a apaga.

A fronteira à frente: PaaS contra SaaS

A PaaS ainda pede que você escreva a aplicação. Essa é a linha que a próxima lição apaga por completo.

Onde isso deixa você

A PaaS troca parte do controle que a IaaS te dava por velocidade: você para de gerenciar servidores e passa a enviar código direto para uma plataforma que o executa. A próxima lição cobre o que acontece quando nem o código é mais seu para escrever.