FaaS: Um novo conceito de arquitetura sem servidor

FaaS: Um novo conceito de arquitetura sem servidor

Function as a Service (FaaS) é uma das atualizações mais importantes dos serviços em nuvem, permitindo que desenvolvedores criem e executem aplicativos e recursos sem a necessidade de construírem ou manterem uma infraestrutura complexa.

O conceito faz parte da arquitetura serverless e torna muito mais fácil o processo de adoção da nuvem. Não é necessário provisionar ou gerenciar servidores porque é o fornecedor de nuvem que cuida de tudo isso. Há uma preferência por arquiteturas  criadas sobre orquestração, com cada componente desempenhando um papel mais consciente, uma ideia muito comum na abordagem dos microsserviços.

Naturalmente, muitas empresas estão atentas às vantagens da tecnologia cloud computing como o desenvolvimento ágil, custos operacionais reduzidos e economia em escala. O modelo FaaS vai além: é praticamente dispensável a gestão de servidores individuais, o número de profissionais necessários é menor e as melhorias na gestão do tempo são evidentes.

Além disso, uma arquitetura serverless acaba oferecendo muitas oportunidades de escalabilidade – de forma automática e independente -, conformidade com os tamanhos mínimos de unidades e lógica modular, incluindo o não pagamento por recursos ociosos.

Entretanto, a partir de uma perspectiva de operações em TI, o FaaS apresenta muitos desafios e exige uma abordagem mais atenta no que diz respeito ao gerenciamento, monitoramento e proteção desse tipo de arquitetura. Por exemplo, não há uma padronização para sistemas desse tipo, o que torna complexo o trabalho para detalhar a lógica apenas uma vez e executá-la simplificadamente, em qualquer um dos grandes provedores.

Outro detalhe importante é que, por se tratarem de uma estrutura adicional entre a chamada e a execução do código, serviços Serverless tendem a possuir latência levemente maior do que chamadas diretas em servidores. Isso faz com que essa arquitetura não seja recomendada para aplicações que exigem processamento em tempo real, como aplicações do mercado financeiro.

Abaixo é possível ver o nível de abstração que o provedor de nuvem oferece em cada uma das principais arquiteturas:


Ao mencionarmos alguns dos grandes provedores em nuvem do mercado, neste texto vamos falar brevemente sobre os dois mais populares do momento: Amazon e Microsoft, com o AWS Lambda e Azure Functions, respectivamente.

AWS Lambda

Lançada em 2014 e considerada a de maior sucesso com FaaS, permite a execução de códigos sem provisionamento ou gerenciamento de servidores, sendo capaz de executá-los para praticamente qualquer tipo de finalidade. Além disso, é possível configurá-lo para o acionamento automático de outros serviços da AWS ou chamá-lo diretamente de qualquer aplicativo da web ou móvel.

Existe a alternativa de realizar o upload do código como um arquivo zip ou criá-lo usando o AWS Lambda Management Console, sendo sua execução chamada de função Lambda. Alguns dos ambientes de execução oferecidos são o Node.js, Java, Python e .Net Core. Também há um suporte interno para o AWS SDK, o que simplifica a capacidade de acionamento de outros serviços da AWS. O tempo máximo de execução é, hoje, limitado a 5 minutos.

A cobrança é feita pela duração do código em incremento de 100 milisegundos e não há custo associado ao armazenamento da função Lambda no AWS. Vale ressaltar que o primeiro milhão de solicitações por mês é gratuito.

Azure Functions

O serviço da Microsoft é composto por 3 pilares: abstração do servidor, desenvolvimento orientado a eventos e faturamento de sub-segundo. No que diz respeito às funções de trabalho, elas são implementadas com o WebJobs e ainda contam com dois modelos de execução: contínua e acionada.

Há duas opções de hospedagem e gerenciamento dos recursos no Azure Functions: o primeiro é o Plano de Serviço de Aplicativo, em que o cliente escolhe o tamanho das instâncias dedicadas e o gerenciamento de escala, que pode ser manual ou de autoescalonamento; o segundo é o Plano de Consumo, em que as instâncias são adicionadas ou removidas automaticamente, levando em consideração o número de execuções reais e a duração delas (sem o tempo ocioso), multiplicado pela memória reservada.

Já as linguagens de programação disponibilizadas aos desenvolvedores são Java, F#, C# e Javascript. O tempo máximo de execução é limitado a 5 minutos por padrão, mas pode, através de configuração própria, ser estendido a até 10 minutos.

Assine o blog e também mande suas dúvidas para nossos especialistas para conhecer melhor os diferenciais técnicos de cada provedor. A CleanCloud pode ajudá-lo no gerenciamento da sua infraestrutura em nuvem e não deixe de fazer seu teste grátis!

Deixe uma resposta

O seu endereço de e-mail não será publicado. Campos obrigatórios são marcados com *

Esse site utiliza o Akismet para reduzir spam. Aprenda como seus dados de comentários são processados.