资讯专栏INFORMATION COLUMN

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

zr_hebo / 2340人阅读

摘要:以便对整个持续集成印象加深。配置完各环境发布脚本后,则可以使用构建发起进行触发环境准备。并会在远程环境上存放多次发布的版本,用于回退和切换服务停用。进行等操作,停止原本运行的服务切换启用。

该文章用于建立一个小型的基于Walle的持续集成工具。解决java,react,angular项目的编译发布。以便对整个持续集成印象加深。
官方网站:https://walle-web.io/
适用场景

小型服务集群(选用Docker-Compose ; 不使用Ansible)

简易构建脚本(选用Walle)

大规模集群复杂的构建脚本,请学习Jenkins+Ansible+K8S等生态
基本思路

使用Walle替代Jenkins作为构建方案,简化部分操作。但整体的自定义程度会缺失(例如拉去多git路径进行统一编译,不支持额外构建参数的传入)

使用Docker-Compose作为单机容器编排分方案

环境使用Gitlab作为代码管理,Nexus作为包私有仓库

操作流程

研发环境搭建

Gitlab 搭建和基本操作

Nexus 搭建(可选)

Maven 发布

Npm 发布

Docker 发布

持续集成

Docker 安装和基本操作

Walle 安装和基本操作

Java 前端项目构建脚本

React/Angular 后端项目构建

数据流程
整体流程会串联整个环境上各技术点,最终形成完整的持续集成方案。

发起构建。配置完各环境发布脚本后,则可以使用构建发起进行触发

环境准备。初始化环境参数,例如antd-pro的npm install -g umi或者npm install -g @tarojs/cli@1.2.11

Nxues拉取环境相关包。包私有仓库会加速npm install以及mvn compile的下载速度,以及支持私有包的下载

代码检出。根据branch的commit进行代码检出操作

代码编译。使用mvn clean compile package -Dmaven.test.skip=true or npm run build等编译脚本,或者进行预处理(例如解压node_modules)

远程登录。通过shh连接远程服务器

本地版本。压缩内容,并发送到远程服务器上打包。并会在远程环境上存放多次发布的版本,用于回退和切换

服务停用。进行kill等操作,停止原本运行的服务

切换启用。通过软连接替换新的本地版本映射到运行路径,再进行服务启动

构建完成。可以进行钉钉或者邮件发送。

以上步骤中,在使用Walle的方案下,会集成[代码检出],[远程登录],[本地版本],[切换启用-切换部分],[构建完成]等步骤,且会自动化删除过程文件
成果展示
项目列表

项目详情

部署管理

部署日志


后记
⚠️  以上虽然看起来很复杂,实际情况下会更为复杂。容我们一步一步的解决各问题。

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

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

相关文章

  • DevOps 基于Walle小型持续集成实战(七)总结

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

    iliyaku 评论0 收藏0
  • DevOps 基于Walle小型持续集成实战(一)概述

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

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

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

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

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

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

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

    tuomao 评论0 收藏0

发表评论

0条评论

zr_hebo

|高级讲师

TA的文章

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