Rainbond 5.0正式发布, 支持对接管理已有Kubernetes集群
今天非常高兴向大家宣布Rainbond v5.0正式发布,Rainbond是开源的企业应用云操作系统,支撑企业应用开发、架构、交付和运维的全流程,通过无侵入架构,无缝衔接各类企业应用,底层资源可以对接和管理IaaS、虚拟机和物理服务器。
此前发布的Beta版本经过几十个企业用户安装试用,非常感谢社区用户反馈的每个问题。我们在5.0版本中进行了大量优化重构,同时也增加了多项重要功能,使得Rainbond的社区兼容性和稳定性得到全面提升。下面来介绍一下新版本重点功能:
对接已有Kubernetes集群,并升级了内置Kubernetes和Docker版本
基于过去版本在生产使用中积累的经验和问题,我们将Rainbond应用运行时进行了完全重构。此次重构升级了Kubernetes和Docker的版本,并引入了Kubernetes的Deployment、Secret、Ingress、ConfigMap等资源,同时可支持对接已有Kubernetes集群。在应用存储方面,运行时提供了分布式存储和本地存储的Provider, 在网络方面增加了对Flannel的支持,在服务调度方面增加了更多的调度选择机制。服务日志方面,增加了计算节点日志收集器完成日志收集和与第三方日志系统对接。
本次重构将Rainbond服务抽象进行了改进,使得Rainbond抽象能够更好的支持Kubernetes原生抽象模型,为5.1版本Rainbond支持Helm Chart源码创建应用奠定了基础。
新增应用网关
在之前版本中我们支持基础的域名绑定和四层访问支持,这些只解决了基础的访问需求,用户现在可以通过应用网关体验到大量开箱即用的访问控制功能。应用网关是以应用为核心抽象的关键环节,网关一词大家不会陌生,不管是传统的流量网关还是API网关,都是业务服务的外层屏障。Rainbond应用网关基于Openresty进行功能扩展,其核心功能是应用访问的负载路由
和安全控制
。5.0版本中的重点是在负载路由方面,当前版本我们设计了两类路由策略管理:
- HTTP访问策略(L7)
HTTP协议作为目前最主要的业务服务协议。Rainbond支持以域名、请求路径、请求头、Cookies等多种条件的路由规则,同时支持基于权重对后端服务进行分流。可以满足用户对服务的访问控制需求,实现A/B测试和灰度发布。
- TCP/UDP访问策略(L4)
TCP/UDP协议工作在四层,可以支持目前几乎所有服务,通过IP地址和端口进行服务路由。
Rainbond应用网关自动发现当前数据中心运行的所有服务端点,根据用户配置的访问策略透明化的工作。后续的版本中应用网关将持续升级,带来以下特性:
- 多种负载均衡算法
- 服务安全控制(插件式扩展业务安全控制)
- 多维度监控数据
- 支持gRPC等更多的L7应用级协议路由策略
升级源码构建,支持Gradle构建
Rainbond提供的源码构建功能在过去的版本中深得用户喜欢,从5.0版本开始,源码CI机制的相关功能更新优先级将被提高。当前版本中我们首先带来了对所有支持语言的Runtime版本的升级,具体升级版本见源码支持文档,对于Java我们增加了Gradle编译方式的支持, 对于.NetCore增加自定义编译命令功能的支持。
服务控制台中增加了构建源设置区域,提供了对各类支持语言的编译环境的相关设置,后续版本中将提供更丰富的设置项目方便用户灵活选择。
引入Windows应用的支持(Alpha)
Windows应用目前依然存在于大多数传统企业中,得益于微软对容器化的大力支持,Windows容器技术目前已经可以投入商用。Windows体系是完全独立的体系,从应用的编译、构建、调度、运行都是独立于Linux环境,因此对于Windows的支持工作量巨大。在5.0版本中我们完成了对Windows应用的自动化构建、调度、运行的支持。但从节点安装、应用源码构建方面还不完善,当前版本Windows应用的支持仅作为试用功能。
丰富大量文档
之前版本Rainbond在文档方面不足,我们也认识到文档对于开源项目的重要性。随着5.0版本的发布,我们对文档从结构上和内容上进行了整体的调整,在控制台使用、平台安装与运维、技术架构等多方面进行文档完善。
多达100多项的功能改进
当前版本除了上诉的功能变化以外,我们在集群(节点)管理、应用管理、应用控制台UI等方面进行了100多项改进。
详细功能列表
1. 新增应用网关
(1)移除了原rbd-entrance rbd-lb 两个组件,增加rbd-gateway组件
(2)支持HTTP、TCP服务访问策略管理
(3)HTTP策略支持基于域名、访问路径、请求头、Cookie访问路由控制
(4)支持配置HTTPs规则、HTTP转HTTPs规则
(5)支持泛域名规则
(6)支持SSL证书管理
(7)支持A/B测试、灰度发布控制
(8)TCP策略支持基于IP、端口访问控制
(9)自定义负载均衡策略,目前支持支持轮询算法,后续测试版本支持一致性Hash算法,Session粘连算法
(10)rbd-gateway支持集群部署,高可用与流量均摊,可工作于4层高性能软硬件负载均衡之后。
2. 支持对接已有Kubernetes集群
(1)应用运行时完整重构,提供以应用为核心的控制器抽象
(2)无状态服务部署类型更改为Kubernetes Deployment资源
(3)有状态服务本地存储、共享存储提供更改为动态PV,运行时提供Provider
(4)应用状态维护由集中式更改为分布式,去除单点间歇性故障
(5)有状态服务、无状态服务皆提供自动化滚动升级策略
(6) 默认Kubernetes版本升级到1.10版本 Docker版本升级到17.06版本
(7) 支持社区版本Kubernetes集群对接
3. 源码构建更新版本,支持Gradle。
(1)Java
PHP
Python
NodeJS
Golang
.NetCore
各语言可选Runtime版本升级
(2)Java语言支持Gradle
源码构建 ,支持War、Jar包部署
(3)Dockerfile支持多阶段构建
(4)支持离线环境下的源码持续构建(离线环境已具有必要的使用语言包仓库)
4. 简化应用操作,优化控制台体验。
(1)明确定义 应用/服务 两级抽象。
(2)应用Dashboard页面拓扑图应用状态实时刷新。
(3)应用Dashboard页面增加快捷创建服务组件的流程。
(4)应用Dashboard页面增加应用级启动、停止、升级控制。
(5)增加应用网关完整的控制流程页面 (完成)。
(6)服务组件支持(更新升级)操作 。
(7)服务组件支持源码构建配置 。
(8)应用安装支持先安装,配置后启动选择。
5. Windows 支持 (5.0仅作为测试功能)
(1)node 组件支持windows节点部署,管理windows节点和平台服务
(2)rbd-chao 组件支持windows节点部署,构建windows应用
(3)服务构建调度支持区分windows和linux应用。
(4)服务运行调度,存储支持Windows节点。
(5)数据中心镜像仓库升级支持Windows镜像。
6. 简化安装和维护
(1)系统安装策略由SaltStack更换为Ansible
(2)新加windowsutil组件支持传统程序或脚本部署为windows服务
(3)支持多配置文件配置节点服务
(4)支持Windows节点下服务守护和健康检查
(5)grctl多个命令升级改造
(6)内置支持安装flannel host-gateway网络