Uma das maiores dores de quem já usou ou avaliou usar o Cosmos DB sempre foi o preço. É fato de que o Cosmos DB é um serviço robusto oferecido pela Microsoft  e que possuí features que podem ajudar muito o projeto a lidar com alta demanda de forma fácil como multi master, multi região e o baixo tempo de escrita e leitura de dados.

Entretanto, a forma de precificação do Cosmos DB sempre foi uma barreira. Principalmente por ser necessário pré alocar recursos de processamento (RUs) e não ter uma camada inicial sem custos. Isto acabava fazendo com que o produto fosse pouco considerado em POCs e projetos menores. 

No Microsoft Build deste ano, o time do Cosmos DB anunciou diversas novidades no produto, ouvindo o feedback da comunidade. A maioria delas já estão disponíveis no Microsoft Azure.

Camada grátis

Desde de março deste ano, o Cosmos DB possui a opção de camada grátis para a base de dados. Ela é limitada a 400 RUs e 5GB de armazenamento de dados, o que na maioria dos casos já é suficiente para começar.

Para entender melhor como funciona RUs clique aqui

C# Notebooks

Uma das novidades do Cosmos DB anunciadas no Build foi o suporte a código C# dentro do Cosmos DB com Jupyter Nottebooks. Anteriormente o Cosmos DB já havia liberado uma funcionalidade como esta para Phyton e agora também está disponível para C#.

Com isto, você é capaz de executar códigos C# usando o SDK do Cosmos DB (que já está instalado no editor por padrão) para criar databases, containers, inserir e consultar dados dentro do Cosmos DB no portal do Azure.

Ele dá suporte a utilização de pacotes NuGets, o que podem ser interessante par geração de dados, utilizando por exemplo o Bogus e muito mais! Além disto, você pode utilizar o GitHub para manter, versionar e compartilhar seus Notebooks C# criados no Cosmos DB.

Private link

Outro anuncio foi o Azure Private Link para Cosmos DB. O Azure Private Link já existia dentro Azure e foi disponibilizado para ser usado juntamente com o Cosmos para ampliar a segurança do acesso a dados. Com Private Link é possível restringir o acesso externo ao Cosmos DB criando um link privado de acesso para recursos dentro do Azure, evitando que o acesso a sua instancia do Cosmos DB fique disponível na internet publica. Você ainda pode configurar os IPs e VNets que podem acessar sua instancia do Cosmos DB.

Autoscale

Uma das funcionalidade mais pedidas pelo comunidade que foi apresentada neste Microsoft Build, foi o Autoscale.

Agora a taxa de transferência (RUs) do Cosmos DB pode ser escalada automaticamente e instantaneamente! Você poderá informar a quantidade máxima de RUs que deseja que sua instancia use no momento da criação da database ou do container.

A taxa de transferência será ajustada automaticamente pelo Cosmos DB no momento de alta demanda e depois reajustada quando houver pouca demanda para 10% da taxa máxima de RUs configurada. O faturamento será feito por hora, com base nos RUs mais altos dentro de uma hora. Importante dizer que aqui ainda será pago o valor mínimo de 10% da quantidade máxima de RUs mensalmente, ainda que o banco não tenha processamento de dados.

Serverless

O time do Cosmos DB também anuncio que irá lançar nos próximos meses a opção Serverless do Cosmos DB, o quer irá tornar a precificação da plataforma muito mais competitiva.

Com o Cosmos DB Serverless, você vai passar a pagar pelo que de fato usar. Significa que caso você reserve uma disponibilidade 1000 RUs para processamento das requisições e no mês você tenha usado apenas 500 RUs, o total a pagar será calculado encima dos 500 RUs que você realmente usou, e não pelo que deixou reservado. Isto valerá para todas as regiões.

Veja mais detalhes no vídeo abaixo (em inglês):

E aí, o que achou destas novidades? Já usou o Cosmos DB?