Rainbond:如何制作一个可分享的云市应用?

Rainbond:如何制作一个可分享的云市应用?

应用是Rainbond可管理的最小服务单元,用户可以将多个应用组成一个复杂的业务系统,这套业务系统可以对外提供服务,也可以分享给其他组织独立部署。本文将会通过Solo+Pinpoint(Pinpoint-java性能分析最佳实践)这个例子,演示“如何制作一个可分享的云市应用”, 分享后的应用可供团队、公司或云市的用户一键安装部署完整的服务体系,实现标准化得一键交付部署。

对于还没有了解Rainbond,或者还没有成功安装Rainbond的同学,建议先到以下的两个链接进行学习:

创建应用

应用的创建有3种方式,分别是从源码创建、从Docker镜像创建和从应用市场安装,详情请参见:创建一个应用

接下来将会用从源码创建和从应用市场安装——

同步应用到内部市场

如果内部市场里没有要创建的应用,则需要先从云端下载。

创建应用

首先,通过从应用市场(应用市场是好雨提供的一项公有云服务,提供了常用的开发应用及工具)安装的方式装Pinpoint。这是在云帮平台上部署应用非常简单的一种方式。这种部署方式对于像pinpoint这种多组件的复杂应用来说,最大程度的降低了部署难度与工作量。

  • 进入Rainbond,选择【从云市安装】
  • 在搜索栏中搜索【pinpoint】
  • 选择已有的【应用组】,或者创建一个新的【应用组】
  • 点击【确定】,等待一小段时间后,应用就部署完成了

然后,再以同样的方法创建MySQL(因为Solo需要依赖于MySQL)

最后,用源码创建应用的方式创建Solo。

  • 点击【创建应用】--【从源码创建】
  • 填写应用名称、应用名、仓库地址和代码版本等信息
  • 点击【确定】

这种方式会有一个应用检测的过程,这个过程时间有点长,我们直接跳过,进入高级设置。

在高级设置中,需要开启对外服务、添加环境变量、添加服务依赖和设置内存信息:

  • 开启对外服务,这样我们才可以通过浏览器访问应用。
  • 添加环境变量ENABLEAPM = true和APPNAME = Solov999,这样Solo才可以和Pinpoint关联起来。

传统架构下的pinpoint,需要在被监控的对象里附加Agent,并通过修改配置文件使之生效。在云帮平台上,我们将这两个步骤也做了相应的简化。 由 好雨官方OpenJDK镜像 为基础制作的应用,都默认集成了Pinpoint-Agent,不需要二次安装。 云帮平台利用设置 环境变量 的方式,代替了配置文件,键值对形式的环境变量非常简单易用。

  • 分别添加MySQL和Pinpoint-Collector两个服务依赖。
  • 设置内存为1G(可以根据实际情况进行调整)。

整个应用的创建已经完成,接下来就可以访问刚刚安装好的应用了

访问solo——

通过Pinpoint监控Solo——

由于Pinpoint-Web的实时监控功能是用Websocket实现的,而Rainbond的负载均衡组件尚未支持Websocket,所以需要将Pinpoint-Web的访问方式从Http改成Tcp。否则无法使用Pinpoint-Web的实时监控功能。

可以看到,可以通过Pinpoint实时地监控Solo,说明我们成功地安装、整个了Pinpoint和Solo。

发布应用到市场

发布

在Rainbond中,你可以将整套业务系统打包成一个云市应用,并选择将该应用发布到团队、公司、好雨公有云市。分享到不同的范围,可见性也有所不同,具体可见范围如下:

  • 团队:只有当前团队下的成员可见
  • 公司:当前企业下的所有成员可见
  • 好雨云市:连接好雨公有云市的所有企业及用户可见

好雨云市是Rainbond定义的一种对于Rainbond应用的存储、共享、交付、管理途径。 对于当前IT软件交付的方式复杂,人力投入大的难题,Rainbond对异构应用服务提供了标准化的打包形式,将软件、依赖部署关系、功能扩展插件、版本信息、运行环境、配置信息甚至是初始化数据等整体打包存放于应用市场。因此应用市场是Rainbond定义的一种应用的共享途径,它可以跨团队,跨数据中心,甚至跨平台的分享应用。应用市场的应用是完整的业务解决方案集成体,或者是优秀的架构实践体,其可以标准化得一键交付部署。

我们将一个应用组内完整的业务解决方案集成体整体打包成一个云市应用,发布成功后,其他用户在创建应用时可以选择从应用市场安装的方式一键安装部署完整的服务体系,实现标准化得一键交付部署。详情请参见:应用发布

