Pergunte ao Expert - Por que sua empresa precisa do AWS Serverless

Eduardo Rabelo
7 min readJun 13, 2019

Enquanto você lê este post — possivelmente em seu smartphone — é fácil esquecer quantas tecnologias modernas estão por trás disso.

Quando você pensa sobre isso, quantas invenções revolucionárias vimos em todas as eras da história humana, pode ser difícil de compreender. Essas invenções muitas vezes vinham em formas que nem sabíamos o que queríamos. Como disse Henry Ford: “Se eu tivesse perguntado às pessoas o que elas queriam, elas teriam dito cavalos mais rápidos”.

O que tudo isso tem a ver com a computação serverless? Bem, isso nos permite realizar tarefas repetitivas do dia a dia de maneira mais eficiente. Isso nos libera do trabalho pesado e demorado que vem com o gerenciamento de infraestrutura, para que possamos usar melhor nossa energia cognitiva, que é limitada.

Serverless surgiu de uma forma que muitos de nós nem sabíamos que queríamos ou precisávamos. Se a Amazon Web Services (AWS) perguntasse às pessoas o que elas queriam, elas teriam dito algo como “melhor abstração para servidores”.

Mas você pode não estar totalmente convencido ainda. Aqui eu explico por que você não deve se preocupar apenas com o serverless como desenvolvedor, gerente ou um parceiro interessado no negócio, você deve torná-lo uma prioridade.

Por que o serverless é melhor para desenvolvedores?

Como desenvolvedor, levei muitos anos para perceber que meu trabalho não é escrever código; Meu trabalho é ajudar as empresas a realizar suas ambições. Na maioria dos casos, isso significa criar um produto que seja financeiramente bem-sucedido e tenha um impacto positivo em seus usuários. O resultado desejado nunca é o próprio código, mesmo que esse código seja elegante e bem trabalhado. É um meio para um fim, não um fim em si mesmo.

Para entregar uma ideia de produto ao mercado, existe muita coisa que tenho que fazer além de implementar o recurso em si. Isso inclui a configuração de imagens de máquinas ou a configuração automática de escala para meu cluster de servidores.

Com o AWS Lambda, a maioria deles se torna irrelevante ou é simplificada drasticamente. Isso me permite focar nos aspectos mais importantes do projeto, como implementar recursos de produtos e pensar em tradeoffs de arquitetura. Esse é um uso muito mais produtivo do tempo e da energia de um desenvolvedor e libera o tempo que você geralmente gasta em tarefas mundanas (mas importantes) envolvidas no gerenciamento da infraestrutura.

O AWS Lambda oferece excelente escalabilidade imediatamente, escalando automaticamente para atender a demanda. Como podemos aproveitar um grande conjunto de recursos gerenciados pelo AWS, nossos aplicativos podem ser ampliados muito mais rápido também. Quando eles não estão sendo usados, eles serão dimensionados até zero, o que significa que não temos que pagar por servidores inativos. Isso faz do Lambda uma solução econômica para a maioria dos sistemas.

Com o Lambda, você também recebe deploys blue-green prontos para uso. À medida que você faz o deploy de uma atualização para sua função, o AWS gerencia e direciona todas as solicitações para a nova versão. As funções também são implementadas em três zonas de disponibilidade (AZs) por padrão, fornecendo uma boa resiliência padrão de base contra falhas em todo o AZ. A partir daqui, é trivial construir um sistema de múltiplas regiões ativo-ativo.

Por que os gerentes devem se preocupar com serverless?

Como gerente, você se preocupa com o bem-estar de sua equipe e sua capacidade de atender às demandas do negócio. Na minha experiência, as equipes que adotam o serverless entregam mais rápido e experimentam menos estresse.

Como discutido anteriormente, o AWS Lambda torna mais fácil para os desenvolvedores criarem sistemas prontos para produção. Ele permite que você aproveite um número impressionante de recursos da plataforma, como a auto-escala por padrão e a resiliência multi-AZ. Isso se traduz diretamente em maior produtividade e tempos de entrega mais rápidos.

Criar e gerenciar uma infraestrutura que possa fornecer o mesmo nível de escalabilidade e resiliência é difícil e requer tempo de engenharia que as equipes geralmente não podem pagar. Esse tipo de infraestrutura exige habilidades que a maioria das equipes não tem em mãos, mas é fundamental para o sucesso de seu produto, e isso pode se tornar uma enorme fonte de estresse. As equipes geralmente precisam:

  • Desviar a atenção do problema central de negócio para assumir essas responsabilidades adicionais de infraestrutura.

