O crescimento do volume de negócios utilizando a internet tem aumentado geometricamente o acesso aos sistemas que gerenciam o E-Commerce. Concomitantemente tornou-se difícil ou caro manter uma plataforma de hardware que responda e/ou atenda de forma satisfatória os diversos clientes que solicitam atendimento virtual. Desta forma soluções de software podem manter aplicações disponíveis mais tempo mediante o aumento da demanda.
Sistema de alta disponibilidade exige do administrador de redes uma certa experiência. Conhecimento de protocolos, topologia de rede, UNIX, customização de Sistemas BSD, pseudo-devices entre outros. São fundamentais para prosseguir no assunto.
O primeiro passo é identificar o ponto de contenção da rede. É importante, pois é lá onde será implementará o recurso. Ao longo do tempo tenho sido contundente a cerca do assunto "desperdício de recursos de T.I" com base no princípio de economicidade. Para executar o passo numero 1, como sugestão de leitura tenho escrito um artigo sobre o assunto (
Esgotando os recursos).
Ao encontrar o ponto de contenção da rede, ou seja, local que impede o tráfego perfeito. O segundo passo é identificar qual recurso de alta disponibilidade deveremos aplicar, lembrando que outras soluções tais como RAID 1 ou até mesmo um tunning na aplicação pode resolver melhor e de forma mais simples. Contudo, ao identificar o alto tráfego na rede que não esta sendo atendido por limitação do seu hardware, aí sim pode-se utilizar CARP.
O protocolo CARP, cuja a sigla e Common Address Redundancy Protocol, protocolo de endereço redundante, trabalha com um grupo de servidores no mesmo segmento de rede compartilhando um único endereço IP do servidor Master. Basicamente a utilidade do protocolo CARP é aumentar a disponibilidade do serviço, ou seja, garantir que em um possível esgotamento de recurso de hardware ou quebra no serviço master o servidor backup irá restabelecer, garantindo a alta disponibilidade de forma transparente. O CARP é uma solução open source mantido pela RFC 3768 e que segundo (SOUZA, Denis) foi introduzido pelo OpenBSD a partir da versão 3.3 e foi adotado pelo FreeBSD desde a versão 5.4.