Edge computing é um exemplo das inúmeras novas tecnologias que surgem a cada dia — o que representa tanto um desafio quanto uma oportunidade para os desenvolvedores. Especialmente hoje em dia, a gama de habilidades que os devs devem aprender e aplicar é gigantesca, mas aprender a usar novas tecnologias continua sendo imprescindível, já que com elas é possível habilitar aplicações mais poderosas, melhorar a experiência do usuário, simplificar o desenvolvimento e, no caso de edge computing, fazer tudo isso ao mesmo tempo.
Com baixa latência, melhor disponibilidade, segurança aprimorada, automação e redução de custos, o edge não apenas melhora a UX, mas expande as possibilidades de desenvolvimento. E quando combinado com serverless computing, qualquer desenvolvedor pode utilizar edge computing para criar aplicações de última geração e fazer a transição de protótipo para escala global usando frameworks de JavaScript.
É por isso que Alessandro Cauduro, novo Chief Developer Experience Officer (CDXO) da Azion e fundador da Haus, um ecossistema de marketing digital, acredita que todo desenvolvedor deve aprender a utilizar todo o potencial da tecnologia de edge computing. Neste artigo, conversamos com Cauduro sobre como o edge possibilita a próxima onda de aplicações usando as macrotendências que os desenvolvedores mais amam.
P: Então Alessandro, qual é o maior desafio que os desenvolvedores enfrentam hoje?
R: As empresas enfrentam uma lacuna de habilidades. Muitas vezes, o desenvolvedor é o único com conhecimento técnico da equipe, responsável por todo o ciclo de vida do desenvolvimento (planejamento, front-end, back-end, infraestrutura, testes e implementação). O front-end (a camada de apresentação ou interface do usuário) requer um conjunto de habilidades diferente do back-end, onde a lógica de negócios é feita. E apesar de que aprender essas habilidades possa ser complicado, felizmente, os desenvolvedores têm hoje boas ferramentas que permitem que realizem todas essas tarefas com altíssimo nível.
P: Quais são algumas das soluções para desenvolvedores que tornam isso possível?
R: As soluções serverless permitem que um único desenvolvedor forneça soluções de ponta, porque elimina a necessidade de DevOps. Isso significa que os devs não precisam se preocupar em configurar e monitorar servidores, e esses recursos podem ser escalados automaticamente. Além disso, os frameworks JavaScript front-end, como o Next.js, estão se tornando frameworks full-stack, já que o front-end e o back-end de um aplicativo podem ser desenvolvidos em JavaScript; e quando combinados com bancos de dados serverless, como o PlanetScale, e implementados no edge, é possível criar aplicações modernas e escaláveis.
P: Qual é a relação entre serverless e edge computing?
R: Serverless é um modelo de execução em cloud no qual provedores abstraem a oferta e gerenciam os servidores para seus clientes. Isso começou com o Google e a AWS, mas agora é popular em toda a indústria da tecnologia, pois simplifica a implementação e o planejamento de recursos. Além disso, o serverless começou com um modelo centralizado, baseado na localização geográfica dos data centers. E plataformas de edge serverless, como a Azion, estão um passo à frente das demais, porque ajudam os desenvolvedores a automatizarem o processo de distribuição de edge functions e edge applications no mundo todo; e quando elas forem necessárias, estarão muito mais próximas do usuário final, resultando em menor latência e aplicações com tempo de resposta imediato.
P: Quais outras tecnologias o edge possibilita?
R: Jamstack é um tipo de arquitetura moderna de aplicações que aumenta o poder do JavaScript, APIs e Markdown para desenvolvedores criarem aplicações web modernas implementadas em CDNs e renderizadas no lado do navegador. Isso resulta em aplicações com tempos de resposta imediatos e que usam menos recursos do servidor. É um ajuste perfeito para ofertas serverless, pois é mais fácil de escalar e elimina a necessidade de gerenciar um servidor, além de ter um front-end e um back-end totalmente desacoplados para garantir maior flexibilidade.
Esse modelo de arquitetura, também chamado de headless ou API-first, é muito flexível. Ele separa a camada de apresentação da lógica de negócios fornecida pelas APIs para que você forneça qualquer camada de apresentação de front-end — aplicativo de desktop, aplicativo da web, aplicativo nativo ou CLI.
Além disso, existem runtimes poderosos, como o WebAssembly (WASM), que pode ser executado no edge e possibilita altíssima performance com velocidade quase nativa, rodando mais rápido e usando menos recursos do que contêineres. E assim como o Jamstack, o WASM potencializa os recursos no lado do cliente. Por sua vez, uma desvantagem, por enquanto, é que ele é destinado a desenvolvedores avançados, já que exige o uso de linguagens como Rust, C++ ou Go. Nesse momento, podemos dizer que o WebAssembly está apenas engatinhando, mas devido ao seu modelo de computação eficiente, num futuro próximo veremos mais mudanças e desenvolvimentos animadores na forma como as aplicações serão implementadas.
P: Você vê uma possibilidade de que ferramentas que simplificam o trabalho do desenvolvedor possam resultar no desenvolvimento de aplicações menos flexíveis ou poderosas, ou vice-versa?
R: Em alguns casos, existem ferramentas low-code ou no-code, como Bubble, Outsystems e Microsoft PowerApps, que permitem que qualquer pessoa, mesmo que não seja desenvolvedora, implemente uma lógica de negócios e inicialize um MVP; mas o risco que se corre com isso é o de vendor lock-in. Porém, com ferramentas serverless criadas em padrões abertos, você pode ter aplicações low-code que ainda oferecem muita flexibilidade. Um dos benefícios da Plataforma de Edge Computing da Azion é justamente o fato de ser serverless, construída em padrões abertos, que além de trazer facilidade de uso, também amplia as possibilidades para os devs.
P: Então você diria que edge computing serverless é o futuro do desenvolvimento?
R: Sim. O mercado e as macrotendências para desenvolvedores apontam que o edge é o futuro, mas, além disso, proporcionar uma excelente experiência ao desenvolvedor é a melhor maneira de uma empresa se destacar e se preparar para crescer. Estou muito animado de trabalhar com a comunidade da Azion para facilitar a vida dos desenvolvedores que trabalham para atingir seus objetivos com a nossa plataforma.