Cloud computing has transformed the way applications are developed and deployed, enabling developers to focus on writing code and delivering value to users rather than dealing with infrastructure complexities, and databases such as Apache Cassandra are often used when performance and scale become a requirement of the deployment. Cassandra is a highly scalable and distributed NoSQL database that offers excellent performance and fault tolerance for multiple workloads. It is designed to handle large amounts of data spread across multiple commodity servers or cloud instances, making it well-suited for various use cases that require high availability, horizontal scalability, and fast write and read operations such as time series data, messaging, big data analytics, and more.

Typically, Cassandra requires high-speed storage and is commonly used with LOCAL SSDs or remotely mapped block storage LUNs. However, using multiple servers and local SSDs and/or managing hundreds or thousands of LUNs creates massive operational and cost challenges during normal operation, maintenance, upgrades, and more.

WEKA on Azure with AKS solves the Cassandra operational performance challenges at scale while reducing cost and complexities– eliminating the need to waste time and effort on constant Cassandra rebuilds while improving Cassandra cluster agility when containerizing it on AKS.

Running Cassandra on Azure cloud allows scaling out and scaling in the Cassandra clusters across multiple instances in the same availability zone (AZ) and different Azure regions for better availability and resiliency as well as scaling up and scaling down the instances for better instance performance. However, this also adds additional layers of operational and cost complexities when managing hundreds or thousands of instances with their attached local storage as well as recovering from local AZ failures and doing cross-AZ Cassandra rebuilds. In these scenarios, the Cassandra cluster is spending a lot of compute, network, and storage cycles, and bandwidth rebuilding missing pieces of data across different Cassandra nodes for resiliency and performance reasons, which might congest cross-AZ or cross-Region networks for the same reason, as well as incur unforeseen cross-AZ costs when doing so.

The WEKA Data Platform is a high-performance data platform that contains the WEKA Filesystem. WEKA solves data challenges at scale while accelerating workloads and reducing costs; it can be deployed on physical servers in the data center as well as on multiple cloud environments such as Microsoft Azure cloud as well as other public clouds. Cassandra nodes can use WEKA as an alternative to the siloed approach of using the locally attached SSDs or remote block devices with the added benefit of retaining or accelerating their Cassandra performance which will be described in the following sections. In addition, the ability to containerize the Cassandra nodes while still providing the same performance as non-containerized Cassandra nodes allows for an extra layer of dynamic management and simplicity without any performance compromise.

Advantages of Containerized Cassandra on Azure with WEKA

  • Easily manage and orchestrate using Azure Kubernetes Service (AKS)  – WEKA is fully integrated with AKS which allows simple creation of the Kubernetes orchestrated Cassandra compute instances.
  • All the Cassandra instance nodes can operate from a single WEKA filesystem that provides as much performance as the Cassandra nodes require. This significantly simplifies the design and operation of the Cassandra cluster as well as reduces cost due to eliminating the need to purchase instances with local instance capacity and/or purchase and maintain remote drives.
  • Eliminate Cassandra rebuilds – upon a Cassandra instance node failure a new instance can be provisioned and mapped to the same filesystem/directory that the previous Cassandra instance used thereby removing the need for a Cassandra cross instance rebuild (since the new Cassandra instance already has the relevant data) this leaves only the short Cassandra Hints sync to complete. The implications are that the Cassandra cluster returns to a fully resilient state almost immediately  without loading the compute, network, and storage of the Cassandra instances. This can be performed automatically by the WEKA CSI driver with the Kubernetes environment.
  • On the fly scale out and scale in the Cassandra cluster with no data movement required – Multiple containerized Cassandra nodes pods can run on a single Kubernetes worker instance, thereby allowing the creation of additional Kubernetes workers that will later contain some of the existing containerized Cassandra nodes pods migrated to them without requiring any Cassandra level data movement.
  • Scale up and down Azure instance sizes on the fly without any data movement – in case a Kubernetes worker node instance is burdened with multiple Cassandra nodes pods workload, that worker node can be scaled up to a bigger instance type that can then increase performance to the existing pods. Since the data resides on the WEKA filesystem this is done instantly with no burden of Cassandra data movement. The same applies to scaling down the worker node instances when less performance per worker node instance is required. This allows for significantly better cost and performance management.
  • Fully elastic Cassandra storage capacity – By scaling out the WEKA cluster and/or by expanding it to an Azure BLOB environment it is easy to dynamically change the available capacity of the Cassandra Database without any need to add/remove Cassandra nodes and/or perform expensive data redistribution.
  • Create test/dev database instances – by using the WEKA capability to create writable snapshots it is easy to snapshot the database filesystem and provision it to a different test/dev Cassandra database instance.
  • Instant integrated Backups for the Cassandra environment – utilizing the WEKA instant snapshots at scale capability the WEKA system(s) that contain the Cassandra environment can be snapshotted at any required interval to provide immediate point-in-time backup of the Cassandra instances and the entire cluster. No need for external Cassandra backup software.
  • Integrated Cassandra DR – With the WEKA capability of sending snapshots to remote locations and recovering the data to different provisioned WEKA systems, any Cassandra data can be sent to different Azure AZs and Regions to provide Cross AZ/Region backup and DR with immediate recovery allowing aggressive RPOs and RTOs. No need for external Cassandra backup/DR software.

Table 1 – Showing a containerized Cassandra write operations workload (higher is better) when connected to a WEKA cluster and when connected to Azure-managed CSI Premium drives  – WEKA provides more operations than the managed blocked device and at the same time, The WEKA Data Platform is barely loaded and can handle multiple additional Cassandra pods.

Table 2 – Showing a containerized Cassandra write operations latency (lower is better) when connected to a WEKA cluster and when connected to Azure premium managed drives – WEKA shows lower latencies than the premium managed block device while WEKA is barely loaded and can handle multiple additional Cassandra pods.

Summary

Cassandra is primarily selected for modern application development and deployment because of its optimized architecture and distributed nature. When coupled with the WEKA Data Platform on Azure, customers can overcome the scale and performance challenges of Cassandra and take advantage of the high-performance data pipelines from the WEKA filesystem. Additionally, customers can lower their cloud costs and reduce the complexities of managing the Cassandra cluster, which enables much better cost control of their Cassandra deployment in the Azure Cloud.

For additional information review the Containerized Cassandra Deployment on Azure with WEKA white paper.

Read the White Paper