You are viewing a plain text version of this content. The canonical link for it is here.
Posted to notifications@apisix.apache.org by we...@apache.org on 2020/01/10 05:30:27 UTC

[incubator-apisix] branch master updated: doc: updated features of apisix. (#1033)

This is an automated email from the ASF dual-hosted git repository.

wenming pushed a commit to branch master
in repository https://gitbox.apache.org/repos/asf/incubator-apisix.git


The following commit(s) were added to refs/heads/master by this push:
     new 016bad7  doc: updated features of apisix. (#1033)
016bad7 is described below

commit 016bad7f2f2de5412304a2a2dbc48cf930583ea9
Author: WenMing <mo...@gmail.com>
AuthorDate: Fri Jan 10 13:30:21 2020 +0800

    doc: updated features of apisix. (#1033)
---
 README.md        | 157 +++++++++++++++++++++++++++++++++++------------------
 README_CN.md     | 162 ++++++++++++++++++++++++++++++++++++-------------------
 doc/README.md    |   2 +-
 doc/README_CN.md |   2 +-
 4 files changed, 215 insertions(+), 108 deletions(-)

diff --git a/README.md b/README.md
index 2905bdd..ba93724 100644
--- a/README.md
+++ b/README.md
@@ -44,44 +44,68 @@ For more detailed information, see the [White Paper](https://www.iresty.com/down
 ![](doc/images/apisix.png)
 
 ## Features
-
-- **Run Environment**: Both OpenResty and Tengine are supported.
-- **Cloud-Native**: Platform agnostic, No vendor lock-in, APISIX can run from bare-metal to Kubernetes.
-- **[Hot Updates And Hot Plugins](doc/plugins.md)**: Continuously updates its configurations and plugins without restarts!
-- **Dynamic Load Balancing**: Round-robin load balancing with weight.
-- **Hash-based Load Balancing**: Load balance with consistent hashing sessions.
-- **[SSL](doc/https.md)**: Dynamically load an SSL certificate.
-- **HTTP(S) Forward Proxy**
-- **[Health Checks](doc/health-check.md)**:Enable health check on the upstream node, and will automatically filter unhealthy nodes during load balancing to ensure system stability.
-- **Circuit-Breaker**: Intelligent tracking of unhealthy upstream services.
-- **Authentications**: [key-auth](doc/plugins/key-auth.md), [JWT](doc/plugins/jwt-auth.md)
-- **[Limit-req](doc/plugins/limit-req.md)**
-- **[Limit-count](doc/plugins/limit-count.md)**
-- **[Limit-concurrency](doc/plugins/limit-conn.md)**
-- **[Proxy Rewrite](doc/plugins/proxy-rewrite.md)**: Support for rewriting the `host`, `uri`, `schema`, `enable_websocket`, `headers` information upstream of the request.
-- **OpenTracing: [support Apache Skywalking and Zipkin](doc/plugins/zipkin.md)**
-- **Monitoring And Metrics**: [Prometheus](doc/plugins/prometheus.md)
-- **[gRPC proxy](doc/grpc-proxy.md)**:Proxying gRPC traffic.
-- **[gRPC transcoding](doc/plugins/grpc-transcoding.md)**:Supports protocol transcoding so that clients can access your gRPC API by using HTTP/JSON.
-- **[Serverless](doc/plugins/serverless.md)**: Invoke functions in each phase in APISIX.
-- **Custom plugins**: Allows hooking of common phases, such as `rewrite`, `access`, `header filer`, `body filter` and `log`, also allows to hook the `balancer` stage.
-- **Dashboard**: Built-in dashboard to control APISIX.
-- **Version Control**: Supports rollbacks of operations.
-- **CLI**: start\stop\reload APISIX through the command line.
-- **REST API**
-- **Proxy Websocket**
-- **[Response Rewrite](doc/plugins/response-rewrite.md)**: Set customized response status code, body and header to the client.
-- **IPv6**: Use IPv6 to match route.
-- **Clustering**: APISIX nodes are stateless, creates clustering of the configuration center, please refer to [etcd Clustering Guide](https://github.com/etcd-io/etcd/blob/master/Documentation/v2/clustering.md).
-- **Scalability**: plug-in mechanism is easy to extend.
-- **High performance**: The single-core QPS reaches 24k with an average delay of less than 0.6 milliseconds.
-- **Anti-ReDoS(Regular expression Denial of Service)**
-- **IP Whitelist/Blacklist**
-- **IdP**: Support external authentication services, such as Auth0, okta, etc., users can use this to connect to Oauth2.0 and other authentication methods.
-- **[Stand-alone mode](doc/stand-alone.md)**: Supports to load route rules from local yaml file, it is more friendly such as under the kubernetes(k8s).
-- **Global Rule**: Allows to run any plugin for all request, eg: limit rate, IP filter etc.
-- **[TCP/UDP Proxy](doc/stream-proxy.md)**: Dynamic TCP/UDP proxy.
-- **[Dynamic MQTT Proxy](doc/plugins/mqtt-proxy.md)**: Supports to load balance MQTT by `client_id`, both support MQTT [3.1.*](http://docs.oasis-open.org/mqtt/mqtt/v3.1.1/os/mqtt-v3.1.1-os.html), [5.0](https://docs.oasis-open.org/mqtt/mqtt/v5.0/mqtt-v5.0.html).
+You can use Apache APISIX as a traffic entrance to process all business data, including dynamic routing, dynamic upstream, dynamic certificates,
+A/B testing, canary release, blue-green deployment, limit rate, defense against malicious attacks, metrics, monitoring alarms, service observability, service governance, etc.
+
+- **All platforms**
+    - Cloud-Native: Platform agnostic, No vendor lock-in, APISIX can run from bare-metal to Kubernetes.
+    - Run Environment: Both OpenResty and Tengine are supported.
+    - Supports [ARM64](https://zhuanlan.zhihu.com/p/84467919): Don't worry about the lock-in of the infra technology.
+
+- **Multi protocols**
+    - [TCP/UDP Proxy](doc/stream-proxy.md): Dynamic TCP/UDP proxy.
+    - [Dynamic MQTT Proxy](doc/plugins/mqtt-proxy.md)**: Supports to load balance MQTT by `client_id`, both support MQTT [3.1.*](http://docs.oasis-open.org/mqtt/mqtt/v3.1.1/os/mqtt-v3.1.1-os.html), [5.0](https://docs.oasis-open.org/mqtt/mqtt/v5.0/mqtt-v5.0.html).
+    - [gRPC proxy](doc/grpc-proxy.md):Proxying gRPC traffic.
+    - [gRPC transcoding](doc/plugins/grpc-transcoding.md):Supports protocol transcoding so that clients can access your gRPC API by using HTTP/JSON.
+    - Proxy Websocket
+    - Proxy Dubbo: proxy Dubbo based on Tengine.
+    - HTTP(S) Forward Proxy
+    - [SSL](doc/https.md): Dynamically load an SSL certificate.
+
+- **Full dynamic**
+    - [Hot Updates And Hot Plugins](doc/plugins.md)**: Continuously updates its configurations and plugins without restarts!
+    - [Proxy Rewrite](doc/plugins/proxy-rewrite.md): Support for rewriting the `host`, `uri`, `schema`, `enable_websocket`, `headers` information upstream of the request.
+    - [Response Rewrite](doc/plugins/response-rewrite.md): Set customized response status code, body and header to the client.
+    - [Serverless](doc/plugins/serverless.md): Invoke functions in each phase in APISIX.
+    - Dynamic Load Balancing: Round-robin load balancing with weight.
+    - Hash-based Load Balancing: Load balance with consistent hashing sessions.
+    - [Health Checks](doc/health-check.md):Enable health check on the upstream node, and will automatically filter unhealthy nodes during load balancing to ensure system stability.
+    - Circuit-Breaker: Intelligent tracking of unhealthy upstream services.
+
+- **Fine-grained routing**
+    - [Supports full path matching and prefix matching](doc/router-radixtree.md#how-to-use-libradixtree-in-apisix)
+    - [Support all Nginx built-in variables as conditions for routing](/doc/router-radixtree.md#how-to-filter-route-by-nginx-builtin-variable),So you can use `cookie`,` args`, etc. as routing conditions to implement canary release, A/B testing, etc.
+    - Support [various operators as judgment conditions for routing](https://github.com/iresty/lua-resty-radixtree#operator-list), for example `{"arg_age", ">", 24}`
+    - Support [custom route matching function](https://github.com/iresty/lua-resty-radixtree/blob/master/t/filter-fun.t#L10)
+    - IPv6: Use IPv6 to match route.
+    - Support [TTL](doc/admin-api-cn.md#route)
+    - [Support priority](doc/router-radixtree.md#3-match-priority)
+
+- **Security**
+    - Authentications: [key-auth](doc/plugins/key-auth.md), [JWT](doc/plugins/jwt-auth.md)
+    - [IP Whitelist/Blacklist](doc/plugins/ip-restriction.md)
+    - [IdP](doc/plugins/oauth.md): Support external authentication services, such as Auth0, okta, etc., users can use this to connect to Oauth2.0 and other authentication methods.
+    - [Limit-req](doc/plugins/limit-req.md)
+    - [Limit-count](doc/plugins/limit-count.md)
+    - [Limit-concurrency](doc/plugins/limit-conn.md)
+    - Anti-ReDoS(Regular expression Denial of Service): Built-in policies to Anti ReDoS without configuration.
+
+- **OPS friendly**
+    - OpenTracing: [support Apache Skywalking and Zipkin](doc/plugins/zipkin.md)
+    - Monitoring And Metrics: [Prometheus](doc/plugins/prometheus.md)
+    - Clustering: APISIX nodes are stateless, creates clustering of the configuration center, please refer to [etcd Clustering Guide](https://github.com/etcd-io/etcd/blob/master/Documentation/v2/clustering.md).
+    - Dashboard: Built-in dashboard to control APISIX.
+    - Version Control: Supports rollbacks of operations.
+    - CLI: start\stop\reload APISIX through the command line.
+    - [Stand-alone mode](doc/stand-alone.md): Supports to load route rules from local yaml file, it is more friendly such as under the kubernetes(k8s).
+    - Global Rule: Allows to run any plugin for all request, eg: limit rate, IP filter etc.
+    - High performance**: The single-core QPS reaches 18k with an average delay of less than 0.2 milliseconds.
+    - [REST admin API](doc/admin-api.md)
+
+- **Highly scalable**
+    - [Custom plugins]((doc/plugin-develop.md)): Allows hooking of common phases, such as `rewrite`, `access`, `header filer`, `body filter` and `log`, also allows to hook the `balancer` stage.
+    - Custom load balancing algorithms: You can use custom load balancing algorithms during the `balancer` phase.
+    -Custom routing: Support users to implement routing algorithms themselves.
 
 ## Installation
 
@@ -142,29 +166,58 @@ Using AWS's 8 core server, APISIX's QPS reach to 140,000 with a latency of only
 ## Document
 [Documents of Apache APISIX](doc/README.md)
 
-## Videos And Articles
+## Apache APISIX vs Kong
+
+#### both of them have been covered core features of API gateway
+| **feature**   | **Dynamic upstream**   | **Health check**   | **Dynamic SSL**   | **L4 and L7 proxy**   | **opentracing**   | **custom plugin**   | **REST API**   | **CLI**   |
+|:----:|:----:|:----:|:----:|:----:|:----:|:----:|:----:|:----:|:----:|:----:|:----:|:----:|:----:|:----:|:----:|:----:|:----:|
+| **Apache APISIX**   | Yes   | Yes   | Yes   | Yes   | Yes   | Yes   | Yes   | Yes   |
+| **Kong**   | Yes   | Yes   | Yes   | Yes   | Yes   | Yes   | Yes   | Yes   |
+
+#### The advantages of Apache APISIX
+| **Features**   | **Apache APISIX**   | **Kong**   |
+|:----|:----|:----|
+| belongs to   | Apache Foundation   | Kong Inc.   |
+| Tech Architecture | Nginx + etcd   | Nginx + postgres   |
+| Communication channels  | Mail list, Wechat qroup, QQ group, Github, meetup   | Github,freenode, forum   |
+| Single-core CPU, QPS(enable limit-count and prometheus plugins)   | 18000   | 1700   |
+|  latency | 0.2 ms   | 2 ms   |
+| IPv6    | Yes   | No   |
+| ARM64   | Yes   | No   |
+| Dubbo   | Yes   | No   |
+| Configuration rollback   | Yes   | No   |
+| route with TTL   | Yes   | No   |
+| plug-in hot loading   | Yes   | No   |
+| custom LB and route   | Yes   | No   |
+| resty <--> gRPC transcoding   | Yes   | No   |
+| Tengine   | Yes   | No   |
+| MQTT    | Yes   | No   |
+| Configuration effective time   | Event driven, < 1ms   | polling, 10 seconds   |
+| dashboard   | Yes   | No   |
+| IdP   | Yes   | No   |
+| Configuration Center HA   | Yes   | No   |
+| Speed limit for a specified time window   | Yes   | No   |
 
+## Videos And Articles
+- 2019.12.14 [From 0 to 1: APISIX's Apache travel(Chinese)](https://zhuanlan.zhihu.com/p/99620158)
+- 2019.12.14 [Next-generation microservice architecture based on Apache APISIX(Chinese)](https://www.upyun.com/opentalk/445.html)
 - 2019.10.30 [Introduction to Apache APISIX Microservice Gateway Extreme Performance Architecture(Chinese)](https://www.upyun.com/opentalk/440.html)
+- 2019.9.27 [Want to run APISIX on an ARM64 platform? Just three steps(Chinese)](https://zhuanlan.zhihu.com/p/84467919)
 - 2019.8.31 [APISIX technology selection, testing and continuous integration(Chinese)](https://www.upyun.com/opentalk/433.html)
 - 2019.8.31 [APISIX high performance practice 2(Chinese)](https://www.upyun.com/opentalk/437.html)
 - 2019.7.6 [APISIX high performance practice(Chinese)](https://www.upyun.com/opentalk/429.html)
 
+## User Stories
+[ke.com: How to Build a Gateway Based on Apache APISIX(Chinese)](https://mp.weixin.qq.com/s/yZl9MWPyF1-gOyCp8plflA)
+[360: Apache APISIX Practice in OPS Platform(Chinese)](https://mp.weixin.qq.com/s/zHF_vlMaPOSoiNvqw60tVw)
+[HelloTalk: Exploring Globalization Based on OpenResty and Apache APISIX(Chinese)](https://www.upyun.com/opentalk/447.html)
+[Tencent Cloud: Why choose Apache APISIX to implement the k8s ingress controller?(Chinese)](https://www.upyun.com/opentalk/448.html)
+[aispeech: Why we create a new k8s ingress controller?(Chinese)](https://mp.weixin.qq.com/s/bmm2ibk2V7-XYneLo9XAPQ)
+
 ## Who Uses APISIX?
 A wide variety of companies and organizations use APISIX for research, production and commercial product, including:
 
-1. dasouche 大搜车 https://www.dasouche.com/
-1. ehomepay 理房通 https://www.ehomepay.com.cn/
-1. haieruplus.com 海尔优家  http://haieruplus.com/
-1. HelloTalk, Inc.  https://www.hellotalk.com/
-1. ke.com 贝壳找房 https://www.ke.com/
-1. Meizu 魅族 https://www.meizu.com/
-1. NASA JPL 美国国家航空航天局 喷气推进实验室 https://www.jpl.nasa.gov
-1. Netease 网易 http://www.163.com
-1. taikang.com 泰康云   http://taikang.com/
-1. tangdou.com 糖豆网   http://www.tangdou.com/
-1. Tencent Cloud 腾讯云 https://cloud.tencent.com/
-1. Xin 优信二手车 https://www.xin.com/
-1. zuzuche 租租车 https://www.zuzuche.com/
+<img src="https://raw.githubusercontent.com/iresty/iresty.com/master/user-wall.jpg" width="900" height="500">
 
 Users are encouraged to add themselves to the [Powered By](doc/powered-by.md) page.
 
diff --git a/README_CN.md b/README_CN.md
index 5506e00..c26ec16 100644
--- a/README_CN.md
+++ b/README_CN.md
@@ -35,7 +35,7 @@ APISIX 是一个云原生、高性能、可扩展的微服务 API 网关。
 
 如果你正在构建网站、移动设备或 IoT(物联网)的应用,那么你可能需要使用 API 网关来处理接口流量。
 
-APISIX 是基于云原生的微服务 API 网关,可以处理传统的南北向流量,也可以处理服务间的东西向流量,也可以当做 k8s ingress controller 来使用。
+APISIX 是基于云原生的微服务 API 网关,它是所有业务流量的入口,可以处理传统的南北向流量,也可以处理服务间的东西向流量,也可以当做 k8s ingress controller 来使用。
 
 APISIX 通过插件机制,提供动态负载平衡、身份验证、限流限速等功能,并且支持你自己开发的插件。
 
@@ -44,50 +44,74 @@ APISIX 通过插件机制,提供动态负载平衡、身份验证、限流限
 ![](doc/images/apisix.png)
 
 ## 功能
-
-- **运行环境**: OpenResty 和 Tengine 都支持。
-- **云原生**: 平台无关,没有供应商锁定,无论裸机还是 Kubernetes,APISIX 都可以运行。
-- **[热更新和热插件](doc/plugins-cn.md)**: 无需重启服务,就可以持续更新配置和插件。
-- **动态负载均衡**:动态支持有权重的 round-robin 负载平衡。
-- **支持一致性 hash 的负载均衡**:动态支持一致性 hash 的负载均衡。
-- **[SSL](doc/https-cn.md)**:动态加载 SSL 证书。
-- **HTTP(S) 反向代理**
-- **[健康检查](doc/health-check.md)**:启用上游节点的健康检查,将在负载均衡期间自动过滤不健康的节点,以确保系统稳定性。
-- **熔断器**: 智能跟踪不健康上游服务。
-- **身份认证**: [key-auth](doc/plugins/key-auth-cn.md), [JWT](doc/plugins/jwt-auth-cn.md)。
-- **[限制速率](doc/plugins/limit-req-cn.md)**
-- **[限制请求数](doc/plugins/limit-count-cn.md)**
-- **[限制并发](doc/plugins/limit-conn-cn.md)**
-- **[代理请求重写](doc/plugins/proxy-rewrite.md)**: 支持重写请求上游的`host`、`uri`、`schema`、`enable_websocket`、`headers`信息。
-- **[输出内容重写](doc/plugins/response-rewrite.md)**: 支持自定义修改返回内容的 `status code`、`body`、`headers`。
-- **OpenTracing: [支持 Apache Skywalking 和 Zipkin](doc/plugins/zipkin.md)**
-- **监控和指标**: [Prometheus](doc/plugins/prometheus-cn.md)
-- **[gRPC 代理](doc/grpc-proxy-cn.md)**:通过 APISIX 代理 gRPC 连接,并使用 APISIX 的大部分特性管理你的 gRPC 服务。
-- **[gRPC 协议转换](doc/plugins/grpc-transcoding-cn.md)**:支持协议的转换,这样客户端可以通过 HTTP/JSON 来访问你的 gRPC API。
-- **[Serverless](doc/plugins/serverless-cn.md)**: 在 APISIX 的每一个阶段,你都可以添加并调用自己编写的函数。
-- **自定义插件**: 允许挂载常见阶段,例如`rewrite`,`access`,`header filer`,`body filter`和`log`,还允许挂载 `balancer` 阶段。
-- **控制台**: 内置控制台来操作 APISIX 集群。
-- **版本控制**:支持操作的多次回滚。
-- **CLI**: 使用命令行来启动、关闭和重启 APISIX。
-- **REST API**
-- **Websocket 代理**
-- **IPv6**:支持使用 IPv6 格式匹配路由。
-- **集群**:APISIX 节点是无状态的,创建配置中心集群请参考 [etcd Clustering Guide](https://github.com/etcd-io/etcd/blob/master/Documentation/v2/clustering.md)。
-- **可扩展**:简单易用的插件机制方便扩展。
-- **高性能**:在单核上 QPS 可以达到 24k,同时延迟只有 0.2 毫秒。
-- **防御 ReDoS(正则表达式拒绝服务)**
-- **IP 黑名单**
-- **IdP 支持**: 支持外部的身份认证服务,比如 Auth0,Okta,Authing 等,用户可以借此来对接 Oauth2.0 等认证方式。
-- **[单机模式](doc/stand-alone-cn.md)**: 支持从本地配置文件中加载路由规则,在 kubernetes(k8s) 等环境下更友好。
-- **全局规则**:允许对所有请求执行插件,比如黑白名单、限流限速等。
-- **[TCP/UDP 代理](doc/stream-proxy-cn.md)**: 动态 TCP/UDP 代理。
-- **[动态 MQTT 代理](doc/plugins/mqtt-proxy-cn.md)**: 支持用 `client_id` 对 MQTT 进行负载均衡,同时支持 MQTT [3.1.*](http://docs.oasis-open.org/mqtt/mqtt/v3.1.1/os/mqtt-v3.1.1-os.html) 和 [5.0](https://docs.oasis-open.org/mqtt/mqtt/v5.0/mqtt-v5.0.html) 两个协议标准。
+你可以把 Apache APISIX 当做流量入口,来处理所有的业务数据,包括动态路由、动态上游、动态证书、
+A/B 测试、金丝雀发布(灰度发布)、蓝绿部署、限流限速、抵御恶意攻击、监控报警、服务可观测性、服务治理等。
+
+- **全平台**
+    - 云原生: 平台无关,没有供应商锁定,无论裸机还是 Kubernetes,APISIX 都可以运行。
+    - 运行环境: OpenResty 和 Tengine 都支持。
+    - 支持 [ARM64](https://zhuanlan.zhihu.com/p/84467919): 不用担心底层技术的锁定。
+
+- **多协议**
+    - [TCP/UDP 代理](doc/stream-proxy-cn.md): 动态 TCP/UDP 代理。
+    - [动态 MQTT 代理](doc/plugins/mqtt-proxy-cn.md): 支持用 `client_id` 对 MQTT 进行负载均衡,同时支持 MQTT [3.1.*](http://docs.oasis-open.org/mqtt/mqtt/v3.1.1/os/mqtt-v3.1.1-os.html) 和 [5.0](https://docs.oasis-open.org/mqtt/mqtt/v5.0/mqtt-v5.0.html) 两个协议标准。
+    - [gRPC 代理](doc/grpc-proxy-cn.md):通过 APISIX 代理 gRPC 连接,并使用 APISIX 的大部分特性管理你的 gRPC 服务。
+    - [gRPC 协议转换](doc/plugins/grpc-transcoding-cn.md):支持协议的转换,这样客户端可以通过 HTTP/JSON 来访问你的 gRPC API。
+    - Websocket 代理
+    - Dubbo 代理:基于 Tengine,可以实现 Dubbo 请求的代理。
+    - HTTP(S) 反向代理
+    - [SSL](doc/https-cn.md):动态加载 SSL 证书。
+
+- **全动态能力**
+    - [热更新和热插件](doc/plugins-cn.md): 无需重启服务,就可以持续更新配置和插件。
+    - [代理请求重写](doc/plugins/proxy-rewrite.md): 支持重写请求上游的`host`、`uri`、`schema`、`enable_websocket`、`headers`信息。
+    - [输出内容重写](doc/plugins/response-rewrite.md): 支持自定义修改返回内容的 `status code`、`body`、`headers`。
+    - [Serverless](doc/plugins/serverless-cn.md): 在 APISIX 的每一个阶段,你都可以添加并调用自己编写的函数。
+    - 动态负载均衡:动态支持有权重的 round-robin 负载平衡。
+    - 支持一致性 hash 的负载均衡:动态支持一致性 hash 的负载均衡。
+    - [健康检查](doc/health-check.md):启用上游节点的健康检查,将在负载均衡期间自动过滤不健康的节点,以确保系统稳定性。
+    - 熔断器: 智能跟踪不健康上游服务。
+
+- **精细化路由**
+    - [支持全路径匹配和前缀匹配](doc/router-radixtree.md#how-to-use-libradixtree-in-apisix)
+    - [支持使用 Nginx 所有内置变量做为路由的条件](/doc/router-radixtree.md#how-to-filter-route-by-nginx-builtin-variable),所以你可以使用 `cookie`, `args` 等做为路由的条件,来实现灰度发布、A/B 测试等功能
+    - 支持[各类操作符做为路由的判断条件](https://github.com/iresty/lua-resty-radixtree#operator-list),比如 `{"arg_age", ">", 24}`
+    - 支持[自定义路由匹配函数](https://github.com/iresty/lua-resty-radixtree/blob/master/t/filter-fun.t#L10)
+    - IPv6:支持使用 IPv6 格式匹配路由
+    - 支持路由的[自动过期(TTL)](doc/admin-api-cn.md#route)
+    - [支持路由的优先级](doc/router-radixtree.md#3-match-priority)
+
+- **安全防护**
+    - 多种身份认证方式: [key-auth](doc/plugins/key-auth-cn.md), [JWT](doc/plugins/jwt-auth-cn.md)。
+    - [IP 黑白名单](doc/plugins/ip-restriction-cn.md)
+    - [IdP 支持](doc/plugins/oauth.md): 支持外部的身份认证服务,比如 Auth0,Okta,Authing 等,用户可以借此来对接 Oauth2.0 等认证方式。
+    - [限制速率](doc/plugins/limit-req-cn.md)
+    - [限制请求数](doc/plugins/limit-count-cn.md)
+    - [限制并发](doc/plugins/limit-conn-cn.md)
+    - 防御 ReDoS(正则表达式拒绝服务):内置策略,无需配置即可抵御 ReDoS。
+
+- **可运维**
+    - OpenTracing 可观测性: [支持 Apache Skywalking 和 Zipkin](doc/plugins/zipkin.md)**
+    - 监控和指标: [Prometheus](doc/plugins/prometheus-cn.md)
+    - 集群:APISIX 节点是无状态的,创建配置中心集群请参考 [etcd Clustering Guide](https://github.com/etcd-io/etcd/blob/master/Documentation/v2/clustering.md)。
+    - 控制台: 内置控制台来操作 APISIX 集群。
+    - 版本控制:支持操作的多次回滚。
+    - CLI: 使用命令行来启动、关闭和重启 APISIX。
+    - [单机模式](doc/stand-alone-cn.md): 支持从本地配置文件中加载路由规则,在 kubernetes(k8s) 等环境下更友好。
+    - 全局规则:允许对所有请求执行插件,比如黑白名单、限流限速等。
+    - 高性能:在单核上 QPS 可以达到 18k,同时延迟只有 0.2 毫秒。
+    - [REST admin API](doc/admin-api-cn.md)
+
+- **高度可扩展**
+    - [自定义插件](doc/plugin-develop-cn.md): 允许挂载常见阶段,例如``init`, `rewrite`,`access`,`balancer`,`header filer`,`body filter` 和 `log` 阶段。
+    - 自定义负载均衡算法:可以在 `balancer` 阶段使用自定义负载均衡算法。
+    - 自定义路由: 支持用户自己实现路由算法。
 
 ## 安装
 
 APISIX 在以下操作系统中可顺利安装并做过运行测试,需要注意的是:OpenResty 的版本必须 >= 1.15.8.1:
 
-CentOS 7, Ubuntu 16.04, Ubuntu 18.04, Debian 9, Debian 10, macOS, **ARM64** Ubuntu 18.04
+CentOS 7, Ubuntu 16.04, Ubuntu 18.04, Debian 9, Debian 10, macOS, **[ARM64](https://zhuanlan.zhihu.com/p/84467919)** Ubuntu 18.04
 
 安装 APISIX 的步骤:
 1. 安装运行时依赖:OpenResty 和 etcd,参考[依赖安装文档](doc/install-dependencies.md)
@@ -143,29 +167,59 @@ Dashboard 默认允许任何 IP 访问。你可以自行修改 `conf/config.yaml
 
 [文档](doc/README_CN.md)
 
-## 视频和文章
+## Apache APISIX 和 Kong 的比较
+
+#### 核心功能点,两者都已经覆盖
+| **功能**   | **动态上游**   | **健康检查和熔断器**   | **动态SSL证书**   | **七层和四层代理**   | **分布式追踪**   | **自定义插件**   | **REST API**   | **CLI**   |
+|:----:|:----:|:----:|:----:|:----:|:----:|:----:|:----:|:----:|:----:|:----:|:----:|:----:|:----:|:----:|:----:|:----:|:----:|
+| **Apache APISIX**   | 支持   | 支持   | 支持   | 支持   | 支持   | 支持   | 支持   | 支持   |
+| **Kong**   | 支持   | 支持   | 支持   | 支持   | 支持   | 支持   | 支持   | 支持   |
+
+#### Apache APISIX 的优势
+| **功能**   | **Apache APISIX**   | **KONG**   |
+|:----|:----|:----|
+| 项目归属   | Apache 基金会   | Kong Inc.   |
+| 技术架构   | Nginx + etcd   | Nginx + postgres   |
+| 交流渠道  | 微信群、QQ群、邮件列表、Github、meetup   | Github、论坛、freenode   |
+| 单核 QPS(开启限流和prometheus插件)   | 18000   | 1700   |
+| 平均延迟  | 0.2 毫秒   | 2 毫秒   |
+| 完整 IPv6 协议支持   | 是   | 否   |
+| 支持 ARM64   | 是   | 否   |
+| 支持 Dubbo 代理   | 是   | 否   |
+| 配置回滚   | 是   | 否   |
+| 支持生命周期的路由   | 是   | 否   |
+| 插件热更新   | 是   | 否   |
+| 用户自定义:负载均衡算法、路由   | 是   | 否   |
+| resty <--> gRPC 转码   | 是   | 否   |
+| 支持 Tengine 作为运行时   | 是   | 否   |
+| MQTT 协议支持   | 是   | 否   |
+| 配置生效时间   | 事件通知,低于1毫秒更新   | 定期轮询,10 秒   |
+| 自带控制台   | 是   | 否   |
+| 对接外部身份认证服务   | 是   | 否   |
+| 配置中心高可用(HA)   | 是   | 否   |
+| 指定时间窗口的限速   | 是   | 否   |
+
 
+## 视频和文章
+- 2019.12.14 [从 0 到 1:Apache APISIX 的 Apache 之路](https://zhuanlan.zhihu.com/p/99620158)
+- 2019.12.14 [基于 Apache APISIX 的下一代微服务架构](https://www.upyun.com/opentalk/445.html)
 - 2019.10.30 [Apache APISIX 微服务架构极致性能架构解析](https://www.upyun.com/opentalk/440.html)
+- 2019.9.27 [想把 APISIX 运行在 ARM64 平台上?只要三步](https://zhuanlan.zhihu.com/p/84467919)
 - 2019.8.31 [APISIX 技术选型、测试和持续集成](https://www.upyun.com/opentalk/433.html)
 - 2019.8.31 [APISIX 高性能实战2](https://www.upyun.com/opentalk/437.html)
 - 2019.7.6 [APISIX 高性能实战](https://www.upyun.com/opentalk/429.html)
 
+## 用户实际使用案例
+[贝壳找房:如何基于 Apache APISIX 搭建网关](https://mp.weixin.qq.com/s/yZl9MWPyF1-gOyCp8plflA)
+[360:Apache APISIX 在基础运维平台项目中的实践](https://mp.weixin.qq.com/s/zHF_vlMaPOSoiNvqw60tVw)
+[HelloTalk:基于 OpenResty 和 Apache APISIX 的全球化探索之路](https://www.upyun.com/opentalk/447.html)
+[腾讯云:为什么选择 Apache APISIX 来实现 k8s ingress controller?](https://www.upyun.com/opentalk/448.html)
+[思必驰:为什么我们重新写了一个 k8s ingress controller?](https://mp.weixin.qq.com/s/bmm2ibk2V7-XYneLo9XAPQ)
+
 ## APISIX 的用户有哪些?
 有很多公司和组织把 APISIX 用户学习、研究、生产环境和商业产品中,包括:
 
-1. dasouche 大搜车 https://www.dasouche.com/
-1. ehomepay 理房通 https://www.ehomepay.com.cn/
-1. haieruplus.com 海尔优家  http://haieruplus.com/
-1. HelloTalk, Inc.  https://www.hellotalk.com/
-1. ke.com 贝壳找房 https://www.ke.com/
-1. Meizu 魅族 https://www.meizu.com/
-1. NASA JPL 美国国家航空航天局 喷气推进实验室 https://www.jpl.nasa.gov
-1. Netease 网易 http://www.163.com
-1. taikang.com 泰康云   http://taikang.com/
-1. tangdou.com 糖豆网   http://www.tangdou.com/
-1. Tencent Cloud 腾讯云 https://cloud.tencent.com/
-1. Xin 优信二手车 https://www.xin.com/
-1. zuzuche 租租车 https://www.zuzuche.com/
+<img src="https://raw.githubusercontent.com/iresty/iresty.com/master/user-wall.jpg" width="900" height="500">
 
 欢迎用户把自己加入到 [Powered By](doc/powered-by.md) 页面。
 
diff --git a/doc/README.md b/doc/README.md
index 1b73bfe..d171122 100644
--- a/doc/README.md
+++ b/doc/README.md
@@ -52,7 +52,7 @@ Plugins
 * [grpc-transcode](plugins/grpc-transcoding.md): REST <--> gRPC transcoding.
 * [serverless](plugins/serverless.md):Allows to dynamically run Lua code at *different* phase in APISIX.
 * [ip-restriction](plugins/ip-restriction.md): IP whitelist/blacklist.
-* openid-connect
+* [openid-connect](plugins/oauth.md)
 * [redirect](plugins/redirect.md): URI redirect.
 * [response-rewrite](plugins/response-rewrite.md): Set customized response status code, body and header to the client.
 
diff --git a/doc/README_CN.md b/doc/README_CN.md
index 810e20d..634d4e6 100644
--- a/doc/README_CN.md
+++ b/doc/README_CN.md
@@ -52,6 +52,6 @@ Reference document
 * [grpc-transcode](plugins/grpc-transcoding-cn.md):REST <--> gRPC 转码。
 * [serverless](plugins/serverless-cn.md):允许在 APISIX 中的不同阶段动态运行 Lua 代码。
 * [ip-restriction](plugins/ip-restriction-cn.md): IP 黑白名单。
-* openid-connect
+* [openid-connect](plugins/oauth.md)
 * [redirect](plugins/redirect-cn.md): URI 重定向。
 * [response-rewrite](plugins/response-rewrite-cn.md): 支持自定义修改返回内容的 `status code`、`body`、`headers`。