Arquitetura serverless orientada a eventos: impulsionar a inovação com a próxima geração de plataformas escaláveis

Arquitetura serverless orientada a eventos: impulsionar a inovação com a próxima geração de plataformas escaláveis

Num mundo marcado por constante mudança e incerteza, as organizações têm necessitado de se adaptar e evoluir continuamente para conseguir competir em contextos imprevisíveis. Considerando um cenário em que é decisivo acompanhar o mercado e inovar rapidamente, a criação de sistemas escaláveis e adaptáveis torna-se extremamente relevante

Com a promessa de maior modularidade, escalabilidade e resiliência, as arquiteturas orientadas a eventos têm-se destacado, nos últimos anos, em relação às abordagens RESTful mais tradicionais para o desenvolvimento de microsserviços. Na comunidade de engenharia, tem-se verificado uma tendência para uma estratégia serverless-first - que se caracteriza pela inexistência de gestão de servidores, preços pay-as-you-go, escalonamento contínuo e tolerância a falhas.

Neste artigo, partilho os princípios fundamentais, as preocupações comuns e as principais aprendizagens das equipas de engenharia com quem trabalhei e que adotaram esta abordagem com sucesso.

1) O que é uma arquitetura serverless orientada a eventos?

Uma arquitetura orientada a eventos - ou EDA, event-driven architecture - é uma abordagem de design em que as aplicações são compostas por pequenos serviços independentes que reagem a eventos. Estes eventos podem ser qualquer coisa, desde um clique num botão até uma alteração numa base de dados. O termo “serverless” significa que a infraestrutura subjacente é gerida por um fornecedor de serviços na cloud, permitindo que os programadores se concentrem em escrever código, em vez de manter servidores.

2) Preocupações comuns

Latência

Ao contrário das aplicações monolíticas - que podem processar tudo no mesmo espaço de memória, num único dispositivo -, as aplicações orientadas a eventos comunicam através de redes. Este design favorece o aumento da escalabilidade e da disponibilidade, tendo como consequência uma latência variável. Assim, os serviços que exigem uma baixa latência - assim como as aplicações de negociação de alta frequência (high-frequency trading) nos bancos - dificilmente beneficiam desta arquitetura.

A latência é também uma das principais preocupações associadas às serverless functions, especialmente em cenários de “cold start”. Quando uma função é invocada após um período de inatividade, a plataforma pode ter de criar uma nova instância, atrasando assim a sua execução. As soluções para mitigar este problema incluem manter as funções “quentes” (invocando-as regularmente para evitar períodos de inatividade) e otimizar o desempenho da função através de boas práticas de programação.

Monitorização e debugging

As aplicações monolíticas tradicionais oferecem mecanismos simples de logging e debugging. Em contrapartida, as arquiteturas serverless orientadas a eventos distribuem a funcionalidade por vários serviços e funções, o que dificulta o diagnóstico de problemas. As equipas de engenharia podem ultrapassar esta questão utilizando serviços de logging e monitorização centralizados, como o AWS CloudWatch, o Azure Monitor, ou ferramentas de terceiros (como o Datadog). O logging estruturado e o rastreio abrangente são fundamentais para manter a observabilidade.

Vendor Lock-In

A adoção de uma arquitetura serverless orientada a eventos geralmente implica a associação a um fornecedor de cloud específico, gerando preocupações com o bloqueio de fornecedor (vendor lock-in). Para mitigar esse risco, algumas equipas optam por estratégias multi-cloud ou utilizam frameworks como o Serverless Framework ou Terraform, que fornecem uma camada de abstração e facilitam a portabilidade.

Segurança

Uma arquitetura serverless orientada a eventos requer uma abordagem diferente à segurança. As funções têm tempo de execução e acesso limitados, o que minimiza a superfície de ataque. No entanto, garantir uma comunicação segura entre os serviços, gerir as permissões e proteger dados sensíveis continua a ser crucial. A implementação do princípio do privilégio mínimo, a encriptação de dados em trânsito e a atualização regular das dependências são algumas das práticas recomendadas.

3) Aprendizagens das equipas de engenharia

Adotar uma mentalidade diferente

Mudar para uma arquitetura orientada a eventos requer uma mudança de mindset. As equipas precisam de criar aplicações que respondam a eventos de forma assíncrona, sendo que esta modularidade promove a escalabilidade e a tolerância a falhas. A título de exemplo, uma aplicação de e-commerce pode gerir o processamento de encomendas, o pagamento e a notificação como funções separadas, despoletadas por eventos específicos, assegurando que as falhas num componente não sejam propagadas pelos restantes componentes.

Aceitar a granularidade

As equipas de engenharia chegaram à conclusão de que as características das serverless functions promovem o Desenvolvimento Ágil. As funções podem ser desenvolvidas, testadas e implementadas de forma independente, acelerando os ciclos de desenvolvimento. Essa granularidade também permite a otimização e o dimensionamento de partes específicas da aplicação, resultando numa melhor utilização de recursos e economia de custos.

Automatizar tudo

A automação é crucial para lidar com a complexidade das aplicações serverless orientadas a eventos. Os pipelines de integração contínua/entrega contínua - Continuous Integration (CI) e Continuous Deployment (CD) - devem ser configurados para suportar deployment, teste e escalonamento. Já as ferramentas Infrastructure as Code (IaC) - como o AWS CloudFormation ou o Azure Resource Manager - simplificam a gestão de recursos, permitindo às equipas replicar ambientes sem esforço.

Monitorizar os custos

Embora uma arquitetura serverless orientada a eventos possa promover a redução de despesas, as equipas devem monitorizar atentamente a sua utilização. O custo das funções está diretamente ligado ao número de invocações e ao tempo de execução, o que pode trazer custos inesperados. As ferramentas que disponibilizam dados sobre a utilização de recursos e a distribuição dos custos ajudam a otimizar as plataformas e a evitar derrapagens orçamentais.

Conclusão

Uma arquitetura serverless orientada a eventos proporciona um meio eficaz de criar aplicações adaptáveis e resilientes, sendo que as equipas de engenharia podem beneficiar deste paradigma para inovar de forma rápida e eficiente. À medida que mais organizações partilham as suas experiências, o caminho para uma adoção bem sucedida torna-se mais evidente, abrindo-se as portas para a próxima geração de plataformas escaláveis.

Tags

RECOMENDADO PELOS LEITORES

REVISTA DIGITAL

IT INSIGHT Nº 51 Setembro 2024

IT INSIGHT Nº 51 Setembro 2024

NEWSLETTER

Receba todas as novidades na sua caixa de correio!

O nosso website usa cookies para garantir uma melhor experiência de utilização.