新致云,拥抱团队协作的自动化时代

文/徐瑱 邓雷

现今,人们的生活习惯发生了翻天覆地的变化,一边在高呼拥抱互联网,一边又在痛斥它给人们带来便捷生活的时候自己没有赶上创业潮流,中国人的人群效应恰巧对应了这点:“我看不惯你,又干不掉你”,最后就只能臣服于互联网的驱动下。默默收起泪眼婆娑的羡慕,转战这个怪圈。传统的IT部署依然满足不了这个时代的需求,云计算的出现,更使得企业转型迫在眉睫。

新致云开发团队顺应自动化的时代潮流,结合敏捷开发、持续集成、持续部署等先进理论在团队协作领域掀起了全新的自动化浪潮。早期新致云项目组的团队协作依赖于较多的人工操作,而人工操作的缺点显而易见,沟通信息的失真、重复繁琐的劳动都造成了大量时间成本的浪费以及作业效率的降低。引入自动持续集成的概念后,开发和测试人员可以解放大量的人力劳动。不仅使得代码的质量可以得到更好的保障,在部署和监控方面也可以做到更加人性化和可视化。本编着重探讨持续集成中自动化代码质量检测。

代码质量门——SonarQube

试想一下:一个开发团队如何在人员持续流动且不稳定的情况下,快速交接现有代码?如何保证写下的代码没有潜在的问题和技术债务?显然,良好的代码规范和质量审查必不可少。SonarQube是一款优秀的开源代码管理平台,可以进行持续的代码分析和代码质量检测,帮助开发人员发现逻辑问题之外的技术BUG和潜在的隐患。

除此之外,自动化则将SonarQube的分析过程以自动化的方式执行,同时依托Jenkins自动化服务管理,使得我们可以针对开发团队开发出一整套代码测试与质量分析的产品。使用者完全不必关心测试环节的具体过程和繁琐的配置,只需要关心测试的结果即可。

基于这种情况,自动化集成在团队敏捷开发的要求下显得尤为重要,开发人员每天都要交付功能代码以响应快速迭代的需求,若代码质量完全依靠人工则会使得工作量过于庞大,造成开发压力,如果使用这一套自动化流程可以大幅提高开发人员的交付能力。

工作环境:

以分布式版本控制的工作模型为例,项目代码由中央和分支仓库管理。中央仓库由项目拥有者维护,开发者拷贝中央仓库并创建自己的个人分支,在个人分支上进行工作,阶段工作完成之后向开发分支(假如叫做dev分支)中央库以Pull Request的方式合并代码。

Pull Request(PR):

开发人员请求代码拥有者“pull”有变动的代码,代码拥有者可以对贡献的源码进行review,并决定是否合并到中央库的主分支(在git中通常是master分支)。代码开发人员创建PR来通知项目拥有者代码变更,有些服务如Github,Bitbucket,Gitlab提供了PR的评论功能。评论可以作为触发测试的条件,也可以作为测试结果的展示。

说了那么多的自动化集成的工作,很多开发工程师也许还在疑惑,我们现在的敏捷开发已经深入到各大行业,但是如何检验所属的工作环境是优质的呢?

工作流程:

依托Jenkins自动化服务管理,开发者可以在早晨上班时将代码更新至dev分支的最新提交,并在一天的开发完成后在代码管理工具Github,Bitbucket,Gitlab上创建PR,这个过程会触发Jenkins的任务。该任务会拉取PR中源分支的最新的代码执行编译、单元测试以及代码分析,之后发送报告邮件给代码提交者和代码拥有者,并且将Jenkins的构建结果作为一条评论创建到PR中,代码拥有者来决定是否合并。

操作流程(以Stash为例):

插件:

1.stash中需要安装Bitbucket Server Webhook for Jenkins插件。用于在代码提交之后触发Jenkins Job的构建操作。

2.Jenkins中需要安装SonarQube Plugin。用于在代码构建之后进行分析。

3.Jenkins中安装Stash pullrequest builder plugin。用于监听pull-request中源分支的变化,并构建该分支。

步骤

1. 在Jenkins中建立两个job,一个是构建job,另一个是邮件Job。

2. 配置Stash pullrequest builder plugin。实现当pull-request中的源分支发生变化(有代码提交)时,Jenkins自动触发该build。

3. Build流程:在buildjob中拉取代码。通过git命令获得代码提交者的邮件,提交时间等。存入公共文件。文件规则可以自行拟定。(遇到Jenkins存在节点的情况,可以使用NFS挂载的方式实现文件共享。)

4. build项目,并使用SonarQube进行代码分析。分析结果会输出在Jenkins控制台。

