09_CI/CD的概念和相关工具

内容摘要:持续集成Continuous Integration(CI)和持续交付Continuous Delivery(CD)是提高团队协同生产力的关键技术。很多时候一个软件发布后更新和维护是痛点,因为一个版本的迭代和升级往往不是平滑过渡的。但是在互联网时代,跟不上产品迭代节奏往往就要走向失败。在谈完GIT和DevOps理念之后,我们看看具体可以有那些工具可以帮助我们提高生产力。

1、可持续的概念

在当今世界,特别是在科学研究方面,新技术方法层出不穷。但好的技术方法,如果不被人使用,不去做推广,那就永远都是小众游戏。习总书记曾经说过:科学技术必须同社会发展相结合,学得再多,束之高阁,只是一种猎奇,只是一种雅兴,甚至当作奇技淫巧,那就不可能对现实社会产生作用

有人说:“科研高大上,生产用不上”。面对科研成果没法转化的痛点问题越来越被重视。国家近年来一直期望通过政策引导,打破从基础研究、应用研究到产业化的“死亡之谷”,促进科研成果产业化。

我个人认为:地球科学技术要想服务社会,必须通过IT驱动来加速新方法和数据的流转,提升使用价值,让用户对科研成果更有获得感。

接下来我们就进入主题,谈谈当科研成果推到仓库里面,后续还能干些啥。近年来,基于云设施的互联网软件的开发和发布,已经形成了一套标准流程,最重要的组成部分就是持续集成

持续集成的目的,就是让产品可以快速迭代,同时还能保持高质量。它的核心措施是,代码集成到GIT仓库之前,必须通过自动化测试。只要有一个测试用例失败,就不能集成。

持续交付指的是,频繁地将软件的新版本,交付给质量团队或者用户,以供评审。如果评审通过,代码就进入生产阶段。

持续交付可以看作持续集成的下一步。它强调的是,不管怎么更新,软件是随时随地可以交付的。下图是代码推送到Github之后,通过工具可以帮你做的一系列工作:

图1 可持续集成与部署流程图

图中很多词大家可能不认识,但是有些图标应该熟悉吧。最左边的小八爪鱼就是Github的logo,当push到github仓库后,通过webhooks设置,可以让你的项目通过既定测试和集成流程开展后续工作,没问题后打包成docker容器,再通过k8s(kubernetes)等容器编排工具分发到云上。

你不用担心的是,只要配置好,这后续一切都是自动的。解决了那些问题呢?就是以前需要很多人力物力去测试、集成等一系列费力不讨好的工作,交给生产力工具去完成。如果你对图1还不明白,哪首先的就是要好好琢磨理解呦...

2、那些工具可以用

现在的CI/CD工具应该可以用眼花缭乱来形容,各大厂商说提供DevOps工具的广告里面,肯定涉及到到这方面的工作。知道CI/CD的概念和用好这些工具还是两码事,特别是具体到如何配置复杂的脚本,根据不同语言和基础设施来调试、运行,更是比较花费精力的。

但是大体上我觉得可以分为两类,一种是需要你自己部署的,一种是已经在云上可以直接用的。著名的Gitlab CI和Jenkins提供前者,部署到私有云中就可以直接用。而Travis和Azure Pipelines是可以直接在云上用的,特别是Travis 和 Azure Pipeline 对于开源项目可以免费使用。

个人觉得如果是科研还是直接用云上,它们都会构建和测试,免费给你提供虚拟机、网络带宽和各种环境资源,还不用担心稳定性,有啥不好呢?

3、 结合一个实例来看看

在我们团队的GEOIST软件包中也用到了上面两个工具,请看下图:

图2 GEOIST项目中的CI技术应用

图中最下面一排小标志,就是项目中用到的一些技术,最左边的是Travis,最右边的是Azure Pipelines。绿色的提示信息代表当前项目的测试状态(如果有问题会出现红色提示)。要配置好这两个工具,需要在工程中使用yml文件进行配置,在geoist根目录下你会发现有.travis.yml和azure-pipelines.yml两个文件,这两个文件里面你可以设置测试环境的一些要求和包依赖。

让我们再看看,如果点开AzurePipelines的图标,直接会出现下面界面:


图3 Azure Pipelines的CI界面

一般GIT的Push命令执行后,根据项目要测试的内容多少,几分钟就可以完成测试,根据yml中设置的内容,每一阶段的结果如图4所示。


图4 Azure Pipelines的测试结果

我们这个项目中,仅针对python3.6环境进行了集成测试,通过后就直接发布到Azure的云上面去了,对于用户来讲下次打开浏览器的jupyter就可以开始使用最新版本啦!对于科研人员来讲,算法写好,git push后啥事也不用管了,是不是很方便呢?

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