SVN自动化部署全流程之架构之美

公司一直没有一个完善的部署流程,基本都是通过上线打包以后SSH手动拖拽部署项目。

当然网上也有现成的持续集成工具,比如jenkins。Jenkins是一个开源软件项目,旨在提供一个开放易用的软件平台,使软件的持续集成变成可能。

Jenkins是基于Java开发的一种持续集成工具,用于监控持续重复的工作,功能包括: 1、持续的软件版本发布/测试项目。 2、监控外部调用执行的工作。

尽管jenkins有很丰富的功能。然而,暂时并没用使用倒它,这是后话,以后再谈。

上图,是一个生产环境上线的一个基本流程图。当然,这里忽略了测试环境的流程。

一、开发人员提交代码到SVN项目分支

二、SVN服务器执行代码检出功能,并使用rsync同步至生产环境服务器A(线上测试环境)

三、服务器A使用ANT以及shell脚本执行打包、备份、部署、重启操作

四、线上测试环境进行UI功能的测试

五、测试无误,服务器A使用rsync推送代码至线上集群服务器B和服务器C(事先备份)

六、测试人员进行简单的测试即可

注意完善使用说明

  • 步骤二中,其实可以用到svn的钩子功能,但是目前使用的脚本手动执行,同步代码库到生产环境。
  • 还有所谓的线上测试环境,是为了真实模拟生产环境,部署以及测试不至于影响正式环境,测试无误后再同步代码。
  • 基本解决的问题,脚本化部署,虽然有少量人工参与,但是免去了以前部署人员对照目录,拖拽的问题(少部署,漏部署,集群下复制,参数漏改的问题),最主要的还是TM网速问题。
  • 由于增加了线上测试环境,避免了部分功能回滚麻烦的问题。

本文参与腾讯云自媒体分享计划,欢迎正在阅读的你也加入,一起分享。

发表于

我来说两句

0 条评论
登录 后参与评论

相关文章

来自专栏Java成神之路

Java程序员常用工具集

我发现很多人没办法高效地解决问题的关键原因是不熟悉工具,不熟悉工具也还罢了,甚至还不知道怎么去找工具,这个问题就大条了。我想列下我能想到的一个Java程序员会用...

1283
来自专栏FreeBuf

反取证技术:内核模式下的进程隐蔽

介绍 本文是介绍恶意软件的持久性及传播性技术这一系列的第一次迭代,这些技术中大部分是研究人员几年前发现并披露的,在此介绍的目的是建立这些技术和取证方面的知识框架...

3278
来自专栏Debian社区

为什么 Django 能持续统治 Python 开发世界

对于 Python 开发者来说,web 开发框架真可谓玲琅满目。然而 Django , 毋庸置疑的成为最受青睐的 web 框架。通过本篇博客,我来为大家讲解下为...

993
来自专栏双十二技术哥

组件化实践详解(二)

在上一篇文章《组件化实践详解(一)》中我们介绍了组件化实践的目标和实践步骤,本文继续说说关于组件化实践遇到的问题及思考。

1144
来自专栏大白虾谈架构

Windows10 Oracle ODBC安装配置

1784
来自专栏ChaMd5安全团队

【荐】Web Application Penetration Testing中文译作

(英文原版地址:https://www.exploit-db.com/docs/english/44319-web-application-security-t...

1474
来自专栏高爽的专栏

Eclipse安装插件的几种方式

       前段时间Google转向了IDEA,貌似有些动摇了Eclipse作为Java领域IDE龙头老大的位置,为此引起了Eclipse粉丝和IDEA粉丝的...

1870
来自专栏MongoDB中文社区

MongoDB 3.6中的新功能 (1) - 发展的速度

New in MongoDB 3.6. What’s New in MongoDB 3.6. Part 1 – Speed to Develo

1381
来自专栏進无尽的文章

基础篇-服务器工作实现的浅析

对于一个前端开发的人员来说,了解服务器的基础知识,个人觉得是非常必要的,于是就有一个这篇侧重于Java的服务器相关知识的文章,只是简单介绍对于我也是一个拓展。

1262
来自专栏恰同学骚年

《大型网站技术架构》读书笔记之五:万无一失之网站的高可用架构

此篇已收录至《大型网站技术架构》读书笔记系列目录贴,点击访问该目录可获取更多内容。

1413

扫码关注云+社区

领取腾讯云代金券