设计思想

企业应用云操作系统 对于企业 IT 来说,企业应用是企业 IT 价值的最主要体现,然而,当前不管是开发应用还是使用应用,都需要面对最底层的计算资源(IaaS/虚拟化/物理服务器),导致技术栈很长,需要做很多跟业务不直接相关的工作,比如:开发和运行环境搭建;服务器管理;网络管理;交付流程管理;技术架构支持;基础技术服务提供;技术工具维护等运维和技术工作,而这些工作对所有企业应用是有通用性的,如果把这些工作统一包装并自动化完成,企业专注自身业务,这样就能让企业 IT 的效率大幅度提高。 Rainbond 通过 以应用为中心 的方式包装以上重复性工作,并在此上支撑企业应用的开发、架构、交付和运维,这种抽象粒度,即能简化企业应用的管理,又能满足业务的灵活性。在对接底层基础设施时,通过软件定义实现和对接,能做到对接各类基础设施。通过以上设计,自然形成了企业应用的操作系统。 无侵入架构 Rainbond 把广泛支撑企业应用作为首要目标,广泛支撑企业应用意味着各种企业应用都能在 Rainbond 上开发、架构、运维,这点也是影响使用体验的关键点,为了实现这个目标,Rainbond 采用无侵入架构。无侵入架构表现在使用简单,已有应用不需要改动就能支持。 具体从三方面入手: 在开发阶段,对接代码仓库,自动识别 开发语言类型,不改变开发者习惯,尽量最大可能不修改现有代码,直接编译、构建和运行。 在架构阶段,如果已有系统没有分布式架构,Rainbond 提供 Service Mesh 架构,业务模块不改代码就能变成微服务架构。 在运维阶段,老的遗留系统很难找到原有开发人员,要迁移到新运行环境比较困难,Rainbond 使用动态生成配置文件和网络关系的方式,迁移和运行遗留系统。运维和治理功能,Rainbond 通过“无侵入”插件的形式提供,根据功能需要选择加载插件。 无侵入架构还表现在,对使用者无绑定,开发的应用程序可以脱离 Rainbond 开发和运行。 以应用为中心,连接企业应用和企业计算资源 以应用为中心是 Rainbond 的核心设计理念,也是 Rainbond 的抽象思路,强调关注业务,跟业务相关技术概念对外暴露,跟业务不直接相关的技术概念统一包装。通过这种方式抽象,使用者不用过多考虑服务器的问题,也就是Serverless架构。 通过以应用为中心抽象可以将企业应用和企业计算资源解耦,企业应用的生命周期管理跟计算资源不直接相关,也就是说企业应用的开发可以在任何类型的计算资源上,开发好的企业应用可以直接安装运行在任何类型的计算资源上,还可以随时从一个资源迁移到另一个资源。 计算资源对使用者完全透明,根据使用场景差异对接计算资源,当计算资源对接的是公有资源,就是公有云,当计算资源对接的是私有资源,就是私有云,当计算资源同时对接公有资源和私有资源,就是混合云。 Rainbond 通过解耦实现连接企业应用和企业计算资源,对接的各类企业应用积累形成企业应用市场,对接的各类企业计算资源积累形成企业计算资源市场,应用市场中的应用和资源市场中的资源可以自由组合使用。组合使用的过程,表现为 SaaS 和 PaaS 两种交互界面。SaaS 实现不懂技术的即点即用,PaaS 实现高级的定制开发。

业务流程

抽象流程 Rainbond的流程建立在以应用为中心抽象基础上,以交付为目的 场景流程 互联网公司交付流程 企业软件公司交付流程 行业云交付流程 大型企事业单位IT流程

技术架构

Rainbond 技术架构 Rainbond 践行以应用为中心的理念,吸纳优秀的社区解决方案,形成了应用控制、应用运行时,集群控制三大模块结合的数据中心逻辑技术架构,结合以管理节点、计算节点、网关节点、存储节点给类节点类型划分的物理架构形成高可用、高扩展性的数据中心架构体系。 在数据中心架构之上,根据使用目标人群划分为应用管理控制终端和资源管理控制终端,来分别服务于应用开发运维者和资源使用者。支撑用户同时管理和控制多个数据中心的多数据中心模式。 数据中心服务组件说明 数据中心 API 服务 API 服务作为数据中心级抽象的核心控制服务,对外提供 Restful 风格的 API 服务,是数据中心控制请求的唯一入口,安全控制基于 TLS 双向安全认证。自主签发证书后分发到客户端。 API 服务请求进入后由 router 模块进行请求分发,普通请求进入 Handle 请求处理模块,这类请求主要是操作数据库模型的请求,API 服务基于 ORM 支持 Mysql 数据库和 CockroachDB 数据库。进入 Proxy 的请求分为 API 请求和 Websocket 请求。由 Discover 模块通过 etcd 服务发现其代理目标并转发请求。因此其他组件提供的 API 可通过服务注册由 API 服务代理转发请求。 应用网关服务 应用网关是外部流量进入 Rainbond 租户内部组件的唯一入口, 提供 HTTP, HTTPs 路由, TCP/UDP 服务, 负载均衡器, 高级路由(A/B 测试, 灰度发布),虚拟 IP 支持等功能. 应用网关的设计灵感来自于 NGINX Ingress Controller, 基于从 kube-apiserver 将监听到的 Kubernetes 资源(Ingress, Service, Secret, Endpoint)模型转化为 Proxy 控制器的配置,提供一种自动工作、实时生效、动态热配置的 7 层、4 层网关服务。