前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >精选 | DevOps 三十六计之精益敏捷与持续交付

精选 | DevOps 三十六计之精益敏捷与持续交付

作者头像
DevOps时代
发布2018-02-02 12:24:12
1.1K0
发布2018-02-02 12:24:12
举报

前言:

一册在手,DevOps我有”,这就是传说中的《DevOps 三十六计》,相信您读完也意犹未尽,小编就来和您说道说道我注解的《DevOps 三十六计》,今天先跟大家聊聊精益敏捷和持续交付,从中摘取何勉、杨晓俊、张乐三位老师的计策,跟聊聊您!

精益敏捷篇

精益产品开发(何勉)

  1. 寻求在问题域将需求拆分成可流动和交付的子需求,避免过早在实现域拆分任务 我们做产品研发时,最容易犯的错误就是需求还没有理解透彻就开始思考实现,具体怎么在问题域将需求拆分,需要你系统的阅读何老师的新书《精益产品开发 原则、方法与实施》。
  2. 系统组织拆分后的需求。用户故事地图是组织和规划需求的好工具 用户故事以用户的角度描述需求,替代原来的功能性描述,增加团队对用户、对价值的关注和理解。但是用户故事对于优先级、故事场景(线索)的体现并不好,所以发展出用户故事地图这样的实践与工具,帮助我们梳理将用户故事变成一本精彩的“小说”!
  1. 可视化价值流动而非任务,以促进团队协作,并系统改进价值交付过程 何老师将精益看板划分为三个层次:任务状态看板、价值流动看板、持续改进看板。看板最基础的价值就是满足我们可视化工作流的需求,然后看板要能帮助团队明确流程规则和限制在制品数量,这样的看板才算是真正的看板。 在何老师的实践中,看板还需要追求更高级的目标:管理价值流动和帮助持续改进。
  1. 控制在制品,减少同一时刻并行需求的数量,以加速价值交付,并暴露瓶颈和问题 控制在制品,这是大多数实践看板的团队所面临的最大难关。既要转变工作不饱和的恐慌思维,又要切实控制住WIP。

PS,何老师出新书了,《精益产品开发 原则、方法与实施》不只有36条计策,更多精彩尽在其中

敏捷项目管理(杨晓俊)

  1. 没有照本宣科的敏捷,只有最适合团队的实践 敏捷的本质就是在实践中探寻更好的软件开发方法,所以实践敏捷需要我们去找到最适合自己的实践和方法。
  1. 好的架构是演化出来的,而不是一开始就设计出来的 这个在传统瀑布模式下最常见,总是花好几周的时间设计架构,考虑各自高可用、安全等场景,可惜往往很多项目都没有熬到上线就胎死腹中。架构师演化出来的,这是敏捷研发中的铁律。
  2. 需求卡(Story Card)最好能够写明目标用户、用户的场景以及用户的目的或需求本质 需求卡片,以用户故事的表达方式,清晰的告诉所有人团队成员(产品、开发、测试,甚至业务运维)需求的内容是什么。同时在需求卡片上写清楚验收条件也是非常好的实践。

持续交付篇

持续集成(张乐)

  1. 开发人员每天至少向版本库提交一次代码 在Martin Fowler的持续集成测试中,第一条就是“开发人员每天至少向版本库提交一次代码”。

只有开发人员每天至少向版本库(主干)提交一次,才能避免出现复杂的合并与集成,主干的质量才能持续得到保障

  1. 每次变更都执行构建,以便尽早发现缺陷 持续集成解释就是持续地集成(构建),何为持续?原来我们都是DailyBuild,每天做一次。现在随着技术的发展,架构的解耦。每一次提交(变更)都能进行构建,这样才能保证代码始终处在可构建的状态。 这里的构建至少包含了编译、单元测试。
  2. 将DDL和DML脚本提交到版本库,以便使用脚本重建数据库和测试数据 数据库的持续集成一直都是难题,使用版本控制系统管理DDL和DML是第一步,这样才能建立起应用和数据的版本关系,可以自动完成数据库重建和测试数据的生成。 尤其是在搭建测试环境中,数据库搭建和数据导入往往需要花费测试工程师很多时间,自动化该过程并纳入到持续集成(持续交付)流程中,是非常好的实践

持续部署(张乐)

  1. 避免手工部署软件
  2. 避免手工对生产环境进行配置 手工部署软件和手工配置生产环境是持续交付的典型反模式。这里可以尝试使用两个实践:基础设施即代码和不可变基础设施。 基础设施即代码,在大家使用类似Ansible等自动化配置(部署)工具时将环境的配置(状态)都采用代码(比如YAML)的方式进行定义,由于自动化配置工具幂等性的特点,可以保障环境的状态和我们定义的状态保持一致。 不可变基础设施,主要是在使用Docker时,不允许修改容器配置,每次部署都是重新启一个新容器。环境只可以被替换,不可以被修改,这和虚拟机的使用有很大的不同。
  3. 避免开发完成之后才向类生产环境部署 相信你已经听过或者说过:“在我机器上没问题啊,是你环境的问题吧!”,将DTAP环境(开发、测试、预发布、生产环境)都纳入到持续交付流程,才能保证代码能尽快在类生产环境中进行部署和验证,软件要运行,需要应用、应用配置、数据、环境及配置等都正确,尽快在类生产环境进行验证可以有效避免环境差异的问题。
  4. 交付过程是每个程序员的责任 DevOps非常强调文化和协作,在DevOps的文化模型中,责任共担是核心文化,交付过程是每个开发工程师、测试工程师、运维工程师的共同责任。

DevOps 三十六计除了精益敏捷和持续交付,还有安全篇、性能调优篇、开发架构篇、测试技术篇、技术运营篇,每一篇又分多个计策! 欲知详情,且听下回分解!

END

本文参与 腾讯云自媒体分享计划,分享自微信公众号。
原始发表:2017-08-16,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 DevOps时代 微信公众号,前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体分享计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
相关产品与服务
腾讯云 BI
腾讯云 BI(Business Intelligence,BI)提供从数据源接入、数据建模到数据可视化分析全流程的BI能力,帮助经营者快速获取决策数据依据。系统采用敏捷自助式设计,使用者仅需通过简单拖拽即可完成原本复杂的报表开发过程,并支持报表的分享、推送等企业协作场景。
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档