随着DevOps方法逐渐跨越壁垒,进入网络运维领域,一些新术语也随之而来。这些通俗说法可能会让此前从未接触过它们的NetOps人员感到困惑,也可能令面临采用这种方法压力的IT高管不知所措。
其中一个概念是基础设施即代码。在开发人员的世界里,基础设施主要是用于部署和扩展应用的平台、服务器及容器系统。基础设施主要指计算资源。
而在这堵墙的另一侧,基础设施的范围更广、稳健性更强,除了计算,还涵盖存储、安全和网络。毕竟,这四类运维必须协同运行,才能实现持续部署,并达到IT和业务领导者期望通过数字化转型实现的优化效果。这意味着,与开发环境相比,生产环境中的基础设施即代码涵盖的系统、设备和服务范围要广得多。部署应用通常会以某种方式涉及这四类运维中的基础设施。因此,在生产环境中实施基础设施即代码会更复杂一些,但对效率和速度的提升也更显著。

这是因为,自动化可以消除交接环节的等待时间,而这种等待往往会降低部署效率,尤其是在手动流程受到休假、病假和午休影响时。
这是一个明喻
基础设施即代码是一种比喻。这意味着,我们实际上并不打算(至少目前不打算)将网络和应用服务系统转化为先构建再部署的代码。对大多数企业组织而言,这种做法并不现实,还会影响企业网络的稳定性和可靠性。但我们确实希望利用这样一种系统所带来的优势:将配置和配置文件与其运行所在的系统解耦。
这意味着将配置、策略和配置文件与其部署所在的硬件或软件分离。
正是这一集合随后被视为“部署工件”,并且可以像代码一样处理。这意味着可以将其存储在存储库中并进行管理、版本控制和审查。开发人员可以像从存储库(例如Github)拉取和克隆代码以及向其中提交代码一样,对这些部署工件执行拉取、克隆和提交操作。
还应包括“自动化工件”,即用于描述自动化任务,并与所选自动化工具包配套使用的脚本及相关文件。如果使用Ansible,就是playbook;如果使用Chef,就是recipe;如果使用Puppet,就是manifest;也可能只是一个普通的Python脚本。
对于BIG-IP和越来越多的网络托管系统,自动化构件还包括模板(iApp),可用于进一步描述更复杂或标准化的配置。使用模板可能更有优势,因为它可以支持核心工具集可能尚不支持的选项和应用服务。
自动化工件与部署工件共同构成了我们所说的“基础设施即代码”。这里假设您可以预配系统,随后对其运行自动化流程,按需完成配置。
将基础设施即代码方法与按应用提供网络和应用服务的方法相结合,可以显著降低频繁部署带来的风险。通过隔离配置并将其影响限制在单个系统内,部署失败造成的影响几乎可以消除。这反过来有助于采用按应用制定的计划,使其更好地契合业务需求和用户要求。
对于积极采用云技术的组织,基础设施即代码方法可以减少从数据中心迁移到云端或在云之间迁移时遇到的阻力。由于配置与系统解耦,理论上可以将其部署到其他位置的类似系统上。
采用基础设施即代码方法需要投入一定精力,但这样做有很多充分理由,而不这样做的充分理由却很少。基础设施即代码是实现敏捷网络的有效方式之一,而组织要在多云、应用驱动的数字经济中取得成功,离不开这样的网络。
关于作者

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服务。