Quando se trata de computação em nuvem, existem dois conceitos intimamente relacionados: alta disponibilidade e tolerância a falhas. É fácil combiná-los, mas cargas de trabalho altamente disponíveis não são as mesmas que toleram falhas.

A alta disponibilidade (High availability – HA) é um termo usado para descrever um sistema ou componente que está disponível 99,999% do tempo. Em outras palavras, ele não pode ficar indisponível por mais que cinco minutos no ano.

Os sistemas de alta disponibilidade são projetados para evitar qualquer ponto único de falha (single point of failure – SPOF), que pode causar uma interrupção.

Há muitas razões pelas quais você pode precisar de alta disponibilidade. Por exemplo, sua empresa pode depender de transações on-line e uma interrupção causaria danos financeiros significativos. Ou você pode fornecer serviços críticos que não podem ficar inativos por muito tempo.

Já a tolerância a falhas é a capacidade de um sistema continuar operando corretamente no caso de falhas de componentes.

Há muitas razões pelas quais você pode precisar de tolerância a falhas em seu sistema. Por exemplo:

  • Você pode ter um aplicativo crítico que precisa estar disponível o tempo todo.
  • Seu sistema pode estar sujeito a interrupções regulares devido a falhas de energia ou falhas de hardware.
  • Seu sistema pode estar sujeito a ataques de cibercriminosos.

A tolerância a falhas pode ser alcançada de várias maneiras, mas a abordagem mais comum é usar redundância. Isso significa que você tem várias cópias de cada componente, de modo que, se um falhar, outro possa substituí-lo.

Você também pode usar mecanismos de failover para alternar para um componente de backup se o principal falhar.

A seguir, vamos comparar  e entender como se aplicam os conceitos de alta disponibilidade e tolerância a falhas na AWS, para que as empresas possam implementá-las da melhor maneira possível.

Entenda a diferença entre os dois modelos

A principal diferença entre alta disponibilidade (HA) e tolerância a falhas (FT) é que a HA busca garantir que os serviços estejam sempre disponíveis, enquanto a FT se concentra em minimizar o tempo de inatividade caso um serviço venha a falhar.

Alta disponibilidade é uma estratégia para garantir que os serviços estejam sempre operacionais, mesmo em caso de problemas com o hardware ou o software. A HA normalmente se baseia em redundância de hardware e/ou software, para que, mesmo em caso de defeitos, haja um backup para manter os serviços online.

Tolerância a falhas, por sua vez, é uma estratégia para lidar com a indisponibilidade de serviços. FT busca minimizar o tempo de inatividade dos serviços após uma falha, através da replicação de dados e da criação de backups em tempo real.

Soluções AWS

Quando se trata de AWS, a alta disponibilidade é garantida pelo próprio sistema, pois a Amazon possui um vasto sistema de redundância, que inclui tanto hardware como software.

A alta disponibilidade não é incorporada a todos os produtos da AWS. Dependendo do nível de armazenamento escolhido, os dados em uma estrutura de armazenamento da Amazon podem ser armazenados, por padrão, em apenas uma zona de disponibilidade. Os dados ficarão indisponíveis se uma interrupção do serviço de armazenamento do S3 afetar essa zona de disponibilidade.

A tolerância a falhas, por outro lado, é uma estratégia que pode ser implementada pelo usuário da AWS, através da criação de backups em tempo real e da replicação de dados.

No entanto, a AWS oferece alguns produtos que podem ajudar na criação de backups e na replicação de dados. O Amazon Glacier, por exemplo, é um serviço de backup em nuvem que pode ser configurado para fazer backups automáticos dos seus dados.

Além disso, o Amazon EFS (Elastic File System) é um sistema de arquivos distribuído que pode ser usado para replicar os seus dados em várias zonas de disponibilidade.

Práticas recomendadas para configurar alta disponibilidade e tolerância a falhas

Independentemente das ferramentas e serviços específicos da AWS em uso, as seguintes práticas recomendadas ajudam os administradores de TI a obter alta disponibilidade e tolerância a falhas na computação em nuvem:

·        Considere o custo 

Os custos de infraestrutura aumentarão em relação aos de uma carga de trabalho não fortificada quando você projetar para alta disponibilidade ou tolerância a falhas. Avalie se a conta vale os benefícios.

·        Evite o bloqueio 

Tente não depender exclusivamente de ferramentas de alta disponibilidade ou tolerância a falhas que funcionam apenas em uma plataforma de nuvem específica, pois isso representa um aprisionamento do fornecedor

·        Plano para falhas de software

Conforme observado anteriormente, nem a alta disponibilidade, nem a tolerância a falhas protegem contra problemas de software. Observe o desempenho do software e formule planos eficazes de resposta a incidentes para mitigar o risco de falha.

·        Dados de backup

A alta disponibilidade e a tolerância a falhas não substituem os backups de dados. A perda de dados é um risco em qualquer ambiente, devido a problemas como exclusão de dados ou falha de servidores de backup, ou instâncias de aplicativos. Realize backups regulares, mesmo com proteções de alta disponibilidade e tolerância a falhas em vigor.

O principal benefício tanto da alta disponibilidade quanto da tolerância a falhas é a proteção contra vulnerabilidades de hardware, não problemas de software

Se uma instância em execução em um cluster altamente disponível falhar devido a um aplicativo com erros, a nova instância dessa carga de trabalho que a substitui provavelmente também falhará pelo mesmo motivo.

Da mesma forma, em um ambiente tolerante a falhas, um bug de aplicativo provavelmente fará com que ambas as instâncias de carga de trabalho falhem.

Por isso, a importância de se avaliar os investimentos financeiros e operacionais associados à alta disponibilidade e tolerância a falhas, visando verificar os benefícios do desempenho sustentado.

Caso ainda tenha dúvidas sobre o assunto, fale com um dos especialistas da OST e saiba mais sobre as soluções da AWS.