IT部门必须推动其运行代码的标准化,否则可能会构建出削弱IT自动化财务效益和效率优势的系统。
我从事软件开发近十年,开发过嵌入式软件、Web软件、客户端-服务器软件、中间件和大型机软件。我曾使用9种不同的编程语言编写专业代码。有意思的是,我不记得自己曾在同一家组织使用过两种以上的语言。
大多数企业组织不仅会对服务器、平台和框架进行标准化,也会统一编程语言。对于生命周期不止几分钟、有时甚至长达数十年的软件,可维护性是一项重要目标。可维护性是指,无论软件的生命周期以何种方式衡量,其他人员都能接手并在整个生命周期内持续提供支持。这通常是出于开发人员流动、市场上具备相应语言技能的人才供给,以及培训和日常维护成本等方面的考虑。一般而言,企业会对编程语言进行标准化。
这与当前微服务和无服务器计算的发展趋势背道而驰。此类趋势将支持高度多样化的多语言开发视为一项优势。例如,Bob及其团队可以使用Go,而Alice及其团队则可以使用C、Java或Lambda进行开发。这对开发人员而言无疑是一项优势,因为每个人都有自己偏爱的语言;但对需要长期维护这些软件的企业组织来说,却并非如此。API支持软件的集成和使用,因此从应用开发的角度看,软件采用何种语言实现基本无关紧要;但在企业中,底层代码仍然需要维护。
对于IT自动化,也就是企业生产侧正在进行的内部数字化转型,组织不仅要认识到为支持自动化而构建的脚本和系统采用标准化的益处,还要了解不采用标准化可能带来的问题。这些系统并非打算在下周、下个月甚至明年就弃用,而是一项长期投资,将在未来多年支持部署数字化。因此,需要借鉴全球企业应用开发数十年来积累的最佳实践,奠定灵活而稳固的基础,其中首要原则就是标准化。
1. 可维护性
我知道你喜欢用PERL编程,但其他人都使用Python。用自己偏爱的语言开发自动化程序,会让它变成只有你能照料的“宠物”,这意味着以后没有其他人能够维护它。这对你不利,因为你会被它缠上好几年,就像你8岁时央求父母买给你的那条金鱼一样。这对组织也不利,因为如果你离职,组织就只能接手无法维护的代码,甚至可能难以继续提供支持。SIG与O’Reilly于2016年开展的一项调查发现:“70%的受访者认为,即使与性能或安全性相比,可维护性也是衡量代码时最重要的方面。”
这点至关重要。应将脚本和系统视为共享资源,确保现在和未来的大多数IT人员都能轻松修改和支持它们。
2. 兼容性

随着越来越多的IT服务通过软件实现,使其保持最新并与其他系统兼容的任务也日益繁重。如果认为REST API消除了“向后兼容”问题,不妨再想一想。API本身就是产品(或者说理应如此),因此也在不断演进。“网络”中的情况更为棘手:即使是同一产品线,不同版本的API也存在差异,使标准化成为一项永无止境的艰巨任务。这个问题十分普遍。在Smart Bear的《2016年API现状报告》中,四分之一的受访者认为,API标准化在未来几年亟待解决的技术挑战中位列第三。
此外,由于IT领域使用的许多语言都是解释型语言,版本之间的变化可能会破坏精心设计的自动化脚本和系统。node.js版本变更可能造成严重的负面影响,包括脚本失效或出现意外行为。统一采用稳定版本的脚本环境和语言,有助于尽量减少此类变化带来的影响。
此外,仍需管理为该自动化提供支持的每个底层系统的补丁和升级,因此底层系统越少越好。
3. 故障排除
放弃标准化会给故障排除带来麻烦。如果您正转而采用基于解决时间的IT KPI指标,这一点尤其重要。发现问题所需的时间越长,该指标的表现就越差。标准化是缩短解决时间的重要一环。如果Bob是团队中唯一的Python专家,而他正在休假(且无法联系),此时他的脚本又出现故障,那么负责排查问题的人恐怕要度过漫长的一周。鼓励IT人员各自使用偏爱的编程语言,会严重限制其他人排查和解决问题的能力。即使Bob没有休假,但他也找不到问题所在,能提供帮助的人也寥寥无几。
这个环节不容马虎。据InitialState称,修复一个错误所需的时间是编写一行代码的30倍。当您费力地在不熟悉的代码中查找错误,然后再进行修复时,仿佛能看到资金正缓缓流入碎纸机。这可不是什么好景象。故障排除成本无法完全消除,但可以避免因处理人员不熟悉相关语言而增加的时间,从而控制成本。在生产环境中,时间就是金钱,因此,任何有助于缩短问题解决时间的措施都非常重要。
因此,随着IT逐步采用脚本语言、工具和系统,与应用开发团队保持一致不失为明智之举。如果IT采用与应用开发团队相同的系统和语言(或至少统一其中一部分),就能获得一大批专家的支持,协助排查问题以及开展代码审查等其他开发相关流程。毕竟,开展代码审查就是为了在缺陷引发问题之前将其发现,对吧?没错吧?
标准化常被视为应对成本上升的一种方式,也确实是推动降本的重要因素。但标准化还有许多其他好处,包括尽量减少技术债务、缩短问题解决时间,以及简化日常运维。如果完全不实施标准化,就会增加复杂性并形成瓶颈,不仅抵消自动化带来的优势,还会对预算和时间产生反作用,阻碍企业获得发展所需的利润和生产力。在开启或继续推进IT自动化进程时,请记住,应将这些脚本和系统视为可替换、可规模化管理的资源,而不是需要精心照料的宠物。因为宠物需要持续的专人照料,而未来的IT无法承担这种成本。
关于作者

Lori MacVittie是F5首席技术官办公室的杰出工程师兼首席技术布道师,在应用交付、自动化战略和基础设施领域拥有深厚的专业知识。无论是为AI智能体定义防护机制、剖析脆弱的多云架构,还是探索可扩展系统的极限,她都善于化繁为简。她在应用开发、IT架构以及网络和系统运维领域拥有30多年的行业经验。加入F5之前,她曾担任技术编辑,并因出色表现获得奖项。 MacVittie拥有计算机科学硕士学位,著述颇丰,出版作品涵盖安全、云和企业架构领域。她还热衷于桌面游戏和电子游戏,并且对奶酪有着毫不掩饰的鲜明见解。
Lori Mac Vittie 的更多博客文章相关博客文章
Thingbot正转变为攻击平台
Lori MacVittie重点介绍了F5 Labs对2018年1月至6月全球物联网设备攻击的研究,并指出了其中令人警醒的影响。物联网设备不仅持续遭到利用,还被转变为攻击平台,这意味着攻击者可以更充分地利用这个必然增长的市场。
借助F5全新Quick Start,在AWS上快速开展业务
在AWS re:Invent开幕前,我们很高兴与大家分享F5与AWS之间全新的Quick Start集成。F5的Tom Atkins将介绍该服务如何启动、配置和运行在AWS上部署工作负载所需的计算、网络、存储及其他AWS服务。