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