kl个人博客 首页>>架构/杂谈>>rainbond以应用为中心的架构设计

rainbond以应用为中心的架构设计

前言碎语

今天博主安利一个国产开源的无服务器容器云平台,关注它已经有一年多了,虽然其迭代到现在很多功能还是一直处于测试验证中,但是其设计理念以应用为中心,我觉得这个是未来的趋势。其实以docker+k8s这种架构也是一种以应用为中心的架构,rainbond底层深度集成k8s,为用户提供云原生应用全生命周期解决方案,构建应用与基础设施、应用与应用、基础设施与基础设施之间互联互通的生态体系,满足支撑业务高速发展所需的敏捷开发、高效运维和精益管理需求。

github:https://github.com/goodrain/rainbond

一、云计算的发展

回顾云计算产业与技术的发展路程,物理计算集群逐步被IaaS层虚拟化取代,国内例如阿里云,腾讯云等IaaS厂商布局多年。IaaS层解决了资源提供者与使用者的耦合问题,对于用户来说只需要选择使用什么操作系统,分配多大资源上限即可,一定层度上降低了用户交付应用价值的难度。

但是,用户依然需要重复得进行操作系统运维,环境与应用运维,技术难度依然很高。近两年,以Docker、Kubernetes为代表的容器与容器编排技术盛行,其实际上是将虚拟化进一步上移,更加面向应用,可以说容器化是对应用的虚拟化。在这样的基础上用户创造和交付大规模业务系统变得更加简单。

我们认为,云计算的发展更多的是让大部分公司和人群只需要关注和创造业务系统,关注业务逻辑,而不是将大量时间和人力投入到复杂的,重复的计算资源维护上,因此只是容器化还不能达到这个层次,我们希望将云计算推向到下个阶段:应用管理阶段,呈现出两个产品,无服务器PaaS云原生SaaS

二、企业价值与IT

上文我们提出了应用管理的概念,那么应用管理对于我们大多数企业IT有多大的价值呢?

对于大多数IT企业和互联网企业,企业价值的直接体现在于创造的应用或运营的应用本身,也就是说在业务本身上。然而我们都知道,一个业务系统需要运行,必须得搭建运行环境,考虑网络、存储、配置、负载均衡、安全等等一系列复杂的计算资源管理问题,而且每一次系统搭建都重复得进行,往往在这些问题上花费大量的成本。

我们在应用与计算资源管理这两者之间增加一层应用管理(无服务器PaaS和云原生SaaS),完全以应用为中心进行设计,将应用与计算资源解耦,应用管理之上,开发或使用人员只需要关注业务设计,编码,测试,上线流程环,应用管理平台自动化完成从源码到云端运行的复杂流程。

开发者无需再面对底层计算资源的管理复杂性,也就解除了对传统的运维人员的依赖,同时对于运维人员,只需要在平台自动化资源管理的基础上维护资源池稳定,两者责任清晰,边界清晰,天然的解决了DevOps问题。经过与大量用户沟通实践后我们发现,应用管理成为了提升企业IT能力的关键

三、服务模式

完整的应用管理方案包括:

  • 北向的应用抽象管理
  • 南向的计算资源管理

Rainbond产品按照这样的设计思路应运而生。在应用管理方面,我们设计了应用抽象模型,面向企业IT系统和基础应用,例如互联网类应用,行业类应用,物理网类应用以及大数据技术类应用等。

针对微服务架构的支持,除了兼容已有的微服务架构以外,原生提供了Service Mesh架构的支持,对上诉多种类型的单体应用,新老应用实现规模化整合,对各类型应用提供标准的、完整的功能支持。

当然,不同的应用在高级需求上是不同的,例如MySQL需要热备份,外网访问应用需要防火墙等等需求我们设计了应用插件体系,对应用功能进行差异化,无侵入式扩展。

在计算资源管理方面,对不同的计算资源进行统一的池化,软件定义,提供标准的计算服务。除了在公有云计算资源之上,目前我们尝试了在地方IDC厂商,企业私有已有的x86-64架构计算资源之上搭建Rainbond数据中心。

我们正朝着资源全自动运维的目标前进。对于用户来说,取需要的任何应用,运行于需要的计算资源之上,按需组合,灵活组合,最终提供了SaaS化得服务。

四、以应用为中心的产品设计

Rainbond基本的设计思想就是 以应用为中心,近年来该理念也被业界同行和更多用户所认同,Rainbond提供了应用完整的生命周期管理:

  • 应用的生产阶段

    Rainbond从设计上就支持从各类型软件源构建生产应用,从各类型编程语言源码,已经打包的容器镜像,更包括定义好的DockerCompose文件等等。Rainbond定义应用的各层面元素,就像一个生产线,输入各种代码,生产出统一的应用。

  • 应用运行阶段

    Rainbond软件抽象管理存储,网络、计算等各种计算资源。在此基础之上运行APP-Runtime,为应用运行提供统一得,丰富得服务。让简单的应用组建起高性能的架构。

  • 应用传播阶段

    应用是需要被更多的用户使用产生价值的,Rainbond提供得是应用得传播,即一处构建应用,到处生产服务。例如某软件商生产一套微服务架构服务,涉及30个独立应用。云帮将作为其与客户快速交付得桥梁,用户只需一键即可部署完整服务。

五、面向未来

我们的愿景是希望Rainbond的使用者是一个相辅相成的整体,有人创造应用,有人发挥应用的最大价值,有人为应用提供超大资源保障。这一切的连接由Rainbond承载,构建起互联互通的应用管理生态体系。


kl个人博客