A função como serviço (FaaS) é uma forma moderna de executar pequenos trechos modulares de código em um ambiente sem servidor (serverless). Nesse modelo, os desenvolvedores podem criar funções específicas que são executadas automaticamente sempre que um determinado evento acontece.
Por exemplo, uma função pode ser executada quando um usuário clica em um botão em um aplicativo web, envia um formulário ou realiza uma requisição a uma API. Dessa forma, o código é ativado apenas quando necessário.
- Leia também: Segurança de DNS: o que é, como funciona e como proteger sua infraestrutura
- Leia também: O que é DNS e como funciona? entenda a base da internet
- Leia também: Benefícios da CDN: confiabilidade, redundância e proteção contra falhas
Além disso, a FaaS permite que os desenvolvedores escrevam, atualizem e implantem pequenas partes do código rapidamente, sem precisar gerenciar servidores ou infraestrutura complexa. Como resultado, isso facilita o dimensionamento automático das aplicações e torna o uso de microsserviços mais simples e econômicos.
O que são microsserviços?
Para entender melhor os microsserviços, imagine um aplicativo web como uma obra de arte visual.
Nesse caso, utilizar uma arquitetura de microsserviços seria semelhante a construir essa obra a partir de pequenos mosaicos. Assim, cada peça pode ser adicionada, substituída ou corrigida individualmente, sem a necessidade de alterar toda a estrutura.

Por outro lado, uma arquitetura monolítica seria como pintar toda a obra em uma única tela. Nesse modelo, todos os componentes estão conectados em um único sistema grande e interdependente.
Portanto, a arquitetura de microsserviços consiste em dividir um aplicativo em vários componentes independentes e modulares, cada um responsável por uma função específica. Essa abordagem é muito atraente para os desenvolvedores porque permite criar, modificar e implantar pequenas partes do sistema de forma isolada.
Em contraste, em sistemas monolíticos tradicionais, até mesmo pequenas alterações podem exigir um processo complexo de implantação, já que todo o sistema está interligado.
Nesse contexto, a FaaS ajuda a reduzir essa complexidade, pois permite que cada função seja executada de maneira independente dentro de uma arquitetura serverless.
Além disso, ao utilizar código sem servidor com FaaS, os desenvolvedores podem se concentrar mais na lógica do aplicativo, enquanto o provedor de nuvem cuida da infraestrutura, da alocação de servidores e dos serviços de back-end.
Quais são as vantagens de usar FaaS?
Melhoria na velocidade de desenvolvimento
Primeiramente, uma das principais vantagens da FaaS é a agilidade no desenvolvimento. Como os desenvolvedores não precisam gerenciar servidores ou infraestrutura, eles podem dedicar mais tempo à criação da lógica e das funcionalidades do aplicativo.
Consequentemente, o ciclo de desenvolvimento tende a ser mais rápido e eficiente, permitindo lançar novas funcionalidades em menos tempo.
Escalabilidade automática
Outra grande vantagem é a escalabilidade embutida. Como as funções FaaS são executadas sob demanda, o sistema pode aumentar ou diminuir automaticamente a capacidade de execução conforme o volume de requisições.
Assim, os desenvolvedores não precisam se preocupar em preparar a infraestrutura para lidar com picos de tráfego ou grande volume de usuários. O próprio provedor de serviços sem servidor gerencia essa escalabilidade de forma automática.
Eficiência de custos
Além disso, o modelo FaaS costuma ser mais econômico em comparação com infraestruturas tradicionais de nuvem.
Isso acontece porque, diferentemente de servidores convencionais, não é necessário pagar por tempo de computação ocioso. Em vez disso, o usuário paga apenas pelo tempo efetivo em que o código está sendo executado.
Dessa forma, as empresas evitam gastos desnecessários com recursos que não estão sendo utilizados.
Quais são os inconvenientes da FaaS?
Menor controle sobre o sistema
Apesar das vantagens, a FaaS também possui algumas limitações. Como parte da infraestrutura é gerenciada por um provedor externo, os desenvolvedores acabam tendo menos controle direto sobre o ambiente de execução.
Além disso, isso pode tornar a análise e a depuração de problemas mais complexas, já que nem todos os componentes do sistema estão sob controle direto da equipe de desenvolvimento.
Maior complexidade para testes
Outro desafio está relacionado aos testes da aplicação. Em muitos casos, pode ser difícil reproduzir localmente um ambiente completo de execução de funções serverless.
Consequentemente, isso pode tornar o processo de testes mais trabalhoso, especialmente em aplicações maiores que dependem de múltiplas funções FaaS interconectadas.

Como começar a usar FaaS
Para começar a utilizar Função como Serviço, os desenvolvedores precisam primeiro escolher um provedor de computação sem servidor que ofereça suporte a esse modelo.
A partir disso, é possível implementar funções que serão executadas automaticamente sempre que um evento ocorrer na aplicação.
No entanto, como o código pode ser executado em servidores distribuídos na borda da rede, é importante considerar a disponibilidade e a distribuição geográfica desses servidores.
Por exemplo, imagine um usuário na Itália acessando um site cuja função FaaS é executada em um data center sobrecarregado no Brasil. Nesse cenário, pode ocorrer um atraso significativo no carregamento da aplicação, o que pode resultar em maiores taxas de rejeição do site.
Por esse motivo, muitas empresas optam por soluções que possuem infraestrutura global distribuída.
Um exemplo é o Cloudflare Workers, uma plataforma FaaS que utiliza a rede global da Cloudflare, composta por data centers espalhados por mais de 330 cidades ao redor do mundo. Isso permite que as funções sejam executadas mais próximas do usuário final, reduzindo a latência e melhorando o desempenho das aplicações.