Um conceito muito básico, porém, de fundamental importância para quem está iniciando sua jornada na nuvem, e aqui vou focar no Microsoft Azure, é o conceito de regiões, zonas de disponibilidade e as possíveis redundâncias de armazenamento entre elas. Lembrando apenas que estes conceitos se aplicam em outras nuvens, apenas trocando algumas nomenclaturas, mas a base é a mesma.
Regiões
Uma região é tida como um conjunto de data centers implantados em um perímetro definido por latência e conectados por meio de uma rede regional dedicada de baixa latência, ou seja, os data centers possuem uma distância mínima um do outro, ao mesmo tempo, que é interligado por uma rede de baixa latência, com a finalidade de manter a performance de rede entre estes data centers. O Azure oferece a flexibilidade de implantar aplicativos onde você precisa, incluindo entre várias regiões, para fornecer resiliência entre regiões.
Verifique as regiões atualizadas aqui: https://infrastructuremap.microsoft.com/
Zonas de Disponibilidades
Uma Zona de Disponibilidade é uma oferta de alta disponibilidade que protege aplicativos e dados contra falhas de datacenter. As Zonas de Disponibilidade são locais físicos exclusivos em uma região do Azure. Cada zona é composta por um ou mais datacenters equipados com energia, resfriamento e rede independentes.
Para garantir a resiliência, há um mínimo de três zonas separadas em todas as regiões habilitadas. A separação física das Zonas de Disponibilidade dentro de uma região protege os aplicativos e dados contra falhas do datacenter.
Relacionando Região x Zona
Observando a imagem abaixo, podemos ver que uma região é composta por zonas, conforme exemplo, na região 1, temos três zonas de disponibilidade (1,2 e 3).
Qual a importância de escolher a região?
Principais pontos:
- Custo: o valor dos serviços variam conforme região, então, por exemplo, o custo de armazenamento em uma região, pode ser menor do que em outra. Podemos comparar isto utilizando a calculadora Azure (clicando aqui) ou utilizando o site Azure Price, neste, acho muito legal a função de cálculo médio por região.
- Serviços: Além dos custos, devemos ficar atentos ao fato de que nem todas as regiões possuem todos os serviços disponíveis. Por exemplo: na região 1, temos tipos de máquinas virtuais que sejam mais específicas, que não vão ser encontradas na região 2, e isso vale para todos os serviços. Você pode consultar a lista de disponibilidade de serviços, por região, aqui.
- Latência: Outro ponto importante a se considerar seria a latência, que a grosso modo, seria a velocidade de tráfego da sua localidade (seu cliente, por exemplo), para a região/data center escolhido, por exemplo: seu cliente possui sede no Brasil, então, se eu colocar a aplicação do mesmo na região do Brasil, a velocidade (latência), será menor do que colocar a aplicação em alguma região da europa. Podemos comparar as latências no site Azure Speed (com bastante tipos de testes) e um outro que tira uma média geral, o Azure Speed Teste 2.0. Temos que avaliar os impactos da latência em nossa aplicação.
- Conformidade: Por último, temos que avaliar se os dados da nossa aplicação/cliente podem sair do país, então, este fator deve ser considerado.
Neste link, tem um vídeo que exemplifica esses conceitos de região e zonas de disponibilidade: https://azure.microsoft.com/pt-br/global-infrastructure/availability-zones/#overview
Redundância Armazenamento Azure
Finalmente, como estes conceitos de região e zonas de disponibilidade se aplicam na redundância do armazenamento no Azure? Primeiramente, leve em conta os conceitos acima: qual região me dará o menor custo de armazenamento? A região possui todos os tipos de replicação? A latência vai atender? Os dados estão em conformidade?
Verificado estes passos, vamos ver os conceitos de replicação:
Redundância na região primária
Os dados em uma conta de Armazenamento do Azure são sempre replicados três vezes na região primária. O Armazenamento do Azure oferece duas opções de como os dados são replicados na região primária:
O armazenamento com redundância local (LRS) copia seus dados de forma síncrona três vezes em um único local físico na região primária. LRS é a opção de replicação menos dispendiosa, mas não é recomendada para aplicativos que exigem alta disponibilidade ou durabilidade. Ou seja, ele replica tudo dentro do mesmo data center.
Verificando a estrutura acima, podemos perceber que no LRS temos três cópias do mesmo dado, DENTRO DO MESMO DATA CENTER. Nesta caso, estaríamos protegidos, por exemplo, para uma eventual queda de um hack ou máquina, porém, caso todo o data center/zona fique fora do ar, nossos serviços ficarão indisponíveis.
O LRS é uma boa opção para os seguintes cenários:
- Se seu aplicativo armazenar dados que possam ser facilmente reconstruídos, você pode optar por LRS.
- Se seu aplicativo estiver restrito a replicar dados somente em um país ou região devido a requisitos de governança de dados, você poderá optar pelo LRS.
O Armazenamento com redundância de zona (ZRS) copia seus dados de forma síncrona em três zonas de disponibilidade do Azure na região primária. Para aplicativos que exigem alta disponibilidade, a Microsoft recomenda usar o ZRS na região primária e também replicar para uma região secundária.
Já na estrutura acima, podemos notar que temos uma cópia de cada, das três, em um data center/zona separado, o que confere uma alta disponibilidade, pois neste caso, teria que cair toda uma região, para que nossos dados fiquem indisponíveis.
Entretanto, conforme citado acima, o ZRS não pode proteger seus dados contra um desastre regional em que várias zonas permanentemente são afetadas. Para proteção contra desastres regionais, a Microsoft recomenda o uso do armazenamento com redundância de zona geográfica (GZRS), que usa o ZRS na região primária e também replica geograficamente seus dados para uma região secundária.
O armazenamento com redundância geográfica (GRS) copia seus dados de forma síncrona três vezes em um único local físico na região primária usando o LRS. Em seguida, ele copia os dados de forma assíncrona para um único local físico na região secundária. Na região secundária, seus dados são copiados de forma síncrona três vezes usando o LRS.
O armazenamento com redundância de zona geográfica (GZRS) copia seus dados de forma síncrona em três zonas de disponibilidade do Azure na região primária usando o ZRS. Em seguida, ele copia os dados de forma assíncrona para um único local físico na região secundária. Na região secundária, seus dados são copiados de forma síncrona três vezes usando o LRS.
Com o GRS ou o GZRS, os dados na região secundária não estão disponíveis para acesso de leitura ou gravação, a menos que ocorra um failover na região secundária. Para obter acesso de leitura para a região secundária, configure sua conta de armazenamento para usar o armazenamento com redundância geográfica com acesso de leitura (RA-GRS) ou o armazenamento com redundância de zona com acesso de leitura (RA-GZRS).
O diagrama a seguir mostra como os dados são replicados com o GRS ou com o RA-GRS:
O diagrama a seguir mostra como os dados são replicados com o GZRS ou com o RA-GZRS:
Resumindo:
É importante lembrar, que para aplicar os conceitos acima, devemos implementar o serviço que suporte tais replicações, conforme tabelas abaixo:
Seguem links que foram fontes de consulta e que recomendo a leitura:
- Redundância do Armazenamento do Azure: https://docs.microsoft.com/pt-br/azure/storage/common/storage-redundancy
- Configurações de carga de trabalho SAP com zonas de disponibilidade do Azure: https://docs.microsoft.com/en-us/azure/virtual-machines/workloads/sap/sap-ha-availability-zones#network-latency-between-and-within-zones
- Regiões e zonas de disponibilidade no Azure: https://docs.microsoft.com/pt-br/azure/availability-zones/az-overview#regions
- Produtos disponíveis por região: https://azure.microsoft.com/pt-br/global-infrastructure/services/
Até a próxima.