Azure Cosmos DB and High Availability

5 November 2019

I went to Microsoft Cosmos DB hands-on workshop a few weeks ago and came back with renewed enthusiasm about NoSQL database. After working with relational database for many years I had inadvertently formed a bias opinion against non-relational database. I must admit I’m pleasantly surprised to learn that Cosmos DB is backed by performance SLA (i.e. read/write request latency < 10ms) and not the stock standard four 9s or five 9s availability offered by most cloud vendors. Network latency is a critical design element for high-volume and latency sensitive application. It is also a major impediment for engineering Active-Active distributed application. For example, a sluggish online shopping website will undoubtedly impact general user experience and thus deter potential customer and sales. As a matter of fact most cloud applications are subject to latency constraints. E.g. the latency between your on-premises data centre, the user geographic distribution and the cloud provider. Apart from the Cosmos DB latency SLA, multi-master replication across different regions is another standout feature. Image you have configured Cosmos DB running in 2 regions and lets pick Australia East (Sydney) and Australia Southeast (Melbourne). Armed with multi-master replication between Sydney and Melbourne (i.e. write request can be processed by both regions simultaneously) you can deploy the application in the same 2 regions operated in truly Active-Active always-on architecture. It is the epitome of a highly available, scalable and performing distributed cloud application. 

No alt text provided for this image

Sourced from Azure Cosmos DB Documentation

Assuming at this point you are sufficiently impressed by Cosmos DB and can’t wait to find out how to convert the tiring old relational database to Cosmos DB. Surely your manager will be impressed too, right? Prior to taking further action I think it is prudent to step back and consider the very first architecture principle: is it fit for purpose? Cosmos DB is a non-relational database and it is not designed for maintaining data integrity and complex relationship. Typically Cosmos DB data model is fully or partially denormalised for maximum performance. So, if you are working with an online shopping application which requires global presence, highly available and low latency read (i.e. SELECT) and write (i.e. INSERT) operation then Cosmos DB is the godsend without doubt. On the other hand if you are working with expansive complex data model and convoluted data transformation warehouse application then Cosmos DB is probably not the best candidate. 

Check out the following Azure Cosmos DB high availability documentation for more details and start leveraging some of the most advanced cloud features on offer.

https://docs.microsoft.com/en-us/azure/cosmos-db/high-availability

要查看或添加评论,请登录

Tommy Tang的更多文章

  • Multi-Cloud Resilience Architecture Pattern

    Multi-Cloud Resilience Architecture Pattern

    4 August 2019 Recently I have heard comments made by a senior IT Executive questioning why can’t we have Active-Active…

    19 条评论
  • Are you ready for Multi-Cloud

    Are you ready for Multi-Cloud

    28 April 2019 Lately I have heard colleagues earnestly discussing (or perhaps debating) the prospect of adopting…

    15 条评论
  • Is Disaster Recovery Really Worth The Trouble (Part 4)

    Is Disaster Recovery Really Worth The Trouble (Part 4)

    11 March 2019 In this final chapter of the Disaster Recovery discussion I am going to explore some of the common…

  • Is Disaster Recovery Really Worth The Trouble (Part 3)

    Is Disaster Recovery Really Worth The Trouble (Part 3)

    24 February 2019 In previous articles I’ve emphasised Disaster Recovery (DR) design principle is simply about…

    1 条评论
  • Is Disaster Recovery Really Worth The Trouble (Part 2)

    Is Disaster Recovery Really Worth The Trouble (Part 2)

    11 February 2019 In the previous article I've mentioned Architecture is the foundation, the bedrock, for implementing…

    1 条评论
  • Is Disaster Recovery Really Worth The Trouble (Part 1)

    Is Disaster Recovery Really Worth The Trouble (Part 1)

    3 February 2019 Often when you talk to your IT colleagues or business owners about protecting their precious system…

  • Having Pizza Tonight

    Having Pizza Tonight

    A simple way to explain the different Cloud services I'm not sure if you have come across this pizza analogy used for…

    1 条评论
  • Oracle Unified Approach to Data Management

    Oracle Unified Approach to Data Management

    Most customers I have spoken to found it increasingly costly to manage large amount of corporate data but hesitant to…

  • Want to create your own Oracle APEX "Open Door" authentication scheme

    Want to create your own Oracle APEX "Open Door" authentication scheme

    Have you tried to use the Oracle APEX “Open Door Credentials” authentication scheme? You didn’t like the Login page but…

    3 条评论
  • Oracle IaaS and Open Source

    Oracle IaaS and Open Source

    You think Oracle Cloud is too expensive for software development? Well I have created a simple Book Recommendation…

社区洞察

其他会员也浏览了