A computação sem servidor é a maior mudança em 2018! (para desenvolvedores)

Já faz 9 meses desde que ouvi pela primeira vez o termo " sem servidor ". Lembro-me claramente de sentir um certo espanto com o fato de que um dia serei capaz de criar aplicativos da web sem a necessidade de ter e gerenciar um servidor, o que para um desenvolvedor front-end, como eu, seria um sonho tornado realidade .

O que é o Serverless?

Bem, esse sonho ainda não se realizou! Usar a computação sem servidor não significa que você não terá um servidor no sentido técnico, apenas significa que você não terá que gerenciá-lo sozinho. Você usa serviços como o AWS Lambda, o Microsoft Azure ou o Google Cloud Functions para aproveitar sua infraestrutura em nuvem flexível, fácil de dimensionar e econômica, criando microsserviços que iniciam ou param funções. O objetivo aqui é reduzir os custos de manutenção e, ao mesmo tempo, permitir que o desenvolvedor se concentre na lógica de negócios, em vez de ficar constantemente pensando sobre a infraestrutura, a segurança e as atualizações. Como os provedores de serviços têm uma oferta semelhante, para os fins deste artigo, vou apenas falar sobre o AWS Lambda e prometo voltar para falar sobre as outras opções mais tarde.

O conceito, simples como é, me fascinou desde o começo. Trabalhar com projetos corporativos de larga escala me ensinou que infraestrutura e escalabilidade sempre serão um problema. Com o Serverless, você pode contornar esse problema, pois toda a lógica do servidor, problemas e responsabilidades são cobertos pelos provedores de serviços.

Então, onde está a mágica?

Você não pode falar sobre o quão incrível é o Serverless se você não sabe o que significa FaaS (um acrônimo para Functions as a Service). O FaaS é basicamente um pequeno trecho de código (pense em uma pequena função reutilizável) que retorna um valor depois de executar seu curso. É simples assim. Com o AWS Lambda, que é o serviço FaaS da Amazon, seu código será dividido em funções do Lambda que são executadas em vários ambientes:

Node.js – v6.10, v8.10 (recomendado)

Java – Java 8

Python – Python 2.7

