Serverless para Startups — Um caminho rápido para construir e validar suas idéias.

Serverless é considerado um grande lego. Adicione cada peça que você precisa, construa rápido e atinja o mercado o mais rápido possível.

Edmo Lima
Creditas Tech

--

Foto original de Annie Spratt em Unsplash .

Para uma startup de tecnologia, nunca houve um momento melhor para construir um produto. Para iniciar de forma genuína e de forma que haja possibilidade de não gastar tanto nesse inicio, o serverless é uma ótima opção. Quando vimos a nuvem surgir, ela nos permitia que alugássemos as peças e executássemos local, o serverless agora nos permite executar o código e não se preocupar com como isso acontece. Isso é incrivelmente poderoso para startups, mas muitos ainda não entenderam o porquê.

A nuvem nos deu a capacidade de não possuir infraestrutura. Poderíamos alugar servidores, armazenamento e rede tão facilmente quanto alugar um escritório. Essa abordagem por demanda fez com que fosse rápido testar ideias e de forma barata e, em seguida, “aumentar a escala” se fossem bem-sucedidas. Startups inteligentes estavam entre as primeiras empresas a reconhecer a enormidade dessa ideia. Mas a nuvem ainda é complicada e você realmente precisa saber o que está fazendo para orquestrar todas as partes móveis com sucesso.

O Serverless entrou na briga há alguns anos e muda esse modelo. Ele analisa o código e os serviços necessários para que uma plataforma funcione e os executa em seu nome. Em segundo plano, ainda há servidores em execução, mas você não precisa mais gerenciar, corrigir e manter qualquer coisa. É a era do noOps, é a próxima iteração da nuvem, permitindo que você se concentre unicamente no que importa no desenvolvimento do seu produto, não no trabalho pesado da stack subjacente.

Nos primeiros dois anos de serverless, a maioria era usada para tarefas específicas de pequena escala, como redimensionar imagens, executar relatórios ou executar pequenos processos de infra-estrutura. Mas os recursos do serverless atingiram a maioridade nos últimos 12 meses e você pode criar uma quantidade surpreendente de seus aplicativos — às vezes tudo isso — usando uma abordagem de arquitetura serverless.

Os benefícios de serverless para startups

Existem algumas coisas importantes que você deve se importar como uma startup. Em primeiro lugar, os aplicativos sem servidor com custo acessível são realmente muito baratos. Embora a nuvem seja definitivamente barata, você ainda está pagando por servidores virtuais que não estão sendo executados em plena capacidade, balanceadores de carga que podem não estar fazendo muito e blocos de armazenamento que não são totalmente usados. Você também tem que pagar por alguém para gerenciar tudo isso.

No serverless, você paga pelo que usa. Isso significa que você só irá pagar quando o código for executado, você paga por bytes de armazenamento realmente usados e o suporte de infra-estrutura oculta para dimensionar tudo isso estão embutidos nesses números. É verdadeiramente um serviço medido. Por exemplo, no AWS Lambda, você paga US $ 0,20 por milhão de solicitações quando o código é executado. Na prática, eu vi que isso normalmente significa que você pode pagar 70 a 90% menos por sua infraestrutura em comparação com o equivalente em nuvem.

O dimensionamento também é um presente para startups. Normalmente, a lacuna entre o Produto Mínimo Viável e o Produto Final pode significar reescrever e redesenhar o aplicativo. Isso porque você cria o mínimo absoluto para testar uma idéia e não é suficiente para um produto final. A maioria dos MVPs consiste em trabalho largamente descartável por causa dessa lacuna.

Em serverless, o design é decomposto em unidades muito menores conectadas por funções. Esse código geralmente não precisa de nenhum retrabalho, pois o aplicativo recebe mais tráfego, pois essas funções são muito pequenas e específicas. Eles podem procurar um perfil de usuário, transcodificar um vídeo ou enviar uma notificação por SMS — a diferença entre o MVP e a produção é puramente escalonada nesses casos. O principal benefício do serverless é que o dimensionamento é feito para você — seja uma função executada uma vez por dia ou milhares de vezes por minuto, o provedor de nuvem garante que isso aconteça.

Finalmente, há agilidade. Em todas as idéias de inicialização, o conceito muda substancialmente e a funcionalidade muda rapidamente. Em serverless, é relativamente simples acompanhar um ritmo de mudança, pois o aplicativo é composto por dezenas de unidades muito pequenas. Você pode atualizar e alterar essas unidades sem afetar o aplicativo em geral, e essa estrutura ágil faz com que seja uma opção perfeita para startups em que você geralmente muda os motores do avião no meio do voo.

Comodificação

