Uma das primeiras coisas que pensamos quando ouvimos falar em Nuvem é na alta disponibilidade das aplicações. Apesar de a associação ser válida, o simples fato de rodar uma aplicação na Nuvem não garante que sua disponibilidade seja maior do que rodando em um data center tradicional. A Nuvem entrega todas as ferramentas para sua aplicação ser praticamente imune a falhas, mas cabe a você desenvolvê-la de forma a tirar proveito das características do ambiente.

alta-disponibilidade-aplicacoes-nuvem-amazon_F1

Ao planejar uma arquitetura para a Nuvem, devemos primeiramente levar em conta o uptime requerido. 99,999%, 99,9% ou 99% uptime? Esse é um passo importante, pois a receita para alta disponibilidade na Nuvem é a mesma que a dos ambientes tradicionais: redundância. E redundância custa!

Definido o uptime requerido, precisamos pensar em onde colocar redundância. Em uma Nuvem as falhas podem ocorrer em cinco diferentes níveis, que George Reese (Cloud Application Architectures) chama de “Os 5 Níveis de Redundância da Nuvem”:

  • Nível 1, máquina físicas
  • Nível 2, máquinas virtuais
  • Nível 3, zonas de disponibilidades (AZ)
  • Nível 4, regiões
  • Nível 5, o provedor da Nuvem

No caso da Nuvem da Amazon, o nível 1 está fora do nosso controle, pois não podemos escolher onde as máquinas virtuais serão instanciadas. E não vamos analisar o nível 5, pois já estamos considerando a Nuvem da Amazon.

Para a maioria das aplicações, uma arquitetura distribuída com várias máquinas virtuais (instâncias) em uma mesma zona de disponibilidade deve ser suficiente. Aplicações distribuídas, balanceamento de carga, replicação de dados e failoversão técnicas comuns e já dominadas por grande parte dos desenvolvedores.

Para aplicações que exijam uma disponibilidade ainda maior, pode-se optar por uma arquitetura semelhante, mas com instâncias distribuídas em mais de uma zona de disponibilidade. A Amazon provê links de alta velocidade e baixa latência entre AZs dentro de uma mesma região, além de ferramentas como Elastic IP addresses que permitem, em caso de falha, mascarar os IPs de instâncias específicas e remapeá-los programaticamente para instâncias em outras AZs.

E para as aplicações realmente críticas, que devem continuar funcionando mesmo no caso de falhas de grandes proporções em regiões inteiras, pode-se construir aplicações distribuídas entre regiões distintas. Neste caso, porém, o tráfego entre as regiões vai pela boa e velha internet, o que aumenta a complexidade do problema: construir aplicações distribuídas de grande porte pela internet não é tarefa trivial, mas é o preço a ser pago pela  altíssima disponibilidade.

Resumindo, a Nuvem oferece ferramentas para a construção de aplicações de alta disponibilidade para todas as necessidades e bolsos. Entretanto, cabe ao desenvolvedor construir as aplicações considerando os recursos que expusemos, já que alta disponibilidade não vem gratuitamente só pelo fato de serem executadas na Nuvem.

 

Mecanismo da AWS de recuperação de dados em caso de Disaster Recovery (DR)
Disaster Recovery e a Nuvem em Pequenas e Médias Empresas

Compartilhe

Compartilhe este post com seus amigos