多年来,控制平面的可编程性一直主要通过 API 来实现。在 F5,这意味着 iControl。iControl曾先后作为 SOAP 和 REST接口,提供了强大的网络运维支持;正如其名字所表示的,它控制着各个方面的BIG-IP 配置。
这种方法一直是非常受人青睐的。API 提供了许多当组织在管理其应用服务部署所需的精细控制。此外,它们还是与合作伙伴和新环境进行整合的关键。
但这并不意味着 API 是实现 BIG-IP 运行自动化的“唯一方法”。事实上,在采用更持续的方法部署应用和应用服务的过程中,已经出现了一种替代方法。这种方法就是声明式配置方法,运维人员只需要描述配置的最终状态,然后将实施的任务交给目标系统。
采用声明式配置方法的原因有很多,其中一个原因便是它能够与DevOps方法(例如基础设施即代码和持续部署)保持协调一致。这就是 F5 AS3 的真正目标,即提供声明式界面以减少对 API 的依赖,并提高实施全自动、持续部署流水线的能力。然而,因为我们实际上并没有使用代码构建基础设施,所以将其称之为配置即代码更为合适。
AS3是一种声明性格式,它使用JSON键值对来描述BIG-IP配置。从virtualIP 到virtual server,再到所需member、pool、及node,AS3 为配置描述提供了一种简单易读的格式。在获得配置后,您只需将其移至 BIG-IP 即可。AS3 扩展程序将立即接受配置、执行必要命令,以将其转变为功能齐全 BIG-IP 配置来部署。
实例:将 bigip.conf中的 VIP 和pool配置转化为AS3声明格式:
在具备了这种描述 BIG-IP 配置的能力后,运维人员便可采用配置即代码方法部署应用服务。利用代码存储仓库,我们能够自动提取 AS3 配置进行部署。除了自动化用途之外,代码存储仓库也为我们提供了一种更现代、更易于集成的方法来控制版本和管理配置,并支持在配置出现问题时快速回滚。
例如,借助 GitHub 的 Webhook 功能,我们能够在提交全新或更新的 AS3 配置时自动启动部署。为此,我们需要 Webhook 服务器等待已提交新服务定义 (AS3) 的通知。上述通知以挂钩 (hook) 形式出现,而后者是一个包含有关事件信息的 JSON 对象。在接收通知后,Webhook 服务器将解析挂钩、从 GitHub 中检索引用的 AS3,并启动配置流程。
其他实例:
了解AS3技术实现:
您可以从 GitHub 下载最新版 AS3。从F5网站获取有关部署 AS3 扩展程序及 AS3 配置示例的文档,并参与在线培训。
Webhook 原型由首席技术官办公室开发技术推广工程师 Nathan Pearce开发而成。如欲获取更多集成 BIG-IP 与 CI/CD 和遥测管道的原型和示例,请在 GitHub 上关注 Nathan和 F5 Networks。