A computação sem servidor é uma estratégia amplamente adotada para aplicações na nuvem, porém nem sempre é a opção mais adequada. Em muitos casos, a abordagem sem servidor pode não proporcionar benefícios significativos para o negócio.

Recentemente, um relatório divulgado pela Datadog revelou que a computação sem servidor está em alta, com uma grande porcentagem de clientes das principais plataformas de nuvem utilizando essa tecnologia. De acordo com a análise da Datadog, mais de 70% dos clientes da AWS, 60% dos clientes do Google Cloud e 49% dos clientes do Microsoft Azure estão adotando soluções sem servidor.
Não há novidades aqui, de fato; serverless é algo antigo e está no cerne do desenvolvimento em nuvem ao escolher a plataforma ideal para novas aplicações em nuvem ou migração. É veloz, dispensa grande planejamento de infraestrutura (quase nenhum), e as aplicações costumam operar de forma eficiente. Parece simples, não é mesmo? Mas é preciso ter cautela.
A computação sem servidor promete simplificar a gestão de infraestrutura e aumentar a eficiência dos desenvolvedores, mas, como em qualquer tecnologia, é importante estar ciente das possíveis desvantagens. Muitas vezes, aqueles que optam por essa abordagem podem não compreender completamente a situação. Isso pode incluir você.
Estrela fria com latência
Uma das maiores questões em relação à computação sem servidor é a latência de inicialização a frio. Diferentemente dos modelos convencionais de computação em nuvem, nos quais máquinas virtuais ou containers são previamente provisionados, as funções sem servidor devem ser executadas instantaneamente quando solicitadas. Embora isso permita uma escalabilidade dinâmica, também traz consigo um atraso conhecido como inicialização a frio, o que pode impactar o tempo de resposta da aplicação.
Apesar de ter havido melhorias por parte dos provedores, ainda é uma questão relevante para aplicações que demandam alto desempenho em tempo real. Alguns usuários relataram a necessidade de abandonar a arquitetura serverless devido a esse motivo, o que acaba atrasando o processo de desenvolvimento ao ter que buscar outra plataforma.
Você pode estar considerando que este é um problema exclusivo de aplicativos que demandam desempenho instantâneo. Existem mais desses aplicativos do que se imagina. Pode ser uma necessidade do aplicativo que você está prestes a implantar em uma plataforma serverless.
Trava do vendedor
Isso precisa ser claramente entendido, no entanto, ainda encontro desenvolvedores e arquitetos que pensam que os aplicativos sem servidor podem ser facilmente usados em diferentes marcas de nuvem. Na realidade, os contêineres são portáteis; o sem servidor é outra história. É comum encontrar a afirmação de “evita o bloqueio do fornecedor” em várias apresentações sobre computação sem servidor, o que pode ser um pouco surpreendente.
Cada provedor de serviços de nuvem possui uma abordagem distinta em relação à tecnologia sem servidor, o que pode dificultar a mudança entre provedores sem alterações substanciais no código e na infraestrutura. Essa situação pode restringir a capacidade de uma organização de se adaptar às mudanças no ambiente de negócios ou de aproveitar oportunidades competitivas. Com a crescente adoção de implantações multicloud, essa limitação pode se tornar um fator relevante a ser considerado.
Depuração e observação.
As formas convencionais de identificar erros, como acessar diretamente um servidor para analisar o código, podem não ser aplicáveis em um cenário sem servidor. Além disso, pode ser desafiador monitorar o funcionamento e a condição de funções individuais sem servidor, principalmente quando lidando com diversas funções distribuídas em vários serviços.
As empresas precisam adotar recursos e métodos especializados para depurar e supervisionar aplicativos sem servidor de maneira eficiente. Embora geralmente seja mais bem compreendido quando surge a necessidade, aguardar esse momento pode resultar em atrasos e custos adicionais.
Administração de despesas
O desafio principal reside no controle dos gastos de sistemas sem servidor implementados. A computação sem servidor pode resultar em economias, ao evitar a gestão e provisão de infraestrutura, mas é crucial supervisionar e regular os custos de forma eficaz. Dado que os sistemas sem servidor alocam recursos de maneira dinâmica em segundo plano, monitorar os custos dos recursos na nuvem diretamente torna-se complicado. Adicionalmente, à medida que as aplicações se tornam mais complexas, o aumento do número de processos e recursos associados pode resultar em sobreposições inesperadas.
As empresas precisam acompanhar de perto o uso de recursos e adotar táticas para controlar os custos, a fim de evitar imprevistos, porém a maioria não o faz, o que torna a opção serverless menos lucrativa. Muitas organizações podem encontrar maneiras mais econômicas de operar suas aplicações, optando por um modelo não-serverless para algumas delas.
A computação sem servidor oferece maior eficiência aos desenvolvedores e reduz a carga de gerenciamento de infraestrutura. Representa uma forma simples de implantar aplicativos, mas é essencial considerar possíveis desvantagens e tomar decisões embasadas. Com um planejamento cuidadoso, um design arquitetônico adequado e um monitoramento eficaz, as organizações podem lidar com esses desafios e usufruir plenamente dos benefícios da computação sem servidor, ou decidir que não é adequada para certas aplicações.