.NET Core – .NET Core 1.0.1 (C #)

Para obter seu código em uma função do Lambda, faça o upload de um zip ou use o AWS Lambda Management Console . O nome da função deve ser único, caso contrário, você receberá um erro. Você pode ler mais sobre como implantar e criar funções aqui .

“Executar código sem pensar em servidores. Pague apenas pelo tempo de processamento que você consome ”. – AWS Lambda

Para entender melhor a magia do Serverless, permita-me pintar uma foto para você.

Digamos que você tenha 10 pessoas em sua startup de tecnologia que bebem café todas as manhãs. Todo mundo gosta do café com muito leite. Para ter certeza de que você sempre tem leite, você comprou uma vaca que se senta confortavelmente na cozinha do escritório e está pronta para fornecer leite suficiente para todo o escritório.

De repente, Mark Cuban investe $ 16M na empresa e você emprega mais 100 pessoas (e antes que você pergunte, sim, todos que foram contratados bebem seu café com leite. Foi um pré-requisito para contratação). Porque você tem mais pessoas no escritório, você precisará obter mais vacas para entregar leite. Essa é basicamente a maneira tradicional de executar seus serviços. Você compra um servidor e tem um certo conjunto de recursos à sua disposição. Se você precisar de mais, terá que envolver o provedor do servidor, certificar-se de que seu aplicativo foi criado para escalar, atualizar o hardware, etc. Com o Serverless, esse problema desaparece. Seu leite é entregue exatamente quando você precisa, sem ter um monte de vacas tomando seu precioso espaço de escritório através de uma plataforma que escala quando necessário. Você paga apenas o recurso que acaba usando. Muitos serviços, como o AWS Lambda, oferecem cerca de 1 milhão de solicitações gratuitas.

Betsy e seus amigos saindo – por volta de 2018

Os benefícios

Uma das muitas vantagens de ir sem servidor é a drástica redução de custos, já que você paga pelo que usou. Para o AWS Lambda, o preço de computação mensal é de US $ 0,00001667 por GB-s e o nível gratuito fornece 400.000 GB-s. O preço de solicitação mensal é de US $ 0,20 por 1 milhão de solicitações e o nível gratuito fornece solicitações de 1 milhão por mês.

Apenas mudando da hospedagem tradicional para a computação sem servidor, vimos empresas que conseguiram reduzir os custos de servidor de US $ 10.000 para US $ 370 por mês ( leia mais ), o que é incrível, não importa como você olhe para ele.

$ 370 para baixo de $ 10.000 por mês é um grande negócio!

Na minha opinião, o próximo grande benefício de ir sem servidor é o tempo de entrada no mercado. Como você não se debruça sobre os problemas de infra-estrutura, os lançamentos são fáceis de aplicar e você fica com bastante tempo para se concentrar no aplicativo real, e não na feitiçaria preta que está acontecendo embaixo das capas.

Para grandes aplicativos corporativos que exigem muito trabalho preparatório, como testes de compatibilidade com versões anteriores ou mesclagem de todos os novos componentes com a API antiga, ir sem servidor poderia ser uma solução melhor, já que o código é dividido em pequenas funções reutilizáveis ??mais fáceis de gerenciar e gerenciar. trabalhar com (para não mencionar o corte no custo).

Outra coisa muito importante a se notar sobre o serverless é a capacidade de escalar normalmente quando chega a hora. É algo que geralmente é difícil de alcançar e, se você conseguir, geralmente custa um braço e uma perna.

“O AWS Lambda dimensionará dinamicamente a capacidade em resposta ao aumento do tráfego. Para lidar com qualquer aumento no tráfego, o Lambda aumentará imediatamente suas funções simultâneas por um valor predeterminado, dependendo de qual região é executada. ”

– AWS Lambda

Então, por que todo mundo não está sem servidor?

Como tudo mais neste mundo, tem seus… inconvenientes. Cloud computing e Serverless como uma tecnologia existem há anos, mas só agora conseguimos obtê-la por um preço econômico. A maioria dos provedores que oferecem serviços sem servidor ainda precisa atingir uma maturidade na qual você, como consumidor, obtém todas as ferramentas necessárias para iniciar seu aplicativo. Tomemos por exemplo o AWS Lambda, na minha opinião, uma das melhores opções por aí. Falta gravemente no departamento de relatórios de monitoramento e erros; algo em que os desenvolvedores confiam. Felizmente, existem opções como o Dashbird.io para contornar essa "deficiência".

E quanto às limitações?

Cada prestador de serviços tem um conjunto de “limitações rígidas” que você terá que respeitar para se divertir .

Vamos voltar ao AWS Lambda. Você tem certos limites, mas eu aconselho que você passe da palavra “limitações” e pense nelas como diretrizes. O ambiente é limitado a 512 MB de espaço em disco, a memória pode variar de 128 a 1536 MB e o tempo limite de execução para uma solicitação é de 5 minutos. Se você é tão inclinado, você pode ler todos os limites do AWS Lambda aqui .

Conclusão – meus dois centavos

Como uma tecnologia que está disponível para as massas, o serverless ainda está em sua infância e vai demorar um pouco antes de começar a se espalhar como um incêndio, mas acredite em mim: É. Vai.

Principalmente por dois motivos: custo e velocidade em que você desenvolve e implanta o aplicativo. Concedido, os servidores tradicionais não vão a lugar algum, mas eu sinceramente acredito que nos próximos dois anos, veremos uma mudança em direção a serverless e FaaS. Estou ansioso para ver como a tecnologia evoluirá e como os desenvolvedores e empreendedores se unirão, encontrando novas maneiras de implementar e desenvolver aplicativos.

Sem servidor – meio-dia hacker
Leia escrevendo sobre o Serverless no Hacker Noon. como os hackers começam suas tardes. hackernoon.com