Isso aumenta a pressão para cumprir os prazos e pode significar cortar cantos em outros lugares e assumir dívidas técnicas que podem impedir o desenvolvimento futuro.

  • ‌Eles terão que depender de uma equipe de DevOps, normalmente centralizada, para fornecer suporte.

Este tipo de dependência inter-equipe é um ponto de dor constante que pode levar a qualquer tipo de disfunção em toda a organização.

Atrasos freqüentemente surgem, adicionando pressão à experiência geral.

As equipes que adotam o serverless se encontram com muito menos responsabilidades de infraestrutura. A maioria é capaz de lidar com o restante sem depender de um especialista em DevOps ou de uma equipe de infraestrutura. Isso significa que a equipe pode ter mais propriedade e autonomia de todo o sistema; O serverless dá a eles a vantagem de que precisam para fazer mais com menos.

Parceiro Interessado no Negócio

Como um parceiro no negócio, eu me preocupo com coisas como o time-to-market e maximizar o retorno sobre o investimento (ROI) para o negócio.

Já falamos sobre como as tecnologias serverless permitem que as equipes sejam mais produtivas; esse aumento é refletido diretamente na redução do tempo de lançamento no mercado. O serverless oferece às empresas uma super-estrada para levar suas ideias ao mercado.

Para a maioria das empresas com foco em tecnologia, o custo mais alto virá na forma de contratação de desenvolvedores. Os desenvolvedores altamente qualificados são difíceis de encontrar e caros para recrutar e manter, e para ajudá-los a entregar seu melhor trabalho, eles também precisam de uma extensa estrutura de suporte em torno deles. Isso inclui desde o espaço do escritório e recursos físicos até bons gerentes e uma equipe forte para apoiá-los.

Para obter o melhor ROI possível, as empresas precisam dar aos desenvolvedores o tipo de ferramentas de que precisam para fazer mais com menos. E essa é a verdadeira economia de custos que vem do serverless.

Para entender o ROI de uma empresa, você precisa entender primeiro seus custos operacionais. Organizações que trabalham com um modelo de negócios transacional precisam entender seu custo por transação. Isso é muito difícil de estimar se você está pagando pelo tempo de atividade dos servidores, porque:

  • A utilização do servidor influencia fortemente o custo por transação. E está fora do seu controle.
  • Um único servidor normalmente executaria vários serviços e suportaria recursos diferentes. Não há uma maneira confiável de atribuir o custo do servidor a todos os recursos diferentes que o utilizam.

Com o serverless, o custo de cada camada da sua estrutura é previsível e pago por uso. Portanto, posso prever com precisão o custo de cada transação.

Ferramentas do ecosistema serverless, como o Lumigo, permitem monitorar o desempenho e o custo de suas transações.

Otimizações de desempenho não são apenas decisões de engenharia. Eles podem ter um impacto significativo e mensurável no ROI da empresa. Dada a forma como os desenvolvedores são caros, seu tempo é um recurso caro. Quaisquer otimizações de desempenho, portanto, precisariam gerar mais economia de custos do que o custo de desenvolvimento. Ter a visibilidade dos custos de transação permite que você tome uma decisão informada sobre onde e quando otimizar.

Todos devem se preocupar com o serverless!

Como desenvolvedor, as tecnologias serverless me ajudam a criar sistemas escaláveis ​​e resilientes. Eles permitem que eu me concentre nas coisas que são importantes para meus usuários e parceiros de negócios.

Como gerente, as tecnologias serverless ajudam minhas equipes a responder às necessidades de negócios de maneira mais rápida e eficiente. Eles permitem que a equipe tenha mais propriedade do sistema, incluindo sua arquitetura e infraestrutura, o que reduz as dependências entre equipes e aumenta a autonomia. Juntos, esses fatores tornam as equipes mais felizes e produtivas.

Como um parceiro interessado no negócio, as tecnologias serverless possibilitam que eu compreenda o custo de cada transação. Isso me permite tomar decisões informadas sobre preços e quando e onde devo otimizar minha aplicação para maximizar o ROI. O serverless também me ajuda a maximizar o retorno do meu recurso mais caro: meus desenvolvedores.

Espero ter despertado seu interesse no serverless e que você esteja ansioso para aprender mais!

Créditos ⭐️

--

--