You are viewing a plain text version of this content. The canonical link for it is here.
Posted to notifications@apisix.apache.org by GitBox <gi...@apache.org> on 2021/09/10 03:09:50 UTC

[GitHub] [apisix-website] Serendipity96 opened a new pull request #586: docs: added Apache APISIX in Quliankeji blog

Serendipity96 opened a new pull request #586:
URL: https://github.com/apache/apisix-website/pull/586


   Changes:
   docs: added Apache APISIX in Quliankeji blog
   


-- 
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.

To unsubscribe, e-mail: notifications-unsubscribe@apisix.apache.org

For queries about this service, please contact Infrastructure at:
users@infra.apache.org



[GitHub] [apisix-website] liuxiran merged pull request #586: docs: added Apache APISIX in Quliankeji blog

Posted by GitBox <gi...@apache.org>.
liuxiran merged pull request #586:
URL: https://github.com/apache/apisix-website/pull/586


   


-- 
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.

To unsubscribe, e-mail: notifications-unsubscribe@apisix.apache.org

For queries about this service, please contact Infrastructure at:
users@infra.apache.org



[GitHub] [apisix-website] SylviaBABY commented on a change in pull request #586: docs: added Apache APISIX in Quliankeji blog

Posted by GitBox <gi...@apache.org>.
SylviaBABY commented on a change in pull request #586:
URL: https://github.com/apache/apisix-website/pull/586#discussion_r705941641



