本文介绍了 Apache APISIX 在趣链科技 BaaS 平台中的落地实践情况,以及趣链科技在众多网关应用中选择 Apache APISIX 的原因。
业务背景
BaaS(Blockchain as a Service),中文为“区块链即服务”,是指将区块链框架嵌入云计算平台,利用云服务基础设施的部署和管理优势,为开发者提供便捷、高性能的区块链生态环境和生态配套服务,支持开发者的业务拓展及运营支持的区块链开放平台。
通常情况下,一套完整的 BaaS 解决方案包括设备接入、访问控制、服务监控和区块链平台四个主要环节。
通过 BaaS 可以快速灵活地搭建区块链网络,对于企业来说,有了 BaaS 平台就能够对区块链业务进行统一的管理。
相信有不少朋友接触过以太坊上面的合约代码,通过 BaaS 平台,我们能够很轻松地在 IDE 上编写智能合约,然后把它部署到我们的创建出来的区块链网络上,最后供上层的服务调用区块链相关的合约来进行业务的流转。
因为链的节点非常多,少则几十个,多则上千个,如果没有 BaaS 平台的支持,我们很难监控和维护链的运行。通过使用 BaaS 平台,用户不仅能够节约成本,而且可以更加便捷地管理区块链,提升整个系统的安全系数。
趣链科技 BaaS 产品的架构总共分为四层,分别为资源层、区块链底层、区块链服务层和应用层。
现在我们对 Baas 平台有了初步的了解,下面我们来看看 Apache APISIX 在 BaaS 系统上的使用场景与收获。
Apache APISIX 的使用场景
场景 1:在 BaaS 系统上的落地实践
从这张图中可以看到,趣链科技 BaaS 平台的架构不仅是微服务化的,而且分为两层,分别是业务接入层和核心服务层。
BFF(Backend For Frontend) 一般对着前端,通过 HTTP 接入。核心服务一般是通过类似 Dubbo 、ETCD 等服务注册,最后使用 gRPC 来访问。
也就是说,趣链科技的 BaaS 平台前端连接的都是 BFF 模块,然后 BFF 模块再去连接后面的微服务模块。BFF 的作用主要就是做业务聚合、格式适配,并把最终的结果数据给到前端。
这些业务模块需要把相关信息存到注册中心(ETCD),当要使用的时候,再通过网关模块把信息读取出来。
在整个流程中,我们主要用到了 Apache APISIX 的四个特性:
- 路由转发
- 流量控制
- 安全控制
- 动态加载
我们下面再来了解下这些特性在趣链 BaaS 系统上是如何使用的。