持续交付36讲 / 量身定制你的持续交付体系
王潇俊
携程系统研发部总监
 
  • 课程目录
  • 课程介绍
  • 开篇词 | 量身定制你的持续交付体系

    无论企业在什么阶段,无论个人的能力如何,都可以去尝试“持续交付”。

  • 01 | 持续交付到底有什么价值?

    持续交付的价值不仅仅局限于简单地提高产品交付的效率,它还通过统一标准、规范流程、工具化、自动化等等方式,影响着整个研发生命周期。

  • 02 | 影响持续交付的因素有哪些?

    影响持续交付的因素可归以结为:人(组织和文化),事(流程),物(架构)。

  • 03 | 持续交付和DevOps是一对好基友

    持续交付与 DevOps的关系可以概括为:DevOps 的概念更宽泛,是持续交付的延伸;持续交付更专注于技术与实践,是 DevOps 的工具及技术实现。

  • 04 | 一切的源头,代码分支策略的选择

    “主干开发”集成效率高,冲突少,但对团队个人的开发能力有较高要求;“特性分支开发”有利于并行开发,需要一定的流程保证,能保证主干代码质量。

  • 05 | 手把手教你依赖管理

    当项目越来越庞大,你会依赖越来越多的第三方库,那怎么管理这些依赖呢?

  • 06 | 代码回滚,你真的理解吗?

    代码回滚在持续交付中与包回滚一样,也是不可缺少的一项活动。但它并不是简单地去执行Git的reset或revert命令就可以搞定的事情。

  • 07 |  “两个披萨”团队的代码管理实际案例

    在这篇文章中,我通过分享一个迭代周期为一周的实际案例,告诉你“两个匹萨”团队应该如何实施代码管理。

  • 08 | 测试环境要多少?从现实需求说起

    测试环境的目的是要保证最终将交付的软件产品的质量,所以当一个环境可以满足其真正核心用户的需求时, 就是一个好用的测试环境。

  • 09 | 测试环境要多少?从成本与效率说起

    在大环境(开发、集成、验收)的数量上,你要考虑环境的核心用户是谁,环境的核心价值是什么。在环境的核心价值没有冲突时,尽量减少大环境的数量。

  • 10 | 让环境自己说话,论环境自描述的重要性

    从我的实践经验看,要想把环境配置这件事做好,就是要做到让环境自己能说话。

  • 11 | “配置”是把双刃剑,带你了解各种配置方法

    在什么阶段进行配置,采用什么手段进行配置,都将直接影响持续交付的效果。

  • 12 | 极限挑战,如何做到分钟级搭建环境?

    今天,我分享的主题就是,如何从零出发, 实现一套完整的环境创建。并且尝试挑战一下,如何做到分钟级交付。

  • 13 | 容器技术真的是环境管理的救星吗?

    容器是一种轻量级、可移植、自包含的软件打包技术,可以代替虚拟机应对持续交付的挑战。但它并不是银弹,它带来的问题,需要改造和重新设计既有的持续交付模式来解决。

  • 14 | 如何做到构建的提速,再提速!

    这篇文章中,我从升级硬件资源、搭建私有仓库、使用本地缓存、规范构建流程,和善用构建工具这5大方面,为你介绍了常见的构建提速的方式。

  • 15 | 构建检测,无规矩不成方圆

    工欲善其事必先利其器, 好的工具可以解放大量的生产力,最重要的是构建检测后的交付让你我更有信心了。

  • 16 | 构建资源的弹性伸缩

    携程选择了最开放、最易于扩展的Jenkins作为集成构建的引擎,分别从横向的Master高可用和纵向的Slave弹性伸缩两方面,使构建系统更为强大和高效。

  • 17 | 容器镜像构建的那些事儿

    用容器来构建容器镜像,主要有DooD 和 DinD 两种方案。这两种方案,各有各有优劣,你可以根据自身情况去选择。

  • 18 | 如何做好容器镜像的个性化及合规检查?

    根据实践经验,我总结了三种方法来满足用户对容器镜像个性化需求:自定义环境脚本、平台化环境选项与服务集市、自定义镜像发布。

  • 19 | 发布是持续交付的最后一公里

    我们想要的应该是:一个易用、快速、稳定、容错力强,必要时有能力迅速回滚的发布系统。

  • 20 | Immutable!任何变更都需要发布

    不可变的思想解决了持续交付一直没有解决的一个难题,即环境、顺序、配置这些基础设施在测试环节和生产环节的不一致性所带来的问题。

  • 21 | 发布系统一定要注意用户体验

    今天,我会从用户体验的角度,以携程发布系统为例,来和你聊聊如何落地发布系统。

  • 22 | 发布系统的核心架构和功能设计

    我以携程目前使用的发布系统为例,从发布系统的架构、核心模型、发布流程及状态流转三个方面,展开了今天的分享。

  • 23 | 业务及系统架构对发布的影响

    发布系统最终要服务的对象是业务应用,而业务应用又和业务、企业的系统架构有紧密的联系,所以要做好一套发布系统,我们还要考虑其要服务的业务及系统架构的需要。

  • 24 | 如何利用监控保障发布质量?

    之所以有今天这次分享,最重要的原因是要告诉你:千万不要认为发布结束,就万事大吉了。

  • 25 | 代码静态检查实践

    目前,越来越多的研发团队把静态检查作为了一个不可或缺的环节,但是我们也不要过分迷信静态检查的结果,还要注意是否存在误报等问题。

  • 26 | 越来越重要的破坏性测试

    破坏性测试能够很好地测试分布式系统的健壮性,但也因为其破坏特点,使得它在持续交付中无法显示真正的威力,而混沌工程很好地解决了这个问题。

  • 27 | 利用Mock与回放技术助力自动化回归

    我以提出问题-分析问题-解决问题的思路,和你分享了自动化回归测试的难以,以及如何去解决这些难题的思路。

  • 28 | 持续交付为什么要平台化设计?

    因为技术和业务的复杂性不断增加,持续交付需要解决的问题也变得越来越复杂。所以,我们需要利用平台化的思想解决持续交付体系日益复杂的问题。

  • 29 | 计算资源也是交付的内容

    计算资源是持续交付非常重要的依赖,有了云计算的支持之后,我们完全可以把计算资源的交付也纳入到持续交付过程中,更好地做到端到端的交付

  • 30 | 持续交付中有哪些宝贵数据?

    今天我通过三个实际工作中的例子,和你分享了应该如何利用持续交付中产生的数据。

  • 31 | 了解移动App的持续交付生命周期

    今天我主要和你分享了移动App的持续交付生命周期的几个主要部分,包括代码及依赖管理、项目信息管理、静态代码检查、构建管理、发布管理、运营管理,以及热修复。

  • 32 | 细谈移动APP的交付流水线(pipeline)

    我今天所分享的只是移App持续交付流水线的一种方式。在工程实践中,不同的产品和组织,往往会存在不同的流水线。这些不同的方式并没有对错优劣之分,合适的才是最好的。

  • 33 | 进阶,如何进一步提升移动APP的交付效率?

    我从开发、构建、测试和发布这四个核心流程的角度,和你分享了一些优化移动App持续交付体系的实践经验。

  • 34 | 快速构建持续交付系统(一):需求分析

    今天,我通过对要模拟的团队和系统的介绍,引出了我们即将实战搭建的这套持续交付系统的需求锚点。

  • 35 | 快速构建持续交付系统(二):GitLab 解决代码管理问题

    在上一篇文章中,我们已经清楚了整个持续交付体系中,代码管理平台要具备的功能,所以今天我就再此基础上,和你一起使用GitLab完成了这个代码管理平台的搭建。

  • 36 | 快速构建持续交付系统(三):Jenkins 解决集成打包问题

    通过今天这篇文章,我和你分享了如何快速安装和配置一套有效的Jenkins系统,以及如何打通Jenkins与GitLab之间的访问通道。

  • 37 | 快速构建持续交付系统(四):Ansible 解决自动部署问题

    在今天这篇文章中,我主要基于Ansible系统的能力,和你分享了搭建一套部署系统的过程。

  • 持续交付专栏特别放送 | 答疑解惑

    借着专栏即将结束的机会,我整理了一下大家的留言,总结了一些比较典型的问题,并从中挑选了5个在这篇文章中给与回答。

  • 持续交付专栏特别放送 | 高效学习指南

    在专栏更新的过程中,有不少读者觉得缺少实践。但其实我这样设计专栏的内容,旨在推荐给你一种理想的学习方式:先看懂理论,再在实践过程中回顾理论,温故而知新。

  • 结束语 | 越痛苦的事,越要经常做

    虽然专栏结束了,但你依旧可以继续留言找到我,我会一直陪伴在你“持续交付”的道路上。

