Planning the future for NoSQL Cassandra DB Applications on Azure
In this post, App Dev Manager Shany Wiesel explains the different deployment models for Apache Cassandra on Azure.
Microsoft Azure is an open cloud platform that runs both Microsoft as well as non-Microsoft software which includes operating systems, application servers, messaging middleware as well as SQL and NoSQL databases from both commercial and open source models.
Apache Cassandra is a commonly used, high performance NoSQL database. Customers that currently maintain Cassandra on-premises may consider migration Cassandra DBs workloads to the cloud. This post explores Cassandra deployment options, as well as provide guidance about determining the best practices for your use case.
Azure Cosmos DB PaaS Vs. Cassandra DB IaaS
Azure Cosmos DB PaaS
When running your application with Cosmos DB, you take the PaaS (Platform as a service) approach which means that your solution includes build-in scalability, high-availability, and multi-tenant capability. It places the responsibility of managing and scaling the infrastructure beneath your application. This removes most of the day-to-day responsibility of managing the platform that delivers your application and changes many of the costs to ‘as consumed’ rather than for the compute you use.
Azure Cosmos DB is the industry’s first fully managed globally distributed, massively scalable, and multi-model database service. It is designed to allow developers to elastically scale throughput and storage across any number of geographical regions worldwide—backed by industry-leading comprehensive SLAs including throughput, availability, consistency, and <10ms latency guarantees.
Azure Cosmos DB also offers support for Apache Cassandra API facilitating Cassandra as-a-service powered by Azure Cosmos DB. You can now experience the power of Azure Cosmos DB platform as a managed service with the familiarity of your favorite Cassandra SDKs and tools. without any app code changes.
Cassandra DB IaaS
When running your application with Cassandra DB on Azure VMs you take the IaaS (Infrastructure as a service) “Lift and Shift” approach which provides flexibility to build cloud independent application with and responsibility to plan and maintain scalability, high-availability and security requirements of your application.
Azure IaaS makes provisioning or scaling of platforms easier and help shift focus on your business needs. It provides the tools to configure availability sets of VMs and scaling up and out capabilities, NSGs (Network security groups), choosing between storage redundancy options and more. When combined, you can deploy Cassandra, allowing you to scale capacity according to your requirements.
Building resilient services on Azure IaaS requires careful planning and deliberate architecture for both applications servers as well storage layers. Availability. Replication factor and strategies, consistency, scalability and geo-redundancy, security and network topology all needed to be architected.
Azure Architecture center provides example for a deployment model for a Linux N-Tier application in Azure with Apache Cassandra
Azure provides options, it is your decision whether you want to run your own NoSQL Cassandra database on Azure IaaS, or move to a fully managed, PaaS Cosmos DB.