Database container deployment

OpenText leverages container technology to meet the needs of modern application development and operations workflows that must deliver software quickly and efficiently across a variety of infrastructures.

OpenText™ Analytics Database Eon Mode leverages container technology to meet the needs of modern application development and operations workflows that must deliver software quickly and efficiently across a variety of infrastructures. The container ecosystem for OpenText™ Analytics Database supports Kubernetes with automation tools to help maintain the state of your environment with minimal disruptions and manual intervention.

Container deployments provide the following benefits:

  • Performance: Eon Mode separates compute from storage, which provides the optimal architecture for stateful, containerized applications. Eon Mode subclusters can target specific workloads and scale elastically according to the current computational needs.

  • High availability: Database containers provide a consistent, repeatable environment that you can deploy quickly. If a database host or service fails, you can easily replace the resource.

  • Resource utilization: A container is a runtime environment that packages an application and its dependencies in an isolated process. This isolation allows containerized applications to share hardware without interference, providing granular resource control and cost savings.

  • Flexibility: Kubernetes is the de facto container orchestration platform. It is supported by a large ecosystem of public and private cloud providers.

Database container ecosystem

The container ecosystem provides various tools and artifacts for production and development environments:

  • Helm chart: Helm is a Kubernetes package manager that bundles into a single package the YAML manifests that deploy Kubernetes objects. Download the Helm charts from the Helm Charts Repository.

  • Custom Resource Definition (CRD): A CRD is a shared global object that extends the Kubernetes API with your custom resource types. You can use a CRD to instantiate a custom resource (CR), a deployable object with a desired state. CRDs deploy and support the Eon Mode architecture on Kubernetes.

  • VerticaDB Operator: The operator is a custom controller that monitors the state of your CR and automates administrator tasks. If the current state differs from the declared state, the operator works to correct the current state.

  • Admission controller: The admission controller uses a webhook that the operator queries to verify changes to mutable states in a CR.

  • VerticaDB vlogger: The vlogger is a lightweight image used to deploy a sidecar utility container. The sidecar sends logs from vertica.log in the database server container to standard output on the host node to simplify log aggregation.

  • Vertica Community Edition (CE) image: The CE image is the containerized version of the limited Enterprise Mode Vertica community edition (CE) license. The CE image provides a test environment consisting of an example database and developer tools.

    In addition to the pre-built CE image, you can build a custom CE image with the tools provided in the one-node-ce GitHub repository.

  • Communal Storage Options: A variety of public and private cloud storage providers are supported. For a list of supported storage providers, see Containerized environments.

  • Kafka integration: Containerized Kafka Scheduler provides a CRD and Helm chart to create and launch the Kafka scheduler, a standalone Java application that automatically consumes data from one or more Kafka topics and then loads the structured data into the database.

Repositories

The following open-source projects are maintained on GitHub:

  • vertica-kubernetes: This is an open-source project that welcomes contributions from the database community. The vertica-kubernetes GitHub repository contains all the source code for the database on Kubernetes integration, and includes contributing guidelines and instructions on how to set up development workflows.

  • vcluster: vcluster is a Go library that uses a high-level REST interface to perform database operations with the Node Management Agent (NMA) and HTTPS service. The vclusterops library replaces Administration tools (admintools), a traditional command-line interface that executes administrator commands through STDIN and required SSH keys for internal node communications. The vclusterops deployment is more efficient in containerized environments than the admintools deployment.

    vcluster is an open-source project, so you can build custom implementations with the library. For details about migrating your existing admintools deployment to vcluster, see Upgrading OpenText Analytics Database on Kubernetes.

  • vertica-containers: GitHub repository that contains source code for the following container-based projects: