P: O que é a computação sem servidor?

Computação com tecnologia sem servidor é um modelo de desenvolvimento de aplicações em que você pode criar e implantar aplicações em uma infraestrutura de servidores gerenciados de terceiros. Todas as aplicações exigem servidores para serem executadas. Porém, no modelo de tecnologia sem servidor, um provedor de nuvem gerencia o trabalho rotineiro e provisiona, escala e mantém a infraestrutura subjacente. O provedor de nuvem lida com várias tarefas, como gerenciamento do sistema operacional, patches de segurança, gerenciamento do sistema de arquivos e da capacidade, balanceamento de carga, monitoramento e registro em log. Como resultado, seus desenvolvedores podem se concentrar no design de aplicações e ainda receber os benefícios de uma infraestrutura de servidor econômica, eficiente e altamente escalável.

Por que a computação sem servidor é importante?

Nos primórdios da internet, qualquer pessoa que quisesse executar um aplicativo web tinha que comprar e manter servidores físicos. As empresas normalmente armazenavam seus dispositivos de servidor físico em datacenters on-premises ou instalações de colocalização. Poderia ser caro, pois a maioria dos aplicativos usava apenas uma fração muito pequena dos recursos de hardware do servidor.

O modelo de computação em nuvem resolveu inicialmente esse problema ao permitir que os clientes criassem servidores ou instâncias virtuais no hardware do provedor de nuvem. No entanto, os clientes ainda precisavam provisionar, configurar, atualizar e escalar seus servidores virtuais.

Em resposta a esses problemas, os provedores de nuvem começaram a oferecer tecnologias sem servidor para aumentar a agilidade e otimizar ainda mais os custos. Com a computação sem servidor, seus desenvolvedores podem executar código, gerenciar dados e integrar aplicações sem se preocupar com as tarefas de gerenciamento de infraestrutura.

Há vários benefícios na adoção da tecnologia sem servidor, que descreveremos a seguir.

Aumento na produtividade do desenvolvedor

Suas equipes de desenvolvimento podem se concentrar na criação de aplicações em vez de configurá-las. Despesas operacionais mais baixas significam que seus aplicativos chegam ao mercado mais rapidamente. Seus desenvolvedores podem responder ao feedback dos clientes e lançar alterações no código da aplicação com frequência.

Escalabilidade eficiente

Os fornecedores de nuvem fornecem um atributo de ajuste de escala automático em seus ambientes sem servidor. Suas aplicações sem servidor escalam automaticamente de zero até o pico de demanda. Seus desenvolvedores não precisam pensar no uso ao escrever código.

Custos reduzidos

Você paga apenas pela CPU, memória e outros recursos de computação necessários quando seu código é executado. Você não paga nada por recursos ociosos. Esse modelo de cobrança de pagamento por valor garante a utilização ideal dos recursos e nenhum desperdício com o provisionamento excessivo.

Quais são os casos de uso da computação com tecnologia sem servidor?

Há muitas aplicações e sistemas em que a computação sem servidor pode ser útil.

Desenvolvimento de aplicações sem estado

A arquitetura sem servidor é ideal para aplicações assíncronas e sem estado que não salvam dados do cliente entre as sessões. Exemplos de aplicações sem servidor incluem chatbots, agendadores de tarefas e aplicações de IoT. Por exemplo, a Coca-Cola usou a AWS para desenvolver um aplicativo móvel para servir e usá-lo em seu dispensador de bebidas sem toque em apenas 100 dias. A Coca-Cola usou componentes básicos sem servidor, como o AWS Lambda.

Processamento em lotes

As aplicações de processamento em lotes concluem periodicamente trabalhos de dados repetitivos e de alto volume, como backups, filtragem e classificação. O processamento em lotes é adequado para ambientes sem servidor que escalam massivamente quando necessário e não custam nada quando não são usados.

Por exemplo, a Liberty Mutual usou a AWS para consolidar suas diferentes linhas globais de negócios em um sistema centralizado chamado Financial Central Services (FCS). Ela usou o AWS Step Functions para criar uma aplicação sem servidor que pode processar 100 milhões de transações em uma única execução no final de cada mês.

Análise de dados em tempo real

