DevOps
概念
上面这个是ChatGPT的回答,每个人对DevOps都有自己的理解,在我看来就是:通过不断地优化工具和流程来帮助人们快速交付高质量的软件。
- 首先,开发和运维可以并且需要协同工作。
- 其次,系统管理将和软件开发变得越来越像。
- 最后,通过分享和借鉴全世界的最佳实践来加速交付速度和提升集体的能力。
文化
尽管我们在DevOps中使用了一些相当先进的技术和工具,但我们需要解决的核心问题是与人和业务相关的问题。文化是由人和群体的互动定义,由行为驱动。当相互理解他人以及他们的目标和责任时,沟通就会有实质性的改善。传统的信息技术业务模式将开发人员和运维人员分成两个截然不同的部门。他们本质上说着不同的语言,因为开发人员的任务是创新、创造和“快速移动和打破事物”,而运维人员负责维护稳定的环境和基础设施。这些相互竞争的目标经常造成摩擦,因为每个小组都指责对方阻碍了他们的工作。通过分担责任和让团队齐心协力来改变文化是DevOps的主要目标。
自动
自动化真正专注于人和流程,而不仅仅是工具,它能大大减少我们的时间,精力和成本,同时也能降低出错的概率。在了解组织的文化和目标之后,将基础设施实现为代码以及使用持续集成和持续交付的影响可以被放大,这将有助于增强DevOps的整体优势。
度量
你测量什么东西,你就能得到什么数据。数据在整个过程中是至关重要的,没有数据就没有明确的指标。通过具体的数据,我们可以知道需要改进的地方并持续改进。
分享
“众人拾柴火焰高”,分享知识和技术能让团队走地更快。同时,也能吸引一些志同道合的小伙伴进行更深入的研究,减少不必要地重复劳动。
具体实践
Scrum
Scrum 是一个帮助团队协同工作的框架,它鼓励团队吸取经验,在处理问题时进行自我组织,并通过反思得失实现持续改进。
Sprint
通常使用一到两周作为一个冲刺阶段(Sprint),在有限的时间内完成既定的目标。
Standups
每日站会:在约定的合适时间,同步信息。主要是三个方面:
- 我昨天做了什么?
- 我今天要做什么?
- 什么困难阻碍了我?
Reviews
通过数据来分析这个sprint的结果,鼓励做的好的地方,发现需要改进的地方并确立行动项去改善。