From 1cd71fdeb9e8a9fbc7fd7d3df3f7c4b1a9c7423d Mon Sep 17 00:00:00 2001 From: Wei Cao Date: Tue, 18 Jun 2024 13:51:57 +0800 Subject: [PATCH] chore: update readme --- README.md | 68 +++++++++++++++++++++++++++++++++++++------------------ 1 file changed, 46 insertions(+), 22 deletions(-) diff --git a/README.md b/README.md index 7ebe6300afa..f65459c732d 100644 --- a/README.md +++ b/README.md @@ -1,4 +1,4 @@ -# KubeBlocks +# Welcome to the KubeBlocks project! [![Documentation status](https://github.com/apecloud/kubeblocks.io/workflows/Documentation/badge.svg)](https://kubeblocks.io) [![OpenSSF Best Practices](https://bestpractices.coreinfrastructure.org/projects/7544/badge)](https://bestpractices.coreinfrastructure.org/projects/7544) @@ -15,54 +15,78 @@ ![image](./docs/img/banner-readme.jpeg) +## Motivation + +If you are a developer using multiple types of databases in your application and are considering deploying both your application and databases on K8s for cost or efficiency reasons, you will need to find suitable operators for each database. Learning the different operators and their APIs will introduce a significant learning curve and time costs, not to mention the effort required to maintain them. + +We aim to use a unified set of APIs (CRDs) and code to manage various databases on K8s. For example, we can use the `Cluster` resource to create a PostgreSQL cluster, a Redis cluster, or a Kafka cluster. This abstraction and unified API allow us to further use a single set of operator code to manage multiple types of databases, as well as handle day-2 operations, theoretically extending to any type of database engine. + ## What is KubeBlocks -KubeBlocks is an open-source control plane software that runs and manages databases, message queues and other data infrastructure on K8s. The name KubeBlocks is inspired by Kubernetes and LEGO blocks, signifying that running and managing data infrastructure on K8s can be standard and productive, like playing with LEGO blocks. +KubeBlocks is an open-source control plane software that runs and manages multiple popular database engines on K8s through a unified set of code and APIs. The core of KubeBlocks is a K8s operator, which defines a set of CRDs to abstract the common attributes of various database engines and uses these abstractions to manage the engine's lifecycle and day-2 operations. -KubeBlocks could manage various type of engines, including RDBMSs (MySQL, PostgreSQL), Caches(Redis), NoSQLs (MongoDB), MQs(Kafka, Pulsar), and vector databases(Milvus, Qdrant, Weaviate), and the community is actively integrating more types of engines into KubeBlocks. Currently it has supported 32 types of engines. +KubeBlocks could manage various type of stateful engines, including RDBMSs (MySQL, PostgreSQL), Caches(Redis), NoSQLs (MongoDB), MQs(Kafka, Pulsar), vector databases(Milvus, Qdrant, Weaviate), and data warehouses(ClickHouse, ElasticSearch, OpenSearch, Doris, StarRocks). Adding support for a new engine to KubeBlocks can be achieved by writing a KubeBlocks Addon. The community is actively integrating more types of engines into KubeBlocks, and it currently supports 35 types of engines. -The core of KubeBlocks is a K8s operator, which defines a set of CRDs to abstract the common attributes of various engines. KubeBlocks helps developers, SREs, and platform engineers deploy and maintain dedicated DBPaaS, and supports both public cloud vendors and on-premise environments. +The name KubeBlocks is inspired by Kubernetes and LEGO blocks, signifying that through the KubeBlocks API, adding, composing and managing database engines on K8s can be easy, standard and productive, like playing with LEGO blocks. ### Why you need KubeBlocks -KubeBlocks integrates the most popular database/message-queue/data-processing engines and provides rich management functions, along with declarative APIs, on various environments. Furthermore, KubeBlocks offers the following benefits: +KubeBlocks integrates the most popular database engines and provides rich management functions, along with declarative APIs, on various environments. Furthermore, KubeBlocks offers the following benefits: -* Cost-effective - - KubeBlocks optimizes the kernel and parameters of MySQL and PostgreSQL databases for containerized and cloud environments, and its performance exceeds that of RDS with the same hardware (see our blogs for test reports). +* Production-level + + KubeBlocks has already been adopted by large internet companies, private clouds, the financial industry including banks and securities firms, telecom industry, the automotive industry, and SaaS software providers. * Reliability - - KubeBlocks supports high-availability cluster configurations for multiple database engines, and supports Raft replication cluster for MySQL to achieve enhanced availability with durability guarantees. + + KubeBlocks supports the integration of various mature high-availability best practices, such as Orchestrator, Patroni, and Sentinel. KubeBlocks also supports full backups, continuous backups, and point-in-time recovery (PITR). + +* Ease of use + + KubeBlocks not only provides a YAML-based API but also offers an interactive kbcli tool to further simplify usage as a complement to kubectl. For example, you can install KubeBlocks and launch a playground environment on a desktop or cloud with a single command. * Observability - + KubeBlocks collects monitoring metrics from richful data sources, integrates with the Prometheus stack, and provides insightful Grafana templates. In addition, troubleshooting tools such as slow logs are also provided. * Extensibility - + KubeBlocks provides the addon mechanism for integrating new engines. So it can be extended to run the databases your project needs. ### Goals -- Being open and cloud-neutral -- Promoting the containerization of database workloads -- Promoting IaC and GitOps in the field of databases -- Reducing the cost of using databases -- Smoothing the learning curve of managing databases +- Smoothing the learning curve of managing various databases on K8s +- Exploring standard APIs for managing databases on Kubernetes +- Being open and cloud-neutral, as well as engine-neutral ### Key features -- Be compatible with AWS, GCP, Azure, and more -- Supports various data infrastructure systems, including MySQL, PostgreSQL, Redis, MongoDB, Kafka, Pulsar and more -- Provides production-level performance, resilience, scalability, and observability +- Supports various databases, including MySQL, PostgreSQL, Redis, MongoDB, Kafka, Clickhouse, ElasticSearch and more +- Provides production-level performance, resilience, and observability - Simplifies day-2 operations, such as upgrading, scaling, monitoring, backup, and restore - Contains a powerful and intuitive command line tool - +- Be compatible with AWS, GCP, Azure, Alibaba Cloud and more CSP + ## Get started with KubeBlocks [Quick Start](https://kubeblocks.io/docs/preview/user_docs/try-out-on-playground/try-kubeblocks-on-your-laptop) shows you the quickest way to get started with KubeBlocks. +## Resources + +[API Reference](https://kubeblocks.io/docs/release-0.8/developer_docs/api-reference/cluster) + +[How to write a KubeBlocks Addon?](https://kubeblocks.io/docs/release-0.8/developer_docs/integration/how-to-add-an-add-on) + +[KubeBlocks: Cloud-Native Data Infrastructure for Kubernetes](https://www.youtube.com/watch?v=KNwpG51Whzg) (A Video made by Viktor Farcic) + +[Dashboard Demo](https://console.kubeblocks.io/) + +## KubeBlocks at KubeCon + +KubeCon 2024 in HongKong from 21-23 August 2024: [How to Manage Database Clusters Without a Dedicated Operator, By Shanshan Ying, ApeCloud & Shun Ding, China Mobile Cloud](https://kccncossaidevchn2024.sched.com/event/1eYYL/how-to-manage-database-clusters-without-a-dedicated-operator-nanoxi-operatorzha-fa-lia-zhong-shi-shanshan-ying-apecloud-shun-ding-china-mobile-cloud) + +KubeCon 2024 in HongKong from 21-23 August 2024: [KuaiShou's 100% Resource Utilization Boost: 100K Redis Migration from Bare Metal to Kubernetes, By XueQiang Wu, ApeCloud & YuXing Liu, Kuaishou](https://kccncossaidevchn2024.sched.com/event/1eYat/kuaishous-100-resource-utilization-boost-100k-redis-migration-from-bare-metal-to-kubernetes-zha-100pian-zhi-yi-daeplie-hui-zhe-100k-rediskubernetes-xueqiang-wu-apecloud-yuxing-liu-kuaishou) + ## Community - KubeBlocks [Slack Channel](https://join.slack.com/t/kubeblocks/shared_invite/zt-2j48svoqv-l8KrrqT8Ah2uRDjYuu3FvA) @@ -82,4 +106,4 @@ We consider security is a top priority issue. If you come across a related issue ## License KubeBlocks is under the GNU Affero General Public License v3.0. -See the [LICENSE](./LICENSE) file for details. +See the [LICENSE](./LICENSE) file for details. \ No newline at end of file