Compreendendo o que é alta disponibilidade

servers-talkingOlá pessoal!

Nesse primeiro post vamos falar sobre alta disponibilidade ou high availability (HA). Vai ser um conteúdo introdutório para a próxima sequência de posts.

O que realmente é a alta disponibilidade? Quanto disponível é esse alto? O altamente disponível é sinônimo de sempre disponível, mas na prática não é assim que acontece. Os orçamentos são limitados e nem sempre temos como investir os melhores recursos para garantirmos a alta disponibilidade. Talvez a melhor maneira de pensarmos em HA seja como Maximum Availability, que é conseguir o máximo possível de retorno sobre os investimentos dos recursos que temos à nossa disposição em questão de disponibilidade.

Alguns termos vêm à tona com essa discussão:

ROI (Return On Investment) –> é o retorno sobre o investimento. Se sua empresa comprou um gerador de energia elétrica ela fez um investimento, e certamente vai querer ter um retorno sobre ele. Esse retorno não é diretamente financeiro, mas quando faltar energia elétrica ele impedirá que a empresa pare suas atividades e consequentemente o faturamento não para.

TCO (Total Cost of Ownership) –> é o custo total de propriedade. É o valor que você investiu e quanto você investe mensalmente para manter aquilo que foi adquirido. Pode ser por exemplo valor pago pelo gerador mais o custo de sua manutenção.

RTO (Recovery Time Objective) –> é o tempo aceitável para recuperação. Se acabar o combustível do gerador a empresa irá parar, qual é o tempo aceitável até que a empresa volte a funcionar?

RPO (Recovery Point Objective) –> é o quanto a empresa pode perder. Digamos que sua empresa seja uma padaria, mas não uma padaria qualquer, uma indústria de pães, se acabar a energia elétrica o gerador entrará em funcionamento. Enquanto a energia elétrica não volta o gerador precisa ser reabastecido, então vamos supor que a empresa não consiga mais abastecê-lo e os pães que estavam assando se perdem, pois o processo não pode ser interrompido. Qual a quantidade da produção de pães que é aceitável a empresa perder? Esse é o RPO.

SLA (Service Level Agreement) –>  é o acordo de nível de serviço que a empresa tem com o fornecedor de TI (interno ou externo) até que uma ação seja tomada em função de restabelecer o serviço. Pode-se também determinar o SLA para o tempo máximo até que o serviço seja totalmente restabelecido.

Diretor:

“Mas eu não quero que minha empresa pare, não aceito perdas na produção. Não podemos perder nada nesses tempos difíceis.”

Para isso você terá que investir em alta disponibilidade, terá que comprar carretas de geradores, ter um super contrato com a distribuidora de eletricidade, etc. Com certeza irá pagar caro por isso, mas se o seu negócio é importante ao ponto de que se parar um minuto você perde milhões, com certeza esse será um investimento que você deve fazer, pois o seu investimento será retornado.

Na TI não é diferente, investir em um ambiente altamente disponível é imprescindível para a continuidade das operações. Tratando-se de banco de dados podemos ter um ambiente operacional em clusters distribuídos geograficamente, onde temos vários servidores de banco de dados interligados, storages redundantes, site DR (standby/backup), cópia do backup para fita/nuvem/servidores. Mas de nada adianta o banco de dados estar disponível se o servidor de aplicação falhar, se o acesso a internet cair, se faltar eletricidade, se o DNS parar de resolver nomes.

Tudo deve ser pensado e planejado para um ambiente altamente disponível. O planejamento e a construção de um ambiente altamente disponível deve levar em conta o RTO, RPO, TCO, ROI, o impacto no negócio, o custo do tempo fora de operação e a meta de gerenciamento. Qual o tempo máximo de parada tolerado? Qual a frequência máxima de paradas tolerada?

Alguns custos podem ser medidos facilmente, outros são praticamente impossíveis de saber. Custos facilmente mensuráveis são incapacidade de venda, funcionários ociosos, multas contratuais, etc. Um processo judicial é dificilmente mensurável e como custo não mensurável temos a publicidade negativa, clientes irritados, transtornos causados, etc.

Tratando-se de bancos de dados, mais especificamente do Oracle, temos várias tecnologias e produtos que fornecem alta disponibilidade, conforme detalho nos itens a seguir.

