非云原生应用,持续部署的两种方案选择

简介: 在非云原生的持续部署方面,目前主要有两种持续部署的方案,一种是由客户端主导的持续部署,一种是以jenkins为例子,使用jenkins在服务端部署jenkins服务和各种制品库和依赖组件,做持续部署。那么为什么要做持续部署呢?比如,我们有好几个服务,假如需要经常发布,上云的时候没有持续部署流水线的话,每次都需要使用sftp工具上传到跳板机,再由跳板机部署到好几台服务器,操作太麻烦,太容易出错。

在非云原生的持续部署方面,目前主要有两种持续部署的方案,一种是由客户端主导的持续部署,一种是以jenkins为例子,使用jenkins在服务端部署jenkins服务和各种制品库和依赖组件,做持续部署。

那么为什么要做持续部署呢?比如,我们有好几个服务,假如需要经常发布,上云的时候没有持续部署流水线的话,每次都需要使用sftp工具上传到跳板机,再由跳板机部署到好几台服务器,操作太麻烦,太容易出错。

好了,先说下两种部署方式的优缺点:

(1)服务端主导的部署流水线
这里以jenkins为例子,因为jenkins比较经典,很多人都使用过。
流水线的逻辑由jenkins脚本来实现,使用者要有一定的jenkins脚本技术,指定流水线的流程。比如拉取git仓库最新代码、执行mvn package、npm run build或者npm run build等命令,执行编译。然后编写scp脚本或docker打包脚本,将运行文件推送虚拟机或者docker镜像仓库,最后再编写脚本启动服务或者通过docker/j8s命令启动服务。

这里可以看出,jenkins属于重量级持续部署的方案,需要安装很多的依赖。比如git客户端、git制品仓库、maven制品仓库、npm制品仓库、maven客户端、node客户端等等。而这些环境,一般是我们开发机所具备的,因此,能不能直接使用开发机的环境编译,不使用服务端编译呢?因此,就有了方案二,客户端主导的持续部署。

(2)客户端主导的部署流水线
这里使用yunedit-ssh来实现,yunedit-ssh是一个sftp客户端和流水线工具。流水线的特点是轻量级,利用本地的编译环境或者编译好的文件直接批量上传。
这里主要使用yunedit-ssh的ssh隧道+流水线功能来实现。都是可视化的。
ssh隧道可以通过ssh跳板机作为跳版,直接访问到跳板机机房内网的服务。
比如如下例子:
image.png

这里创建了两个ssh连接,一个是跳板机的ssh连接,用来打通ssh隧道做端口映射。

使用ssh隧道,将远程内网的机器,映射端口到本地22端口后,就可以创建一个本地的ssh连接,连接本地端口即可管理到机房内网的机器了。

上图第二个连接,就是我发布文件需要推送的服务器。

然后就是配置流水线,如如下图所示:
点击创建流水线,即可创建流水线了:

image.png

下面是一个创建好的流水线的步骤:
image.png

点击其中一个步骤,可以看到,流水线可以上传文件,也可以执行本地命令,也可以执行远程命令,如下图:

image.png

比如步骤类型是执行远程命令的话,是这样配置:
image.png

这样通过可视化的方式来配置,无论是开发人员还是运维人员,都容易理解,没有信息黑洞,也无需去学习复杂的jenkins语法和制品库安装。

相关文章
|
Android开发 iOS开发 MacOS
APP备案公钥、证书MD5指纹/签名MD5值获取最简单方法
APP备案公钥、证书MD5指纹/签名MD5值获取方法,Android安卓平台、Windows平台、macOS平台,三个平台获取方法, Android平台使用 APP备案助手,各大安卓应用市场搜索 APP备案助手 即可,Windows/macOS平台使用jadx-gui工具。
9154 3
|
存储 JavaScript 前端开发
除了 Vuex,还有以下一些常见的状态管理库
【10月更文挑战第18天】随着技术的不断发展和演进,新的状态管理库也可能不断涌现,我们需要保持关注和学习,以适应不断变化的开发需求。
408 1
|
搜索推荐 定位技术
如何快速查询自己的IP地址?
IP地址(Internet Protocol Address)是指互联网协议地址,又译为网际协议地址。IP地址是IP协议提供的一种统一的地址格式,它为互联网上的每一个网络和每一台主机分配一个逻辑地址,以此来屏蔽物理地址的差异。
如何快速查询自己的IP地址?
|
23天前
|
消息中间件 运维 监控
Kafka 最佳实践:分区策略、重试、幂等生产者
Kafka 最佳实践:分区策略、重试、幂等生产者
119 3
|
4月前
|
NoSQL 数据可视化 Redis
redis数据导出和导入最佳实践
redis的导出和导入,有可视化工具,也有命令行工具,这里,我们当然是要选可视化工具,命令行工具安装也麻烦,使用也麻烦,直接pass掉。 这里我是推荐使用yunedit-redis来做导出和导入,其一是因为它的导出和导入非常类型,可以导出整库、还可以导出单个db,还可以只导出几个key、甚至可以使用它的自定义导出功能根据正侧表达式导出符合规则的key的数据
|
7月前
|
NoSQL Redis UED
redis数据迁移、数据导出和导入用什么工具
用户体验好的客户端,我建议使用yunedit-redis来做数据迁移,因为它支持图形化,还支持多种导出方式。 yunedit-redis它支持全库导出,也支持选择部分key导出,还支持用*号表达式导出。
|
7月前
|
NoSQL Redis
功能最全面最快的redis备份工具
现在使用云的人越来越多,redis数据跨云备份,跨云迁移的需求也越来越多,备份这么重要的东西,肯定要选最好的客户端。现在做数据备份和恢复的产品,也就yunedit-redis这款redis客户端能考虑所有这些场景,而且导出导入速度也是做到客户端导出比在服务端导出还快的效果。实测导出20万数据只用时十多秒。在备份这个领域,yunedit-redis应该是最好的。
|
8月前
|
NoSQL Redis
跨redis迁移数据的增量迁移方案和工具
面对这个不能完全覆盖的需求,使用RDB备份的需求是无法满足,因为RDB文件会将B的全部数据改为A的数据,显然是不可行的。后来我用了yunedit-redis,这款客户端工具,完美实现了数据的迁移,而且全程都在客户端操作,无需通过编码的方式来实现。
363 1
|
消息中间件 存储 监控
扒开kafka内部组件,咱瞅一瞅都有啥?
以上是 V 哥整理的关于 Kafka 核心组件的介绍,掌握 Kafka 中间件,应用在大型分布式项目中,这对于人个的项目经验积累是浓墨重彩的笔,换句话说,只要是有用到Kafka 的项目,必然是小不了,否则架构师脑袋长泡了。
414 1

热门文章

最新文章