membphis commented on a change in pull request #27:
URL:
https://github.com/apache/apisix-control-plane/pull/27#discussion_r499195899
##########
File path: README.md
##########
@@ -17,18 +17,48 @@
#
-->
-# apisix-control-plane
+# APISIX-CONTROL-PLANE
-## what is apisix-control-plane?
-apisix-control-plane provide APISIX with a `yml` configuration capability,
-We can use `yml` to define the proxy behavior of APISIX
+## What is apisix-control-plane
-## Why do you want to do this?
-1. In order to facilitate the integration of k8s, use `yml` to define APISIX;
-2. For easier synchronization across clusters;
-3. Can be better adapted to multiple platforms (k8s, vm);
+apisix-control-plane is an implementation of providing a control plane for DPs
(Data Plane) like apache apisix or other gateways. with a `yml` configuration
capability, We can use `yml` to define the behavior of any DP.
+
+## Why do we need to implement a control-plane
+
+for now, we have a default implementation for apache APISIX.
+
+As we knows, apache APISIX is a high-performance gateway. When using APISIX we
need to inform apisix of some proxy rules, and distribute these rules to apisix
modules. We can call it contol-plane, similar to pilot in istio. Of course, the
distribution configuration is only the most basic function of the control plane.
Review comment:
`apache` -> `Apache`
##########
File path: README.md
##########
@@ -17,18 +17,48 @@
#
-->
-# apisix-control-plane
+# APISIX-CONTROL-PLANE
-## what is apisix-control-plane?
-apisix-control-plane provide APISIX with a `yml` configuration capability,
-We can use `yml` to define the proxy behavior of APISIX
+## What is apisix-control-plane
-## Why do you want to do this?
-1. In order to facilitate the integration of k8s, use `yml` to define APISIX;
-2. For easier synchronization across clusters;
-3. Can be better adapted to multiple platforms (k8s, vm);
+apisix-control-plane is an implementation of providing a control plane for DPs
(Data Plane) like apache apisix or other gateways. with a `yml` configuration
capability, We can use `yml` to define the behavior of any DP.
+
+## Why do we need to implement a control-plane
+
+for now, we have a default implementation for apache APISIX.
+
+As we knows, apache APISIX is a high-performance gateway. When using APISIX we
need to inform apisix of some proxy rules, and distribute these rules to apisix
modules. We can call it contol-plane, similar to pilot in istio. Of course, the
distribution configuration is only the most basic function of the control plane.
+
+We know that apisix already has admin api, so why do we need to implement a
control-plane?
Review comment:
`admin api` -> `Admin API`, is it better?
##########
File path: README.md
##########
@@ -17,18 +17,48 @@
#
-->
-# apisix-control-plane
+# APISIX-CONTROL-PLANE
-## what is apisix-control-plane?
-apisix-control-plane provide APISIX with a `yml` configuration capability,
-We can use `yml` to define the proxy behavior of APISIX
+## What is apisix-control-plane
-## Why do you want to do this?
-1. In order to facilitate the integration of k8s, use `yml` to define APISIX;
-2. For easier synchronization across clusters;
-3. Can be better adapted to multiple platforms (k8s, vm);
+apisix-control-plane is an implementation of providing a control plane for DPs
(Data Plane) like apache apisix or other gateways. with a `yml` configuration
capability, We can use `yml` to define the behavior of any DP.
+
+## Why do we need to implement a control-plane
+
+for now, we have a default implementation for apache APISIX.
+
+As we knows, apache APISIX is a high-performance gateway. When using APISIX we
need to inform apisix of some proxy rules, and distribute these rules to apisix
modules. We can call it contol-plane, similar to pilot in istio. Of course, the
distribution configuration is only the most basic function of the control plane.
+
+We know that apisix already has admin api, so why do we need to implement a
control-plane?
+
+First of all, apache apisix admin api is a way to define a single object, such
as a single object such as route / service / upstream / consumer, although it
is also possible to completely define a route through a huge route object, and
the upstream object is embedded in the route , But any minor changes will
trigger the reconstruction of the route. Rebuilding the route is definitely not
a good idea and reduce performance.
+
+In fact, leaving aside the admin api, what we need is a description method
that can completely define the rules while maintaining the legibility of the
admin api. Therefore, we have [discussion
here](https://github.com/apache/apisix-control-plane/blob/master/doc/yaml_struct.md),
and we have implemented a version of the basic functions according to this
data structure , I hope everyone puts forward their views. We can also submit a
PR to modify this [document](doc/yaml_struct.md).
+
+Secondly, apache apisix admin api uses id associations to strongly bind
objects to express the relationship between objects. For example, the route
object uses service_id and upstream_id to bind the relationship with service
and upstream respectively.
+
+This kind of representation, like the well-known relational database, is
easier to understand and reduces redundant configurations. But it also brings
some other problems. For example, rely on verification. When we want to bind an
`upstreamId` to a route, we must first create the upstream, and then bind the
generated `upstreamId` to the route. This process corresponds to two admin
APIs, and there is no transaction management.
+
+We hope that the emergence of control-plane can solve the above two problems.
+
+Of course, with control-plane we can do more.
+
+For example, based on gitops configuration version management, it is also more
convenient to use yaml to define apisix in k8s.
+
+Realize the prototype of cross-cluster synchronization configuration through
the control panel. In the future, we can also enrich the functions of the
control plane and simplify management under the cluster mode of multi-platform
hybrid deployment (k8s/vm). We can also shield specific implementations of
APISIX and provide configuration functions for more types of gateways.
+
+## Feature support
+
+1. Support the declarative definition of yaml.
+2. Use the memory database to synchronize the gateway status.
+3. Diff capabilities based on memory objects.
+4. sync / update the apisix configuration.
Review comment:
Capitalize the first letter
##########
File path: README.md
##########
@@ -17,18 +17,48 @@
#
-->
-# apisix-control-plane
+# APISIX-CONTROL-PLANE
-## what is apisix-control-plane?
-apisix-control-plane provide APISIX with a `yml` configuration capability,
-We can use `yml` to define the proxy behavior of APISIX
+## What is apisix-control-plane
-## Why do you want to do this?
-1. In order to facilitate the integration of k8s, use `yml` to define APISIX;
-2. For easier synchronization across clusters;
-3. Can be better adapted to multiple platforms (k8s, vm);
+apisix-control-plane is an implementation of providing a control plane for DPs
(Data Plane) like apache apisix or other gateways. with a `yml` configuration
capability, We can use `yml` to define the behavior of any DP.
Review comment:
Is `yaml` easier to understand?
##########
File path: README.md
##########
@@ -17,18 +17,48 @@
#
-->
-# apisix-control-plane
+# APISIX-CONTROL-PLANE
-## what is apisix-control-plane?
-apisix-control-plane provide APISIX with a `yml` configuration capability,
-We can use `yml` to define the proxy behavior of APISIX
+## What is apisix-control-plane
-## Why do you want to do this?
-1. In order to facilitate the integration of k8s, use `yml` to define APISIX;
-2. For easier synchronization across clusters;
-3. Can be better adapted to multiple platforms (k8s, vm);
+apisix-control-plane is an implementation of providing a control plane for DPs
(Data Plane) like apache apisix or other gateways. with a `yml` configuration
capability, We can use `yml` to define the behavior of any DP.
+
+## Why do we need to implement a control-plane
+
+for now, we have a default implementation for apache APISIX.
Review comment:
Capitalize the first letter
##########
File path: README.md
##########
@@ -17,18 +17,48 @@
#
-->
-# apisix-control-plane
+# APISIX-CONTROL-PLANE
-## what is apisix-control-plane?
-apisix-control-plane provide APISIX with a `yml` configuration capability,
-We can use `yml` to define the proxy behavior of APISIX
+## What is apisix-control-plane
-## Why do you want to do this?
-1. In order to facilitate the integration of k8s, use `yml` to define APISIX;
-2. For easier synchronization across clusters;
-3. Can be better adapted to multiple platforms (k8s, vm);
+apisix-control-plane is an implementation of providing a control plane for DPs
(Data Plane) like apache apisix or other gateways. with a `yml` configuration
capability, We can use `yml` to define the behavior of any DP.
+
+## Why do we need to implement a control-plane
+
+for now, we have a default implementation for apache APISIX.
+
+As we knows, apache APISIX is a high-performance gateway. When using APISIX we
need to inform apisix of some proxy rules, and distribute these rules to apisix
modules. We can call it contol-plane, similar to pilot in istio. Of course, the
distribution configuration is only the most basic function of the control plane.
+
+We know that apisix already has admin api, so why do we need to implement a
control-plane?
+
+First of all, apache apisix admin api is a way to define a single object, such
as a single object such as route / service / upstream / consumer, although it
is also possible to completely define a route through a huge route object, and
the upstream object is embedded in the route , But any minor changes will
trigger the reconstruction of the route. Rebuilding the route is definitely not
a good idea and reduce performance.
+
+In fact, leaving aside the admin api, what we need is a description method
that can completely define the rules while maintaining the legibility of the
admin api. Therefore, we have [discussion
here](https://github.com/apache/apisix-control-plane/blob/master/doc/yaml_struct.md),
and we have implemented a version of the basic functions according to this
data structure , I hope everyone puts forward their views. We can also submit a
PR to modify this [document](doc/yaml_struct.md).
+
+Secondly, apache apisix admin api uses id associations to strongly bind
objects to express the relationship between objects. For example, the route
object uses service_id and upstream_id to bind the relationship with service
and upstream respectively.
+
+This kind of representation, like the well-known relational database, is
easier to understand and reduces redundant configurations. But it also brings
some other problems. For example, rely on verification. When we want to bind an
`upstreamId` to a route, we must first create the upstream, and then bind the
generated `upstreamId` to the route. This process corresponds to two admin
APIs, and there is no transaction management.
Review comment:
`upstreamId` -> `upstream_id`, keep the same as APISIX implementation.
##########
File path: README.md
##########
@@ -17,18 +17,48 @@
#
-->
-# apisix-control-plane
+# APISIX-CONTROL-PLANE
-## what is apisix-control-plane?
-apisix-control-plane provide APISIX with a `yml` configuration capability,
-We can use `yml` to define the proxy behavior of APISIX
+## What is apisix-control-plane
-## Why do you want to do this?
-1. In order to facilitate the integration of k8s, use `yml` to define APISIX;
-2. For easier synchronization across clusters;
-3. Can be better adapted to multiple platforms (k8s, vm);
+apisix-control-plane is an implementation of providing a control plane for DPs
(Data Plane) like apache apisix or other gateways. with a `yml` configuration
capability, We can use `yml` to define the behavior of any DP.
+
+## Why do we need to implement a control-plane
+
+for now, we have a default implementation for apache APISIX.
+
+As we knows, apache APISIX is a high-performance gateway. When using APISIX we
need to inform apisix of some proxy rules, and distribute these rules to apisix
modules. We can call it contol-plane, similar to pilot in istio. Of course, the
distribution configuration is only the most basic function of the control plane.
+
+We know that apisix already has admin api, so why do we need to implement a
control-plane?
+
+First of all, apache apisix admin api is a way to define a single object, such
as a single object such as route / service / upstream / consumer, although it
is also possible to completely define a route through a huge route object, and
the upstream object is embedded in the route , But any minor changes will
trigger the reconstruction of the route. Rebuilding the route is definitely not
a good idea and reduce performance.
+
+In fact, leaving aside the admin api, what we need is a description method
that can completely define the rules while maintaining the legibility of the
admin api. Therefore, we have [discussion
here](https://github.com/apache/apisix-control-plane/blob/master/doc/yaml_struct.md),
and we have implemented a version of the basic functions according to this
data structure , I hope everyone puts forward their views. We can also submit a
PR to modify this [document](doc/yaml_struct.md).
+
+Secondly, apache apisix admin api uses id associations to strongly bind
objects to express the relationship between objects. For example, the route
object uses service_id and upstream_id to bind the relationship with service
and upstream respectively.
+
+This kind of representation, like the well-known relational database, is
easier to understand and reduces redundant configurations. But it also brings
some other problems. For example, rely on verification. When we want to bind an
`upstreamId` to a route, we must first create the upstream, and then bind the
generated `upstreamId` to the route. This process corresponds to two admin
APIs, and there is no transaction management.
+
+We hope that the emergence of control-plane can solve the above two problems.
Review comment:
> We hope that the emergence of control-plane can solve the above two
problems.
Here is another style, I think it is easier for reading.
```
We hope that the emergence of control-plane can solve the above two problems.
1. ****
2. ****
```
----------------------------------------------------------------
This is an automated message from the Apache Git Service.
To respond to the message, please log on to GitHub and use the
URL above to go to the specific comment.
For queries about this service, please contact Infrastructure at:
[email protected]