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