在互联网繁荣的末期,我在一家初创软件公司担任销售工程师,身处一个由大约20名开发人员、平面设计师、项目经理组成的团队,以及一个由5人组成的IT运维团队,负责基础设施、数据中心和安全。整个团队都了解彼此对整个过程的贡献,以及每个角色的价值和必要性。我们相互依赖,以很好地履行这些角色。我们每天的工作都是合作的。
在IT行业做了13年不同的工作后,我回到软件开发领域,发现在运维、开发和安全之间出现了令人惊讶的敌意,每个人的工作都被专业化划分开来,这是由每个角色的本质所驱动的:运维寻求加强稳定性,这在开发人员看来就像专制控制;开发所需的速度和灵活性威胁到Ops的停滞不前。安全部门似乎想要侵入式的监督。紧张程度高得惊人。
发生了什么事?云。更快、更令人兴奋的开发机会增加了,云中基础设施的可访问性促进了生产力而不是安全性和流程。传统上缓慢的、严格管理的开发过程会让开发人员感到不满,并导致替代开发路径以避免低效率。行动努力控制,但进展只能被限制这么长时间;流氓开发活动激增。行动和安全部门试图控制这支最终无法控制的部队。云运营成本随着不断扩张的开发而飙升。首席财务官们要求运营部门减轻影响。但是在云计算时代,那些带有冗长测试和多层经理审批的旧流程将一去不复返了。 IT divisions need a new structure to balance the lightning pace of innovation enabled by the cloud with organizational constraints and dependability of existing operations.
进化的答案是DevOps,它将开发、运营和安全团队聚集到一个单一的协作流程中,通过基于云的工具实现快速、多阶段、CI/CD流程,消除了开发和运维之间的孤岛,通过即时反馈和快速优化来加速和优化部署。随着云驱动的开发进步,IT Ops也在发展。站点可靠性工程师构建自动化。敏捷项目管理实践允许灵活性和变化。低开销技术,如微服务、容器、数据库服务,可以实现财政上负责任的创新。Ops将安全性和冗余构建到应用程序体系结构本身中,而不是将这两个问题留到拉长的软件开发过程的最后解决。AIOps提高了可观察性的标准。Ops使用数据和机器学习来避免操作故障,最终即使在快速开发期间也能提供应用程序正常运行时间。新的应用程序、更新和功能在几周内推出,而不是几个月,以应对当前的市场需求。
DevOps团队是否实现了完美的IT和谐?还没有。但当它起作用时,这种合作的努力感觉更像繁荣时期。开发对于业务的精细化和响应能力至关重要;运营对于开发人员理解下一步至关重要。