Início
topics
O que é FaaS (função como serviço)?
FaaS, ou Function-as-a-Service (função como serviço), é um serviço de computação em nuvem que permite que os clientes executem códigos em resposta a eventos, sem gerenciar a infraestrutura complexa normalmente associada à criação e ao lançamento de aplicativosde microsserviços.
Hospedar um aplicativo de software na internet geralmente envolve a criação e gerenciamento de um servidor virtual ou físico, bem como a gestão de um sistema operacional e dos processos de hospedagem do servidor web.Com o FaaS, o hardware físico, o sistema operacional de máquina virtual e o gerenciamento de software de servidor da Web são tratados automaticamente pelo provedor de serviços de nuvem. Isso permite que os desenvolvedores concentrem-se exclusivamente em funções individuais no código de sua aplicação.
Serverless e função como serviço (FaaS) são frequentemente confundidos, mas a verdade é que o FaaS é, na realidade, um subconjunto do conceito de serverless.
O foco do Serverless é qualquer categoria de serviço, seja computação, armazenamento, banco de dados, mensagens, gateways de API, etc. onde configuração, gerenciamento e faturamento de servidores são invisíveis para o usuário final.
Já o FaaS, que talvez seja a tecnologia mais essencial em arquiteturas serverless, está concentrado no paradigma de computação orientada por eventos, onde o código da aplicação ou os containers só são acionados em resposta a eventos ou solicitações.
O FaaS é uma ferramenta valiosa se você estiver procurando migrar aplicativos para a nuvem de forma eficiente e econômica. A seguir estão alguns benefícios que você poderá aproveitar:
Existem várias práticas recomendadas que você pode seguir para tornar o uso do FaaS mais fácil de implantar e mais eficaz:
Devido à sua capacidade de isolar e dimensionar transações facilmente, o FaaS é adequado para cargas de trabalho de alto volume e paralelizáveis de maneira simples.Também pode ser utilizado para criar sistemas de back-end ou para tarefas como processamento de dados, conversão de formatos, codificação ou agregação de dados.
O FaaS também é uma boa ferramenta para aplicativos da Web, backends, processamento de dados/stream ou para criar chatbots online ou back-end para dispositivos IoT. O FaaS pode ajudá-lo a gerenciar e usar serviços de terceiros. Se você está pensando em desenvolver aplicativos para Android, por exemplo, você pode adotar uma abordagem FaaS para manter seus custos sob controle. Como você só é cobrado quando seu aplicativo se conecta à nuvem para uma função específica, como processamento em lote, os custos podem ser consideravelmente mais baixos do que seriam usando uma abordagem tradicional.
O FaaS também pode impulsionar drasticamente o desempenho da computação. Por exemplo, dois alunos trabalharam recentemente com engenheiros da IBM para explorar como aproveitar as funções do IBM Cloud para simulações de Monte Carlo (métodos matemáticos usados para estimar os resultados futuros de determinados eventos difíceis de prever) para estimar os preços das ações. As simulações do Monte Carlo são consideradas uma importante carga de trabalho de computação de alto desempenho. A combinação do Monte Carlo com o IBM Cloud Functions permitiu que a equipe executasse cálculos em grande escala e permitisse que eles se concentrassem na lógica de negócios. Usando o FaaS, a equipe concluiu uma simulação de Monte Carlo inteira em cerca de 90 segundos com 1.000 invocações simultâneas. Comparativamente, executar o mesmo fluxo em um laptop com quatro núcleos da CPU levou 247 minutos e quase 100% de utilização da CPU.
Para ver mais exemplos de casos de uso de FaaS, confira “Uma recapitulação das principais vantagens oferecidas pelo IBM Cloud Functions”.
FaaS, PaaS (plataforma como serviço), contêineres e máquinas virtuais (VMs) desempenham um papel fundamental no ecossistema serverless. Uma vez que a FaaS é o elemento central e mais definidor do serverless stack, vale a pena examinar como o FaaS difere de outros modelos comuns de computação disponíveis hoje em dia, considerando atributos-chave:
Kubernetes e Knative são uma implementação de "encanamento" atrás de FaaS. Kubernetes é uma ferramenta de orquestração de contêiner de código aberto que é essencial para o gerenciamento de aplicativos na nuvem. O Knative permite executar serverless dentro de um cluster do Kubernetes.
A combinação de Knative e Kubernetes permite que você aproveite as funcionalidades do Kubernetes, como monitoramento, segurança, registro e autenticação, e as combine com os benefícios do Knative, como a construção automatizada de contêineres, portabilidade completa e operação em ambientes híbridos.
Os criadores dessa tecnologia acreditavam que os desenvolvedores não deveriam ter que escolher entre serverless e contêineres ao criar aplicativos na nuvem. O objetivo era aumentar a disponibilidade e a consistência dos contêineres com o dimensionamento poderoso e o acesso sob demanda serverless.
Assista a este vídeo para saber mais sobre Knative:
Execute imagens de contêiner, trabalhos em lote ou código-fonte como cargas de trabalho serverless — sem dimensionamento, implantação, rede ou dimensionamento necessários.
Desenvolva código leve que execute de forma escalável sob demanda com esta plataforma de programação de função como serviço (FaaS).
O Serverless é um modelo de execução e desenvolvimento de aplicativos na nuvem que permite aos desenvolvedores criar e executar códigos de aplicativos sem provisionar ou gerenciar servidores ou infraestrutura de back-end.
Os contêineres são unidades executáveis de software que empacotam código de aplicativo junto com suas bibliotecas dependências, e podem ser executados em qualquer lugar, seja no desktop, TI tradicional ou na nuvem.
A PaaS, ou Plataforma como Serviço, fornece uma plataforma de nuvem completa, flexível e econômica para desenvolver, executar e gerenciar aplicativos.