A Python tool to easily create, manage, and destroy local Apache Cassandra clusters for testing.
CCM (Cassandra Cluster Manager) is a Python-based tool that automates the creation and management of local Apache Cassandra clusters for testing and development. It solves the problem of manually configuring and maintaining multiple Cassandra nodes on a single machine, providing a streamlined workflow for simulating distributed database environments.
Developers and QA engineers working with Apache Cassandra who need to test applications against multi-node clusters in a local or controlled environment.
CCM saves time and reduces complexity by offering a command-line interface to spin up realistic Cassandra clusters instantly, with support for multiple versions, remote deployment, and extensibility for third-party Cassandra distributions like DSE.
Apache Cassandra® Cluster Manager (CCM) – easily create and destroy clusters on localhost
Open-Awesome is built by the community, for the community. Submit a project, suggest an awesome list, or help improve the catalog on GitHub.
CCM simplifies creating and starting multi-node Cassandra clusters with commands like 'ccm create test -v 2.0.5 -n 3 -s', drastically reducing manual setup time for development and testing.
Supports testing with various Cassandra versions, including binary releases, source builds, and Git branches, as shown in the README with options like 'source:2.0.5' and 'github:jbellis/trunk'.
Enables deployment on remote servers via SSH with automatic file transfer for configurations, using arguments like --ssh-host and --ssh-username, extending usability beyond local machines.
Includes libraries for DataStax Enterprise (DSE) and Hyper Converged Database (HCD) clusters, allowing enterprise variants to be managed through the same interface with --dse or --hcd flags.
On Mac OSX, requires creating network aliases with sudo commands that are not persistent across reboots, adding setup complexity and maintenance overhead, as noted in the README.
Caches compiled Cassandra versions in ~/.ccm/repository/, which can consume significant disk space with multiple versions, a trade-off acknowledged in the documentation for faster subsequent usage.
Relies on Python for installation and SSH for remote features, which may not be available in all environments and adds setup steps compared to container-based alternatives.
Focused solely on testing and development, lacking built-in tools for production-grade orchestration, monitoring, or backup, making it unsuitable for live cluster management.