6 características que garantem alta disponibilidade em uma solução

Alta disponibilidade é um conceito cada vez mais solicitado em soluções que envolvem TI. Restrito alguns anos atrás a softwares de alto risco e missão crítica, hoje a alta conectividade fez com que esse requisito se tornasse estratégico para boa parte das empresas.

A alta disponibilidade é a garantia que um sistema ou serviço continue operacional mesmo que ocorram falhas. Essa característica se tornou muito comum a partir do uso dos serviços de Cloud Computing.

Mesmo se tornado uma condição comum a diversos tipos de software ou serviços, a ideia de ter uma solução com garantias próximas a 100% de disponibilidade vai um pouco além de seu conceito inicial. Existem características que complementam a definição de alta disponibilidade e que precisam fazer parte da solução. Serão essas características que vamos ver neste artigo.

Características para garantir a alta disponibilidade de uma solução

Os atributos desta lista não se limitam a descrever somente requisitos a serem atendidos; eles vão além e demonstram ações que precisam fazer parte de uma estratégia de alta disponibilidade e são aplicados ao software e à infraestrutura que fazem parte da solução.

1. Capacidade de expansão

O primeiro ponto a ser verificado é a capacidade da solução de expandir. É preciso garantir que seja possível ampliar espaço em disco, largura de banda, quantidade de usuários acessando, número de transações simultaneamente. Tudo isso sem que ocorra perda de performance ou indisponibilidade do serviço durante sua operação.

A preocupação pela escalabilidade da solução se tornou bem comum principalmente depois que tivemos a adoção dos serviços de Cloud Computing à disposição dos projetos.

2. Resistência a falhas

Outro ponto importante na garantia do uso da solução é a tolerância a falhas. Sabemos que a busca por bugs é uma busca contínua. Entretanto, como não podemos garantir um sistema totalmente livre de falhas, precisamos pelo menos garantir ao máximo o tratamento dos erros.

Isso pode até ser feito a partir de uma mensagem genérica ao usuário, enquanto em paralelo o time de suporte e desenvolvimento busca a identificação e correção dos problemas encontrados.

3. Capacidade de recuperação

Em caso de problemas mais graves, como perda de banco de dados e servidores, ou indisponibilidade da rede, e também nos casos mais extremos, como a ausência do datacenter, a solução está preparada para migrar para um novo ambiente recuperando os dados com o mínimo de impacto ao cliente?

Talvez esse seja um dos requisitos mais críticos a serem atendidos, pois envolve uma grande estrutura de redundância e um tratamento de recuperação que tenha o menor impacto em relação a perdas financeiras.

4. Habilidade de ser monitorada

Essa característica não implica somente ter uma equipe verificando os ativos de infraestrutura da solução, mas inclui também a capacidade de se identificar através do software possíveis problemas que possam ser monitorados.

Um exemplo para esse tipo de monitoramento com base no software é a leitura do log em busca de erros indicando que as transações estão apresentando algum tipo de rejeição. Isso significa dizer que os ativos de infraestrutura podem estar funcionando corretamente, mas por algum motivo na camada de software as transações estão sendo rejeitadas, o que causa prejuízos financeiros.

5. Possui boas práticas de segurança

Falar de segurança envolve diferentes áreas dentro de uma solução. É preciso verificar políticas de acesso e uso, busca e tratamento por vulnerabilidades. Envolve ainda a integridade dos dados e outros pontos importantes.

Para esse requisito temos o envolvimento dos times de infraestrutura, segurança e desenvolvimento atuando em suas áreas mas com um mesmo objetivo: diminuir os impactos relacionadas aos ataques e roubo de dados, problemas cada vez mais comuns atualmente.

6. Dispõe de suporte adequado

O suporte propriamente não é uma garantia de alta disponibilidade, porém ter uma equipe preparada para iniciar os primeiros atendimentos em caso de problemas pode reduzir o tempo de indisponibilidade da solução.

Equipes multidisciplinares, envolvendo infraestrutura e software, permitem, por exemplo, minimizar o impacto junto aos clientes, sintetizar e focar na solução das adversidades que impedem a continuidade da solução.  

Testando a alta disponibilidade

Vimos algumas características que envolvem a alta disponibilidade, mas ainda existe um desafio maior, o de testar todas as áreas que envolvem a solução. É preciso certificar-se de que tudo está funcionando corretamente e essa verificação ocorre tanto em fase de desenvolvimento quanto em produção, aumentando ainda mais a responsabilidade.

Planejamento, equipes de testes altamente capacitadas e ferramentas adequadas são algumas das palavras chaves para garantir a alta disponibilidade das soluções.

Continue acompanhando o nosso blog e nossas dicas e discussões a respeito das melhores formas de garantir as soluções. Aproveite e deixe seus comentários sobre o que achou do artigo e suas dúvidas. 

About Contentools