简单来说,持续交付就是通过提升软件交付效率、统一标准、规范流程、工具化等方式,来进一步提升软件研发效能,并解决软件研发进度不可控、版本混乱难控无法回滚和回溯、无法快速定位发布问题、研发团队互相等待互相依赖等等问题。

但大多企业在落地自己的持续交付体系时,都会遇到以下难题:

  1. 选择哪种代码分支策略,才能搭建高效的持续交付体系?
  2. 测试自动化还没实现,发布自动化更是遥遥无期,要怎么才能实现持续交付?
  3. 团队规模较小,无法复制大厂的成功经验,持续交付体系是不是不适合小团队?
  4. 持续交付涉及软件研发的整个生命周期,如何才能在公司内快速推进?

《持续交付36讲》专栏的目标,就是要帮你解决这些现实的问题。

在这个专栏里,王潇俊将为你系统梳理持续交付的核心知识,带你拓展持续交付知识的深度和广度,全面立体地看待和解决问题。

同时,为了帮助你将持续交付体系落地,王潇俊还会结合具体实战案例,让你能够快速搭建一套适合自身情况的持续交付体系,不管你的团队有多少人。

王潇俊,携程旅行网系统研发部总监,目前负责携程PaaS平台、容器云及持续交付体系等,在加入携程前,曾在大众点评网负责研发工具平台及持续部署工作。

