Função como serviço (FaaS) é um modelo de computação em nuvem em que você desenvolve pequenos códigos modulares chamados de funções, e um provedor de nuvem os executa em resposta a eventos específicos. Nesse modelo, você se concentra totalmente na lógica do código, enquanto o ambiente de execução sem servidor gerencia a infraestrutura. O provedor de nuvem lida com o hardware físico, o sistema operacional e o software do servidor da Web.
Isso é diferente dos aplicativos tradicionais baseados em servidor ou das arquiteturas monolíticas. Nesses modelos mais antigos, você geralmente gerencia um servidor que é executado continuamente, mesmo quando ninguém usa seu aplicativo. Com o FaaS, a plataforma executa seu código apenas quando um evento específico o aciona. Isso permite uma maneira eficiente de criar aplicativos, já que você consome recursos apenas quando necessário.
É útil entender como a FaaS se compara a outros modelos de serviço de nuvem, como plataforma como serviço (PaaS) e infraestrutura como serviço (IaaS). Embora a FaaS pertença à categoria mais ampla "sem servidor", em que o provedor gerencia os servidores, ela oferece um nível distinto de abstração. A computação sem servidor abrange qualquer serviço, como bancos de dados, armazenamento ou computação, em que o provedor gerencia os servidores. A FaaS é especificamente a parte de computação sem servidor que executa o código em resposta a eventos.
Recurso | FaaS (função como serviço) | PaaS: plataforma como serviço | IaaS: infraestrutura como serviço |
Unidade principal | Uma única função (pequeno snippet de código) | Um app inteiro | Máquinas virtuais (VMs) |
Escalonabilidade | Escalonamento instantâneo por solicitação (inclusive para zero) | Mais lento, escalona com base nas regras configuradas | Escalonamento automático manual ou pré-configurado |
Modelo de preços | Pagamento por tempo de execução (milissegundos) | Pague pelos recursos em execução (tempo de atividade) | Pague pelos recursos alocados (tamanho/tempo) |
Manutenção | Nenhum (o provedor gerencia tudo) | Menor (o provedor gerencia o SO/ambiente de execução) | Maior (você gerencia SO, atualizações e patches) |
Ideal para | Tarefas orientadas a eventos, código de ligação, processamento de dados | Apps da Web, serviços de longa duração | Apps legados, infraestrutura personalizada complexa |
Recurso
FaaS (função como serviço)
PaaS: plataforma como serviço
IaaS: infraestrutura como serviço
Unidade principal
Uma única função (pequeno snippet de código)
Um app inteiro
Máquinas virtuais (VMs)
Escalonabilidade
Escalonamento instantâneo por solicitação (inclusive para zero)
Mais lento, escalona com base nas regras configuradas
Escalonamento automático manual ou pré-configurado
Modelo de preços
Pagamento por tempo de execução (milissegundos)
Pague pelos recursos em execução (tempo de atividade)
Pague pelos recursos alocados (tamanho/tempo)
Manutenção
Nenhum (o provedor gerencia tudo)
Menor (o provedor gerencia o SO/ambiente de execução)
Maior (você gerencia SO, atualizações e patches)
Ideal para
Tarefas orientadas a eventos, código de ligação, processamento de dados
Apps da Web, serviços de longa duração
Apps legados, infraestrutura personalizada complexa
O fluxo de trabalho de FaaS pode ser simples e eficiente. Ele geralmente depende de um modelo orientado a eventos em que as ações acionam seu código.
A FaaS é versátil e se encaixa bem em muitas arquiteturas de aplicativos modernas.
Você pode dividir aplicativos complexos em partes pequenas e independentes que se comunicam por meio de eventos.
A FaaS funciona bem para tarefas como redimensionar uma imagem imediatamente após o upload do usuário ou limpar os dados assim que eles chegam.
É possível usar funções para implementar a lógica por trás de apps móveis ou processar dados de dispositivos da Internet das Coisas (IoT).
Tarefas que podem ser divididas em muitos jobs pequenos e simultâneos, como codificação de vídeo, são executadas de maneira muito eficiente no FaaS.
Você pode substituir tarefas programadas tradicionais por funções que são executadas em horários específicos para realizar manutenção ou gerar relatórios.
A adoção da tecnologia de nuvem FaaS oferece vários benefícios para desenvolvedores e empresas.
Escalonamento automático e instantâneo
Seu aplicativo pode lidar com um aumento repentino no tráfego, de um usuário para milhares, sem que você precise configurar nada manualmente.
Controle de custos superior (pagamento por uso)
Você só paga quando o código é executado, o que pode resultar em economias significativas em comparação com o pagamento por servidores ociosos.
Aumento da velocidade do desenvolvedor
Os desenvolvedores podem escrever código e implantá-lo rapidamente sem gastar tempo no gerenciamento de servidores ou na configuração da infraestrutura.
Foque no código do aplicativo, não no gerenciamento da infraestrutura
As equipes podem gastar energia criando valor para os clientes em vez de corrigir servidores ou gerenciar sistemas operacionais.
Alta disponibilidade e resiliência
As plataformas FaaS normalmente executam seu código em várias zonas, então, se uma área falhar, seu aplicativo continua funcionando.
Um dos problemas mais comuns que os desenvolvedores enfrentam com o FaaS é a "inicialização a frio". Quando a função não é executada por um tempo, o provedor de nuvem desativa o ambiente para economizar recursos. Na próxima vez que um evento acionar essa função, haverá um pequeno atraso enquanto o sistema configura o ambiente e carrega o código. Esse atraso, chamado de inicialização a frio, pode deixar o aplicativo mais lento.
Se o aplicativo exige respostas instantâneas, você pode usar estas etapas para minimizar a latência.
Função como serviço descreve um modelo de computação em nuvem, e o Cloud Run functions é o produto do Google Cloud que coloca esse conceito em prática. Ele serve como uma solução FaaS escalonável e de pagamento por utilização que permite executar código sem gerenciamento de servidor.
Ao escolher as funções do Cloud Run, você adota uma abordagem sem servidor em que o Google Cloud lida com a infraestrutura subjacente. Você fornece o código, e a plataforma gerencia o ambiente de execução, as atualizações do sistema operacional e os recursos de escalonamento automático. Com essa integração, você pode implantar funções de finalidade única que respondem a eventos, como solicitações HTTP ou mudanças de dados, sem provisionar uma única máquina virtual.
Esse serviço combina a simplicidade da implantação de funções com o poder da tecnologia do Cloud Run. Os desenvolvedores podem criar aplicativos orientados a eventos usando linguagens como Python, Node.js, Go, Java, .NET e Ruby. Como ele é executado na infraestrutura robusta do Google, suas funções podem ser escalonadas de 0 a milhares de instâncias automaticamente para atender à demanda.
Para saber mais sobre a função como serviço e a computação sem servidor, confira estes recursos.
Comece a criar no Google Cloud com US$ 300 em créditos e mais de 20 produtos sem custo financeiro