O blog da AWS

Como a RD Saúde aumentou sua resiliência na AWS com testes usando o AWS Fault Injection Service

Por Carolina Duarte, Senior Customer Solutions Manager (CSM) na Amazon Web Services (AWS); Welenton Webler, Solutions Architect (SA) na AWS; Danilo Cabreira, Executivo de Arquitetura e Engenharia na RD Saúde; e Luiz Kischel, especialista DevOps na RD Saúde.

A RD Saúde, líder no varejo farmacêutico no Brasil, implementou práticas de engenharia do caos usando AWS Fault Injection Service (AWS FIS) para garantir alta disponibilidade para suas plataformas de missão crítica. Este post detalha como a companhia fortaleceu a resiliência de sua infraestrutura em nuvem, alcançando disponibilidade de até 99,99% em componentes críticos e reduzindo o tempo de recuperação para no máximo 3 minutos.

Contexto e Desafio do Negócio

A RD Saúde é líder no mercado brasileiro de varejo farmacêutico com mais de 3,300 farmácias e mais de 50 milhões de clientes ativos em todos os 27 estados brasileiros sob as marcas Raia e Drogasil. Além do varejo, a companhia possui soluções B2B e plataformas digitais para fornecer um ecossistema holístico de saúde em uma estrutura de vendas multicanal, suportando milhões de clientes diariamente nas lojas físicas, online, por telefone ou por aplicativo.

O ecossistema digital da RD Saúde contempla uma vasta gama de componentes, incluindo:

  • Canais Digitais (site, aplicativos móveis e marketplace);
  • Microserviços Corporativos que atendem farmácias, centros de distribuição e canais digitais;
  • Plataforma de Saúde para soluções de saúde e bem-estar;
  • Data & Analytics.

Garantir a alta disponibilidade nesse cenário complexo é uma tarefa difícil. Para avaliar os padrões de resiliência aplicados e evitar interrupção não planejada de serviços críticos era necessário testar a resiliência de seu ambiente digital e identificar pontos de falha antes que impactassem em produção. O objetivo era alcançar uma disponibilidade de até 99,99% nos componentes críticos e garantir um tempo máximo de recuperação de 3 minutos em caso de falhas, assegurando assim a continuidade dos serviços essenciais para milhões de clientes em todos os canais de atendimento.

Implementação da Solução

A RD Saúde implementou o AWS FIS, que é um serviço totalmente gerenciado para executar experimentos de injeção de falhas para melhorar a performance, a observabilidade e a resiliência de uma aplicação. Um experimento é o processo customizado de testes em que eventos disruptivos (como interrupções do servidor ou limitação de API) são criados deliberadamente para estressar uma aplicação em ambientes de teste ou produção.

No AWS FIS os experimentos podem ser derivados de cenários onde estão definidos eventos ou condições predefinidos para testar a resiliência de aplicações. Disponível no Console, os cenários são criados e mantidos pela AWS na biblioteca de cenários, minimizando o trabalho de configuração ao fornecer um grupo pré-definido de alvos e ações de falha (como, por exemplo, interromper 30% das instâncias em um grupo de auto-scaling). A biblioteca oferece descrições detalhadas, pré-requisitos e informações sobre implementação de cada cenário, permitindo que as equipes realizem testes de resiliência de forma mais estruturada e eficiente. Cenários servem como modelos pré-criados que podem ser usados para criar modelos de experimentos, que, por sua vez, são usados para executar experimentos reais.

Para simular indisponibilidade de zonas de disponibilidade (AZs), a companhia criou experimentos baseados no template AZ Availability: Power Interruption. Os experimentos se concentraram em componentes críticos, como:

  • Contêineres de aplicação no Amazon Elastic Kubernetes Service (Amazon EKS);
  • Sistemas de bancos de dados no Amazon Relational Database Service (Amazon RDS);
  • Sistemas de cache no Amazon ElastiCache.

Os cenários incluíram simular a indisponibilidade de uma AZ, testar mecanismos de failover e validar a resiliência do sistema sob várias condições de falha, incluindo interrupção de conectividade.

Disponibilidade de AZ: cenário de interrupção de energia

Disponibilidade de AZ: cenário de interrupção de energia

A estratégia de implementação foi distribuída em fases:

  1. Planejamento e treinamento inicial dos times (3 meses)
  2. Desenvolvimento de cenários de teste em ambientes não produtivos (2 meses)
  3. Condução de testes controlados em produção com simulação de falha em uma única AZ (1 mês)
  4. Condução de testes abrangentes em produção em todas as aplicações (1 mês)

A RD Saúde utilizou o AWS Resilience Lifecycle Framework, que é uma abordagem contínua desenvolvida pela AWS com base em anos de experiência com clientes e equipes internas, que visa melhorar a resiliência de aplicações e organizações. O framework é composto por cinco estágios principais:

  1. Definição de objetivos;
  2. Design e implementação;
  3. Avaliação e Teste;
  4. Operação, e;
  5. Resposta e Aprendizado.

Esta estrutura foi criada para ajudar as organizações a enfrentarem os desafios crescentes relacionados à resiliência, especialmente em um contexto onde os clientes esperam disponibilidade contínua. O framework pode ser aplicado em diferentes níveis, desde componentes individuais até sistemas completos, e foi intencionalmente modelado para se integrar ao Ciclo de Vida de Desenvolvimento de Software (SDLC), permitindo que as organizações incorporem práticas de resiliência de forma progressiva e contínua.