王潇俊具有超过10年的互联网企业技术开发及管理经验,既经历过创业公司发展的过程,也在成熟的大型公司担任过技术管理工作;既从事过直接面向用户的业务端开发,也经历过平台工具、系统架构和云架构的研发,对整个互联网的研发技术、体系、方法有较深入的理解。

专栏模块

专栏共37期,四大模块,系统介绍持续交付核心知识和实际落地问题。

  • 持续交付知识详解: 通过对持续交付5大核心内容(配置管理、环境管理、构建集成、灰度发布和测试管理)的介绍,帮你系统地、全面地了解持续交付。
  • 持续交付的平台化: 通过实际的设计案例,整合持续交付的各个环节,帮你以平台化思维,进一步完善和优化你的持续交付体系。
  • 打造移动App的持续交付体系: 将介绍与传统网站、后端服务完全不同的持续交付思想,以及业内领先的相关技术和设计,教你构建适合移动端产品的持续交付体系。
  • 利用开源工具快速打造持续交付平台: 将为你系统介绍构建持续交付体系的三款开源工具:GitLab、Jenkins、Ansible,并以此为基础带你构建一套完整的持续交付平台。

专栏详细目录如下:

限时福利

适宜人群

想全面学习持续交付的从业人员,正在持续交付路上的技术同僚,以及对持续交付感兴趣的管理者、架构师、程序员、产品经理、测试工程师、运维等所有软件研发线上的技术人员。