《猎豹行动:硝烟中的敏捷转型之旅》读书笔记DAY02:提速--工具落地,效率提升

网友投稿 474 2022-05-29

DAY02:《猎豹行动:硝烟中的敏捷转型之旅》 提速--工具落地,效率提升

这次主要讲解了以下内容:

一、敏捷与DevOps工具集

1.JIRA--项目与事务跟踪工具,被广泛应用于缺陷跟踪、客户服务、需求收集、流程审批、任务跟踪、项目跟踪和敏捷管理等工作领域(很多开源项目就是用 JIRA 收集和管理缺陷与交流的)。

2.Confluence--用于企业知识管理与协同,以及构建企业 wiki。(来自澳大利亚的 Atlassian 公司推出的 JIRA和 Confluence 是敏捷开发的两大利器,它们彻底地贯彻了敏捷开发所倡导的去中心化、协作、集体讨论、信息共享、灵活、透明、可视化等原则。JIRA 与 Confluence 相互结合,更是相得益彰。)

3.GitHub--基于Git工具的在线代码托管平台,分布式的代码管理工具,突破了传统的集中式代码管理模式,程序员可以通过Git在本地管理自己的分支,在成熟的时机把分支推到GitHub中,管理员可以通过保护主干(master)分支,强制所有合并到主干的请求必须通过评审才能完成,从而强化代码评审的过程。

4.Nexus--使用Maven或Gradle进行项目代码管理已经是绝大多数Java项目的首选,而公司自建Nexus仓库缓存和管理代码库可大大提高下载和管理的效率。

5.Jenkins--持续集成工具,可灵活定义各种自动化的Job来完成特定的集成工序,包括定时触发或代码提交时触发。典型的应用是监测代码库(如GitHub)的提交行为,一旦提交完成,自动执行集成,包括从代码库获取所有代码,执行设定的Maven Goal(比如编译、运行测试、打包、发布到Nexus)并输出测试结果。所有Job的运行结果都会被记录。IT团队的每日站会应查看当天的集成结果,如果发生任何集成失败,应该立即分配人员处理,防微杜渐,维持100%通过的状态。一旦放任任何一次集成失败,很容易造成代码和测试腐化,积重难返,失去了持续集成的意义,前功尽弃。

6.SonarQube--通过Jenkins可以看到每日甚至每次代码提交的集成结果,SonarQube可以给出团队代码质量的趋势,其插件可涵盖静态代码分析、自动化测试覆盖率等指标,告知团队指标趋势向好还是向坏。对于有遗留代码的系统而言,作为团队的代码质量目标,趋势比静态指标更现实。在Jenkins的Job中可以嵌入SonarQube检查。

7.Ansible--自动化部署工具,通过编写Play Book来执行部署。

二、团队共创工作坊--找出DevOps改进点

“团队共创(Team Consensus Method)”是一种使群体能够迅速达成共识的促动技术;它遵循人类大脑的自然思维过程,通过挖掘及综合各种观点,形成创新、可行的决策和计划。团队共创法可以促进参与者实现求同存异、缩小差距、扩大共识和共创共赢等目的。

三、DevOps时间--挖掘改进时间和资源

通过团队共创五个主题的模型过程,找出了相应的问题,并制定相应的行动方案:

1)业务请求跟踪性差--通过JIRA记录所有的请求和需求,并建立可视板使进度可视化。每日站会围绕着JIRA可视板进行,确认每天的优先级、进度和阻碍。通过Confluence建立项目文档和知识库,使所有知识和信息透明化,提升沟通和学习效率。

2)缺乏回归测试--开发团队研究如何从全手动测试转向自动化测试,然后通过Jenkins每天自动执行全部自动化测试并发布测试结果,结合SonarQube观测测试代码的覆盖率是否处于上升趋势。

3)手工部署--每次部署,不管是部署到测试服务器还是生产服务器,都是手动进行的,整个过程烦琐,容易出错且效率低下。由于公司大部分系统只能在周末进行维护和上线,一般由运维团队负责。手动方式意味着要在周末加班进行,这大大限制了上线的频率。最频繁的上线也只能做到每月一发,这也导致了开发团队为了应对业务部门的催促草率开发和上线,因为对业务而言赶不上本月这班车就是一个月的延迟。开发团队也希望能有更频繁、更灵活的上线周期,而这意味着运维团队需要频繁地在周末加班,该形式难以持续。通过Ansible编写部署脚本,从而实现部署自动化,开发团队可以在周五把部署计划定时设好,部署计划在周六自动执行,发生部署意外会自动通知运维团队,从而减少上线工时并降低上线风险。;

四、前置时间(Lead Time)和周期时间(Cycle Time)

有关这两个时间的概念,书中以一个实际的例子来进行说明,相信大家能够很好的理解:

《猎豹行动:硝烟中的敏捷转型之旅》读书笔记DAY02:提速--工具落地,效率提升

我去咖啡店买咖啡,从到达咖啡店排队那一刻就开始计算前置时间,当我在店内下单后,店员接到我的单开始制作咖啡时,开始计算周期时间,直到咖啡交到我手上,这两个时间停止计算。可以想象,这两个时间有很大的差距。提升咖啡制作的效率,可以显著缩短周期时间,但前置时间还有很多与咖啡制作不直接相关的因素,包括下单前的排队时间、下单速度、下单方式、支付方式等。目前IT部门的改善集中在缩短周期时间上,而业务部门更关心的其实是前置时间,也就是从他们提出一个请求到这个请求上线实现业务价值的时间,要缩短这个时间,需要业务和IT部门配合做更多的事情。当然,不能因此否定IT部门在这个阶段的成果,毕竟改变自己比改变别人要容易得多,从改善自身效率起步是正确的选择。

运维 Jenkins

版权声明:本文内容由网络用户投稿,版权归原作者所有,本站不拥有其著作权,亦不承担相应法律责任。如果您发现本站中有涉嫌抄袭或描述失实的内容,请联系我们jiasou666@gmail.com 处理,核实后本网站将在24小时内删除侵权内容。

上一篇:Dependency Injection-依赖注入详解
下一篇:Spring Cloud 学习笔记06-02----用Hystrix来限流以及进行服务隔离
相关文章