Posts IaaS, PaaS e SaaS
Post
Cancel

IaaS, PaaS e SaaS

A maioria das pessoas que trabalham com tecnologia da informação já devem ter visto siglas e termos como SaaS, IaaS e On-Premises por aí, e com certeza ficaram com dúvida do que se tratava e tiveram que pesquisar a respeito para entender o que são. Mas se você ainda não sabe ou não pesquisou, não se preocupe, pois, nesse post vou explicar um pouco sobre isso.

Essas siglas e termos estão relacionadas a hospedagem de uma aplicação, que é onde o software irá ser implantado. Qualquer software que seja desenvolvido irá precisar mais cedo ou mais tarde de uma implantação, que basicamente é colocar o software para ser executado em algum ambiente e então poder ser utilizado pelos usuários, um processo chamado coloquialmente de ir para produção.

Para fazer essa implantação precisamos sempre verificar qual a melhor forma de fazê-lo, pois cada software precisa de uma implantação diferente e as opções de hospedagem existentes hoje são bem variadas.

Por isso neste post irei falar um pouco sobre modos de implantação e hospedagem, falando um pouco sobre o modelo tradicional baseado em servidores físicos e/ou locais e indo até as propostas mais atuais baseadas em nuvem.

Para auxiliar nas explicações vou utilizar um case de uma empresa do tipo loja de departamento que quer colocar um sistema para ser utilizado em suas lojas espalhadas pelo país. Visando alcançar esse objetivo, a loja adquiriu um sistema web feito com as tecnologias MySQL para banco de dados, Java para backend e Angular para frontend e agora precisa de uma hospedagem para implantar o software.

Modelo de hospedagem tradicional On-Premises

O modelo de hospedagem tradicional é um modelo onde a empresa acaba ficando responsável por manter toda a infraestrutura de hospedagem do sistema, geralmente cuidando não somente da aplicação em si mas também dos servidores, sistemas operacionais e em muitos casos até mesmo das máquinas físicas, que podem ficar em um ambiente da própria empresa e conectadas em uma intranet para todos utilizarem o sistema, ou podem ser máquinas alugadas na internet, mas que vão ficar sob administração da empresa que contratou o aluguel.

A imagem a seguir mostra como seria o cenário de hospedagem desse sistema.

on-premises

Repare que nesse modelo a empresa seria responsável por administrar as máquinas, instalar o sistema operacional, subir a plataforma Java nas máquinas, instalar dependências, servidores de aplicação, servidores web, banco de dados, configurações de rede e por último a aplicação em si.

Até algum tempo atrás esse era o único modelo disponível para hospedagem de sistemas baseados em web e por isso ele é chamado de tradicional, porém ultimamente ele passou a ser chamado de On-Premises.

Nesse modelo é possível observar também que o pagamento de recursos é feito por toda a infraestrutura de uma forma fixa e limitada, onde se forem necessários mais recursos, deverão ser alugadas e adquiridas novas máquinas e então feita novamente toda a configuração mencionada acima.

Considerando o nosso case a loja de departamentos teria que ter seu próprio datacenter com as máquinas físicas para hospedar o sistema ou então alugar máquinas de um provedor na internet, o que em ambos os casos ainda existe a necessidade de realizar toda a configuração mencionada anteriormente.

A hospedagem On-Premises possui o mais diverso leque de opções como o Hostgator, Locaweb, DreamHost, TIVIT, dentro outros.

IaaS

Com o surgimento da computação em nuvem apareceram novas formas de implantar sistemas que se adequam melhor em alguns cenários, onde surgiu o IaaS - Infrastructure as a Service (infraestrutura como serviço), proporcionando uma forma bem diferenciada de colocar o seu software em produção.

Esse modelo permite tratar toda a infraestrutura como um serviço, onde o utilizador não acessa mais máquinas físicas e sim máquinas virtuais que podem ser criadas sob demanda, e são disponibilizadas totalmente configuradas a nível de rede e sistema operacional, sendo necessário somente instalar e configurar a plataforma, dependências e aplicações.

Atualizando nossa imagem de demonstração podemos ver que a infraestrutura física agora está cinza, o que significa que não atuamos mais sobre ela.

iaas

A maior vantagem desse modelo está na facilidade de escalar seu sistema, onde a partir de máquinas virtuais pré-configuradas é possível subir quantas instâncias forem necessárias para a sua aplicação, podendo remanejar a quantidade de servidores de acordo com o uso.

Pensando no nosso case por exemplo, a loja de departamentos poderia utilizar um número fixo de servidores no dia-a-dia comum e utilizar servidores adicionais em dias de promoção nas lojas, o que poderá ser feito com muita facilidade, algo muito diferente do que ocorre no On-Premises.

Outra vantagem do modelo IaaS está relacionado também ao quanto pagamos para disponibilizar a aplicação em produção, pois nesse modelo pagamos somente pelo que é utilizado, ao contrário do modelo On-Premises que você sempre irá pagar por algo fixo.

Este modelo é atualmente o mais usado quando falamos de implantação de sistemas na internet, pois ele elimina necessidade de administração de servidores em um nível mais baixo e permite às empresas trabalharem em um nível mais alto e automático, sem perder o poder de configuração e personalização do ambiente, já que ainda temos que lidar com a plataforma, banco de dados e etc.

O serviço IaaS mais conhecido e usado atualmente é o Amazon AWS que oferece diversos tipos de infraestrutura para as necessidades dos utilizadores, mas temos outras boas opções também como o Microsoft Azure e o Google Cloud.

PaaS