填写完应用名、版本、分享范围、图标等应用基本信息后,就可以提交了。

提交了之后,会进行应用检测。应用检测完成后,来到页面的下边,点击确认分享,将应用发布出去。

然后我们就可以在内部市场找到刚刚发布的Solo-Pinpoint(仅仅可以在内部市场中找到)。

上架

如果想要可以在云市中找到刚刚发布的Solo-Pinpoint应用,那么需要在云市中上架Solo-Pinpoint。上架后的应用可以被连接好雨公有云市的所有企业及用户看到。

  • 信息编辑,使用Markdown编写应用的详细介绍,让用户可以更好地去了解应用。

  • 设置价格

  • 上架

完成上架之后,我们就可以在云端中找到Solo-Pinpoint

应用导入和导出

为了让用户能够更好的管理自己的应用,快捷简单交付业务,我们为平台设计了应用导入导出功能,该功能允许用户通过简单的几次点击,就可以将内部市场的应用打包为一个压缩文件,并可以下载到本地。在导出的时候,支持两种格式,一种为rainbond-app格式,另一种为docker-compose格式。详情请见:应用导入与导出

应用导出

  • 进入内部市场页面
  • 找到Solo-Pinpoint,点击该应用版块上的导出应用

导出的过程可能会比较长。导出成功后, 下载按钮会由灰色变成蓝色,点击下载按钮进行下载,将文件下载到本地。

下载完成后, 会得到一个叫Solo-Pinpoint-v1.0.zip的文件, 这就是Solo-Pinpint的备份文件。

应用导入

应用导入有以下两种方式:

  • 如果你的网络情况不乐观的情况下,我们建议您直接在对应的数据中心的服务器上进行操作。你可以将RainbondAPP文件复制到数据中心管理节点上我们提供的目录下。
  • 如果网络情况较好,可以直接通过网络上传文件至数据中心指定目录下(本文章使用的方式)。

我们先将市场里的Solo-Pinpoint删除了,再导入上边导出的Solo-Pinpoint-v1.0.zip。

上传完成后,勾选Solo-Pinpoint-v1.0.zip,点击确认导入。

因为Solo-Pinpoint-v1.0.zip这个文件的大小有1G,所以上传和导入会比较久。

导入完成之后, 可以再次在内部市场中找到Solo-Pinpoint。

应用备份和恢复

应用备份

对于生成环境的业务系统,我们需要对其进行定期的全量备份操作,过去我们针对数据单独进行备份,或对数据库进行单独备份。缺乏一种全局统一备份的机制,特别是对于分布式应用。Rainbond应用组备份与恢复完成对业务系统的整体的、全量的备份,以实现整个系统故障时的全局回滚。详情请见:应用备份

备份操作分为本地备份和云端备份两种,这里使用的是本地备份:

本地备份:将一组应用备份在本地,本地备份的应用无法进行跨数据中心和租户的迁移操作。

云端备份:需要配置sftp服务器和私有hub仓库才能进行云端备份,云端备份可以实现应用的跨数据中心和租户操作,并且还能支持该组备份的导出。目前企业版支持管理后台配置sftp和hub仓库的配置。

备份操作如下——

备份成功——

应用恢复

接下来,我们对 5.1 应用备份 中备份的文件Solo-Pinpoint-v1.0.zip进行恢复,操作如下:

恢复操作过程中请勿关闭恢复页面,否则可能会导致恢复失败。

为了保证您的数据安全,恢复操作过程我们会生成一份您的备份应用的拷贝,您可以在恢复的最后一步中选择删除原有的应用。

恢复成功后,会多出一个叫Solo-Pinpoint_1ccf的应用,这就是恢复后的应用。

成功启动恢复后的Solo-Pinpoint_1ccf

总结

本文通过Solo+Pinpoint这个例子,对“如何制作一个可分享的云市应用?”进行了演示,希望大家可以得到这个技能;同时,对这个Solo-Pinpoint这个应用执行了导入、导出、备份和恢复等操作,希望可以帮助大家了解Rainbond。

关于Rainbond

Rainbond(云帮)是"以应用为中心”的开源PaaS, 深度整合基于Kubernetes的容器管理、ServiceMesh微服务架构最佳实践、多类型CI/CD应用构建与交付、多数据中心资源管理等技术, 为用户提供云原生应用全生命周期解决方案,构建应用与基础设施、应用与应用、基础设施与基础设施之间互联互通的生态体系, 满足支撑业务高速发展所需的敏捷开发、高效运维和精益管理需求。