资讯专栏INFORMATION COLUMN

DevOps 基于Walle的小型持续集成实战(一)概述

Yangyang / 2158人阅读

摘要:该文章用于概述一个小型持续集成环境的搭建的方案什么是持续集成持续集成作为当今软件开发实践,可以简单理解为团队开发相对频繁的集成他们的工作,一般让每个成员每天至少集成一次,而这回造成每天会有多次的版本发布。

该文章用于概述一个小型持续集成环境的搭建的方案
什么是持续集成?

持续集成作为当今软件开发实践,可以简单理解为团队开发相对频繁的集成他们的工作,一般让每个成员每天至少集成一次,而这回造成每天会有多次的版本发布。于是我们需要应用到自动化的构建模式(编译发布到测试监控),从而尽早的发现集成中的错误。

持续集成流程
常用生态

仓库管理

Git 代码仓库(Gitlab,Gitee)

Nexus 包私服库

构建工具

Jenkins 热门-构建发布工具

Ansible 配置管理工具

Walle 构建发布工具

运行环境

Linux 系统

Docker 容器

Nginx 负载均衡域名解析

构建环境

maven

nodejs

python

java

经典流程
手工发布 - Java SpringBoot应用到一台服务器

特征:一个环境,一台服务,少量应用

1、Maven打包 mvn clean compile package -Dmaven.test.skip=true

2、放到服务器 scp -r xxx.jar username@192.168.0.1:/data/app/ or FTP工具

3、登录服务器 ssh root@192.168.0.1

4、停用旧应用 ps -ef | grep java -> kill -9 xxxx

4、启用新应用 nohup java -server -Xms800m -Xmx800m -XX:PermSize=64M -XX:MaxNewSize=256m -XX:MaxPermSize=128m -jar /data/app/xxx.jar > /data/app/xxx.log 2>&1 &

手工发布 - React-Antdpro 应用到一台服务器

特征:一个环境,一台服务,少量应用

1、Npm打包器 npm run build

2、放到服务器 本地压缩dist.rar -> scp -r dist.rar username@192.168.0.1:/data/nginx/ or FTP工具 -> 解压内容

3、登录服务器 ssh root@192.168.0.1

4、停用旧应用

5、启动新应用 https://segmentfault.com/a/11...

延伸问题
⚠️ 在低频次小规模更新下,该方案可以在用最少的资源和适度的时间花费上得到平衡。如果出现 多人协作,发布频繁,多台服务,多套环境我们该如何管理这些内容?
多人协作,如何代码管理?以及相关依赖引用?
以下方案供选择,解决代码管理问题(他们比svn拥有更灵活更开放的管理手段)

Gitlab 公网 / 私服

Gitee 国内较好的代码仓库管理服务

Github

https://git-scm.com/

以下方案供选择,解决通用模块引用以及外网拉取依赖缓慢问题

Nexus 包私服库,包含众多类型的包,例如maven

发布频繁,如何自动化脚本替换人工作业?
以下方案供选择(他们可以将一系列的执行脚本在服务端执行,一次脚本维护完毕则通过简单的触发即可完成各种功能)

Jenkins 流行且主流的一款开源 CI&CD 软件,用于自动化各种任务,包括构建、测试和部署软件 。https://jenkins.io/zh/

Walle 简化版python完成的类Jankins软件。 http://www.walle-web.io/

多台服务,如何快速批量多端构建执行?

Ansible 配置管理工具集包含 连接模块,多任务执行,监控模块,插件功能

https://www.ansible.com/

https://www.cnblogs.com/gzxbk...

多套环境,该如何服务隔离快速部署?

Docker 容器引擎

Docker-Compose 单主机容器编排工具

Docker Swarm 多主机容器编排工具

Kubernetes(k8s) 更为强大的多主机容器编排工具

https://blog.csdn.net/notsalt...

服务异常,如何能快速定位和发现?

Zabbix 硬盘,内存,CPU采集监控与预警

下阶段会基于Walle讲解如何搭建一个小型的持续集成环境

文章版权归作者所有,未经允许请勿转载,若此文章存在违规行为,您可以联系管理员删除。

转载请注明本文地址:https://www.ucloud.cn/yun/27892.html

相关文章

  • DevOps 基于Walle小型持续集成实战(二)设计

    摘要:以便对整个持续集成印象加深。配置完各环境发布脚本后,则可以使用构建发起进行触发环境准备。并会在远程环境上存放多次发布的版本,用于回退和切换服务停用。进行等操作,停止原本运行的服务切换启用。 该文章用于建立一个小型的基于Walle的持续集成工具。解决java,react,angular项目的编译发布。以便对整个持续集成印象加深。官方网站:https://walle-web.io/ 适用...

    zr_hebo 评论0 收藏0
  • DevOps 基于Walle小型持续集成实战(三)Docker与Gitlab

    摘要:自动化测试和持续集成发布。在服务型环境中部署和调整数据库或其他的后台应用。容器与镜像的关系类似于面向对象编程中的对象与类。容器容器是独立运行的一个或一组应用。提供了庞大的镜像集合供使用。 还在按照mysql安装教程一步一步配置服务配置账户吗?还在为每开一个新环境重新配置这些服务感到苦恼吗?使用Docker,服务快速构建部署。解决你的研发时间,早点下班~现代技术,还不会docker你就落...

    since1986 评论0 收藏0
  • DevOps 基于Walle小型持续集成实战(七)总结

    摘要:当前版本针对于安装版概要整体流程贯通,基本可以达到实用级别。仍旧有很多需要提高的地方发布构建时部署上线服务器卡顿严重,基本不可以多项目发布。 该文章旨在描述从零开始搭建环境,中间遇到的问题以及最终的经验总结。当前版本针对于2.0 docker安装版 概要 整体流程贯通,基本可以达到实用级别。满足2-5台服务器,少量的应用部署是完全可以的,但达到一定规模之后则Walle和Jenkins...

    iliyaku 评论0 收藏0
  • DevOps 基于Walle小型持续集成实战(五)基于Walle发布Java应用

    摘要:本章用于讲解如何在下构建和运行。编译发版都是基于的容器,下完成的。 本章用于讲解如何在walle下构建和运行JavaWeb。主要包含SpringBoot,ScalaAkkaWeb应用,以Java -jar和Docker运行两种方式(Tomcat方式不讲,大家自行研究) 新建项目 项目中心 > 项目管理 > 新建项目 以下是一份配置好的项目表 分组 项目 参考 备注 基本配置 ...

    qc1iu 评论0 收藏0
  • DevOps 基于Walle小型持续集成实战(六)基于Walle发布前端React,Angular

    摘要:本章用于讲解如何在下构建和运行前端应用。项目配置服务名称镜像版本映射容器端口到本地端口数据卷映射本地文件到容器映射文件到容器的目录并覆盖文件映射文件夹到容器的文件夹覆盖容器启动后默认执行的命令。环境准备参考文档 本章用于讲解如何在walle下构建和运行前端应用。主要包含React,Angular应用,以Nginx+Docker运行(Vue方式不讲,大家自行研究) 新建项目 项目中心 >...

    tuomao 评论0 收藏0

发表评论

0条评论

Yangyang

|高级讲师

TA的文章

阅读更多
最新活动
阅读需要支付1元查看
<