Conceitos de Computação: IAAS, SAAS, PAAS. Ques bichos são esses?
Tags: iaas, paas, saas, cloudcomputing
Published: 2023-06-06 18:23:57

Quando a gente começa aprender sobre nuvem, nos deparamos com uma série de conceitos que podem parecer super confusos no primeiro momento e muitas das vezes dão um nó nas nossas mentes. E assim, com a cultura de cloud vindo cada vez mais forte, conhecer e entender esses conceitos vem sendo fundamental para planejar da melhor forma o uso das várias ferramentas de nuvem no nosso dia a dia, sejam elas para serviços que utilizamos, como acessamos uma aplicação ou até mesmo quando precisamos criar uma infra inteira do zero.

É bem comum vermos em vários lugares as siglas IAAS, PAAS, SAAS quando a gente fala sobre cloud computing. Esses termos são indispensáveis para entender o grau de controle e personalização que temos sobre a nossa aplicação em um provedor de nuvem. As siglas tem os seguintes sgnificados:
<br>
- IAAS: Infraestrutura como Serviço
- PAAS: Plataforma como Serviço
- SAAS: Software como Serviço

<br>
Junto com esses conceitos de computação temos a matriz de responsabilidade compartilhada, que é basicamente a definição dquem é responsável pelo quê quando estamos lidando com um provedor de nuvem. É por meio dela que a gente entende o que os termos IAAS, PAAS, SAAS realmente são e quais os deveres do usuário e da nuvem na utilização de cada um.
<br>

Obs: Para os exemplos de serviços em cloud, o provedor será a AWS.

---
<br><br>


## **IAAS - INFRAESTRUTURA COMO SERVIÇO**

