多年来,控制平面的可编程性一直主要经过 API 来实现。在 F5,这意味着 iControl。iControl曾前后做为 SOAP 和 REST接口,提供了强大的网络运维支持;正如其名字所表示的,它控制着各个方面的BIG-IP 配置。node
这种方法一直是很是受人青睐的。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 配置进行部署。除了自动化用途以外,代码存储仓库也为咱们提供了一种更现代、更易于集成的方法来控制版本和管理配置,并支持在配置出现问题时快速回滚。3d
例如,借助 GitHub 的 Webhook 功能,咱们可以在提交全新或更新的 AS3 配置时自动启动部署。为此,咱们须要 Webhook 服务器等待已提交新服务定义 (AS3) 的通知。上述通知以挂钩 (hook) 形式出现,然后者是一个包含有关事件信息的 JSON 对象。在接收通知后,Webhook 服务器将解析挂钩、从 GitHub 中检索引用的 AS3,并启动配置流程。 server
其余实例:
对象
了解AS3技术实现:
blog
您能够从 GitHub 下载最新版 AS3。从F5网站获取有关部署 AS3 扩展程序及 AS3 配置示例的文档,并参与在线培训。 Webhook 原型由首席技术官办公室开发技术推广工程师 Nathan Pearce开发而成。如欲获取更多集成 BIG-IP 与 CI/CD 和遥测管道的原型和示例,请在 GitHub 上关注 Nathan和 F5 Networks。