对于Kong网关更多的是引擎,Kong网关自带的管理端功能也比较弱,因此还是有必要基于Kong网关来开发一个网关的管控治理平台,而对于管理平台的开发本身又又三个思路可以选择。
思路1:基于我们已有的自研ESB,研究Kong网关的Admin API进行管理平台定制
思路2:完全重新定制一套新的API管理平台,全新开发,但是管理平台和监控平台分离
思路3:基于Konga开源的API管理配置平台进行扩展开发
实际上对于三个思路里面工作量最大的是思路2,能够快速实现的是思路3。因此在决策全部重新开发前还是有必要对Konga管理平台进行下研究。Konga平台是当前使用最多的一个基于Kong网关的第三方开源管理平台,而且完全基于Kong
Admin API,功能也比Kong原生的管理台增强了不少。
具体的GitHub地址为:
我们可以看下该平台的主要特征:
Manage all Kong Admin API Objects.
Import Consumers from remote sources (Databases, files, APIs
etc.).
Manage multiple Kong Nodes.
Backup, restore and migrate Kong Nodes using Snapshots.
Monitor Node and API states using health checks.
Email & Slack notifications.
Multiple users.
Easy database integration (MySQL, postgresSQL, MongoDB, SQL
Server).
在这里面可以看到管理平台可以管理所有的Kong Admin
API对象接口,也可以从远程资源中导入各类的消费方,可以管理多个Kong网关节点,支撑多用户。同时支持对API接入服务状态进行监控。Konga平台本身自带数据库,但是也支持和主流的MySQL,
postgresSQL, MongoDB数据库进行集成。
由于Kong具备足够的开放性,而且增加的功能都是以插件的方式进行提供,Kong的商业化插件的实现很多也是收费的,因此我们可以提供同等功能甚至更多功能的插件,这些插件同时又能实际解决企业的集成问题。
对于插件,优先需要定制开发和优化的主要还是体现在以下几个方面
1. 安全类插件:BaseAuth OAuth2 Key Ldap,其他的访问控制类安全,传输安全
2. 流控类插件:限流,熔断,入口和出口限制,速率限制
3. 监控类插件:日志,服务链监控等