V2EX = way to explore
V2EX 是一个关于分享和探索的地方
现在注册
已注册用户请  登录
爱意满满的作品展示区。
anotherhub
V2EX  ›  分享创造

开源 | Rainbond v3.7.0:实现企业级 PaaS 的稳定性

  •  2
     
  •   anotherhub · 2018-08-14 12:52:07 +08:00 · 1909 次点击
    这是一个创建于 2286 天前的主题,其中的信息可能已经有所发展或是发生改变。

    Rainbond 在 v3.7.0 版本中释出了大量平台稳定性更新,并在应用管理功能、安全性和系统安装三方面进行了部分优化。

    作为 IT 基础系统平台,Rainbond 从低耦合的架构设计高可用的部署方式自恢复与容错的设计三方面评估和保障分布式系统可用性,以最终达到无人值守的效果。

    在低耦合架构设计方面,Rainbond 将分布式系统抽象为管理、计算、存储等三类节点,不同节点属性由不同服务组件构成,以解除服务间耦合关系,同时对于不同节点,可用性的最低要求也不尽相同 ——

    • 管理节点:面向用户,提供应用构建、控制、调度、交付以及数据存储等系列管理功能,在异常情况下没有管理节点,已有应用依然能正常运行
    • 计算节点:负责实际运行应用并为应用运行提供环境保障,在异常情况下可以容忍降级,将应用调度到其他计算节点运行
    • 存储节点:用于存储应用持久化数据并提供数据访问服务,存储节点异常,无状态应用依然可以正常运行。

    为了更好地保证高可用的部署,Rainbond 本身所有模块和组件均支持高可用 ——

    • 管理节点:支持等幂部署多个节点以保证高可用
    • 计算节点:等幂部署多个计算节点以组建冗余资源池,从而容忍单节点资源限制或故障
    • 存储节点:采用冗余部署的方式形成存储资源池,对计算节点提供稳定服务,任何存储节点故障,业务不会中断,数据也不会丢失。

    在自恢复与容错的服务设计方面,为了消除用户在维护大型集群组件和服务时的手动工作,Rainbond 同样将节点属性划分为管理节点、计算节点、存储节点,并做严格区分,使不同节点属性下运行不同服务列表。所有的服务采用 Systemd 进行进程守护,在保证进程健康的同时,每个节点 Node 组件对当前节点的所有服务,硬件,网络通信情况进行实时不间断检查和评估,以检查出每一个服务和节点的健康状态,并最终汇聚成数据中心整体健康状态,Rainbond 用户在大多数情况下不需要关注每一个组件,只需要观察数据中心或节点的健康状况即可。

    当服务出现异常情况时,区分不同的异常类别触发不同的动作,比如:“重启”、“报警”等,恢复服务的可用性。

    另外,Rainbond 提供的独立的节点检查和管理机制,对 Kubernetes 对计算节点的自动化维护进行了有力的补充,例如对于大型集群,某个节点出现网络无法分配,镜像无法获取等错误导致节点不健康时,平台自动下线该节点,禁止新应用调度到此节点,最大化的降低应用调度错误。

    以上即 Rainbond 对于评估和保证系统可用性的三方面思考和设计,在功能点上的具体体现如下:

    1. 所有平台服务使用 Systemd 进程级守护加 Rainbond-Node 业务级健康检查守护,保障服务健康运行

    2. 所有平台服务支持健康检查和 Prometheus 的监控指标暴露

    3. 管理节点支持上线和下线以隔离由于节点故障导致平台不可用

    4. 计算节点健康检查异常时支持自动隔离和恢复

    5. 支持配置自定义报警规则用于对节点物理监控,服务监控的报警

    6. 租户使用资源(内存、磁盘)的统计由单个节点完成( Rainbond-Worker Master 节点故障时自动切换)

    7. 支持通过命令行工具便捷查询数据中心健康状态、所有节点健康状态。

    在稳定性方面,Rainbond 下一步会增加 混沌工程方面的实践。

    其他更新

    应用管理功能

    本次更新进一步完善了应用管理和交付体系。

    首先,Rainbond 为 svn 用户和.net core 用户提供平台支持,内置了.Net Core 2.1 版本的编译和运行环境,用户只需要提供标准的代码即可一键上云(.Net Core 其他版本的用户可以采用定义 Dockerfile 方式)。

    其次,Rainond 进一步提供了 API 方式直接对接 Jenkins CI\CD 流程的支持,推荐用户在平台内直接部署 Jenkins 并通过 API 与平台进行对接。

    另外,对于微服务架构产品标准化交付,Rainbond 支持将应用、插件统一分享为一个综合的业务系统,并通过应用市场快捷交付。

    具体更新清单如下——

    1. 支持 .NetCore(2.1)语言一键构建应用,运行于 Linux 系统

      ![]( https://grstatic.oss-cn-shanghai.aliyuncs.com/images/article/3.7.0/netcore 支持.gif)

    2. 支持对接 SVN 代码仓库持续构建应用

      ![]( https://grstatic.oss-cn-shanghai.aliyuncs.com/images/article/3.7.0/SVN 支持.gif)

    3. 增加自动构建的入口,支持通过自定义 API、Gitee-Webhook、Gogs-Webhook 触发自动构建,更好的于第三方 CI 系统集成。

    4. 支持应用+插件完整交付应用市场,并从市场安装应用+插件完整业务系统,提供了业务+治理功能扩展绑定的完整软件交付模式

    5. Dockerfile 构建支持 ARG 参数

    6. 支持基于 Git 仓库的代码 Tag 构建应用

    7. 支持应用创建后重新识别语言类型

    安全性

    1. 数据中心出口 API 与控制台、命令行工具等客户端使用 TLS 双向安全认证
    2. 用户注册功能管理员可控制,用户加入团队需管理员审核

    系统安装

    通过简化调整安装步骤、分离资源获取与节点安装,本次更新后,Rainbond 将统一支持在线安装和离线安装,解决了部分用户由于网络环境原因导致无法安装 Rainbond 的问题。

    1. 支持 Centos7.4.1709、Ubuntu16.04 、Debian9.5 完全的离线安装
    2. 支持管理节点水平扩容

    关于 Rainbond

    Rainbond是一款以应用为中心的开源 PaaS,由好雨基于 Docker、Kubernetes 等容器技术自主研发,可作为公有云或私有云环境下的应用交付平台、DevOps 平台、自动化运维平台和行业云平台,或作为企业级的混合云多云管理工具、Kubernetes 容器管理工具或 Service Mesh 微服务架构治理工具。

    第 1 条附言  ·  2018-08-15 11:03:15 +08:00

    应用管理部分GIF显示有误,补充如下——

    1.支持 .NetCore(2.1)语言一键构建应用,运行于 Linux 系统

    2.支持对接 SVN 代码仓库持续构建应用

    5 条回复    2018-08-15 17:29:11 +08:00
    madisonosidam
        1
    madisonosidam  
       2018-08-15 10:59:07 +08:00
    千呼万唤始出来
    rilweic
        2
    rilweic  
       2018-08-15 11:00:52 +08:00
    屌爆了
    doioio
        3
    doioio  
       2018-08-15 11:01:48 +08:00
    牛逼了
    dazuimao1990
        4
    dazuimao1990  
       2018-08-15 11:04:22 +08:00
    666
    lxxself
        5
    lxxself  
       2018-08-15 17:29:11 +08:00
    这个可以怎么玩?
    关于   ·   帮助文档   ·   博客   ·   API   ·   FAQ   ·   实用小工具   ·   2614 人在线   最高记录 6679   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 25ms · UTC 11:01 · PVG 19:01 · LAX 03:01 · JFK 06:01
    Developed with CodeLauncher
    ♥ Do have faith in what you're doing.