Meet CQL Proxy: The Simpler Way to Connect Apache Cassandra Apps to Astra DB
Author: Mark Stone
Transitioning your existing data applications to a different backend is no small task.This post gives a high-level overview of CQL proxy and how it helps you connect your Apache Cassandra applications with Astra DB with little to no configuration modifications.
Many IT organizations are adopting a fully managed database-as-a-service (DBaaS) to reduce their operational overhead and scale their applications in the public cloud of their choice. Reduced operational overhead brings agility to IT teams allowing them to deliver their new innovations faster.
Moving to serverless DataStax Astra DB allows companies to enjoy significant TCO (total cost of operations) savings by paying only for what they consume. This reduces operational costs by bringing down their existing public cloud commitments.
Companies that currently manage their Apache Cassandra® footprint on-premises will see an immediate financial benefit by moving from upfront fixed capital expenses to consumption-based operational expenses. And, for companies who are self-managing on public cloud infrastructure-as-a-service (IaaS), moving to Astra DB serverless can reduce their TCO by up to 70 percent. This is because they pay only for the required compute and storage resources.
In this post, we will introduce and detail DataStax CQL Proxy and show you how it can simplify the way you connect existing apps to Astra DB.
Introducing DataStax CQL Proxy
DataStax CQL Proxy is an open-source tool that helps you easily connect your apps to Astra DB — without having to change your Cassandra driver (DataStax or community-provided), driver version, or framework (Spring Data, Lagom, Quarkus, etc.). This makes CQL Proxy an important additional tool in your lift-and-shift strategy.
CQL Proxy handles the cloud network connection for your Cassandra apps to Astra DB, so that network code within your driver or application does not have to change. It is designed to securely forward your application’s CQL traffic to an appropriate database service, and will also auto-discover and auto-configure communication with Astra DB. Then, with a simple network configuration change to point to CQL Proxy’s local address, your applications can easily talk to Astra DB.
DataStax CQL Proxy works with different versions of Cassandra, across driver versions and driver languages. In other words:
- If your applications run on older versions of Cassandra, CQL Proxy allows you to run them on Cassandra 4.x or Astra DB.
- If your apps are using an older driver (like Java 2) to connect to Cassandra, CQL Proxy will connect them to Cassandra 4.x or Astra DB.
- If your language is not supported by Cassandra or DataStax, just write a lightweight driver and you’re good to go.
Essentially, you get an upgrade to your data backend at the same time as you lift and shift your applications to fully-managed Astra DB. You can also use the public cloud of your choice.
Simplifying the network connections and security for migrations
Native drivers include network management code in addition to the core query engine code to manage connectivity among nodes in the network. This violates cloud-native design principles, where there should be a separation of concerns between network management that is handled by the cloud infrastructure, and query management that is properly part of the application.
CQL Proxy solves this by automatically handling network management on behalf of your app through a secure connection, authentication, and authorization. These functions no longer have to be handled by the driver to lighten the burden applications place on them.
Using CQL Proxy simplifies things by replacing heavy drivers with lightweight network management code and provides separate application management with a core query engine. It also sets up and manages the secure connect bundle out of the box, securing the connectivity from your apps to Astra DB. That spares you from dealing with the bundle’s installation and configuration to make sure your Cassandra connections are properly encrypted and authenticated.
One of the biggest challenges when moving existing applications to a different backend is the differences in network configuration between on-premises and various public clouds. Changing application code to change network configuration is a nonstarter for many organizations. CQL Proxy removes this obstacle, bringing a cloud-centric separation of concerns between network code and application code to your on-premises environment.
Now your applications can be cloud-aware with a simple configuration change.
If you’re curious about the CQL Proxy and want to take it for a spin, check out the CQL Proxy GitHub repository. If you have questions, ping us on our DataStax Developers Discord. Keep an eye out for our next post on CQL Proxy, where we’ll do a deeper dive into the architecture and hint at what’s next for this open-source tool.
Follow DataStax on Medium to keep up with our latest announcements and developer resources on all things open source, data, streaming, and more. To join our growing developer community, follow DataStaxDevs on Twitter.