Framework do ciclo de vida de resiliência: uma abordagem contínua para a melhoria da resiliência - Recomendações da AWS

Framework do ciclo de vida de resiliência: uma abordagem contínua para a melhoria da resiliência

Amazon Web Services (colaboradores)

Outubro de 2023 (histórico do documento)

Atualmente, as organizações modernas enfrentam um número cada vez maior de desafios relacionados à resiliência, especialmente quando as expectativas dos clientes mudam para uma mentalidade de sempre ativa e sempre disponível. Equipes remotas e aplicações complexas e distribuídas estão associadas a uma necessidade crescente de lançamentos frequentes. Como resultado, uma organização e suas aplicações precisam ser mais resilientes do que nunca.

A AWS define resiliência como a capacidade de uma aplicação resistir ou se recuperar de interrupções, incluindo aquelas relacionadas à infraestrutura, serviços dependentes, configurações incorretas e problemas transitórios de rede. (Consulte Resiliência e os componentes da confiabilidade na documentação do AWS Well-Architected Framework, Pilar Confiabilidade.) No entanto, para alcançar o nível desejado de resiliência, muitas vezes são necessárias compensações. A complexidade operacional, a complexidade da engenharia e o custo precisarão ser avaliados e ajustados adequadamente.

Com base em anos de trabalho com clientes e equipes internas, a AWS desenvolveu um framework de ciclo de vida de resiliência que captura os aprendizados e as práticas recomendadas de resiliência. O framework descreve cinco etapas principais que são ilustradas no diagrama a seguir. Em cada etapa, você pode usar estratégias, serviços e mecanismos para melhorar sua postura de resiliência.

Framework do ciclo de vida de resiliência

Essas etapas são analisadas nas seguintes seções deste guia:

Termos e definições

Os conceitos de resiliência de cada etapa são aplicados em diferentes níveis, desde componentes individuais até sistemas inteiros. A implementação desses conceitos requer uma definição clara de vários termos:

  • Um componente é um elemento que executa uma função e consiste em recursos de software e tecnologia. Exemplos de componentes incluem configuração de código, infraestrutura, como rede, ou até mesmo servidores, armazenamentos de dados e dependências externas, como dispositivos de autenticação multifator (MFA).

  • Uma aplicação é uma coleção de componentes que agrega valor empresarial, como uma loja virtual para o consumidor ou o processo de backend que aprimora os modelos de machine learning. Uma aplicação pode consistir em um subconjunto de componentes em uma única conta da AWS, ou pode ser uma coleção de vários componentes que abrangem várias regiões e Contas da AWS.  

  • Um sistema é uma coleção de aplicações, pessoas e processos necessários para gerenciar uma determinada função comercial. Ele engloba a aplicação necessária para executar uma função; processos operacionais como integração e entrega contínuas (CI/CD), observabilidade, gerenciamento de configuração, resposta a incidentes e recuperação de desastres; e os operadores que gerenciam essas tarefas. 

  • Uma interrupção é um evento que impede que sua aplicação entregue sua função comercial adequadamente.

  • Uma deficiência é o efeito que uma interrupção terá em uma aplicação se não for atenuada. As aplicações poderão ser prejudicadas se sofrerem um conjunto de interrupções.

Resiliência contínua

O ciclo de vida da resiliência é um processo contínuo. Mesmo dentro da mesma organização, suas equipes de aplicações podem atuar em diferentes níveis de completude em cada etapa, dependendo dos requisitos da sua aplicação. No entanto, quanto mais completo for cada etapa, maior será o nível de resiliência da sua aplicação.

Você deve considerar o ciclo de vida da resiliência como um processo padrão que sua organização pode operacionalizar. A AWS modelou intencionalmente o ciclo de vida de resiliência para ser semelhante ao ciclo de vida de desenvolvimento de software (SDLC), com o objetivo de incorporar planejamento, teste e aprendizado em todos os processos operacionais enquanto você desenvolve e opera suas aplicações. Como acontece com muitos processos de desenvolvimento ágil, o ciclo de vida de resiliência pode ser repetido a cada iteração do processo de desenvolvimento.  Recomendamos que você aprofunde as práticas em cada etapa do ciclo de vida progressivamente ao longo do tempo.