Blog Cluster

MongoDB com Azure Cosmos DB – Introdução

Fala pessoal, blz? Hoje inicio minha série de artigos sobre a utilização do MongoDB no Azure Cosmos DB. E hoje, domingo, escrevo do terminal 2 do Aeroporto do Galeão no Rio de Janeiro, depois de finalizar mais um treinamento de MongoDB aqui na “Cidade Maravilhosa”.

Mas vamos ao que interessa!

Azure Cosmos DB

Numa breve introdução, o Azure Cosmos DB é definido pela Microsoft como um serviço de banco de dados multi-model, globalmente distribuído, para aplicações críticas. Dentre os serviços oferecidos pelo Azure Cosmos DB estão distribuição globalescalabilidade elástica para throughput e armazenamento, latências de milissegundos e garantia de alta disponibilidade, baseados no suporte de SLAs da Azure. Além disso o Azure Cosmos DB indexa os dados automaticamente (mas isso é assunto pra outro dia…)!

O Azure Cosmos DB pode ser usado para armazenar dados de aplicações originalmente escritas para o MongoDB. Basicamente isso quer dizer que se você utilizar os drivers existentes, sua aplicação que utiliza o MongoDB pode se comunicar com Azure Cosmos DB (em muitos dos casos) somente trocando a string de conexão, ao mesmo tempo que você continua utilizando as ferramentas e ainda aplicando seus conhecimentos de MongoDB!

Compatibilidade com o MongoDB: se você já utiliza o MongoDB, sabe como ele funciona e domina o schema design, poderá continuar aplicando tudo isso, mas cuidado com alguns aspectos (que serão abordados nos próximos posts), porque o Azure Cosmos DB até a data de publicação desse artigo utiliza a versão 3.4.5 do MongoDB e também suporta do aggregation pipeline do MongoDB, sendo que esse último terá um post específico nos próximos dias…

Mas que vantagem Maria leva em utilizar o Azure Cosmos DB com a API do MongoDB?

Processamento e Armazenamento elasticamente escaláveis: a possibilidade de aumentar ou reduzir verticalmente seu banco de dados. Os dados são armazenados em discos SSD, fornecendo a menor latência possível. O Azure Cosmos DB oferece suporte a coleções que podem ser dimensionadas para tamanhos de armazenamento e throughput praticamente ilimitados. E você pode modificar essas configurações à medida em que sua aplicação cresce.

Replicação entre várias regiões: De forma transparente, o Azure Cosmos DB pode replicar seus dados entre as regiões de sua conta associada ao MongoDB, isso possibilita que você desenvolva aplicações que exijam distribuição global. Com isso, também é possível configurar um failover regional sem downtime de sua aplicação.

Serverless: Como o Azure Cosmos DB se assemelha muito a um DBaaS, você não precisa se preocupar com o gerenciamento das máquinas onde seu banco de dados estará hospedado, ele está disponível em mais de 30 regiões do Azure.

Níveis de consistência ajustáveis: Hoje, o Azure Cosmos DB trabalha com a versão 3.4 do MongoDB, ele oferece somente dois níveis de consistência: forte e eventual. O Azure Cosmos DB oferece vários níveis de consistência, porém, esses níveis são controlados pela API que você escolhe, ou seja, dependendo da API utilizada, esses níveis são reduzidos ao que a API escolhida oferece. Até o lançamento da versão 3.6 do MongoDB, não havia nenhum controle de sessão, por isso se você definir a API do MongoDB para utilizar a consistência de sessão, será feito um downgrade para a consistência eventual. Veja como utilizar os níveis de consistência para potencializar a disponibilidade e desempenho

Níveis de consistência do Azure Cosmos DB API do MongoDB (3.4)
Eventual Eventual
Consistent Prefix Eventual with consistent order
Session Eventual with consistent order
Bounded staleness Strong
Strong Strong

Indexação automática: O Azure Cosmos DB indexa automaticamente todas as propriedades dos documentos do seu banco de dados MongoDB, sem necessidade de schema ou criação de índices secundários. Ainda oferece a possibilidade de criar índices do tipo unique em qualquer propriedade já indexada.

Próximos passos

Nos próximos artigos vou mostrar como criar um banco de dados no Azure Cosmos DB utilizando a API do MongoDB, depois demonstrarei a facilidade de migração dos aplicativos existentes, trocando basicamente a string de conexão. Posteriormente continuaremos juntos nessa jornada em que compartilharei com vocês o que tenho aprendido pelo caminho.

Espero que tenham gostado e fiquem à vontade em compartilhar e deixar seu like!

Abraços!

Deixe uma resposta

O seu endereço de e-mail não será publicado. Campos obrigatórios são marcados com *