读书笔记 The nature Of Software Development #CI-CD

持续发布(CD)重新认识

CD 持续发布运行有价值,从三个方面来保证

  • 需要从CD 本身pipeline 反馈快;
  • 代码的质量有保证;
  • 核心是发布的产品有价值。
    所谓的 快,好,值。

但是CD 持续发布,需要开发的节奏要持续, 那么就不能有大量的的技术债。

  • 从架构层面的技术债,就是软件的架构不再适应当前的需求或者编码, 需要架构改进或者说是演化。
  • 从代码层面来说,技术债就是代码没有测试覆盖;同时 代码有坏味道。 这些坏味道不去除,这些坏味道会持续使的软件内部质量恶化, 使的软件持续开发不得延续。 需要重构, 然而重构需要测试保护。
image.png

1. Fast Feedback

CD 提倡的是 小步快走,持续反馈的理念。 代码至少每天要提交一次,local branch 生命周期尽可能的短, 这样才能体现CD的价值。

  • CD 需要反馈快才有意义,CD的一个衡量指标(KIP)就是下面

    1. 多长时间发布一次
    2. 提交一次代码到production 多长时间
    3. 如果失败,多长时间修复
    4. 多长时间修复一次

这个KPI与另一组指标 快速,稳定,准确也是对应的。

  • CD pipeline 分解为CI -CD

    1. CI. CI 就是从代码提交到生成最终的artifacts。
      最终的artifacts 或许是war, so , docker image. 这个部分开发人员在日常开发中关注。 其包含 从仓库-编译-测试 - 各种扫描。

    2. CD (continuous deployment)
      就是从代码构建软件运行的环境(host-environment),以及部署前面步骤的结果部署到这个上面,甚至做一些简单的验证. 这里的构建是从申请虚拟机开始,甚至更底层开始,最好全部自动化。 所谓 infrastructure as a code. 这里面还有一些其他理念cattle vs pet, configuration as code。

常见的一个典型实践就是就是,CI 和CD 分开; 同时各自团队有自己的CI和CD; 而不是share在一起,这样会依赖而且会使反馈变慢。

  • CD 涉及到的具体实践层面的东西太多,这里就不展开。 常见的工具就是jenkins, 以及各种插件, docker ,以及搭建cluster 以及调度的 k8s.

2 质量

代码质量不好,CD就无从谈起。
软件质量包含的内部质量和外部质量。外部质量就是可以看到的,常见到的就是用户的bug。 内部质量指的是代码质量,代码是否容易理解,是否容易修改,是否可测,是否有单元测试等,所谓的clean code。

  • 测试常见就是金字塔原则,估计现在这个已经没有多大争议。
test pyromid .png

唯一有问题的是不同测试如何选择? 根据场景和技能,选择性价比最高的工具。

  • Build quality into code
    测试只能发现问题,但是更高效的从写代码的时候尽量少进入bug。 所谓敏捷的实践, 比如
    PP, TDD,Clean code, refactor, unit Test。 等等。这个需要提高开发人员技能和工程实践能力。这个是关键,但是也是最难的。

3 价值

软件的是商品,其核心是价值。 软件的整个生命周期都要围绕着价值走。软件所谓2件事, do right thing , do thing right.

价值.png

关注价值,管理价值,计划价值,构建价值,发布价值 ; 简而言之,软件开发就是价值开发。
这个也是持续发布的最终落脚点。 也是Nature of Software Development的核心。

image.png

feature 体现value,软件发布要按照feature by feature去发布。 所以需求要分解,想做高优先级的。 如果不分解低优先级和高优先级的合在一起,没有把持续发布优势彻底发挥。
持续发布feature就需要切蛋糕的一样垂直切分,每一个都是一个端对端的story。

image.png

4 持续发布。

开发的节奏会被技术债拖累。 同样就会涉到架构的持续演化和代码的重构。这个前面已经提到。

持续发布,带来的好处是我们期望的,快速发布价值和快速响应市场,快速试错都适合我们期望的。 但是要做到快速发布,如上图所看到的,影响到整个软件开发的生命周期。需求需要分解,slice划分,架构持续演进, 代码要走clean code, 测试要自动化,软件质量构建于开发之中; 部署自动化。 持续发布,完全影响到整个软件的生命周期。

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

推荐阅读更多精彩内容

  • Android 自定义View的各种姿势1 Activity的显示之ViewRootImpl详解 Activity...
    passiontim阅读 171,397评论 25 707
  • 杨倩,焦点讲师三期,坚持分享431天,(2018-3-07) 俄国作家契诃夫说过:“如果你手上扎了一根刺,那...
    温心怡然阅读 189评论 0 0
  • 人的语言是一把双刃剑,有时可以温暖照亮你的心房,有时又能对你造成深深的阴影。 你一定也有听过这样的话吧,即使不是对...
    陈溺阅读 694评论 3 5
  • 嘿哈小白阅读 98评论 0 0
  • 2017年12月21日 周四 晴 一天的上班正式开始了,六时起床,错过了半个小时的早课,从19日开始每天五点...
    随如阅读 528评论 0 0