Azure managed instance for Apache Cassandra is an
open-source NoSQL distributed database that is trusted by thousands of
companies for scalability and high availability without compromising
performance. Linear scalability and proven fault tolerance on commodity
hardware or cloud infrastructure makes it the perfect platform for mission
critical data.
Azure managed instance for Apache Cassandra is a distributed
database environment. This is a managed service that automates the deployment,
management (patching and node health), and scaling of nodes within an Apache
Cassandra cluster. It also provides the
capability for hybrid clusters, so Apache Cassandra datacenters deployed in
Azure can join an existing on-premises or third party hosted Cassandra ring. This
service is deployed using Azure Virtual machine scale sets.
However, Cassandra is not limited to any one form of compute
platform. For example, Kubernetes runs distributed applications and Cassandra
and Kubernetes can be run together. One of the advantages is the use of
containers and another is the interactive management of Cassandra from the
command line. The Azure managed instance for Apache Cassandra is notorious for
allowing limited form of connection and interactivity required to manage the
Cassandra instance. Most of the Database administration options are limited to
the Azure command line interface that takes the invoke-command option to pass
the actual commands to the Cassandra instance. There is no native invocation of
commands directly by reaching the IP address because the Azure Managed Instance
for Apache Cassandra does not create nodes with public IP addresses, so to
connect to a newly created Cassandra cluster, one will need to create another
resource inside the VNet. This could be an application, or a Virtual Machine
with Apache’s open-source query tool CSQLSH installed. The Azure Portal may also provide connection
strings that have all the necessary credentials to connect with the instance
using this tool. Native support for Cassandra is not limited to the nodetool
and sstable commands that are permitted via the Azure CLI command options. CSQLSH
is a command-line shell interface for interacting with Cassandra using CQL
(Cassandra Query Language). It is shipped with every Cassandra package and can
be found in the bin/ directory. It is implemented with the Python native
protocol driver and connects to the single specified node, and this greatly
reduces the overhead to manage the Cassandra control and data planes.
The use of containers is a blessing for developers to deploy
applications in the cloud and Kubernetes helps with the container
orchestration. Unlike managed Kubernetes
instances in Azure that can allow a client to configure the .kubeconfig file with
connection configuration using the az cli get-credentials and kubectl switch
context commands, the Azure managed instance for Apache Cassandra does not come
with the option to use kubectl commands. The use of containers helps with
managing add or remove of nodes to the Cassandra cluster with the help of the
cassandra.yaml file. It can be found in the /etc/cassandra folder within the
node. One cannot access the node directly from the Azure managed instance for
Cassandra so a shell prompt in the node is out of the question. The nodetool
option to bootstrap is also not available via Invoke-Command but it is possible
to edit this file. One of the most important properties of this application is the
option to set seed-providers for existing datacenters. This option allows a new
node to quickly become ready by importing all the necessary information from
the existing datacenter. The seed provider must not be set to the new node but
point to the existing node.
Cassandra service on a node must be stopped prior to the
execution of some commands and restarted post execution. The database must also
be set to read-write for certain commands to execute. These options can be set as
command line parameters to the Azure Command-line interface for the
managed-cassandra set of commands.
No comments:
Post a Comment