Movatterモバイル変換


[0]ホーム

URL:


Skip to content
DEV Community
Log in Create account

DEV Community

Leandro Domingues
Leandro Domingues

Posted on

     

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ãodistribuiçã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 oMongoDB. Basicamente isso quer dizer que se você utilizar osdrivers 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 doaggregation 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 30regiõ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. Vejacomo utilizar os níveis de consistência para potencializar a disponibilidade e desempenho

Níveis de consistência do Azure Cosmos DBAPI do MongoDB (3.4)
EventualEventual
Consistent PrefixEventual with consistent order
SessionEventual with consistent order
Bounded stalenessStrong
StrongStrong

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!

Top comments(2)

Subscribe
pic
Create template

Templates let you quickly answer FAQs or store snippets for re-use.

Dismiss
CollapseExpand
 
luidynaves profile image
Luidy
  • Joined

Legal seu artigo Leandro! Tenho utilizado o CosmosDB com a API do MongoDB. Gosto bastante do MongoDB pra maioria das aplicações que temos hoje, acredito que a facilidade que ele nos trás no desenvolvimento de aplicações CRUD é muito grande. Porém, tenho visto algumas dificuldades com o CosmosDB, como a facilidade de que minha aplicação crie a collection faz com que eu não tenha um tamanho ilimitado dela ou mesmo eu possa alterar para um tamanho ilimitado, acho isso complicado. Tenho tido alguns problemas para fazer consultas aggregate quando preciso filtrar por um campo específico dentro de um array, muitas vezes a consulta não me traz os valores que deveriam trazer, se exporto a collection para um MongoDB nativo, a query me retorna exatamente o que eu preciso, passou por algum problema assim? Outro ponto que não achei muito interessante é que dizem que é escalável, mas eu preciso escalar manualmente ou então criar um outro aplicativo pra rodar e fazer escala-lo sozinho com base em métricas de monitoria do Azure, sem falar que estariam me cobrando pra q essa aplicação fique rodando pra escalar o cosmos.

CollapseExpand
 
delbussoweb profile image
Leandro Domingues
Head of NoSQL at Extractta, MongoDB Champion, Neo4J Certified, Community Manager, Speaker, Former from UNICAMP
  • Work
    Head of NoSQL at Power Tuning
  • Joined

Luidy, obrigado! Vi sua dúvida lá no grupo de Cosmos do WhatsApp... não respondi porque estou montando um cenário que servirá de base para essa série de posts, onde falarei sobre a compatibilidade e das versões e operadores do aggregation framework tbm. Assim que tiver os resultados eu posto lá no grupo e aqui tbm. Valeu!

Are you sure you want to hide this comment? It will become hidden in your post, but will still be visible via the comment'spermalink.

For further actions, you may consider blocking this person and/orreporting abuse

Head of NoSQL at Extractta, MongoDB Champion, Neo4J Certified, Community Manager, Speaker, Former from UNICAMP
  • Work
    Head of NoSQL at Power Tuning
  • Joined

More fromLeandro Domingues

DEV Community

We're a place where coders share, stay up-to-date and grow their careers.

Log in Create account

[8]ページ先頭

©2009-2025 Movatter.jp