You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@servicecomb.apache.org by as...@apache.org on 2019/06/27 11:53:13 UTC
[servicecomb-kie] 02/29: add project introduction
This is an automated email from the ASF dual-hosted git repository.
asifdxtreme pushed a commit to branch master
in repository https://gitbox.apache.org/repos/asf/servicecomb-kie.git
commit bfc05b37c9e710f2f3997b18b6203421899dcacd
Author: tian <xi...@gmail.com>
AuthorDate: Mon Apr 29 15:23:44 2019 +0800
add project introduction
---
README.md | 59 ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++-
1 file changed, 58 insertions(+), 1 deletion(-)
diff --git a/README.md b/README.md
index 91353db..244cf63 100644
--- a/README.md
+++ b/README.md
@@ -1,9 +1,66 @@
# Apache-ServiceComb-Kie
-Introduction of the project
+A service for key value management in distributed system.
+
+## Conceptions
+
+### Key
+key could indicate a configuration like "timeout",
+then the value could be "3s"
+or indicates a file name "app.properties",
+then the value could be content of app.properties
+
+### labels
+Each key could has labels. labels indicates a unique key.
+A key "log_level" with labels "env=production"
+may saves the value "INFO" for all application log level in production environment.
+A key "log_level" with labels "env=production, component=payment"
+may saves the value "DEBUG" for payment service in production environment.
+
+it means all payment service print debug log, but for other service print info log.
+
+so you can control your application runtime behaviors
+by setting different labels to a key.
+
+
+
+## Components
+it includes 5 components
+
+- server: rest api service to manage kv
+- client: restful client for go
+- kie-template: agent can be deployed in your k8s pod
+or VM, it connects to server and writes kv into config file
+based on template language
+- kiectl: CLI tool for kie
+- frontend: web console for kie
## Features
+TODO
+- simple key name with rich labels: user can define labels for a key,
+that distinguish from key to another key.
+a key will not be stringed by fixed schema.
+labels for a key is like "env=test, service=cart, version=1.0" or "cluster=xxx"
+or "env=test, service=cart, version=1.0, ip=x.x.x.x"
+- validator: value can be checked by user defined python script,
+so in runtime if someone want to change this value,
+the script will check if this value is appropriate.
+- encryption web hook: value can by encrypt
+by your custom encryption service like vault.
+- Long polling: client can get key value changes by long polling
+- config view: by setting labels criteria, servicecomb-kie
+is able to aggregate a view to return all key values which match those labels,
+so that operator can mange key in their own understanding
+to a distributed system in separated views.
+- rich value type: not only plain text, but support to be aware of ini, json,yaml,xml and java properties
+- heterogeneous config server: able to fetch configuration in k8s and consul
+ even more, you can update, delete,
+ and use config view for those systems,
+ and you can integrate with your own config system to MetaConfig by
+ following standardized API and model
+- consul compatible: partially compatible with consul kv management API
+- kv change history: all kv changes is recorded and can be easily roll back by UI
## Quick Start
## Contact