解析rainbond以应用为中心的架构设计原理
作者:kl 发布时间:2023-02-05 14:19:50
前言碎语
今天博主安利一个国产开源的无服务器容器云平台,关注它已经有一年多了,虽然其迭代到现在很多功能还是一直处于测试验证中,但是其设计理念以应用为中心,我觉得这个是未来的趋势。
其实以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承载,构建起互联互通的应用管理生态体系。
来源:http://www.kailing.pub/article/index/arcid/219.html


猜你喜欢
- Android自定义View实现等级滑动条的实例实现效果图:思路: 首先绘制直线,然后等分直线绘制点; 绘制点的时候把X值存到集
- /** * 实现 * @author dujinyang * */顺序是: OneAcitivity
- 引言上文Android:实现一个自定义有限制区域的图例(角度自识别)涂鸦工具类(上)中我们已经实现了自定义View签名的功能,包含撤回、清除
- 文件上传也是常见的功能,趁着周末,用Spring boot来实现一遍。前端部分前端使用jQuery,这部分并不复杂,jQuery可以读取表单
- 题主要区分清楚内码(internal encoding)和外码(external encoding)就好了。内码是程序内部使用的字符编码,特
- 前言static和final是两个我们必须掌握的关键字。不同于其他关键字,他们都有多种用法,而且在一定环境下使用,可以提高程序的运行性能,优
- 目录前言解决方案前言我们在开发Spring应用时可能会不小心注入两个相同类型的Bean,比如实现了两个相同Service接口的类,示例伪代码
- 简介optional类是java8中引入的针对NPE问题的一种优美处理方式,源码作者也希望以此替代null。历史1965年,英国一位名为To
- 这个例子用于演示在Spring Boot应用中如何验证Web 应用的输入,我们将会建立一个简单的Spring MVC应用,来读取用户输入并使
- 1.字节码增强技术字节码增强技术就是一类对现有字节码进行修改或者动态生成全新字节码文件的技术。参考地址2.常见技术技术分类类型静态增强Asp
- 1、Aop 全程是Aspect Oriented Programming 即面向切面编程,通过预编译方式和运行期 * 实现程序功能的同一维
- 背景SpringBoot的应用监控方案比较多,SpringBoot+Prometheus+Grafana是目前比较常用的方案之一。它们三者之
- 场景:在学习JDBC的语言中,每次都执行通用的几步:即注册驱动,获取连接,创建操作,处理结果,释放资源 过于复杂,因此不妨将上述步骤封装成工
- 堆溢出:/*** @author LXA* 堆溢出*/public class Heap{ public
- 背景WebView是在APP中,可以很方便的展示web页面,并且与web交互APP的数据。方便,并且更新内容无需APP发布新版本,只需要将最
- 场景:使用intellij idea开发,持久层dao使用了mybatis,经常需要编辑mybatis的××Mapper.java和××Ma
- C#支持的位逻辑运算符如表2.9所示。运算符号意义运算对象类型运算结果类型对象数实例~位逻辑非运算整型,字符型整型1~a&位逻辑与运
- 屏幕切换指的是在同一个Activity内屏幕间的切换,ViewFlipper继承了Framelayout类,ViewAnimator类的作用
- Java 8 最大的特性无异于更多地面向函数,比如引入了lambda等,可以更好地进行函数式编程。前段时间无意间发现了map.merge()
- 固定的策略有时候还是无法满足千变万化的需求变动,一方面需要支持特定的用户需求,另一方面又得尽可能的复用代码,避免重复开发,这就需要将这部分的