5. 在emailjob中,读取公共配置文件。读取收件人信息,邮件标题,Jenkins任务名,构建号等。通过Jenkins CLI读取上一步中控制台的内容,提取相关信息作为邮件正文。

6. 发送邮件。

7. jenkins向stash返回构建结果和连接,作为pull-request的一条评论,供leader审核。由leader审核代码并决定是否合并代码。

总的来说,在项目中,开发人员会遇到各种各样的问题,自动化集成在项目开发中和应用中越来越重要,既减轻了开发难度,又提高了项目交付能力,从产品需求出发,利用自动化管理流程,使得敏捷开发优势最大化。

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
  • 序言:七十年代末,一起剥皮案震惊了整个滨河市,随后出现的几起案子,更是在滨河造成了极大的恐慌,老刑警刘岩,带你破解...
    沈念sama阅读 214,776评论 6 496
  • 序言:滨河连续发生了三起死亡事件,死亡现场离奇诡异,居然都是意外死亡,警方通过查阅死者的电脑和手机,发现死者居然都...
    沈念sama阅读 91,527评论 3 389
  • 文/潘晓璐 我一进店门,熙熙楼的掌柜王于贵愁眉苦脸地迎上来,“玉大人,你说我怎么就摊上这事。” “怎么了?”我有些...
    开封第一讲书人阅读 160,361评论 0 350
  • 文/不坏的土叔 我叫张陵,是天一观的道长。 经常有香客问我,道长,这世上最难降的妖魔是什么? 我笑而不...
    开封第一讲书人阅读 57,430评论 1 288
  • 正文 为了忘掉前任,我火速办了婚礼,结果婚礼上,老公的妹妹穿的比我还像新娘。我一直安慰自己,他们只是感情好,可当我...
    茶点故事阅读 66,511评论 6 386
  • 文/花漫 我一把揭开白布。 她就那样静静地躺着,像睡着了一般。 火红的嫁衣衬着肌肤如雪。 梳的纹丝不乱的头发上,一...
    开封第一讲书人阅读 50,544评论 1 293
  • 那天,我揣着相机与录音,去河边找鬼。 笑死,一个胖子当着我的面吹牛,可吹牛的内容都是我干的。 我是一名探鬼主播,决...
    沈念sama阅读 39,561评论 3 414
  • 文/苍兰香墨 我猛地睁开眼,长吁一口气:“原来是场噩梦啊……” “哼!你这毒妇竟也来了?” 一声冷哼从身侧响起,我...
    开封第一讲书人阅读 38,315评论 0 270
  • 序言:老挝万荣一对情侣失踪,失踪者是张志新(化名)和其女友刘颖,没想到半个月后,有当地人在树林里发现了一具尸体,经...
    沈念sama阅读 44,763评论 1 307
  • 正文 独居荒郊野岭守林人离奇死亡,尸身上长有42处带血的脓包…… 初始之章·张勋 以下内容为张勋视角 年9月15日...
    茶点故事阅读 37,070评论 2 330
  • 正文 我和宋清朗相恋三年,在试婚纱的时候发现自己被绿了。 大学时的朋友给我发了我未婚夫和他白月光在一起吃饭的照片。...
    茶点故事阅读 39,235评论 1 343
  • 序言:一个原本活蹦乱跳的男人离奇死亡,死状恐怖,灵堂内的尸体忽然破棺而出,到底是诈尸还是另有隐情,我是刑警宁泽,带...
    沈念sama阅读 34,911评论 5 338
  • 正文 年R本政府宣布,位于F岛的核电站,受9级特大地震影响,放射性物质发生泄漏。R本人自食恶果不足惜,却给世界环境...
    茶点故事阅读 40,554评论 3 322
  • 文/蒙蒙 一、第九天 我趴在偏房一处隐蔽的房顶上张望。 院中可真热闹,春花似锦、人声如沸。这庄子的主人今日做“春日...
    开封第一讲书人阅读 31,173评论 0 21
  • 文/苍兰香墨 我抬头看了看天上的太阳。三九已至,却和暖如春,着一层夹袄步出监牢的瞬间,已是汗流浃背。 一阵脚步声响...
    开封第一讲书人阅读 32,424评论 1 268
  • 我被黑心中介骗来泰国打工, 没想到刚下飞机就差点儿被人妖公主榨干…… 1. 我叫王不留,地道东北人。 一个月前我还...
    沈念sama阅读 47,106评论 2 365
  • 正文 我出身青楼,却偏偏与公主长得像,于是被迫代替她去往敌国和亲。 传闻我的和亲对象是个残疾皇子,可洞房花烛夜当晚...
    茶点故事阅读 44,103评论 2 352

推荐阅读更多精彩内容