A computação sem servidor é ideal para mecanismos de streaming em tempo real para melhorar a capacidade de resposta do cliente. Os aplicativos sem servidor podem lidar com grandes quantidades de dados de streaming de centenas de milhares de fontes enquanto experimentam baixa latência e alta largura de banda. Como resultado, você pode obter insights em segundos, em vez de minutos.

Por exemplo, a Genentech usa a funcionalidade sem servidor da AWS para análise de dados clínicos. Agora, os pesquisadores podem concluir, em algumas horas, tarefas que antes levariam semanas para serem executadas.

Automação de processos de negócios

Você pode usar a abordagem sem servidor para automatizar processos de negócios que são entediantes e demorados. Seus desenvolvedores podem se concentrar em traduzir a lógica de negócios em código de aplicativo sem gerenciar servidores.

Por exemplo, a Taco Bell usou a AWS para criar aplicações sem servidor para realizar transformações de dados e lógica de negócios. Eles forneceram informações em tempo real sobre menus e restaurantes aos parceiros de entrega da Taco Bell. Os investimentos em tecnologia sem servidor ajudaram a marca a mudar rapidamente para atender à demanda do consumidor por entrega durante a pandemia de COVID-19.

Como a arquitetura sem servidor funciona?

Qualquer aplicação tem duas grandes áreas de funcionalidade: o front-end e o back-end. O front-end inclui tudo com o que seus usuários finais interagem, como layout visual, botões e texto de exibição. O back-end inclui funcionalidades que seus usuários não conseguem acessar, como armazenamento e processamento de dados.

Por exemplo, considere um aplicativo de reserva de voos em seu dispositivo móvel. O front-end é a interface do seu aplicativo, onde você pode escolher datas e solicitar uma lista de voos disponíveis. Sua solicitação vai para o back-end, que consulta o banco de dados e retorna informações sobre todos os voos disponíveis no período escolhido. O diagrama a seguir mostra a arquitetura tradicional.

Diagrama de framework para aplicações web tradicional

Na arquitetura sem servidor, os desenvolvedores implantam código de back-end na infraestrutura de nuvem fornecida pelos provedores de nuvem. A chave para aplicações sem servidor é a arquitetura orientada a eventos, um padrão de arquitetura moderno criado com base em serviços pequenos e sem acoplamento que publicam, consomem ou encaminham eventos. Eventos são mensagens enviadas entre serviços.

Essa arquitetura facilita a escalabilidade, a atualização e a implantação independente de componentes separados de um sistema. O diagrama a seguir mostra um microsserviço sem servidor orientado por eventos.

Diagrama de microsserviços sem servidor orientado por eventos

A seguir, apresentaremos uma visão geral de como a arquitetura sem servidor funciona.

Funções

As funções são unidades de código pequenas e discretas que executam uma única tarefa. Uma função requer recursos computacionais, como CPU e memória, para ser executada. O provedor de nuvem aloca esses recursos somente quando necessário. Ele cria um ambiente temporário para a função sem servidor ser executada.

Certos eventos podem acionar ou fazer com que a unidade de código seja executada. Por exemplo, um evento pode ser executado se um usuário selecionar um botão em um aplicativo. A solicitação acionaria uma função que lê o banco de dados e retorna as informações relevantes para o usuário.

Solicitações de escalabilidade

Quanto mais solicitações uma função recebe, mais recursos ela precisa para ser executada. A plataforma sem servidor monitora a carga e continua alocando recursos de nuvem em uma escala quase infinita. Assim, uma única função sem servidor pode lidar com uma ou um milhão de solicitações sem alterações no código.

Quando uma função deixa de receber solicitações, o provedor de nuvem desativa a infraestrutura associada para economizar custos. Ele aloca recursos somente quando necessário. Se não houver uso, o ambiente pode ser escalado para zero.

Quais são os tipos de arquitetura sem servidor?

Na arquitetura sem servidor, o provedor de nuvem gerencia várias tarefas de back-end pequenas e grandes para sua aplicação. É possível implantar código personalizado; o provedor de nuvem alocará recursos dinamicamente sempre que seu código for executado. A plataforma de nuvem também pode fornecer funcionalidade de back-end que você pode usar diretamente sem escrever códigos do zero.