Oracle Grid Infrastructure:  nele estão contidos o Oracle Clusterware e o Automatic Storage Management (ASM), e estes são instalados dentro do Grid Infrastructure home.

  • Clusterware é o software de clusterização, por exemplo podemos ter vários servidores que fornecem recursos de CPU, memória e rede para o negócio. Com o Clusterware stack é possível criar server pools que permitem a transição/adição/redução de serviços entre os servidores do pool, o que torna o ambiente bem mais volátil na questão de alocação desses serviços em diferente picos de carga do negócio, pois no início do mês o sistema de vendas precisa de mais recursos, pela metade do mês o RH começa o processamento da folha de pagamento dos colaboradores e ao fim do mês as rotinas de faturamento são as maiores consumidoras. O clusterware permite ainda o crescimento do ambiente de maneira horizontal, pois em tese, ao invés de adicionarmos mais recursos a um servidor já existente adicionamos mais um servidor ao cluster. Ele é fundamental para o funcionamento do RAC. Se um nó do cluster parar de se comunicar com o restante dos nós o Oracle Clusterware tomará medidas para corrigir este problema reiniciando este nó e também monitora processos críticos do ambiente como o Listener, instâncias, endereços de IP virtuais, assim como os membros do cluster.
  • ASM é o software responsável pelo gerenciamento dos discos. O ASM provê facilidades na administração do armazenamento, pois o crescimento se dá de forma flexível sem necessidade de downtime. É possível adicionar ou remover discos conforme necessário e também até migrar para um storage mais recente quando o seu ficar obsoleto, isso tudo sem impactar diretamente as operações do negócio. Além de tudo isso o ASM ainda realiza o striping dos dados entre todos os discos disponíveis e faz um rebalanceamento automático conforme o ambiente cresce. O mirroring também pode ser configurado através do ASM. O ASM Dynamic Volume Manager (ADVM) e o ASM Cluster FileSystem (ACFS) também fazem parte do ASM e fornecem uma solução de clustered filesystem que compete com outros fornecedores como Veritas, Serviceguard, General Parallel Filesystem (GPFS da IBM), Global Filesystem (GFS da Red Hat) entre tantos outros, estes permitem que seja armazenado qualquer tipo de arquivo em um ambiente clusterizado.
  • RAC é um componente chave para a arquitetura redundante, pois oferece acesso a um banco de dados através de vários servidores. Qualquer falha que afete a capacidade de um servidor individual de funcionar corretamente não impactará todo o banco de dados, porque os outros nós do cluster continuarão a operar normalmente o banco de dados, mesmo que um nó inteiro seja perdido. Para o funcionamento de um ambiente com RAC é necessário no mínimo dois servidores no cluster. O RAC faz uso dos serviços do Clusterware para se apresentar como se fosse um único servidor de banco de dados para os usuários finais. Não bastando isso ele ainda permite ganhos em desempenho e escalabilidade, pois são mais usuários trabalhando num mesmo banco de dados.

Screen Shot 2015-10-07 at 1.04.55 PM

 

Oracle DataGuard:  oferece uma série de tecnologias para recuperação de desastres. O DataGuard (DG) é usado para espelhar um banco de dados para outro site (DR Site/ Backup Site). Isso impede a perda total de um site ou um backout total do ambiente. O DG permite a criação, manutenção e monitoramento de cópias transacionais consistentes entre o banco de dados de produção para um local alternativo. O banco de dados de produção é comumente chamado de primário enquanto as cópias transacionais consistentes se referem ao banco de dados standby. O DG não precisa ser instalado, ele já vem junto com o banco de dados Oracle, porém precisa ser configurado. Duas configurações de standby databases se destacam: Physical standbyLogical standby. Os bancos de dados standby são cópias dos bancos de dados de produção.

Além dessas tecnologias já citadas a Oracle possui muita outras que fornecem a máxima disponibilidade desejada. Algumas que podemos citar: GoldenGate, Streams, Advanced Replication, Recovery Manager,  Flashback, Fast Recovery Area, Multitenant, Restart, Client and Application Failover, etc.

Tecnologias de alta disponibilidade vemos que não falta, o que falta mesmo é as empresas realmente investirem na área de TI, pois a gente vê cada coisa no dia-a-dia.

 

Referências

https://docs.oracle.com/database/121/HAOVW/hafeatures.htm#HAOVW11953

HUSSAIN, Syed Jaffar; FAROOQ, Tariq; SHAMSUDEEN, Riyaj, YU, Kai. Expert Oracle RAC 12c. Apress. 2013.

JESSE, Scott; BURTON, Bill; VONGRAY, Bryan. Oracle Database 11g Release 2 High Availability: Maximize Your Availability with Grid Infrastructure, Oracle Real Application Clusters, and Oracle Data Guard. 2.Ed. McGraw-Hill. 2011.