Desafios sem servidor que precisamos superar
Saiba quais desafios sem servidor nós precisamos superar. O Serverless está crescendo e não apenas a tecnologia, ou a adoção, mas também o que queremos dizer com o termo: sem servidor, em si. Em vez de apenas funções com servidor, podemos entender que o serverless hoje se aplica a todas as infraestruturas totalmente dimensionáveis. E também, orientadas a eventos, nas quais você não gerencia o servidor.
Um típico aplicativo sem servidor incluirá vários serviços e funções, todos conectados e muitas vezes conectados por funções sem servidor. Juntos, eles criam em conjunto um aplicativo de ponta a ponta.
Este é um passo além dos microsserviços conteinerizados que se tornaram familiares nos últimos anos. Os aplicativos sem servidor são efetivamente construídos a partir de múltiplos nanoservices, cada um executando uma única função especializada, dentro de um microsserviço específico.
Fundamentalmente, como Simon Wardley argumenta, as mudanças sem servidor computam em uma commodity como a eletricidade. Quando a eletricidade se tornou amplamente disponível, novas empresas passaram a usar as máquinas elétricas mais baratas, mais leves e fáceis de usar.
As empresas mais antigas, no entanto, já tinham suas linhas de produção gigantescas movidas a querosene e eram muito mais lentas para mudar.
O padrão de adoção semelhante nos desafios sem servidor
O Serverless – o aplicativo sem servidor – enfrenta um padrão de adoção semelhante, embora a um ritmo muito mais rápido. Novas empresas de software estão se tornando as primeiras a tirar proveito da flexibilidade, escalabilidade e redução de custos. Empresas mais antigas e estabelecidas estão começando a experimentar com o serverless como uma extensão para seus aplicativos baseados em monolith ou microsserviços existentes, mas o amplo uso dessa tecnologia pode levar mais tempo.
Sem servidor não é uma metodologia tudo ou nada. As equipes não precisam substituir toda a pilha de tecnologia. No entanto, elas podem começar com alguns componentes pequenos conectados ao seu legado. E à medida que o tempo passa, transferir mais e mais cargas de trabalho quando fizer sentido.
Estamos percebendo que esse é um padrão familiar de adoção para servidores sem servidor. Um engenheiro de software em uma empresa começará a brincar com funções sem servidor por diversão e talvez conectá-los ao Slack ou ao Alexa para fornecer algumas funcionalidades adicionais específicas.
A partir daí, é uma pequena etapa usar o Lambdas para automatizar algumas operações básicas de TI. Ou então, monitorar tarefas como usá-las para verificar o uso de recursos uma vez por hora ou para obter instantâneos do banco de dados.
A próxima etapa geralmente começa a usar o Lambdas em um aplicativo orientado a negócios, como o processamento de dados em um pipeline de ETL.
Consulte também:
- Cloud Hosting vs Servidores Dedicados e VPS
- Servidor Dedicado saiba o futuro dele na web
- O VPS está hospedando seu site na medida certa?
Inovações nos desafios sem servidor
Alguns dos primeiros inovadores, como o CapitalOne, o iRobot, o Netflix e o AirBnB, estão usando sem servidor extensivamente. Mas outras empresas irão avançar gradativamente para lá, adicionando mais componentes sem servidor à medida que vão.
A Amazon, a maior provedora de nuvem, anunciou vários novos produtos e recursos sem servidor em novembro de 2009. E além disso, outros provedores de nuvem estão fazendo seus próprios avanços na ampliação do espaço do produto sem servidor.
Ainda existem algumas limitações que precisam de mais trabalho. O problema do cold start para funções e serviços é uma preocupação para muitos usuários sem servidor. Portanto, talvez uma preocupação equivocada em alguns casos, mas isso é outra história. Os limites de simultaneidade da função podem ser outro problema quando você começa a escalar.
Os componentes e serviços de desafios sem servidor
O registro é outra preocupação. Um aplicativo sem servidor usa vários componentes, serviços, linguagens de programação, regiões e às vezes, até vários provedores de nuvem.
Serviços individuais podem criar logs, mas seguindo o aplicativo. Por outro lado, o fluxo é um desafio porque não há uma maneira simples de rastrear uma solicitação de um serviço ou função para outro.
Se houver um problema, pode ser difícil identificar a causa raiz. Então, a função expirou devido a um erro na função? Ou talvez em outro lugar em um dos componentes distribuídos? Os dados foram malformados em algum lugar no fluxo de solicitações? Há necessidade das ferramentas certas para fornecer a visibilidade e a observabilidade necessárias para garantir a solução de problemas e a otimização rápida e simples.
Mais amplamente, há dois grandes desafios que estão impedindo a adoção dessa tecnologia nova e emergente. O primeiro é a falta de conhecimento das equipes de engenharia e o segundo é a falta de ferramentas de suporte no ecossistema tecnológico para ajudar os desenvolvedores nas tarefas cotidianas.
O primeiro desafio pode ser abordado pelos fornecedores de nuvem compartilhando conhecimento e consultoria através de defensores do desenvolvedor, e pela comunidade de desenvolvedores compartilhando seu conhecimento e experiência através de publicações, blogs e eventos da comunidade.
O envolvimento de Statups nos sem servidores
O segundo desafio é abordado por muitas startups que criam as ferramentas necessárias para suportar a nova tecnologia. Empresas como Serverless Inc. PureSec, Lumigo, Dashbird e outras estão preenchendo essa lacuna.
Estamos em um período de transição, onde as organizações de software estão experimentando nas águas sem servidor. Ainda sobre aplicativo sem servidor, a melhor maneira de adotar novas tecnologias é uma abordagem gradual, começando com um projeto de pequena escala e crescendo a partir daí. Gerenciar essa transição provavelmente será uma indústria em crescimento para arquitetos de software e consultorias especializadas que podem ajudar as empresas a gerenciar a mudança.
Mesmo com tantos desafios sem servidor, a computação em nuvem está crescendo dramaticamente. As metodologias de engenharia devem evoluir para suportar aplicativos nativos na nuvem, com ênfase no aumento da velocidade de desenvolvimento.
A metodologia sem servidor faz exatamente isso, transferindo tarefas não críticas para o provedor de nuvem e concentrando os esforços da equipe na lógica de negócios para se mover mais rapidamente. Esta é a promessa de serverless, e estamos vendo isso começar a ser cumprido.
Este não é apenas o desafios sem servidor que precisamos superar. Há de vir muitos!