##########
File path: website/blog/2021-08-09-Apache-APISIX-in-Quliankeji.md
##########
@@ -0,0 +1,214 @@
+---
+title: "舍弃 Kong 和 Nginx,Apache APISIX 在趣链科技 BaaS 平台的落地实践"
+author: "盛威锋"
+keywords: 
+- APISIX
+- Kong
+- Nginx
+- API 网关
+- BaaS
+description:  本文介绍了 Apache APISIX 在趣链科技 BaaS 平台中的落地实践情况,以及趣链科技在众多网关应用中选择 Apache APISIX 的原因。
+tags: [technology,practical case]
+---
+
+<!--truncate-->
+
+> 本文介绍了 Apache APISIX 在趣链科技 BaaS 平台中的落地实践情况,以及趣链科技在众多网关应用中选择 Apache APISIX 的原因。
+
+## 业务背景
+
+BaaS(Blockchain as a Service),中文为“区块链即服务”,是指将区块链框架嵌入云计算平台,利用云服务基础设施的部署和管理优势,为开发者提供便捷、高性能的区块链生态环境和生态配套服务,支持开发者的业务拓展及运营支持的区块链开放平台。
+
+通常情况下,一套完整的 BaaS 解决方案包括设备接入、访问控制、服务监控和区块链平台四个主要环节。
+
+![BaaS introduction](https://static.apiseven.com/202108/1630647228757-9e5f730c-dde0-46b6-b5f3-81a15ff40e39.png)
+
+**通过 BaaS 可以快速灵活地搭建区块链网络,对于企业来说,有了 BaaS 平台就能够对区块链业务进行统一的管理。**
+
+相信有不少朋友接触过以太坊上面的合约代码,通过 BaaS 平台,我们能够很轻松地在 IDE 上编写智能合约,然后把它部署到我们的创建出来的区块链网络上,最后供上层的服务调用区块链相关的合约来进行业务的流转。
+
+因为链的节点非常多,少则几十个,多则上千个,如果没有 BaaS 平台的支持,我们很难监控和维护链的运行。通过使用 BaaS 平台,用户不仅能够节约成本,而且可以更加便捷地管理区块链,提升整个系统的安全系数。
+
+趣链科技 BaaS 产品的架构总共分为四层,分别为资源层、区块链底层、区块链服务层和应用层。
+
+![趣链科技 BaaS 产品的架构](https://static.apiseven.com/202108/1630647274805-f2b960c4-57af-4257-99b4-9185dd5db255.png)
+
+现在我们对 Baas 平台有了初步的了解,下面我们来看看 Apache APISIX 在 BaaS 系统上的使用场景与收获。
+
+## Apache APISIX 的使用场景
+
+### 场景 1:在 BaaS 系统上的落地实践
+
+![Apache APISIX 在 BaaS 系统上的应用](https://static.apiseven.com/202108/1630647327105-2943faa6-518f-4076-9223-b474600fd9d6.png)
+
+从这张图中可以看到,趣链科技 BaaS 平台的架构不仅是微服务化的,而且分为两层,分别是业务接入层和核心服务层。
+
+BFF(Backend For Frontend) 一般对着前端,通过 HTTP 接入。核心服务一般是通过类似 Dubbo 、ETCD 等服务注册,最后使用 gRPC 来访问。
+
+也就是说,趣链科技的 BaaS 平台前端连接的都是 BFF 模块,然后 BFF 模块再去连接后面的微服务模块。BFF 的作用主要就是做业务聚合、格式适配,并把最终的结果数据给到前端。
+
+这些业务模块需要把相关信息存到注册中心(ETCD),当要使用的时候,再通过网关模块把信息读取出来。
+
+![趣链科技 BaaS 平台业务流程](https://static.apiseven.com/202108/1630647395095-39602805-0d56-4838-add1-b8b0f6a5d716.png)
+
+在整个流程中,我们主要用到了 Apache APISIX 的四个特性:
+
+- 路由转发
+- 流量控制
+- 安全控制
+- 动态加载
+
+我们下面再来了解下这些特性在趣链 BaaS 系统上是如何使用的。
+
+#### 路由转发
+
+![Apache APISIX Proxy-rewrite 路由转发](https://static.apiseven.com/202108/1630647494816-d78b6ea1-b291-446c-be36-fc2aae57ca7e.png)
+
+趣链科技使用 Apache APISIX 官方提供的 Proxy-rewrite 插件执行路由转发服务。
+
+当一个请求访问 8080 端口,通过 Proxy-rewrite 插件,请求会被转发到对应服务的 API 上去。
+
+![Apache APISIX Proxy-rewrite 路由转发](https://static.apiseven.com/202108/1630647560207-1f931523-c9e7-4e58-95e1-c1c56cb1af3a.png)
+
+上图为 Proxy-rewrite 的操作界面,我们可以看到可以通过正则匹配来匹配自己的转发规则,当然也可以通过写 HOST 或者通过 URL 来匹配。
+
+#### 限流管理
+
+![Apache APISIX 限流管理](https://static.apiseven.com/202108/1630647608569-086d3303-027b-4e11-ac09-3a9cca9405bd.png)
+
+在趣链 BaaS 平台中,客户可以根据自己的需要构建任何链。此时,BaaS 平台需要快速地支持创建这些链,并对它们进行生命周期管理。
+
+这些联盟链的创建,并不是通过硬代码直接写在代码上,而是通过驱动组件来解决的。在私有化场景中,我们需要有这样驱动组件来快速地提供支持,并需要控制驱动进程的访问频率。
+
+![Apache APISIX 限流管理](https://static.apiseven.com/202108/1630647661769-3e026b06-35c6-4b1f-9de9-054c69415e2c.png)
+
+在没有 Apache APISIX 之前,平台需要自己写逻辑代码,有 Apache APISIX 以后,我们可以直接使用官方提供的 Limit-req 插件来限制输入输出,以达到保护系统的目的。通过 Limit-req 插件的操作界面,我们可以很方便地配置速度、桶高等参数。
+
+![Apache APISIX 限流管理](https://static.apiseven.com/202108/1630647699093-f071ccc1-c122-4463-928e-0eb46d5aa1aa.png)
+
+#### 安全控制、权限管理
+
+![Apache APISIX 安全控制](https://static.apiseven.com/202108/1630647753459-a693194d-369a-47fb-b9c3-a01fb97853b7.png)
+
+在趣链科技的私有化场景,有不少用户不喜欢用平台所提供的账号体系,要求平台对接他们现有的账户系统,所以趣链科技使用了 Apache APISIX 的 Access-Auth 插件来适配第三方的鉴权服务地址。
+
+![Apache APISIX 安全控制](https://static.apiseven.com/202108/1630648022609-85bbfa93-ab67-4c58-9cbf-8d360115ea4f.png)
+
+在趣链科技的 Baas 平台中,所有的 Web 请求都会经过 Apache APISIX 的 Access-Auth 插件,完成 cookie 解析和鉴权,然后在 HEAD 头中携带用户信息,传给后端的微服务来处理业务。这样做的好处是,微服务的开发者不需要去解析 Cookie,而是可以直接把用户信息发送到微服务模块,非常方便。
+
+#### 动态加载
+
+![Apache APISIX 动态加载](https://static.apiseven.com/202108/1630648314372-43fcba14-2822-46ca-bc97-916a89871715.png)
+
+上图左边是趣链科技 Baas 平台的客户端界面,上面没有 “商店” 的按钮;但在上图的右边,趣链科技的 Baas 公共平台上却有一个 “商店” 的按钮。在某些私有化场景中不需要 “商店” 按钮,但二者的后台服务是共享的,只要后端服务一启动,平台界面就会根据需求进行不同的显示。
+
+趣链科技利用 Apache APISIX 与服务中心协同运作,保证前端微服务业务模块的新增和调整,这让趣链科技 Baas 平台的线上发布流程变得非常简单。
+
+### 场景 2:在区块链节点上的落地实践
+
+![区块链节点](https://static.apiseven.com/202108/1630648472228-b61451ca-4e4d-4410-877c-395c8770c85e.png)
+
+通过上图可以看到有 A、B、C 三条链,这三条链是怎么创建出来的呢?
+
+当用户通过 BaaS 平台购买了一条链,它的上层业务或开发者客户端就可以直连节点,比如某银行连左三个,某保险连右三个,或者有的用户就访问一整条链。这样会带来一个很大的问题,因为基本上每个节点都会被访问到,所以我们需要在公网环境上把所有的区块链上的节点全部都暴露出来。
+
+#### 节约公网端口
+
+![公网端口](https://static.apiseven.com/202108/1630648545755-fd385832-3375-4ac9-89f6-4c2bb10780be.png)
+
+以这张图为例,我们可以看到 6 个节点,那这条链就至少需要有 6 个公网 IP 和 6 个端口。
+
+这种情况对私有化的用户来说可能还可以接受,但是对于像趣链这样全部对互联网用户开放的 BaaS 平台,少则需要几十个,多则需要上百个、上千个公网 IP。这样不仅成本非常高,也对公网 IP 资源造成了浪费。
+
+为了解决这个问题,趣链科技的 Baas 平台使用了 Apache APISIX 统一对外提供服务,无需联盟链全量节点暴露外网访问端口,可以有效节约成本。
+
+#### 访问权限控制
+
+![访问权限控制](https://static.apiseven.com/202108/1630648599393-f4e6a152-f6d6-47a4-b42a-a9a644be37f8.png)
+
+对于传统软件来说,因为不同的异构链访问都有自己非常复杂的 RBAC 权限控制,所以用户需要在客户端加很多证书,非常令人头疼。
+
+为了解决这个痛点,趣链科技 BaaS 平台通过 Apache APISIX 的 Key-auth 插件让有权限的用户直接能够访问,并且统一所有链的权限控制。
+
+#### 集群化提升节点稳定性
+
+![区块链节点](https://static.apiseven.com/202108/1630648704337-6e02ca0e-3e51-4251-8455-5b3bb7668912.png)
+
+区块链的一个特性是:本质上,访问任何一个节点都是一样的。就像比特币一样,我们访问任何一个节点都能拿到数据,所以很多用户直接对着某个节点进行操作。
+
+![提升节点稳定性](https://static.apiseven.com/202108/1630648773610-b56cb8aa-f690-4b30-9933-78f429fd20bc.png)
+
+但是,直接访问单节点的模式很容易受到攻击。比如说,银行的并发量非常高,TPS 可以达到 4-5W/ 秒,每一次交易都会冲击这个节点。

Review comment:
       4-5w/秒




-- 
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.

To unsubscribe, e-mail: notifications-unsubscribe@apisix.apache.org

For queries about this service, please contact Infrastructure at:
users@infra.apache.org



[GitHub] [apisix-website] SylviaBABY commented on a change in pull request #586: docs: added Apache APISIX in Quliankeji blog

Posted by GitBox <gi...@apache.org>.
SylviaBABY commented on a change in pull request #586:
URL: https://github.com/apache/apisix-website/pull/586#discussion_r705940095



##########
File path: website/blog/2021-08-09-Apache-APISIX-in-Quliankeji.md
##########
@@ -0,0 +1,214 @@
+---
+title: "舍弃 Kong 和 Nginx,Apache APISIX 在趣链科技 BaaS 平台的落地实践"
+author: "盛威锋"
+keywords: 
+- APISIX
+- Kong
+- Nginx
+- API 网关
+- BaaS
+description:  本文介绍了 Apache APISIX 在趣链科技 BaaS 平台中的落地实践情况,以及趣链科技在众多网关应用中选择 Apache APISIX 的原因。
+tags: [technology,practical case]
+---
+
+<!--truncate-->
+
+> 本文介绍了 Apache APISIX 在趣链科技 BaaS 平台中的落地实践情况,以及趣链科技在众多网关应用中选择 Apache APISIX 的原因。
+
+## 业务背景
+
+BaaS(Blockchain as a Service),中文为“区块链即服务”,是指将区块链框架嵌入云计算平台,利用云服务基础设施的部署和管理优势,为开发者提供便捷、高性能的区块链生态环境和生态配套服务,支持开发者的业务拓展及运营支持的区块链开放平台。
+
+通常情况下,一套完整的 BaaS 解决方案包括设备接入、访问控制、服务监控和区块链平台四个主要环节。
+
+![BaaS introduction](https://static.apiseven.com/202108/1630647228757-9e5f730c-dde0-46b6-b5f3-81a15ff40e39.png)
+
+**通过 BaaS 可以快速灵活地搭建区块链网络,对于企业来说,有了 BaaS 平台就能够对区块链业务进行统一的管理。**
+
+相信有不少朋友接触过以太坊上面的合约代码,通过 BaaS 平台,我们能够很轻松地在 IDE 上编写智能合约,然后把它部署到我们的创建出来的区块链网络上,最后供上层的服务调用区块链相关的合约来进行业务的流转。
+
+因为链的节点非常多,少则几十个,多则上千个,如果没有 BaaS 平台的支持,我们很难监控和维护链的运行。通过使用 BaaS 平台,用户不仅能够节约成本,而且可以更加便捷地管理区块链,提升整个系统的安全系数。
+
+趣链科技 BaaS 产品的架构总共分为四层,分别为资源层、区块链底层、区块链服务层和应用层。
+
+![趣链科技 BaaS 产品的架构](https://static.apiseven.com/202108/1630647274805-f2b960c4-57af-4257-99b4-9185dd5db255.png)
+
+现在我们对 Baas 平台有了初步的了解,下面我们来看看 Apache APISIX 在 BaaS 系统上的使用场景与收获。
+
+## Apache APISIX 的使用场景
+
+### 场景 1:在 BaaS 系统上的落地实践
+
+![Apache APISIX 在 BaaS 系统上的应用](https://static.apiseven.com/202108/1630647327105-2943faa6-518f-4076-9223-b474600fd9d6.png)
+
+从这张图中可以看到,趣链科技 BaaS 平台的架构不仅是微服务化的,而且分为两层,分别是业务接入层和核心服务层。
+
+BFF(Backend For Frontend) 一般对着前端,通过 HTTP 接入。核心服务一般是通过类似 Dubbo 、ETCD 等服务注册,最后使用 gRPC 来访问。

Review comment:
       Dubbo 后边多了个空格




-- 
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.

To unsubscribe, e-mail: notifications-unsubscribe@apisix.apache.org

For queries about this service, please contact Infrastructure at:
users@infra.apache.org