Decidir se a computação sem servidor é adequada para as necessidades da sua empresa

Concluído

Para ajudar a decidir se a computação sem servidor é adequada para si, vamos primeiro saber o que significa “sem servidor”.

O que é a computação sem servidor?

A computação sem servidor pode ser considerada uma função como serviço (FaaS) ou um microsserviço alojado numa plataforma de cloud. A lógica de negócio é executada como as funções e não tem de aprovisionar ou dimensionar manualmente a infraestrutura. O fornecedor de cloud gere a infraestrutura. A aplicação é dimensionada automaticamente horizontal ou verticalmente consoante a carga. O Azure dispõe de várias formas para compilar este tipo de arquitetura. As duas abordagens mais comuns são os Aplicativos Lógicos do Azure e o Azure Functions, que é o foco deste módulo.

O que são as Funções do Azure?

As Funções do Azure são uma plataforma de aplicações sem servidor. Ele permite que os desenvolvedores hospedem lógica de negócios que pode ser executada sem provisionamento de infraestrutura. O Azure Functions fornece escalabilidade intrínseca e você é cobrado apenas pelos recursos usados. Você pode escrever seu código de função na linguagem de sua escolha, incluindo C#, Java, JavaScript, Python e PowerShell. O suporte para gerenciadores de pacotes como NuGet e npm também está incluído, para que você possa usar bibliotecas populares em sua lógica de negócios.

Vantagens de uma solução de computação sem servidor

A computação sem servidor é uma ótima opção para alojar código de lógica de negócio na cloud. Com as ofertas sem servidor, como as Funções do Azure, pode escrever a lógica de negócio numa linguagem à sua escolha. Você obtém dimensionamento automático, não tem servidores para gerenciar e é cobrado com base no que é usado, não no tempo reservado. Aqui estão algumas outras características de uma solução sem servidor para você considerar.

Evita a sobrealocação da infraestrutura

Suponha que você provisionou servidores de máquina virtual (VM) e os configurou com recursos suficientes para lidar com seus horários de pico de carregamento. Quando a carga é leve, você está potencialmente pagando pela infraestrutura que não está usando. A computação sem servidor ajuda a resolver o problema da alocação ao aumentar ou diminuir verticalmente de forma automática e só é cobrado quando a sua função estiver a processar trabalhos.

Lógica sem estado

As funções sem estado são ótimas candidatas para a computação sem servidor; as instâncias de função são criadas e destruídas sob pedido. Se o estado for obrigatório, pode ser armazenado num serviço de armazenamento associado.

Orientada por eventos

As funções são orientadas por eventos. Eles são executados somente em resposta a um evento (chamado de "gatilho"), como receber uma solicitação HTTP ou uma mensagem sendo adicionada a uma fila. Configura um acionador como parte da definição da função. Esta abordagem simplifica o seu código ao permitir-lhe declarar de onde vêm os dados (acionador/enlace de entrada) e para onde vão (enlace de saída). Você não precisa escrever código para observar filas, blobs, hubs e assim por diante. Pode concentrar-se apenas na lógica de negócio.

As funções podem ser utilizadas em ambientes de computação tradicionais

As funções são um componente-chave da computação sem servidor, mas também são uma plataforma de computação geral para executar qualquer tipo de código. Se as necessidades do seu aplicativo mudarem, você pode pegar seu projeto e implantá-lo em um ambiente sem servidor. Isso lhe dá a flexibilidade de gerenciar o dimensionamento, executar em redes virtuais e até mesmo isolar completamente suas funções.

Desvantagens de uma solução de computação sem servidor

A computação sem servidor, conforme fornecida pelo Azure Functions no plano de Consumo, nem sempre é a solução apropriada para hospedar sua lógica de negócios. Seguem-se algumas características de funções que podem afetar a sua decisão de alojar os seus serviços numa computação sem servidor.

Tempo de execução

Por padrão, as funções têm um tempo limite de cinco (5) minutos. Este tempo limite é configurável para um máximo de 10 minutos. Se a sua função precisar de mais de 10 minutos para executar, pode alojá-la numa VM. Além disso, se o seu serviço for iniciado através de um pedido HTTP e esperar que esse valor seja uma resposta HTTP, o tempo limite é restrito em 2,5 minutos. No entanto, há também uma opção chamada Durable Functions que permite orquestrar as execuções de várias funções sem qualquer tempo limite.

Frequência de execução

Outra característica é a frequência de execução. Se você espera que os clientes executem sua função continuamente, seria prudente estimar o uso e calcular o custo do uso de funções de acordo. Pode ser mais barato alojar o seu serviço numa VM.

Quando sua função é dimensionada, apenas uma instância de aplicativo de função pode ser criada a cada 10 segundos, para até 200 instâncias totais. Lembre-se de que cada instância pode atender a várias execuções simultâneas, portanto, não há um limite definido sobre quanto tráfego uma única instância pode lidar. Diferentes tipos de acionadores têm diferentes requisitos de dimensionamento, pelo que deve pesquisar sobre a sua opção de acionador e investigar os respetivos limites.