每日10次部署:持续部署:部署流水线
DevOps三步法: 流动:加速开发、运维、交付的流程 反馈:更安全可靠 持续学习 精益的两个主要原则包括:坚信前置时间(把原材料转换为成品所需的时间)是提升质量、客户满意度和员工幸福感的最佳度量指标之一;小批量任务的交付是缩短前置时间的一个关键因素。
小步迭代
在第一个阶段中,工作主要包括设计和开发,它和精益产品开发有很多相似之处:都具有高度的变化性和不确定性,不仅需要创意,某些工作还可能无法重来,这导致无法确定总体处理时间。在第二个阶段中,工作主要包括测试和运维,它类似于精益制造。相比前一个阶段,它需要创造性和专业技能,力求可预见性和自动化,将可变性降到最低(如短的和可预测的前置时间,接近零缺陷),并满足业务目标。我们并不提倡在设计、开发中串行地完成了大批量的工作后,再转入测试、运维阶段(如使用大批量、基于瀑布模型的开发流程,工作在长生命周期的特性分支上)。恰恰相反,我们的目 标是采用测试和运维与设计和开发同步的模式,从而产生更快的价值流和更高的质量。只有当工作任务是小批量的,并将质量内建到价值流的每个部分时,这种同步的模式才能实现。
前置时间:设计和开发 处理时间:测试和运维
image.png
devops
image.png
流动原则:建立从开发到运维之间快速的、平滑的、能向客户交付价值的工作流 :限制流程节点的制品数 :小批量或者单件
部署流水线: 用相同的方式处理所有环境的部署:通过对所有环境(例如开发环境、测试环境和生产环境)采用相同的部署机制,可以提高生产环境部署的成功率,因为它已经在流水线中被成功地部署过很多次了。 对部署执行冒烟测试:在部署过程中,应该测试依赖的所有系统(例如数据库、消息总线和外部服务)是否能正常访问,并通过单次测试看看系统是否能正常工作。如果以上任何一个测试失败,那么部署就是失败的。 维持环境的一致性:上述步骤创建了一步搭建环境的流程,使得开发环境、测试环境和生产环境有了共同的搭建机制。必须持续保证这些环境的搭建方式是一致的。
facebook:部署批次。金丝雀发布模式 图12-6 显示了Facebook 为了采用这种发布模式而创建的运行环境组。 A1 组:仅向内部员工提供服务的生产环境服务器。 A2 组:仅向一小部分客户提供服务的生产环境服务器,在软件达到某些验收标准后部署 (自动化部署或手动部署均可)。 A3 组:其余的生产环境服务器,软件在A2 组中达到某些验收标准后再部署。
反馈:监控的艺术,日志采集 异常数据告警(异常检测)
发布中集成AB测试
结队编程:一开发,一测试用例
学习型组织
信息安全人员加入devops中