实现DevOps:从技术到文化的全面探索
1. DevOps的核心:人员协作而非技术
如今,很多人将DevOps视为一种软件交付方式,但实际上它更应被定义为人们的协作方式。即便使用大型机、COBOL和JCL,也能实施DevOps,并非一定要依赖CI/CD。
DevOps的真正潜力在于明确人员之间的交互方式、优化工作流程以及促进协作,而非单纯依赖技术。技术固然酷炫,但更重要的是发现流程中的漏洞。例如,要思考流程中有哪些交接环节,为何会存在这些环节,是否尝试过消除它们;如何处理安全审计和变更控制委员会的工作,以及这些工作在工作流中产生的成本。
我们往往低估了转变的难度。以基础设施团队采用源代码控制为例,这可能需要多年时间。对于那些经验丰富、在公司工作多年的工程师来说,让他们改变习惯,从通过SSH登录服务器并输入命令,转变为每次变更都检出和部署基础设施代码,是非常困难的。改变这种思维模式比引入工具要难得多。
2. 测试:连续交付的关键瓶颈
2.1 单元测试的局限性
单元测试虽然能达到90%的代码覆盖率,但这并不意味着它能实现预期的功能。例如,Puppet运行了16000个单元测试,但在生产环境中构建仍然失败,说明单元测试未能发现关键问题。单元测试可以作为规范和验证设计功能的工具,为开发人员提供快速反馈,但工程师应更多地关注系统和集成层面的测试,确保真正为客户解决问题。
2.2 测试的重要性
连续交付中最困难的部分就是测试,但人们往往忽视它。测试工作既艰巨又不那么光鲜,而且没有一种通用的方法可以测试所有内容。然而,测试是整个流程的起点和终点。如果每天部署十次,就需要对测试有足够
超级会员免费看
订阅专栏 解锁全文
59

被折叠的 条评论
为什么被折叠?