![Image description](https://dev-to-uploads.s3.amazonaws.com/uploads/articles/f5r2zuno01p3tfihg2p6.png)


No IaaS, o cloud provider provê pra gente os recursos básicos de computação para montarmos nossa infra sob demanda (Você “aluga” um servidor). Nesse modelo a gente basicamente adquiri servidores, armazenamento ou rede em nuvem ao invés de comprar um hardware físico.

<br>

Um bom exemplo de IAAS na AWS é o EC2. Nesse serviços as responsabilidades são separadas da seguinte forma:
<br>
**_RESPONSABILIDADE DA AWS_**

- Manter o hardware físico do serviço (servidores, rede, armazenamento)
- Manter o data center seguro
- Manter a disponibilidade e redundância do serviço (NÃO DA SUA APLICAÇÃO)
- Fornecer o sistema operacional do serviço

<br>
**_RESPONSABILIDADE DO USUÁRIO_**

- Instalar o sitema operacional
- Instalar algum middleware para sua aplicação
- Gerenciar o backup e DR da sua aplicação
- Instalar o sistema operacional do serviço
- Se preocupar com os patches e atualizações do seu S.O
- Gererenciar a configuração de desempenho da sua instância
- Segurança da Aplicação
- Cuidar dos dados gerados pela aplicação
- Fazer a configuração dos containers

<br>
Usar o IaaS no seu dia a dia pode fazer com que você tenha uma gerência maior do serviço que está hospedando a sua aplicação, mas por outro lado as suas responsabilidades tendem a ser maior também, o que pode dar mais trabalho e ter um tempo maior de configuração.


![Image description](https://dev-to-uploads.s3.amazonaws.com/uploads/articles/jkvgvlvni78ykqygfyvn.png)


Para deixar o entendimento mais fácil, vou usar a famosa analogia “Pizza as Service”.

<br>
Nesse cenário é como se a gente comprasse uma pizza congelada na pizzaria e fosse assar em casa. A gente teria que se preocupar com vários detalhes até o momento de consumir a pizza como, ter que pre aquecer o forno, ter objetos que nos ajudem a comer como talheres, copos, mesa, cadeira e também com a bebida que vamos tomar em conjunto. Por mais que tenhamos aqui muitas coisas para fazer a gente tem todo controle sobre como a pizza vai ser preparada.

<br><br>

## **PAAS — PLATAFORMA COMO SERVIÇO**


![Image description](https://dev-to-uploads.s3.amazonaws.com/uploads/articles/4el63gxlqwnc7sqcr08u.png)


Ao contrário do IaaS, o PaaS é um modelo onde a gente não precisa gerenciar nada da infra subjacente. O que a gente faz, é se preocupar com a nossa aplicação, definir os parâmetros dela e usar o serviço escolhido pois todas as tarefas de gerencia são realizadas pelo cloud provider.

<br>
Na AWS um exemplo bem legal é o fargate, que gerencia pra você toda a infra subjacente em containers e você se preocupa com a parametrização da sua aplicação. As responsabilidades são separadas da seguinte forma:

<br>
_**RESPONSABILIDADE DA AWS**_

- Manter o hardware físico do serviço (servidores, rede, armazenamento)
- Manter o data center seguro
- Manter a disponibilidade e redundância do serviço (NÃO DA SUA APLICAÇÃO)
- Fornecer e instalar o sistema operacional do serviço
- Servir como middleware para sua aplicação
- Se preocupar com os patches e atualizações
- Fazer a orquestração dos containers
- Garantir a execução e escalonamento dos containers

<br>
**_RESPONSABILIDADE DO USUÁRIO_**

- Gerenciar o backup e DR da sua aplicação
- Instalar a aplicação
- Cuidar dos dados gerados pela aplicação
- Fazer a configuração dos containers
- Segurança da Aplicação

<br>
Usar o PaaS para as nossas aplicações é pode ser mais benefico em relação ao IaaS (Quando não precisamos ter um controle ou gerencia maior da nossa infraestrutura), pois não precisamos nos preocupar com a infra subjacente, manutenção do servidor, conseguimos escalar de maneira fácil, muitos serviços ou plataformas PaaS possuem segurança integrada como criptografias e afins, e o melhor é que o nosso tempo maior será para desenvolvimento da aplicação.


![Image description](https://dev-to-uploads.s3.amazonaws.com/uploads/articles/46hai25023bb0jnutbv7.png)



No nosso cenário da Pizza as Service, no modelo PaaS seria como se a gente pedisse um delivery. A pizzaria(cloud provider) se preocupa com todo o preparo da pizza como massa, recheio e entrega, você precisa se preocupar somente em se preparar para comer a pizza.
<br><br>



## SAAS — SOFTWARE COMO SERVIÇO


![Image description](https://dev-to-uploads.s3.amazonaws.com/uploads/articles/mjeyj0rveulx5ujc6tbz.png)


O SaaS é um modelo com menos responsabilidades para o usuário e consequentemente com o nivel de abstração mais alto entre os demais modelos citados anteriomente. Aqui, o cloud provider faz a gerencia de toda infraestrutura e plataformas e o usuário só se preocupa em acessar a aplicação pela internet.
<br>
Um bom exemplo de SaaS é a Netflix, onde ao invés da gente correr em uma loja para comprar um filme, a gente simplesmente faz uma assinatura com nossos dados e usa esse serviço sem nos preocupar com nada a respeito dele no quesito de infraestrutura, desenvolvimento da aplicação, disponibilidade, etc, a gente só quer acesso ao conteudo da aplicação.
<br>
Usando o cenário da Netflix, as responsabilidades ficariam assim:
<br>
**_RESPONSABILIDADE DA NETFLIX_**

- Manter toda a infraestrutura
- Desenvolver a aplicação
- Manter a disponibilidade e redundância do serviço
- Se preocupar com a segurança de todo o serviço/aplicação
- Se preocupar com a disponibilidade e escalabilidade

<br>
**_RESPONSABILIDADE DO USUÁRIO_**

- Usar boas práticas para segurança da conta, como senhas fortes
- Estar de acordo com os termos e conformidades da aplicação
- Tomar cuidado com a visualização dos dados pessoais na aplicação

![Image description](https://dev-to-uploads.s3.amazonaws.com/uploads/articles/fold5tn3491mkz1y0una.png)



Pra fechar a analogia do Pizza as Service, no modelo PaaS esse cenário se aplica quando vamos a pizzaria e comemos nossa pizza lá mesmo. Aqui a gente não se preocupa com nada, somente em chegar e consumir o alimento enquanto a pizzaria fornece tudo para gente.
<br><br>
## **CONSIDERAÇÕES**
As ideias, conceitos, modelos, analogias que falamos nesse blogpost são bem importantes e servem de exemplos para nos mostrar como o gerenciamento e a responsabilidade compartilhada entre indivíduos/usuários e a nuvem/provedores de serviços operam em conjunto.
<br>
E no final de tudo podemos dizer que cloud computing e seus modelos de serviço são super parecidos com uma pizzaria, pois sempre tem uma escolha que funciona para gente em uma determinada ocasião, seja ela assar pedir a pizza em um app de delivery ou ir atá pizzaria e comer por lá.