要建立一个流水线式的流程,采用JKK在指导DevOps团队是蕞有效的办法。
JKK是一种高质量的工作方式,它意味着对目标理解清晰,理解正确的工作方式,使工作正确的100%的完成,并在没有检查的情况下维护质量要求。
1.业务战略和规划
IT服务与业务战略和规划有密切的关系
服务的主管应该参加业务规划会议并提出如何通过IT服务获得业务优势的建议。
2.市场营销
服务主管应该与市场部门讨论如何从IT服务中获得优势。
服务主管识别IT服务的客户,收集具有业务价值的需求,并约定时间范围。
3.管理
流程主管很希望了解如何可视化整个过程。一种方法是使用Obeya(丰田的一种工程合作方式)为整个流程进行设定。Obeya这个作战室具有两个目的——信息管理和现场决策(on-the-spot decision)。这里面有很多可视化管理工具。团队成员可以很快看到他们在过程中的方方面面。
当跨职能团队在一起工作时,Obeya系统能够快速,准确做出决策,加强沟通、保持队形、迅速收集信息、并形成重要的团队意识。
4.项目规划
服务主管组织服务管理办公室(SMO)并定义团队的基本规则。服务主管创建愿景、目标和项目的价值,然后整合DevOps的团队成员。
在这个阶段,运行中的基础设施被定义。一个整体流程的价值流图表被设计。
5.需求和设计
服务主管定义待办任务(Product backlogs)和并安排优先级。
DevOps团队使用待办任务(Product backlogs)来定义故事(Story)。
用户故事:角色,职能,业务价值/理由,以及运营条件。
测试故事:验收测试用例和服务验收标准。
运营故事:设置IT服务的优先级的和业务连续性的运营条件。
创建服务级别和运营级别协议。
DevOps工程师和运营团队定义转换、测试和开发的基础设施。
开发团队还创建了发布和迭代计划。
把关人研究IT服务的合规性以及IT服务的监管要求。
可靠性工程师定义测试方法和测试用例。
6.开发
Scrum是这个阶段蕞适用的方法论。
开发团队必须提交发布计划并使用规范的敏捷方法。
每次迭代(Sprint)的周期需要遵循业务的需要。
从质量的角度来看,XP(Extreme Programming,极限编程)的实践,例如结对编程(pair-programming)、TDD(Test-Driven Development,测试驱动开发)、重构(Refactoring)和十分钟构建(Ten-Minutes Build)都是有效的。
7.部署
在完成持续集成之后,自动化流程开始进行验收测试、性能测试和部署。DevOps工程师应该建立单件流作业(One-piece flow)方式构建一个单一的自动化部署途径(pipeline)。
可靠性工程师和DevOps工程师将共同提升测试流程。
把关人(Gatekeeper)监控整个过程的进度,决定是否上线。
运维团队研究如何保持业务连续性。
8.运维
运维团队采用轻量级的ITSM流程来监控IT服务运行的状态。
发生灾难事件时,确保关键服务依然运营是至关重要的。这个团队应该包括可靠性工程师,需要注意两个关键参数:恢复点目标和恢复时间目标(RPO/PTO)。
9.维保
服务主管和可靠性工程师决定是否允许进行维保。
经允许,它们被作为变更请求添加到待办任务中。
10.客户 服务
服务主管和可靠性工程师负责收集客户的反馈,例如包括用户体验和质量事件的运营问题。经允许,它们被作为变更请求添加到待办任务中。
11.生命周期终止
服务主管将决定IT服务生命周期的终止条件,包括发生事件,以及如何发生。