DataStax Proxy for DynamoDB and Apache Cassandra® – 预览版
At the ApacheCon conference on September 11, 2019, Patrick McFadin from DataStax announced an open-source tool's public preview version that enables developers to run their Amazon DynamoDB applications on Apache Cassandra. With DataStax's support for both DynamoDB and Cassandra, developers can run DynamoDB applications in various environments while fully leveraging the advantages of Cassandra's hybrid cloud, multi-model, and infinite scalability. Amazon DynamoDB is a key-value database that provides developers with an elastic and zero-operation cloud experience. However, its tight integration with AWS limits its use for customers who want to utilize it in their own data centers. Since Cassandra has always supported key-value and tabular data models, supporting DynamoDB applications means DataStax users only need a translation layer to access their existing Cassandra storage engine. Today, we are releasing a preview of an agent sequence compatible with the DynamoDB SDK that allows existing application sequences to read/write data from DataStax Enterprise (DSE) or Cassandra without any code changes. For users already using the DynamoDB SDK, they can easily enjoy the benefits of Cassandra's hybrid cloud, multi-model, and infinite scalability through this agent. If you are only interested in finding the code for this open-source tool, you can find it on GitHub and DataStax Labs: https://github.com/datastax/dynamo-cassandra-proxy/. Application lifecycle management: Many customers develop applications in their own data centers and then deploy them to cloud production environments. This agent sequence allows users to run their existing DynamoDB application sequences on a Cassandra cluster running in their local data center. Hybrid deployment: DynamoDB Streams can be used to implement hybrid workload management and migrate from the cloud-based DynamoDB database to an on-premises Cassandra database using the DynamoDB proxy sequence to access the local Cassandra database. The current implementation supports this usage mode, similar to DynamoDB Global Tables, and it also uses DynamoDB Streams to move data. For hybrid moving data to DynamoDB, please refer to the improvements in Cassandra CDC and continue monitoring DataStax's blog for updates on our Change Data Capture (CDC) functionality. The agent sequence is designed to enable users to use Cassandra to support their DynamoDB applications. We believe that the best way to help users leverage this new tool and grow is to open-source it under an Apache 2 license. This code provides a scalable proxy layer between your application and database. It maintains compatibility with the DynamoDB SDK, allowing existing DynamoDB applications to read and write data from Cassandra without changing the application. We made some design decisions when designing this agent sequence that align with our usual guiding principles for developing Cassandra and DataStax Enterprise products. We could have built it as a Cassandra plugin, which would allow it to run as part of the core process, but we decided to build it as a separate process for the following reasons: Ability to independently scale the agent from Cassandra The ability to leverage Kubernetes/cloud-native tools Agile development and easier attraction of open-source contributors - Developers do not need in-depth knowledge of the Cassandra kernel to get started developing this agent sequence Independent release cadence, separate from the Apache Cassandra project Providing better AWS integration for stateless applications (i.e., leveraging CloudWatch alerts, auto-scaling, etc.) At first glance, DynamoDB's data model appears very simple. It consists of a hash key, a sort key, and a JSON structure called an item. Depending on your goals, the DynamoDB data model can be stored in different ways in Cassandra Query Language (CQL). To support experimentation and pluggability, we built the translation layer as a pluggable component that allows for different translation mechanisms. We continue to build on this architecture, testing multiple data models, and determining which one is best suited for: Various workloads Support for various consistency/serialization requirements Performance trade-offs based on SLAs If you are interested in running DynamoDB applications on Cassandra, please check out this project. Getting started is easy; just follow the steps outlined in the readme file and DynamoDB section. The functionality supported by this agent sequence is rapidly increasing, and we welcome your contributions. https://github.com/datastax/dynamo-cassandra-proxy/. All product and company names are trademarks or registered trademarks of their respective owners. Using these trademarks does not imply any affiliation with or endorsement by the trademark owner. 1 Typically referred to as a partition key in DynamoDB documentation, we use the term hash key here because they do not have a one-to-one correspondence with partitions in DynamoDB.
Company
DataStax
Date published
Sept. 13, 2019
Author(s)
-
Word count
48
Language
Chinese
Hacker News points
None found.