Back To Top

Arquitetura Serverless

A arquitetura Serverless garante disponibilidade e escalabilidade da aplicação, reduzindo o tempo e custo com o desenvolvimento de aplicações

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!

>> Gostou?

Receba notícias sobre tecnologia diretamente no seu e-mail.
Cadastre-se agora mesmo.
Escrito por

Arquiteto de Transformação Digital - Arquiteto de Software, especialista na plataforma Java com 12 anos de experiência em projetos para o mercado financeiro e área da saúde. Evangelista de metodologias ágeis e cultura Devops. Formado em Redes de Computadores pela Universidade de São Caetano do Sul e pós-graduado em Desenvolvimento de Soluções corporativas na plataforma Java pela Faculdade de Informática e Administração Paulista. Certificado como programador Java e desenvolvedor Java Web pela Sun Microsystems. Atualmente líder de tecnologia na área de transformação digital da empresa Deal Technologies.

Enviar Comentário

E-mail
Twitter
LinkedIn
Whatsapp