A seguir, explicaremos os dois tipos de arquiteturas sem servidor.

Função como serviço

A função como serviço (FaaS) é uma arquitetura sem servidor que os desenvolvedores podem usar para escrever funções de back-end personalizadas e implantar o código da função diretamente na infraestrutura da nuvem. Quando uma função é chamada, o provedor de nuvem executa a função em um servidor ativo existente ou cria um novo servidor, se necessário. Essas funções são chamadas de funções sem servidor porque seu processo de execução é abstraído dos desenvolvedores. Os desenvolvedores podem escrever e implantar código sem se preocupar com a forma como e onde ele é executado.

Back-end como serviço

O back-end como serviço (BaaS) dá aos desenvolvedores acesso às funções de back-end usando uma API. APIs são mecanismos que permitem que dois componentes de software se comuniquem usando um conjunto de definições e protocolos.

Em seu ambiente sem servidor, os fornecedores de nuvem oferecem acesso baseado em API a criptografia adicional, autenticação e bancos de dados acessíveis na nuvem. Eles também podem fornecer acesso a outros serviços e aplicações de terceiros. Essas funções sem servidor são pré-escritas e podem ser chamadas diretamente no código.

Qual é a estratégia de priorizar a tecnologia sem servidor?

A arquitetura sem servidor é reconhecida pelos seguintes princípios:

  • Sem gerenciamento de servidores
  • Serviços com pagamento por valor
  • Escalabilidade contínua
  • Tolerância a falhas integrada

Uma estratégia que prioriza o servidor dá preferência a esses princípios em todas as aplicações, operações e ciclos de desenvolvimento de uma organização. Um desenvolvedor de tecnologia sem servidor ou uma empresa que prioriza o servidor trabalha para criar usando esses princípios em primeiro lugar.

Mas a computação sem servidor não é adequada para todas as workloads. Você pode incorporar tecnologias que não sejam sem servidor como arquitetura de suporte, conforme necessário.

A arquitetura sem servidor é segura?

A maioria dos fornecedores de nuvem adota um modelo de segurança compartilhado. O provedor de nuvem é responsável pela segurança da nuvem, enquanto os clientes são responsáveis pela segurança na nuvem.

Com a tecnologia sem servidor, o provedor de nuvem gerencia muitas camadas adicionais de infraestrutura, incluindo sistemas operacionais e redes. Os clientes devem seguir os princípios de privilégio mínimo e as melhores práticas para proteger uma aplicação sem servidor.

Por exemplo, em soluções de FaaS da AWS, como o AWS Lambda, você pode proteger cada recurso com permissões granulares usando ferramentas conhecidas, como o Centro de Identidade do AWS IAM. Isso pode ajudar a oferecer uma postura de segurança robusta para suas aplicações sem servidor.

Como a AWS pode oferecer suporte aos seus requisitos de computação com tecnologia sem servidor?

A Amazon Web Services (AWS) tem muitas ofertas para oferecer suporte à sua computação sem servidor.

A tecnologia sem servidor na AWS detalha tecnologias que você pode usar para executar código, gerenciar dados e integrar aplicações sem gerenciar servidores. Com as tecnologias sem servidor da AWS, você tem ajuste de escala automático, alta disponibilidade integrada e um modelo de faturamento pago por utilização para aumentar a agilidade e otimizar os custos. Estas tecnologias também eliminam as tarefas de gerenciamento de infraestrutura, como provisionamento de capacidade e patching, para que você possa se concentrar apenas em escrever códigos que atendam a seus clientes. 

As aplicações que usam tecnologia sem servidor começam com o AWS Lambda, um serviço computacional orientado por eventos nativamente integrado com mais de 200 serviços da AWS. Também temos um grande número de serviços adicionais de suporte, como estes:

Comece a usar a tecnologia sem servidor na AWS criando uma conta hoje mesmo.

Próximas etapas na AWS

Cadastre-se para obter uma conta gratuita

Obtenha acesso instantâneo ao nível gratuito da AWS.

Cadastre-se 
Comece a criar no console

Comece a criar no Console de Gerenciamento da AWS.

Faça login