Learn How to Run Containerized Enterprise SQL Applications in the Cloud
In April, Murat Karslioglu and I presented a webinar on the challenges of deploying an enterprise SQL database across multiple geographical locations in OpenShift or Kubernetes clusters. We had a lot to show, and unfortunately ran out of time to answer questions. We put together answers to those questions here for you, but if you have more, please reach out — we’d be happy to discuss any other questions or ideas you have.
How easy is it to set up NuoDB to use OpenEBS?
It’s very easy. Just follow the OpenEBS install instructions to start OpenEBS storage, create the OpenEBS Kubernetes storage class, set the replica count=1 and nodeselector label values, all which takes only a few minutes. Then, from the NuoDB deployment templates or the Operator, just specify the OpenEBS storage class you’d like to use for your NuoDB Storage Manager (SM) processes. We also recommend configuring several NuoDB Storage Managers (SMs) to construct a fault tolerant database system system using OpenEBS.
Are you planning to deploy your product using a Kubernetes Operator?
Yes! The NuoDB Operator has been published to the OpenShift OperatorHub (a fully integrated marketplace inside OpenShift 4) as well as other service catalogs, such as the Operatorhub.io Marketplace, Google Marketplace, plus the Amazon and Azure equivalents.
What types of tasks does your Operator automate?
Today our Operator is designed to allow the user to easily configure start-up parameters and deploy the database. In the near future, the Operator will also manage such tasks as backup and recovery, rolling upgrades, extending the database to another zone or region, and many other day-2 operations.
How ANSI SQL standard is NuoDB?
If you built your SQL applications to the ANSI standard, then you need to make very little effort to migrate your applications to NuoDB. NuoDB also supports common SQL string, date, and mathematical functions found in other database products to smooth the transition from products such as Oracle, DB2, or SQL Server. For any specialty functions not currently supported, NuoDB still has you covered by using its "user defined" function feature, which allows you to build a NuoDB function to perform the task rather than re-writing your SQL.
Does NuoDB support a 4GL stored procedure and Trigger language?
Yes, NuoDB supports its own PL/SQL-like 4GL language for stored procs and db triggers. In addition, users can also write Java-based stored procedures and triggers in NuoDB.
What is a cStor pool and how can I scale up the storage when capacity is running out?
A cStorPool is a set of pool instances with each instance on a participating Kubernetes worker node. A pool instance is a set of disks aggregated on a given worker node. The disks are aggregated into a pool instance to scale up the capacity when demanded. Alerts are generated when capacity of the pool crosses a configured threshold. At that time, more disks can be added to the pool instance and the capacity is increased dynamically without any service disruption.
Does OpenEBS run anywhere? On any cloud or on-premise?
Yes, OpenEBS is the leading open source example of so-called container attached or cloud native storage. The architecture is comprised of containers that themselves are orchestrated by any Kubernetes. And because OpenEBS is 100% in the user space — meaning it does not require any changes to your operating environment — it does run easily anywhere.
What chaos tests can we do on NuoDB and Kubernetes using Litmus?
Using Litmus, you can run the following chaos tests:
- Kubernetes node kill
- Kubernetes Kubelet kill
- NuoDB transaction engine kill
- NuoDB admin component kill
- NuoDB Storage Manager kill
- Inject latency between NuoDB components
- OpenEBS controller kill
- OpenEBS replica kill
- Inject latency between NuoDB storage manager or admin and OpenEBS controller
- Inject latency between OpenEBS controller and OpenEBS replica
Can we have more than one copy of the data in OpenEBS for each Storage Manager statefulset instance?
Yes, you can. For example, you can add additional resilience by designating three replicas in the storage classes. In this configuration, every write will be synchronously written to three data containers. There is a performance impact when using this configuration, however some users feel the additional resilience (including across availability zones) is worth this trade-off.
Alternatively, we see many users doing backups at the OpenEBS layer. This then can be common tooling for workloads including NuoDB, as well as for logging and other stateful workloads. CI/CD pipelines are another common workload. There is much more about these and similar approaches on OpenEBS docs. Free help is available from the community via our Slack channel: slack.openEBS.io.
How can I get support for OpenEBS?
Commercial support is available for OpenEBS from MayaData. This support includes related software tools such as MayaOnline for visibility and control and Litmus for chaos engineering and service assurance. Please visit MayaData.io to learn more.
Written with Murat Karslioglu, VP of Products, MayaData