Skip to content

yahoojapan/k2hdkc_dbaas

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

52 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

K2HDKC DBaaS

License GitHub forks GitHub stars GitHub issues

About K2HDKC DBaaS

K2HDKC DBaaS

K2HDKC DBaaS Overview

K2HDKC DBaaS (DataBase as a Service of K2HDKC) is a basic system that provides K2HDKC(K2Hash based Distributed Kvs Cluster) as a service.
K2HDKC DBaaS (Database as a Service for K2HDKC) is a Database as a Service that uses K2HR3 and works with OpenStack and kubernetes to build a K2HDKC(K2Hash based Distributed Kvs Cluster) Cluster for distributed KVS.
Users can easily launch, scale, back up, and restore K2HDKC clusters as K2HDKC DBaaS.

Detailed documentation for K2HDKC DBaaS can be found here.

Background

Yahoo! JAPAN publishes some products as AntPickax as Open Source Software(OSS).
We planned to provide one of them, K2HDKC(K2Hash based Distributed Kvs Cluster) as DBaaS(Database as a Service) so that anyone can easily use it.
And the publicly available K2HR3(K2Hdkc based Resource and Roles and policy Rules) offers enough features to make this happen.
We have built DBaaS(Database as a Service) in conjunction with OpenStack and kubernetes, centering on this K2HR3(K2Hdkc based Resource and Roles and policy Rules).

Components for K2HKDC DBaaS system

K2HDKC DBaaS (Database as a Service for K2HDKC) is configured using the following products which is provided by AntPickax.

  • K2HDKC - K2Hash based Distributed Kvs Cluster
    This product is distributed KVS(Key Value Store) clustering system and the core product of K2HDKC DBaaS.
  • CHMPX - Consistent Hashing Mq inProcess data eXchange
    This product is communication middleware over the network for sending binary data and an important component responsible for K2HDKC communication.
  • K2HR3 - K2Hdkc based Resource and Roles and policy Rules
    This is extended RBAC (Role Based Access Control) system, and this system manages the configuration of the K2HDKC cluster as a backend for K2HDKC DBaaS.

K2HKDC DBaaS types

There are four types of DBaaS (Database as a Service) provided by K2HDKC DBaaS (Database as a Service for K2HDKC) as shown below.
We provide two K2HDKC DBaaS types that cooperate with OpenStack and two types that cooperate with kubernetes.

With Trove(Trove is Database as a Service for OpenStack)

This is DBaaS(Database as a Service) using Trove which is a product of OpenStack.
It incorporates K2HDKC (Distributed KVS) as one of Trove’s databases to realize DBaaS(Database as a Service).

K2HDKC DBaaS CLI(Command Line Interface) for OpenStack

If you have an existing OpenStack environment, this K2HDKC DBaaS CLI(Command Line Interface) allows you to implement DBaaS(Database as a Service) without any changes.

K2HDKC DBaaS on kubernetes CLI(Command Line Interface)

If you are using kubernetes cluster or trial environment such as minikube, this K2HDKC DBaaS on kubernetes CLI(Command Line Interface) allows you to implement DBaaS(Database as a Service) without any changes.

K2HDKC Helm Chart

If you are using kubernetes cluster or trial environment such as minikube, you can install(build) DBaaS(Database as a Service) by using Helm(The package manager for Kubernetes) with K2HDKC Helm Chart.

K2HKDC DBaaS system based on Trove

K2HDKC DBaaS in this repository provides its functionality through Trove as a panel(feature) of OpenStack.
And the K2HR3 system is used as the back end as an RBAC(Role Base Access Control) system dedicated to K2HDKC DBaaS.
Normally, users do not need to use the K2HR3 system directly, and the function as DBaaS uses Trove Dashboard(or Trove CLI).

The overall system overview diagram is shown below.
K2HDKC DBaaS system

The source code for this repository is for K2HKDC DBaaS system based on Trove.
For other type's source code, see the repository below.

Trial

For the K2HDKC DBaaS experience, you can build a minimum K2HDKC DBaaS system.
This minimum system has all the features of K2HDKC DBaaS.
So you can use it to try out all the features provided by K2HDKC DBaaS.

This minimum system(trial environment) is very easy to build by simply running the script provided by this repository.
For how to use it, refer to the Build document.

Usage

How to use K2HDKC DBaaS to build/start K2HDKC cluster and K2HDKC slave node easily.
For information on how to use K2HDKC DBaaS that works with Trove(Trove is Database as a Service for OpenStack), see Usage Trove document.
For how to use K2HDKC DBaaS CLI(Command Line Interface), refer to Usage CLI document.
These document describes all usage, including how to use K2HDKC DBaaS to create a K2HDKC cluster, how to launch a K2HDKC slave node, and more.

Let's get started.

Documents

K2HDKC DBaaS Document
Github wiki page

About k2hdkc Document
About chmpx Document
About k2hr3 Document

About AntPickax

Repositories

k2hdkc
chmpx
k2hdkc_dbaas_cli
k2hdkc_dbaas_k8s_cli
k2hdkc_dbaas_override_conf
k2hr3
k2hr3_app
k2hr3_cli
k2hr3_api
k2hr3_get_resource

Packages

k2hdkc(packagecloud.io)
chmpx(packagecloud.io)
k2hdkc-dbaas-cli(packagecloud.io)
k2hdkc-dbaas-k8s-cli(packagecloud.io)
k2hdkc-dbaas-override-conf(packagecloud.io)
k2hr3-cli(packagecloud.io)
k2hr3-app(npm packages)
k2hr3-api(npm packages)
k2hr3-get-resource(packagecloud.io)

License

This software is released under the 2.0 version of the Apache License, see the license file.

AntPickax

K2HDKC DBaaS is one of AntPickax products.

Copyright(C) 2020 Yahoo Japan Corporation.