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

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

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

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

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

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

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

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

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

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

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

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

注意完善使用说明

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

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

发表于

我来说两句

0 条评论
登录 后参与评论

相关文章

来自专栏北京马哥教育

一篇了解爬虫技术方方面面

传统爬虫从一个或若干初始网页的URL开始,获得初始网页上的URL,在抓取网页的过程中,不断从当前页面上抽取新的URL放入队列,直到满足系统的一定停止条件。聚焦爬...

22340
来自专栏FreeBuf

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

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

36880
来自专栏双十二技术哥

组件化实践详解(二)

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

14040
来自专栏恰童鞋骚年

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

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

15340
来自专栏一名合格java开发的自我修养

kafka0.8--0.11各个版本特性预览介绍

kafka-0.8.2 新特性 producer不再区分同步(sync)和异步方式(async),所有的请求以异步方式发送,这样提升了客户端效率。produc...

8820
来自专栏MongoDB中文社区

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

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

16010
来自专栏耕耘实录

Linux运维工程师成长路线及应实现的目标

作为一名运维工程师,需要学习的东西非常多,在学习的过程中也没有任何捷径可言,必须一步一个脚印地学习、积累才能把个人技能提升到相应的高度。根据目前流行的发行版及国...

13320
来自专栏腾讯移动品质中心TMQ的专栏

常用流量测试方法及一些思考

App性能测试中流量测试是其中重要的一项,网络场景(wifi、非wifi)、用户使用场景(页面加载流量、场景使用流量、待机流量),这些都是需要考虑的测试点。

55950
来自专栏Debian社区

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

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

11930
来自专栏高爽的专栏

Eclipse安装插件的几种方式

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

20000

扫码关注云+社区

领取腾讯云代金券