A arquitetura Serverless surgiu com o intuito de diminuir ou até acabar com o trabalho repetitivo de implantação de alguma aplicação lançando todo esse trabalho para as fornecedores de computação em nuvem. Com termos como o BaaS (do inglês, Backend as a Service) e o FaaS (do inglês, Function as a Service) sendo adicionados a sopa de letrinhas, o Backend como Serviço e as Funções como Serviço estão atreladas a utilização de uma arquitetura Serverless.
Este novo modelo de implantação e desenvolvimento faz parte da cultura de ter uma arquitetura escalável e que possui disponibilidade de acordo com a utilização da aplicação. Possui pontos de comparação entre outras arquiteturas como a de microserviços e containers e traz um nível de acoplamento aos fornecedores de computação em nuvem.
Quer saber mais sobre arquitetura Serverless, as suas características e pontos de discussão? Continue acompanhando a nossa publicação!
A arquitetura Serverless
A arquitetura Serverless surgiu principalmente da motivação em reduzir o tempo e custo da arquitetura tradicional de implantação e desenvolvimento de software. Com os altos custos para se manter os servidores operando de acordo com a disponibilidade e escalabilidade da aplicação, a computação em nuvem promove a transferência da responsabilidade operacional da empresa para a fornecedora de Cloud, que irá manter e gerenciar a infraestrutura necessária – e o cliente paga conforme o uso.
Com o conceito de arquitetura Serverless ganhando cada vez mais terreno e sendo implantado em mais empresas e aplicações, novas siglas foram surgindo na sopa de letrinhas do mundo da tecnologia da informação e da computação em nuvem. Tanto o BaaS quanto o FaaS estão atrelados a arquitetura Serverless e mesmo consideradas como áreas diferentes, possuem a mesma finalidade de disponibilidade da aplicação.
BaaS – Backend como Serviço
O Backend como Serviço pode ser considerado como uma das primeiras formas de aplicação da arquitetura em nuvem, principalmente em aplicações simples e comumente chamadas de SPA (do inglês, Single Page Application). Faz parte da evolução da aplicação da arquitetura Serverless, principalmente por estas aplicações serem conectadas diretamente a algum banco de dados em nuvem e ser hospedada em algum serviço Cloud. No caso do BaaS não há preocupação com o Backend de fato, apenas é consumido esse serviço a partir do provedor de computação em nuvem.
FaaS – Função como Serviço
A arquitetura Serverless também evoluiu ao ponto de entregar mais esta sigla, a FaaS. Considerado como uma evolução ao BaaS, a Função como Serviço promete abstrair de vez a necessidade do servidor sempre ligado por trás das aplicações. O servidor de computação em nuvem provê toda a interface necessária para as comunicações e requisições HTTP nas suas devidas rotas – e a equipe de desenvolvimento deve se preocupar apenas em codificar a lógica da aplicação.
As funções da aplicação são ativadas através de eventos – e aqui se faz o uso de um termo conhecido como os containers efêmeros. São considerados como efêmeros por serem criados apenas para uma invocação e são totalmente gerenciados por algum agente terceiro, como o provedor de nuvem. Pode-se comparar inclusive com os Microserviços, com um ponto importante: as funções são consideradas ainda menores do que os Microserviços, sendo conhecidas como Nanoserviços.
Para utilizar o FaaS não é necessário uma linguagem de programação específica. Como exemplo no AWS Lambda, as aplicações podem ser escritas nativamente em Javascript, Python, Go, Java, Scala, dentre outras, que o serviço irá ser executado da mesma forma, contando com a escalabilidade e disponibilidade para a gestão da aplicação conforme a sua utilização.
Arquitetura Serverless X Containers
Os containers são muito importante para o impulso que a arquitetura Serverless vem tomando com o tempo, principalmente por incorporar conceitos e a cultura de não mais utilizar as antigas máquinas virtuais e os servidores clássicos – tudo pode estar hospedado localmente ou na nuvem, sem complicações ou complexidade.
A grande diferença entre uma arquitetura Serverless utilizando o FaaS e os Containers é a não preocupação com os processos que rodam a nível de sistema operacional. Mesmo com serviços como o Docker oferecendo capacidades similares de abstração para a tecnologia dos Containers, principalmente quando utilizado em conjunto com o Kubernetes, a arquitetura Serverless e as FaaS permitem um grau ainda mais deste tipo de abstração no desenvolvimento da aplicação.
Numa arquitetura Serverless que utiliza FaaS, a escalabilidade da aplicação é gerenciada de forma automática e transparente, possuindo ainda a capacidade de uma alta granularidade do serviço para a sua melhor performance. As plataformas que utilizam containers necessitam que este provisionamento seja gerenciado de forma manual, mesmo que com ferramentas automatizadas.
No final, o estilo da aplicação e da infraestrutura disponível que irá determinar qual das duas formas de implantação que será a melhor utilizada. A arquitetura Serverless possui um alto nível de abstração de processamento do sistema operacional enquanto que os containers estão evoluindo e desenvolvendo formas de automatização da escalabilidade e da disponibilidade.
Vantagens e pontos de consideração de uma arquitetura Serverless
A arquitetura Serverless traz diversos benefícios para a infraestrutura operacional do negócio e da aplicação, principalmente quando se leva em conta a redução no tempo de configuração e previsão de acessos em comparação com os métodos tradicionais de implantação. Esta redução no custo operacional é um dos principais argumentos que apoiam a adoção deste tipo de arquitetura que é baseado na economia de escala – além de você, outras pessoas estarão utilizando os serviços do provedor de Cloud, o que acaba barateando para todos os usuários.
Tanto a abordagem via BaaS quanto via FaaS também acarretam em benefícios e cada uma com uma característica diferente. No BaaS, o custo com o desenvolvimento acaba sendo reduzido devido a transferência da responsabilidade para um terceiro. Bons exemplos são a autenticação e banco de dados, que deixam de ser implementados diretamente no desenvolvimento da aplicação e passam a ser gerenciados pelos provedores de Cloud. Com o FaaS percebe-se a mesma linha de pensamento, apenas movendo para os custos de escalabilidade e disponibilidade da aplicação.
Um importante ponto de consideração da arquitetura Serverless é também um dos seus benefícios, que é a transferência da responsabilidade operacional para o fornecedor de Cloud. É ótimo para qualquer empresa ver o seu custo com servidores, infraestrutura de aplicação e o desenvolvimento monolítico reduzido a partir da implantação da arquitetura Serverless ou até da utilização de containers.
O grande ponto de discussão é quando estes sistemas falham – mesmo que em casos extremos. Com o avanço da tecnologia, esses cenários serão cada vez mais escassos, o que não deixa de ser importante os acordos e SLAs bem definidos para que sejam garantidos todos os benefícios que a arquitetura Serverless tem a oferecer.
Saiba mais!
Entender o conceito por trás da utilização de uma arquitetura Serverless é essencial para conseguir aplicá-la e se beneficiar das suas vantagens competitivas perante os outros estilos de serviço. Seja via containers, com o BaaS ou com o FaaS, o mundo Serverless veio para ficar e está mudando a forma como as empresas disponibilizam as suas aplicações.
E você, quer saber mais sobre arquitetura Serverless ou outros temas relacionados a inovação e tecnologia da informação? Continue acompanhando as nossas publicações! Comente e compartilhe com os seus amigos!