思路 1: 基于我们已有的自研 ESB, 研究 Kong 网关的 Admin API 进行管理平台定制
思路 2: 完全重新定制一套新的 API 管理平台, 全新开发, 但是管理平台和监控平台分离
思路 3: 基于 Konga 开源的 API 管理配置平台进行扩展开发
实际上对于三个思路里面工作量最大的是思路 2, 能够快速实现的是思路 3. 因此在决策全部重新开发前还是有必要对 Konga 管理平台进行下研究. Konga 平台是当前使用最多的一个基于 Kong 网关的第三方开源管理平台, 而且完全基于 Kong Admin API, 功能也比 Kong 原生的管理台增强了不少.
具体的 GitHub 地址为:
https://github.com/exceedzhang/konga
我们可以看下该平台的主要特征:
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 网关本身具备足够的开放性, 提供全面的 Admin API 对引擎内部功能进行管理. 对于 Kong Admin API 接口的一些介绍可以参考下面这篇文章:
由于 Kong 具备足够的开放性, 而且增加的功能都是以插件的方式进行提供, Kong 的商业化插件的实现很多也是收费的, 因此我们可以提供同等功能甚至更多功能的插件, 这些插件同时又能实际解决企业的集成问题.
对于插件, 优先需要定制开发和优化的主要还是体现在以下几个方面
1. 安全类插件: BaseAuth OAuth2 Key Ldap, 其他的访问控制类安全, 传输安全
2. 流控类插件: 限流, 熔断, 入口和出口限制, 速率限制
3. 监控类插件: 日志, 服务链监控等
来源: http://www.tuicool.com/articles/QNv6Rrr