Equilibrando autonomia com alinhamento - AWS Orientação prescritiva

As traduções são geradas por tradução automática. Em caso de conflito entre o conteúdo da tradução e da versão original em inglês, a versão em inglês prevalecerá.

Equilibrando autonomia com alinhamento

As arquiteturas de microfront-end são fortemente orientadas para a autonomia da equipe. No entanto, é importante distinguir entre áreas que podem oferecer flexibilidade e abordagens diversas para resolver problemas e áreas em que a padronização é necessária para alcançar o alinhamento. Líderes e arquitetos seniores devem identificar essas áreas desde o início e priorizar os investimentos para equilibrar segurança, desempenho, excelência operacional e confiabilidade dos microfront-ends. Encontrar esse equilíbrio envolve o seguinte: criação, teste, lançamento e registro de microfront-ends, monitoramento e alertas.

Criação de microfront-ends

Idealmente, todas as equipes estão fortemente alinhadas para maximizar os benefícios em termos de desempenho do usuário final. Na prática, isso pode ser difícil e exigir mais esforço. Recomendamos começar com algumas diretrizes escritas com as quais várias equipes podem contribuir por meio de um debate aberto e transparente. As equipes podem então adotar gradualmente o padrão de software Cookiecutter, que suporta a criação de ferramentas que fornecem uma maneira unificada de estruturar um projeto.

Usando essa abordagem, você pode incluir opiniões e restrições. A desvantagem é que essas ferramentas exigem investimentos significativos para criação e manutenção e para garantir que os bloqueadores sejam resolvidos rapidamente sem afetar a produtividade do desenvolvedor.

End-to-end testes para microfront-ends

O teste unitário pode ser deixado para os proprietários. Recomendamos implementar uma estratégia desde o início para fazer testes cruzados de microfront-ends executados em um shell exclusivo. A estratégia inclui a capacidade de testar aplicativos antes e depois de uma versão de produção. Recomendamos o desenvolvimento de processos e documentação para que pessoas técnicas e não técnicas testem manualmente as funcionalidades críticas.

É importante garantir que as mudanças não prejudiquem a experiência funcional ou não funcional do cliente. Uma estratégia ideal é investir gradualmente em testes automatizados, tanto para os principais recursos quanto para as características da arquitetura, como segurança e desempenho.

Lançamento de microfront-ends

Cada equipe pode ter sua própria maneira de implantar seu código, formar opiniões e ter sua própria infraestrutura. O custo da complexidade para manter esses sistemas geralmente é um impedimento. Em vez disso, recomendamos investir desde o início para implementar uma estratégia compartilhada que possa ser aplicada por ferramentas compartilhadas.

Desenvolva modelos com a plataforma CI/CD de sua escolha. As equipes podem então usar os modelos pré-aprovados e a infraestrutura compartilhada para liberar as alterações na produção. Você pode começar a investir nesse trabalho de desenvolvimento mais cedo, pois esses sistemas raramente precisam de atualizações significativas após um período inicial de teste e consolidação.

Registro em log e monitoramento

Cada equipe pode ter diferentes métricas de negócios e de sistema que deseja monitorar para fins operacionais ou analíticos. O padrão de software Cookiecutter também pode ser aplicado aqui. A entrega de eventos pode ser resumida e disponibilizada como uma biblioteca que vários microfront-ends podem consumir. Para equilibrar flexibilidade e fornecer autonomia, desenvolva ferramentas para registrar métricas personalizadas e criar painéis ou relatórios personalizados. Os relatórios promovem uma estreita colaboração com os proprietários do produto e reduzem o ciclo de feedback do cliente final.

Ao padronizar a entrega, várias equipes podem colaborar para monitorar as métricas. Por exemplo, um site de comércio eletrônico pode acompanhar a jornada do usuário desde o microfrontend “Detalhes do produto” até o microfrontend “Carrinho” e o microfrontend “Compra” para medir o engajamento, a rotatividade e os problemas. Se cada microfrontend registrar eventos usando uma única biblioteca, você poderá consumir esses dados como um todo, explorá-los de forma holística e identificar tendências interessantes.

Geração de alertas

Semelhante ao registro e ao monitoramento, o alerta se beneficia da padronização, com espaço para um certo grau de flexibilidade. Equipes diferentes podem reagir de forma diferente a alertas funcionais e não funcionais. No entanto, se todas as equipes tiverem uma forma consolidada de iniciar alertas com base em métricas coletadas e analisadas em uma plataforma compartilhada, a empresa poderá identificar problemas entre equipes. Esse recurso é útil durante eventos de gerenciamento de incidentes. Por exemplo, os alertas podem ser iniciados da seguinte forma:

  • Número elevado de exceções do JavaScript lado do cliente em uma versão específica do navegador

  • Tempo de renderização significativamente degradado acima de um determinado limite

  • Número elevado de códigos de status 5xx ao consumir uma API específica

Dependendo da maturidade do seu sistema, você pode equilibrar seus esforços em diferentes partes da sua infraestrutura, conforme mostrado na tabela a seguir.

Adoção

Pesquisa e desenvolvimento

Ascensão

maturidade

Crie microfront-ends.

Experimente, documente e compartilhe aprendizados.

Invista em ferramentas para criar novos microfront-ends. Evangelize a adoção.

Consolide as ferramentas para andaimes. Pressione pela adoção.

Teste os microfront-ends de ponta a ponta.

Implemente mecanismos para testar manualmente todos os microfrontends relacionados.

Invista em ferramentas para testes automatizados de segurança e desempenho. Investigue os sinalizadores de recursos e a descoberta de serviços.

Consolide ferramentas para descoberta de serviços, testes em produção e testes automatizados end-to-end.

Libere microfront-ends.

Invista em uma infraestrutura compartilhada de CI/CD e em lançamentos automatizados em vários ambientes. Evangelize a adoção.

Consolide as ferramentas para a infraestrutura de CI/CD Implemente mecanismos manuais de reversão. Pressione pela adoção.

Crie mecanismos para iniciar reversões automatizadas com base nas métricas e alertas do sistema e da empresa.

Observe o desempenho do microfrontend.

Invista em uma infraestrutura e biblioteca de monitoramento compartilhadas para registrar de forma consistente os eventos do sistema e da empresa.

Consolide as ferramentas para monitoramento e alertas. Implemente painéis entre equipes para monitorar a saúde geral e melhorar o gerenciamento de incidentes.

Padronize os esquemas de registro. Otimize o custo. Implemente alertas com base em métricas comerciais complexas.