BLOG | ESCRITÓRIO DO DIRETOR DE TECNOLOGIA

Três crenças comuns sobre “sem servidor” que você pode ignorar

Miniatura de Lori MacVittie
Lori MacVittie
Publicado em 03 de janeiro de 2019

O serverless é o queridinho do mundo da nuvem . Pelo menos uma em cada três (33%) organizações implantou aplicativos sem servidor no ano passado. (Fonte: Pesquisa com desenvolvedores do Digital Ocean Q2 2018 ) Dos entrevistados em uma pesquisa da CNCF 2018 , 38% indicaram usar o serverless atualmente. Outros 26% planejam usar a tecnologia nos próximos doze meses.

Essa opção de nuvem incipiente não só está crescendo rapidamente, como também é frequentemente mal compreendida e atribuída a ela poderes quase sobrenaturais para reduzir custos, acelerar o tempo de retorno do investimento e fazer você comer o café da manhã na cama. 

E se isso não bastasse para confundir você, há a confusão de Função como Serviço (FaaS) com Sem Servidor. Os dois não são a mesma coisa, o que causa outros mal-entendidos sobre como uma empresa típica pode tirar proveito dessa nova tecnologia fabulosa.

Então, hoje vamos desmistificar três mitos comuns que ouvi repetidamente de clientes e participantes de conferências nos últimos seis meses. Porque entender o que a tecnologia é - e o que não é - é necessário antes que você possa descobrir se vale a pena investir seu tempo explorá-la.

Vamos começar esclarecendo a diferença entre serverless e FaaS. 

Mito: Sem servidor === FaaS

Serverless é um sistema. Uma plataforma. Uma estrutura. É melhor descrito como um ambiente de execução elástico e just-in-time. O serverless busca eliminar a sobrecarga operacional e o atrito executando algo sob demanda em algum tipo de ambiente isolado. Esse ambiente isolado geralmente é um contêiner, mas também existem ofertas que usam máquinas virtuais e Web Assembly. Para ser breve, usarei "contêiner" para significar todos os três.

Serverless é orientado a eventos . Isso significa que o provisionamento e o processamento são iniciados por algum tipo de gatilho, como a chegada de uma solicitação de API ou o relógio marcando 14h07. Pode ser um evento gerado automaticamente ou interativo, como apertar um botão em um formulário em um aplicativo da web. Em um modelo serverless, o evento inicia a execução de algo que existe em um "contêiner"

NOTA para NETOPS: F5 iRegra leitores experientes podem relacionar eventos Serverless a eventos iRule, por exemplo "HTTP_REQUEST" e "HTTP_RESPONSE".  O modelo é praticamente o mesmo: quando um EVENTO acontece, execute algum código. Desculpe, a maioria dos frameworks Serverless não oferecem suporte a TCL, mas geralmente oferecem suporte a node.js e Python. 

O "contêiner" geralmente é carregado de um repositório no momento em que é solicitado (inicialização a frio) ou pode já estar aguardando (inicialização a quente). Tudo o que existe naquele "contêiner" é executado e retorna uma resposta para qualquer sistema que o tenha acionado para ser executado.

O modelo de negócios por trás do serverless geralmente se baseia no pagamento apenas pelos recursos consumidos enquanto o "contêiner" está em execução. O modelo operacional é remover tudo sobre a operação do ambiente da imagem e deixar que as pessoas se preocupem em construir "algo".

Isso é sem servidor. Função como serviço é um uso específico de serverless que define "algo" como "uma função". 

O FaaS nos permite levar a decomposição de aplicações que começaram com microsserviços até sua conclusão final: funções.

Saber que há uma diferença entre Serverless e Function as a Service é importante para desmascarar nosso próximo mito.

Mito: Refatoração necessária 

Devido à confusão entre FaaS e Serverless, muitos no mercado têm a impressão equivocada de que, para aproveitar as vantagens do Serverless, será necessário refatorar seu aplicativo em suas funções compostas.

O serverless não exige que você refatore seu aplicativo ou projete novos aplicativos em um nível funcional. O Serverless pode facilmente executar um "contêiner" com qualquer tipo de aplicativo, processo, daemon ou função. Desde que esteja empacotado em um "contêiner" e possa ser invocado, ele pode ser executado em um contexto sem servidor.

Também vi implementações bem-sucedidas que aproveitam o Serverless para estender (modernizar) arquiteturas de aplicativos existentes. O processamento em lote e fora de banda de registros, atendimento de pedidos e outros processos de caminho não crítico podem ser implementados em um modelo sem servidor sem refatorar completamente os aplicativos tradicionais. Os aplicativos que já aproveitam a integração externa baseada em API para tais propósitos acharão o Serverless uma opção mais fácil. Os aplicativos cliente-servidor estabelecidos quase certamente exigirão alguma modificação para aproveitar o Serverless, mas não é um empreendimento tão extenso quanto uma refatoração completa exigiria. 

Processos executados apenas ocasionalmente — com base em eventos específicos que acontecem esporadicamente ou de forma imprevisível — também podem ser uma boa opção para o Serverless. É muito mais econômico acionar um "contêiner" periodicamente para executar algo do que mantê-lo funcionando o tempo todo. Isso é verdade tanto para o Serverless público quanto para o local.

O que nos leva ao terceiro dos nossos mitos, que se concentra na localização.

Mito: Serverless não vive no local

Ouvi tanto profissionais de TI de longe quanto especialistas fazendo essa afirmação. É tão patentemente falso quanto a noção de que não é possível executar "nuvem" no local. Você certamente pode e, de acordo com o Developer Economics State of the Developer Nation , uma porcentagem considerável de organizações o faz.

Aplicativos maiores e mais utilizados também podem se beneficiar de um dimensionamento muito eficiente, precisando pagar apenas por recursos extras para as partes específicas do aplicativo sob carga pesada e também sendo mais facilmente capazes de identificá-las e otimizá-las. Essa vantagem para aplicativos maiores é provavelmente um dos principais motivos pelos quais vemos 17% dos atuais adotantes da computação sem servidor executando uma solução em seu próprio data center.

Os ganhos de eficiência de custos em uma implementação sem servidor local vão além da escalabilidade. A capacidade de reutilizar os mesmos recursos e compartilhá-los entre aplicativos para os quais há uso esporádico não é insignificante. O Serverless também adiciona a capacidade de agregar valor a aplicativos e funções operacionais , aproveitando sua natureza central orientada a eventos. Seu uso no local não deve ser descartado levianamente sem entender que os benefícios da ausência de servidor vão muito além da eliminação do atrito operacional da vida diária dos desenvolvedores. Isso certamente é uma vantagem, mas não é o único benefício e certamente não é a única razão pela qual as organizações estão experimentando o Serverless local.  

Então a realidade é que o Serverless pode ser e está sendo implementado no local. A pesquisa CNCF mencionada anteriormente analisa as plataformas Serverless "instaláveis" mais populares:

Há mais, e certamente haverá outros à medida que essa tecnologia ganha velocidade.

Tanto o Serverless quanto o Function as a Service estão desfrutando de taxas de adoção incríveis à medida que as organizações ajustam, brincam e avaliam a tecnologia para uso em novos aplicativos nativos da nuvem e em esforços de modernização. Reconhecer e ignorar conceitos errôneos comuns é um primeiro passo importante para decidir se a tecnologia é adequada para aplicações em sua organização.