接下来将介绍 Akamai 用于在开发过程中增强软件安全的程序。所有工程团队都需要遵循此流程,以便最大限度地减少构建过程中出现的不稳定情况。

尽管 Akamai 使用多项 QA 测试,但整个 Internet 有时会执行仅适用于一个地理区域、ISP 或客户的边缘情况。

首先介绍一些背景知识:Akamai 工程师开发的软件会在之后安装到组成 Akamai 分布式网络的数万台服务器上。Akamai 软件开发流程采用以运行为中心的模型,这与其他大型软件即服务 (SaaS) 提供商采用的模型类似。这是一种自适应模型,强调团队合作、角色分工和风险管理。除了内部开发的软件,Akamai 还广泛利用他人编写的软件,包括 FLOSS 软件和来自上游供应商的专有软件。

出于可扩展性、故障排除改进、报告遥测和健康检查以监测系统,或者仅为了使用特定软件等原因,Akamai 对这些组件进行了修改。

Akamai Engineering 部使用版本控制系统 (RCS),对允许的软件更改量进行限制,并提供源代码提交的签入时间通知跟踪。通过公共密钥加密对源代码的签出和签入进行验证,以提供访问控制和不可否认性。

更改采用分阶段的方式进行,这称为“阶段”,以确保对 Akamai 服务的影响最小。Akamai 通过具有安全保障的安全连接安装软件,以检查组件版本是否正确,并且在传输过程中未被修改。

在证明每个阶段均正常运行并保持稳定后,会做出部署其余阶段的决定。Akamai 将此称为“世界”阶段。在任何阶段均有描述如何回滚安装的书面流程。这是因为即使存在问题,软件也不会自动停止将流量发送到新安装的区域。在许多情况下,当需要回滚时,受影响的服务器将会自动暂停。

当我们进行全局性的回滚操作以最大限度地减少对 Akamai 服务的影响时,软件安装通常按“组”来完成。例如,如果一个区域有 3 台服务器,每次只会安装 1 台服务器。为了确保连续性,Akamai 不会一次安装整个区域。

这些控制旨在最大限度地减少安装过程中软件更改对网络造成意外影响的情况,从而使我们能够继续为我们的客户提供服务。