DevOps是新一代应用开发的流行方法,而且非常成功。本文探讨的是可重塑DevOps世界的五个趋势。
从专注改善软件交付到探讨流量暴增时期团队需跟踪的指标,企业IT界这几年来都在讨论DevOps问题。更频繁的部署,以及由此带来的更快商业价值回报,令企业无法忽视,蠢蠢欲动。
正如Gartner指出的:
数字化时代,我们有必要支持须以更高速度更强敏捷性运营的业务。这种需求推动了DevOps快速发展,成为很多公司企业追求竞争优势的关键。
那么,在未来,DevOps世界将迎来哪些变化?有哪些趋势正在重塑DevOps世界呢?
趋势1:DevSecOps
DevSecOps指的是将安全团队作为活跃参与者纳入应用开发过程的操作。该操作摒弃了在应用开发“完成”之后才引入安全团队的做法,受到越来越多的公司采纳。尽管对小型初创企业而言没那么重要,但对有着严格的安全和合规考虑的组织而言(比如金融服务和医疗行业,以及政府机构),DevSecOps就是相当重要的操作了。
其中难点在于开发团队和安全团队一直以来都是独立运作的,开发团队往往直到新业务应用即将上线之前才会被告知其存在。很多情况下,安全团队会因应用未能合规而毙掉该应用,让数百个小时的开发时间付诸流水,导致团队之间的龃龉。
DevSecOps通过在开发过程中的关键节点强制加入安全检查来改变这一情况,让应用在完工之时就已经经过了深入彻底的审查。因此,潜在问题能够早发现早解决,有问题的应用在投入大量工作之前就会被否决。
趋势2:持续交付
代码冻结和打包发布很快便会走向终结。这是因为持续交付及其近亲——持续部署,正逐渐成为开发团队的标准操作流程。无论是持续交付还是持续部署,代码总是随时准备好被推送到产品中,只不过持续交付模式是人工手动完成,而持续部署模式是自动完成推送。传统发布周期非常低效,需要在设定的时间间隔冻结代码,这种时候开发人员要么闲坐干等,要么转移到其他项目中去,以便代码能够编译打包成发布版。
持续交付驱动更平滑、更高效的部署过程,代码被自动推送到非生产环境进行一系列模拟生产部署的测试。换句话说,相比等待隔很长时间才会推出的大型发布,持续交付需要团队推出更小、更频繁的发布。该过程可以让软件更快地推送到用户手中,也能让开发团队更快收集到反馈,最终缩短应用的面世时间,提升商业价值。
趋势3:云
企业工作负载持续向云环境迁移不是什么秘密,DevOps亦不能免疫该趋势。DevOps受益于云采纳并反过来推动云采纳的方式,与该过程从持续交付获益的方式相同:都是通过提升开发团队的效率。比如说,开发人员可以通过信用卡和按个按钮就能主动提供资源。类似的,云部署中的标准化治理程序可以让用户无需额外的批准就能使用自己的测试环境。
趋势4:意识提升
现在已经很难遇到不熟悉DevOps概念的IT经理和工程总监了。五年前的情况却并非如此。我们如今生活在DevOps方法论和最佳实践被积极讨论的世界,在网上、小型会面和IT大会上均有相关探讨。这对驱动产出而言很棒,但也给公司企业带来了一定的风险,因为一个更敏捷的竞争者可以利用全球开发者社区的集体智慧打开市场而无需牺牲可靠性或稳定性。
也就是说,当每个人都知道DevOps,其本身也就从竞争优势转变成了潜在的责任——如果没实践好(或根本没实践)的话。
趋势5:自动化
自动化是DevOps的核心。为节约开发人员的时间,某些重复性过程就必须被自动化,以便能在无人工输入的情况下执行。举个例子,持续交付模式下,代码被自动推送到同样是自动提供的连续测试环境中,以自动化的方式接受兼容性、功能、性能等等检查,无需耗费开发人员的时间。
这些方法如今已投入使用,发生改变的不过是可以被自动化的功能在逐渐增加。比如说,随着多云环境的兴起,未来或将见证跨云部署可互操作环境中提供的测试环境。吸收进DevSecOps最佳实践后,安全检查可能也不再需要那么多来自安全及合规团队的人工输入,转而依赖一系列自动化测试。以上种种并不是说人的因素就会完全消失。成功的DevOps依靠团队间的清晰沟通。只不过,需要人直接参与手动批准的灰色地带就会逐渐减小了。