Linux学习小标兵,专注Linux资讯分享,技术文章分享
分类: LINUX
2020-11-23 18:00:25
导读 | 一旦一个行业术语,尤其是技术方面的术语,变得流行,想知道关于这个术语的确切定义也变得困难了。大家都假定这是众所周知的,并在此基础上展开讨论。不管怎样,如果你所在的公司也有关于DevOps的讨论,或是你想这方面有进一步的深入。那关于DevOps的这几点,你或许应该要注意。 |
DevOps指对传统软件应用生命周期的重构以支持敏捷开发和持续集成持续交付的一套方法论。在过去,一般是庞大的单体应用较为常见。想要追加新功能或新发布版本,都要涉及到整个单体应用的重新打包,然后全量更新。在这种情况之下,应用版本迭代相对缓慢。
这样的开发流程已经不适用于当代商业环境了。与日俱增的竞争压力促使企业采用更灵活敏捷的方式,对市场中的变化迅速作出响应以保持竞争力。软件开发流程也需要作出相应调整以适应频繁的需求变化——极端情况下,一天可能会发布好几个迭代版本。
然而,彻底颠覆原有开发方式需要人员、企业文化、流程、开发工具等多方面的改变。DevOps打破原来的开发和运维之间的界限,将分离的两个流程融合到了应用的研发过程中。这些改变的目的是为了支持和适应应用快速、安全、可持续和频繁的版本发布。
原来的流程是将一系列新增和改善的功能,捆绑到一块合并在一个大版本发布,发布频率低。在DevOps思想指导下,新应用或功能特性增强将会采取小步快跑的方式发布。这使得用户可以在第一时间体验到应用的新功能,改善终端用户体验。
对于面向消费者的应用,实现对市场需求的快速响应可以提高消费者满意度,进而获得更丰厚的回报,提高应用的市场份额,甚至是全方位的领先优势。
DevOps强调将应用开发周期中的关键流程标准化和自动化,包括在尽可能和生产一致的运行环境中进行测试从而保障代码质量。在准生产环境的标准化预发布和测试,可以帮助我们在正式发布前识别并解决问题。还有,应用频繁地小规模增量迭代使得测试更准确更充分,这比试图在一次发布中集中测试验证好几百项功能变化是否生效靠谱得多。
流水线、标准化、自动化的作业流程是一大好处。这有效减少了错误的发生,同时使得各种资源可以被投入到更高层次的战略目标中。不仅应用开发效率提高,同时技术人员的情绪也会更积极,因为他们可以少花很多时间在那些低效的人工流程和紧急情况处理上。
DevOps的一个基本特征,就如它名称所预示的,打破开发和运维之间的部门界限。当开发和运维人员作为一个团队,他们就必须开始熟悉跨界技能和信息共享,为了一个共同的目标去协作,提高效率。
DevOps的流程,在设计上就防止团队构建出一个庞大的单体应用发布到线上。DevOps聚焦于少量多次的发布,这使得流程、团队、组织在响应市场环境中的变化时更灵活,先发制人。
在企业中采取DevOps流程,涉及到许多方面的考量。为了实施成功,采用DevOps要求有一个清晰的战略目标。获得相关高层领导的支持,管理方式的变革,并且有合适的基础设施去支持这样的转变。
DevOps技术可以为转型成功的企业带来诸多好处。然而企业做出相应的调整改变也要顾及各个方面。在现有的技术人员中找到一些熟练且有经验的员工去贯彻普及DevOps流程并不容易。这也是许多企业选择一些已经成功推广DevOps技术的组织作为合作伙伴,来支持推进DevOps普及的原因。