从私人发电到电网的转变,与从20世纪六七十年代的大型计算机到今天的云计算的转变有很多相似之处。几十年来,大型机是大多数公司计算基础设施的唯一来源。然而,随着小型机、服务器和个人计算机的诞生,工作可以以很低的成本分布在更小的机器上。所有新硬件和新操作系统的管理需要新的技能和领域专业知识,网络和存储设备成为标配。各组织尝试了不同的、更扁平的运营模型,以遏制技术的蔓延。它们试图通过增加审查委员会和关卡、卓越中心和其他流程来管理变更的风险。大型机团队不再是宇宙的中心,所有的标准、权限和变更管理也都无须再经过它们。现在,每个技术领域都有自己的标准、访问控制和变更控制流程。
IT系统复杂性变化的结果是,领域知识被隔离在专门的“筒仓”中。每个团队都根据自己的目标进行度量,这些目标经常与其他向该团队消费或提供服务的团队的目标相冲突。因此,每个团队围绕其组织的输入(服务请求)和输出(服务交付)构建流程,希望对目标的实现有更多的控制。例如,安全团队将创建请求表单,用于审查其他部门必须遵守的流程和最佳实践。如果存在问题,安全团队可以指出流程的问题作为尽职调查的证据。治理团队有自己的流程,变更管理团队、项目管理团队、质量保证团队、运营团队等也是如此。
当软件作为部署在物理基础设施上的大型单体应用程序构建,并以季度或年度为周期计划发布时,这种模式很好地达到了目的。对于开发团队来说,在众多的筒仓中浏览绝大多数是手工的过程,这显然是低效的,但是足够长的发布周期能够抵消这些低效。
然而在今天,快速进入市场比以往任何时候都更具有竞争优势。客户对新特性和修复的期望比以前更频繁了。那些仍然待在过去方式中的公司冒着可能成为下一个“上头条”的风险,它们受欢迎的程度会逐渐消失,就像世界运转从来就没有过它们一样。2019 State of DevOps Report得出结论,相比于没有拥抱DevOps的团队,在采用现代化DevOps最佳实践中表现最好的团队的部署频率提高了208倍;从代码提交到部署的前置时间加快了106倍;事件解决的速度提升了2604倍;变更失败率减少为原来的1/7。
云计算可以实现许多公司追求的敏捷性,但云技术本身还不够。为了跟上并从这种敏捷性中创造价值,公司必须摆脱“电力副总裁”的经营模式,进而转变为新的工作方式。
如今的CIO面临一项极其艰巨的工作:他们必须在“保持灯亮”(即保持现金流)、提高灵活性和质量以及投资新技术之间取得平衡。拿起任何一本行业杂志,你都会看到大公司采用新兴技术的成功故事,如云计算、机器学习、人工智能、区块链、DevOps、规模化敏捷(SAFe)和站点可靠性工程(SRE)。每个新趋势都是为了解决特定的一类问题而设计的,需要工具、趋势、方法和最佳实践的结合来实现云计算的规模化。
即便CIO接纳了云计算并采用了许多新技术和方法,他们也必须在公司治理、风险管理和合规审查(GRC)团队和首席信息安全官(CISO)制定的政策中工作,这两者在大多数公司中都不受欢迎。GRC和CISO有强烈的动机来确保公司不会因为一个漏洞或系统故障而登上《华尔街日报》的头版。与此同时,CIO也被要求更快地交付更多的价值。这些事情的优先级是互相冲突的,为了能够实现它们,许多组织正在将传统领域特定的功能团队(如测试、安全和运维)转移到软件工程团队甚至业务方。
这种转移带来的挑战是,许多工程师没有足够的技能来有效地承担这些新角色。只需要一个事件——比如,一个对公共网络开放的服务器端口——就会导致CISO锁住所有东西,甚至会到没有人能在云中及时完成工作的地步。如果公司没有重新考虑现有的组织结构、角色、职责和流程就转移了领域知识,最终的结果通常是达不到预期的,有时甚至是灾难性的。