第三方服务定义
第三方服务定义
运行于 Rainbond 集群之外,运行生命周期不受 Rainbond 管理,且在网络上能够与 Rainbond 集群通信的服务称为第三方服务。例如单独运行的 Oracle 服务,或运行于 Windows 服务器的.net 服务等。
Rainbond 支持第三方服务管理的初衷
Rainbond 作为一款云应用操作系统开源产品,在众多的企业中落地使用的过程中出现了两类共同的问题:
- 循序渐进的迁移策略,已经上 Rainbond 的服务如何与遗留服务通信和统一管理。
Rainbond 以应用为核心,应用的关键是服务,Rainbond 提供了一套成体系的服务注册和发现机制来维护服务之间的配置 共享和通信。但是过去的版本中对于未迁移到 Rainbond 的服务却鞭长莫及。用户不管是在传统应用架构向微服务架构转化过程,还是从传统运维向 Rainbond 迁移的过程,我们都非常推荐用户循序渐进的进行。那么在这个过程必然出现集群内外服务共存的现象,举个例子:我有一个传统服务化架构,都使用同一个 Oracle 数据库,Oracle 数据库运行于一台特定的服务器中,第一阶段我们不改变它。首先将部分服务迁移到了 Rainbond 平台,这些服务即需要访问 Oracle 服务,还需要访问其他未迁移的服务。在 Rainbond 中我们推荐使用环境变量的方式定义配置,过去我们就需要重复的为每个服务定义相同的变量信息,如果后期有变化,又得全部重新改一遍。另外,服务需要访问其他服务,过去只能直接定义服务的 IP 地址,无法使用 Rainbond 提供的服务通信治理功能。再者在 Rainbond 平台可以可视化的观察服务拓扑关系和通信状态,然而对于处于集群外的服务无法在 Rainbond 中统一管理。
- Rainbond 应用网关很好用,但是遗留的服务没办法与 Rainbond 上的服务共享外网端口或域名。
Rainbond 提供了让应用和服务向外网提供服务的能力,越来越多的用户希望 Rainbond 应用网关可以直接面向外网,即外网 IP 绑定到 Rainbond 网关节点,服务网关占用了 80 和 443 端口。但是这里马上就带来了问题,企业中可能还存在其他的服务需要被同一个域名访问到,因此过去我们没有办法,只能在 Rainbond 网关的前面继续添加一层 nginx 服务,这样带来的就是配置的巨大复杂性。同时未迁移到 Rainbond 的服务也没办法使用 Rainbond 网关提供的众多开箱即用的功能,比如域名访问监控。
根据上述的用户诉求,我们根据 Rainbond 的服务抽象定义,提出了支 持第三方服务集成管理的新思路。
第三方服务与内置服务的区别
对比项 | 内置服务 | 第三方服务 |
---|---|---|
对接应用网关 | 支持 | 支持 |
被其他服务依赖 | 支持 | 支持 |
ServiceMesh 治理 | 支持 | 支持上游通信治理 |
服务属性 | 全部属性 | 支持端口、连接信息、健康检查、权限 支持静态或动态添加 Endpoint |
服务生命周期管理 | 全部支持 | 仅支持健康检查 |
分享应用市场 | 支持 | 暂不支持 |
备份、恢复 | 支持 | 暂不支持 |