Fases da resiliência contínua

Fases da resiliência contínua

Resultados e Benefícios

A implementação de práticas de engenharia do caos com o AWS FIS proporcionou à RD Saúde melhorias significativas na resiliência da infraestrutura de nuvem, incluindo:

  • Refinamento de métricas e processos, e implementação de operações Multi-AZ no uso do Amazon RDS, Amazon ElastiCache e Amazon EKS;
  • Aprimoramento no processo geral de observabilidade na nuvem, incluindo novas métricas de monitoramento e novos alertas de falha;
  • Aprimoramento dos procedimentos de roteamento de tráfego através de melhorias em políticas, balanceamento de carga, rotas, documentação e monitoramento
Gráficos de dashboard de monitoramento com indicadores das melhorias

Gráficos de dashboard de monitoramento com indicadores das melhorias

Além disso, a companhia testemunhou melhorias substanciais nas métricas de disponibilidade, incluindo:

  • Aumento da disponibilidade do Amazon RDS de 99,5% para 99,95%
  • Aumento da disponibilidade do Amazon ElastiCache de 99,9% para 99,99%
  • Redução do tempo de indisponibilidade médio em 97,5%, com os tempos de recuperação limitados a um máximo de 3 minutos.

Adicionalmente, a companhia observou melhorias significativas nas métricas operacionais de MTTD (Mean Time to Detect – Tempo Médio de Detecção) e MTBF (Mean Time Between Failures – Tempo Médio Entre Falhas). Com o aprimoramento do sistema de monitoramento e alertas, o MTTD foi reduzido para menos de 1 minuto, permitindo uma resposta mais rápida a incidentes. O MTBF aumentou substancialmente, chegando a mais de 45 dias entre ocorrências significativas, demonstrando a efetividade das melhorias implementadas na infraestrutura e nos processos de resiliência.

O impacto nos negócios foi igualmente relevante, incluindo:

  • Identificação proativa de lacunas de resiliência, tornando a engenharia do caos um procedimento padrão para novos projetos;
  • Melhor experiência de uso devido a aprimoramento no tratamento de recuperação de transações instáveis ou interrompidas, de forma transparente para o cliente;
  • Mitigação do risco de perda de receita por desistência do cliente em momentos de instabilidade, graças à maior resiliência e à melhor experiência do cliente.

Conclusão

A RD Saúde, com um crescimento de 47% ano após ano nos canais digitais e realizando mais de 410 milhões de atendimentos, alcançou resultados expressivos na disponibilidade dos serviços RDS e ElastiCache, com redução de 97,5% no tempo de indisponibilidade e recuperação em até 3 minutos com a implementação do AWS FIS. A iniciativa trouxe benefícios adicionais importantes como:

  • Melhor governança na criação de recursos em ambiente produtivo;
  • Sistema de alertas mais eficiente;
  • Infraestrutura como Código (IaC) melhor preparada para recuperação;
  • Padronização de testes de resiliência, com baixo impacto nos custos, e;
  • Geração de evidências para processos de auditoria

Como resultado, a RD Saúde estabeleceu sistemas mais robustos que garantem uma experiência superior aos clientes, mantendo excelência operacional e demonstrando como a engenharia do caos pode trazer melhorias concretas na confiabilidade e continuidade dos negócios em ambientes na nuvem.

Para saber mais sobre como o AWS FIS pode transformar os testes de resiliência da sua organização, visite a página do AWS Fault Injection Service.

Recursos Adicionais

Autores

Carolina Duarte possui mais de 20 anos de experiência em desenvolvimento de soluções digitais, incluindo plataformas e produtos em nuvem. Atualmente é Senior Customer Solutions Manager na AWS, ajudando a identificar necessidades, desenvolver soluções em nuvem, otimizar recursos e garantir o sucesso na implementação de serviços AWS.
https://www.linkedin.com/in/carolinabbd/
Welenton Webler é Arquiteto de Soluções na AWS, com foco em guiar clientes do segmento do varejo e bens de consumo nas suas jornadas de boas práticas de arquitetura em nuvem.
https://www.linkedin.com/in/welenton/
Danilo Cabreira é Executivo de Arquitetura e Engenharia na RD Saúde, onde é responsável pela estratégia de adoção, migração e boas práticas para ambientes em nuvem.
https://www.linkedin.com/in/danilo-mendonca-cabreira/

 

Luiz Kischel é especialista DevOps de Platform Engineering na RD Saúde, com foco em CI/CD, Kubernetes e otimização de desempenho de aplicações.
https://www.linkedin.com/in/luiz-kischel-b487251a4/

Revisores

Renato Azevedo possui mais de 20 anos de experiência em tecnologia, Mestre em Informática pela UFRJ com pesquisas na area de escalabilidade de microsserviços. Atualmente atua como Senior Solutions Architect na AWS e é core member da comunidade técnica de resiliência da AWS, onde contribui com sua expertise em arquiteturas resilientes e de alta disponibilidade.
https://www.linkedin.com/in/renatow4
Caio Monteiro é Principal Solutions Manager na Amazon Web Services (AWS) com mais de 15 anos de experiência em tecnologia e gestão. Possui sólida experiência em segurança da informação e liderança de equipes, com foco em soluções para clientes.
https://www.linkedin.com/in/caio-monteiro-aws/