Distribuir dados globalmente com o Azure Cosmos DB
APLICA-SE AO: NoSQL MongoDB Cassandra Gremlin Table
Atualmente, os aplicativos precisam ser altamente responsivos e estar sempre online. Para obter baixa latência e alta disponibilidade, instâncias desses aplicativos precisam ser implantadas em datacenters próximos aos seus usuários. Esses aplicativos geralmente são implantados em vários datacenters e são chamados de distribuídos globalmente. Os aplicativos distribuídos globalmente precisam de um banco de dados distribuído globalmente que possa replicar os dados de maneira transparente em qualquer lugar do mundo, a fim de permitir que os aplicativos operem em uma cópia dos dados próxima de seus usuários.
O Azure Cosmos DB é um sistema de banco de dados distribuído globalmente, que permite ler e gravar os dados das réplicas locais do banco de dados. O Azure Cosmos DB replica de modo transparente os dados para todas as regiões associadas à conta do Azure Cosmos DB. Ele foi projetado para fornecer baixa latência, escalabilidade elástica de taxa de transferência, semântica bem definida para consistência de dados e alta disponibilidade. Em suma, se seu aplicativo precisa de um tempo de resposta rápido em qualquer lugar do mundo, se precisa estar sempre online e precisa de escalabilidade elástica de taxa de transferência e armazenamento ilimitado, você deve criar seu aplicativo usando o Azure Cosmos DB.
É possível configurar os bancos de dados para serem distribuídos globalmente e disponíveis em qualquer uma das regiões do Azure. Para diminuir a latência, coloque os dados próximos da localização dos usuários. A escolha das regiões requeridas depende do alcance global de sua aplicação e onde seus usuários estão localizados. O Azure Cosmos DB oferece uma única imagem do sistema do banco de dados do Azure Cosmos DB distribuído globalmente e os contêineres que o aplicativo pode ler e gravar localmente.
Observação
As contas sem servidor para o Azure Cosmos DB só podem ser executadas em uma única região do Azure. Para obter mais informações, consulte ouso de recursos sem servidor.
Com o Azure Cosmos DB, você poderá adicionar ou remover as regiões associadas à sua conta a qualquer momento. Seu aplicativo não precisa ser pausado ou reimplementado para adicionar ou remover uma região. O Azure Cosmos DB está disponível em todos os cinco ambientes distintos de nuvem do Azure disponíveis para os clientes:
Nuvem pública do Azure, que está disponível globalmente.
O Microsoft Azure operado pela 21Vianet está disponível através de uma parceria exclusiva entre a Microsoft e a 21Vianet, um dos maiores provedores de Internet do país.
O Azure Alemanha fornece serviços sob um modelo de objeto de confiança de dados, que garante que os dados do cliente permaneçam na Alemanha sob o controle da T-Systems International GmbH, uma subsidiária da Deutsche Telecom, atuando como objeto de confiança de dados alemão.
Azure Governamental está disponível em quatro regiões nos Estados Unidos para agências do governo dos EUA e seus parceiros.
O Azure Governamental para o Departamento de Defesa (DoD) está disponível em duas regiões dos Estados Unidos para o Departamento de Defesa dos EUA.
Principais benefícios da distribuição global
Compilar aplicativos globais de ativo-ativo. Com seu novo protocolo de replicação de gravações de várias regiões, cada região dá suporte a gravações e leituras. A funcionalidade de gravações de várias regiões também permite:
- Escalabilidade de leitura e gravação elástica ilimitada.
- 99,999% de leitura e gravação de disponibilidade em todo o mundo.
- Garantia de leituras e gravações atendidas em menos de 10 milissegundos no percentil 99.
Conforme você adiciona e remove regiões na conta do Azure Cosmos, o aplicativo não precisa ser reimplantado nem pausado e continua altamente disponível o tempo todo.
Crie aplicativos altamente responsivos. Seu aplicativo pode executar leituras e gravações quase em tempo real em todas as regiões escolhidas para o banco de dados. O Azure Cosmos DB manipula internamente a replicação de dados entre regiões com garantias de nível de consistência do nível que você selecionou.
Crie aplicativos altamente disponíveis. A execução de um banco de dados em várias regiões em todo o mundo aumenta a disponibilidade de um banco de dados. Se uma região não estiver disponível, outras regiões manipularão automaticamente as solicitações do aplicativo. O Azure Cosmos DB oferece 99,999% de disponibilidade de leitura e gravação para bancos de dados de várias regiões.
Manter a continuidade dos negócios durante interrupções regionais. O Azure Cosmos DB dá suporte ao failover gerenciado por serviço durante uma interrupção regional. Durante uma indisponibilidade regional, o Azure Cosmos DB continuará mantendo seus SLAs de latência, disponibilidade, consistência e taxa de transferência. Para ajudar a garantir que todo o seu aplicativo esteja altamente disponível, o Azure Cosmos DB oferece uma API de failover manual para simular uma indisponibilidade regional. Ao usar essa API, você pode executar exercícios regulares de continuidade de negócios.
Escala de leitura e taxa de transferência globalmente. Você pode habilitar todas as regiões para ser graváveis e dimensionar de forma elástica as leituras e gravações em todo o mundo. A taxa de transferência que o aplicativo configura em um banco de dados do Azure Cosmos DB ou em um contêiner é provisionada em todas as regiões associadas à conta do Azure Cosmos. A taxa de transferência provisionada é garantida por SLAs com suporte financeiro.
Escolha entre vários modelos de consistência bem definidos. O protocolo de replicação do Azure Cosmos DB oferece cinco modelos de consistência bem definidos, práticos e intuitivos. Cada modelo tem uma compensação entre consistência e desempenho. Usar esses modelos de consistência permitem que você crie aplicativos distribuídos globalmente com facilidade.
Próximas etapas
Leia mais sobre a distribuição global nos seguintes artigos:
- Distribuição global - nos bastidores
- Como configurar gravações de várias regiões em seus aplicativos
- Configurar clientes para multihoming
- Como adicionar/remover regiões da conta do Azure Cosmos DB
- Criar uma política de resolução de conflitos personalizada para contas da API para NoSQL
- Modelos de consistência programáveis no Azure Cosmos DB
- Escolher o nível certo de coerência para o seu aplicativo
- Níveis de coerência entre as APIs do Azure Cosmos DB
- Equilíbrio entre disponibilidade e desempenho para vários níveis de coerência