O modelo PaaS vem de Platform as a Service (plataforma como serviço) e atua em um nível acima do IaaS, permitindo ao utilizador implantar seu sistema sem nenhuma (ou quase nenhuma) preocupação com o ambiente, bastando somente desenvolver o sistema ou comprá-lo e colocar para rodar na plataforma.

Esse modelo é recomendado para aplicações que não possuem muitas dependências de ambiente e conseguem funcionar de forma agnóstica, onde o importante é somente ter a aplicação em produção, sem ficar se preocupando com configurações adicionais. Nesse caso toda a plataforma será provida pelo serviço, como ambiente de execução (ex: JVM, NodeJS, .Net), banco de dados, ferramentas de envio de e-mails, rede, DNS e etc.

Atualizando nossa imagem de exemplo vemos que com esse modelo ficamos responsáveis somente pela aplicação.

paas

Voltando ao nosso case, pensando nos cenários anteriores ainda temos a necessidade de uma equipe minimamente especializada em infraestrutura de T.I. para se implantar o software da loja, porém se for utilizado um PaaS essa necessidade diminui drasticamente, pois boa parte da configuração necessária da plataforma já estará disponível no serviço, sendo necessário somente a implantação da aplicação.

A desvantagem desse modelo está justamente na sua falta de possibilidade de customização a médio e baixo nível, que é algo que muitas aplicações necessitam. Se sua aplicação precisa de uma camada de middleware que necessita estar instalada no servidor que irá executar a aplicação, existe uma grande chance que não seja possível fazer isso com PaaS.

Como exemplos de PaaS temos o famoso Heroku que é um PaaS que usa a infraestrutura da AWS e o Google Cloud Plataform.

BaaS

O BaaS - Backend as a Service (backend como serviço) é um modelo relativamente novo que surgiu da necessidade de algumas aplicações não precisarem ter um backend complexo com muitas validações e processos customizados, visando somente a possibilidade de ações CRUD com validações e processos simplificados, podendo abstrair o backend para um serviço e focar somente no desenvolvimento de um frontend que atenda as necessidades da empresa.

No modelo BaaS o utilizador somente configura no serviço coisas como modelo de dados, validações e processos simplificados de autenticação, dentre outros, e então já possui um backend ativo, escalável e de fácil acesso, bastando somente ter um frontend que utilize esse backend como serviço.

Considerando novamente nossa imagem, podemos ver que agora ficamos responsáveis somente pelo frontend da aplicação.

baas

Este modelo é atualmente muito utilizado por apps de smartphones que precisam de um backend para centralização e compartilhamento de dados, mas não necessitam de muita customização em seus processos, podendo utilizar um BaaS para resolver essa necessidade.

Em nosso case a loja de departamento poderia demandar a criação de um app para a loja usando um BaaS como backend, e então só seria necessário manter o app, sem se preocupar como toda infraestrutura de um servidor/serviço como ocorre ao se utilizar IaaS ou PaaS.

O BaaS mais utilizado no momento é um produto do Google chamado Firebase, que possui um banco de dados NoSQL com opções de armazenamento realtime, opções de login, segurança e funções de automatização, e como alternativa ao serviço do Google temos o Back4App, AWS Amplify e outros.

SaaS

E por último existe o SaaS - Software as a Service (software como serviço) que já provê a aplicação para uso sem precisar instalar, configurar ou gerenciar a hospedagem do software, basta somente acessar e utilizar. O SaaS é indicado quando o utilizador não tem nenhuma pretensão de manter um ambiente técnico para suportar um sistema e quer somente fazer uso de uma ferramenta, podendo assim assinar um serviço e utilizar da forma que preferir.

Analisando agora uma última vez nossa imagem podemos ver que não temos mais nenhuma responsabilidade de suporte a aplicação, não controlamos mais servidores, nem plataforma e nem mesmo a aplicação, e sim somente fazemos uso do que está disponível.

saas

O modelo SaaS como podemos ver é o mais indicado para quem quer somente utilizar uma aplicação que atenda sua necessidade de negócio, sem precisar se preocupar com nenhuma questão técnica, e logicamente assim como os outros modelos as a service o pagamento é feito de acordo com o uso.

A maior desvantagem desse modelo está no caso de restrições que um utilizador pode ter, como segurança de dados, necessidade de armazenamento interno ou integrações customizadas, o que pode ser inviável no modelo SaaS visto que o acesso ao software se dá diretamente pela internet e a customização não é interna, e sim feita pela empresa ofertante.

E para finalizar o nosso case, para reduzir gastos a loja de departamento poderia se desfazer de qualquer infraestrutura e suporte a sua aplicação interna, mesmo que hospedada em um IaaS ou PaaS, e contrataria um SaaS que disponibiliza uma aplicação para gerenciamento de loja, podendo ser acessada pela internet de qualquer uma das lojas.

Os exemplos de SaaS são os mais variados possíveis pois qualquer empresa que ofereça um software que disponibiliza um serviço pode ser considerado um SaaS, então temos exemplos como Github que ofereço um serviço de repositório Git, temos o Trello que oferece um serviço de organização de atividades e quadro Kanban, temos o Spotify que oferece um serviço de música, temos a Netflix que oferece um serviço de filmes e séries, etc.

E é isso pessoal, esses são os modelos mais atuais de implantação e hospedagem de sistemas.

Por hoje é só, até a próxima.

Os exemplos de serviços foram citados observando suas especialidades, porém é preciso dizer que eles não se restringem a somente ao que foi informado no post.

Este post está licenciado sob a CC BY 4.0 pelo autor.