A história da tecnologia sempre foi a mercantilização constante de armazenamento, computação e rede, como um subproduto dos três tornando-se exponencialmente mais rápidos ou mais baratos. Muito disso está acontecendo tão rapidamente agora que pode ser fácil descartar uma tendência óbvia para uma moda passageira, ou deixar de notar quando você está trabalhando em problemas de tecnologia que não têm valor real.

A Cloud deixou claro que a execução de datacenters só fazia sentido em grande escala, e mesmo as grandes empresas que optam por administrar seus próprios recursos não estavam alocando bem seus recursos. Como esses provedores aperfeiçoaram a automação e o provisionamento de máquinas virtuais, agora há um caso claro de que até mesmo o gerenciamento deles é uma tarefa melhor executada em escala.

Para startups, isso significa que você não deve usar nenhum de seus motivos escassos em problemas de tecnologia que podem ser resolvidos por você. A mentalidade serverless permite que você dedique todos os seus engenheiros a resolver problemas de negócios e gaste pouquíssimo de suas horas em gerenciamento e infraestrutura de servidores.

Embora a Amazon e outras empresas continuem a aumentar o número de usuários, se você se concentrar em seus recursos de diferenciação, esse processo funcionará a seu favor. Simplificando, esse é um momento muito ruim para se trabalhar em gerenciamento de infraestrutura, mas é um bom momento para criar soluções que atendam às necessidades dos negócios.

Adotando a mentalidade sem servidor

O Serverless está evoluindo rapidamente — tornou-se uma federação de diferentes serviços gerenciados. Normalmente, isso inclui Functions-as-a-Service (o código que você executa), armazenamento e entrega de objetos, bancos de dados, rede e segurança. No mundo da AWS, isso equivale ao Lambda, S3, CloudFront, DynamoDB, Route53 e IAM, mas existem serviços semelhantes no Microsoft Azure e no Google Cloud.

Esses serviços são como o Lego. Se você dividir seu produto de tecnologia em um fluxograma, poderá descobrir quais peças de Lego precisa executar em cada etapa. Por exemplo, um serviço muito simples que recupera pedidos e recibos de usuários pode ter a seguinte aparência:

O mapeamento dessas etapas nas ferramentas da AWS poderia ser modelado da seguinte forma:

Identificar os eventos que chamam gatilhos para que as coisas aconteçam e onde as informações são armazenadas ou gerenciadas são os primeiros passos para dividir as tarefas. Na maioria dos diagramas iniciais, as etapas tendem a ser muito grosseiras (por exemplo, “Localizar recomendações do usuário”), mas as iterações subsequentes podem dividir a funcionalidade exata, simplificando a conversão em sem servidor.

Agora há muitos pessimistas que vão jogar fora as limitações deste modelo antes de considerar o que ele traz para a mesa. Para aplicativos sensíveis à latência ou atividades intensivas de computação, o serverless provavelmente não é a resposta. Mas em todos os produtos de inicialização que eu já vi, até mesmo esses serviços têm interfaces de usuário, sites e elementos assíncronos em todo o projeto que podem ser manipulados perfeitamente dessa maneira.

É tudo sobre o benefício comercial

Um grande estudo de caso inicial é o A Cloud Guru, um local de treinamento popular para engenheiros, com 600.000 clientes globais. Essa plataforma foi desenvolvida usando ferramentas sem servidor desde o início e foi dimensionada para fornecer uma grande quantidade de mídia a uma base de usuários em rápido crescimento.

Essa aplicação web consiste em 287 funções Lambda com quase 4 terabytes de dados armazenados no S3. Essas funções são usadas mais de 6 milhões de vezes por dia. Em qualquer outro projeto de sistema, isso exigiria uma grande quantidade de infraestrutura para construir, monitorar e manter. No entanto, em agosto de 2018, o custo do projeto do Cloud Guru para o Lambda era de apenas US $ 580 por mês.

Neste caso, o negócio concentra seu esforço em onde os usuários recebem o maior valor — ou seja, a qualidade do treinamento — e não na infraestrutura de entrega. De muitas maneiras, os mecanismos de transcodificação e transmissão desses vídeos são mundanos e comoditizados, de modo que a empresa deu o passo inteligente ao entregar esses processos à AWS.

Estou realmente animado com o que significa serverless para startups. Como disse Rupert Murdoch, “O mundo está mudando muito rápido. O grande não mais derrotará o pequeno. Será o rápido batendo o lento. ”O Serverless nos dá a melhor chance de entregar rapidamente, usar nossos recursos limitados para focar em nossos produtos e usar velocidade e agilidade a nosso favor.


Tem interesse em trabalhar conosco? Nós estamos sempre procurando por pessoas apaixonadas por tecnologia para fazer parte da nossa tripulação! Você pode conferir nossas vagas aqui.

Créditos

--

--

Edmo Lima
Creditas Tech

Ajudo a tornar o mundo digital menos virtual! - Software Engineer