MongoDB com Azure Cosmos DB - Introdução
Leandro Domingues
Posted on April 8, 2018
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 global, escalabilidade 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!
Posted on April 8, 2018
Join Our Newsletter. No Spam, Only the good stuff.
Sign up to receive the latest update from our blog.