F5 Friday:使用F5 AS3实现配置即代码

F5生态系统 | 2018年8月24日
配置即代码标题

多年来,控制平面的可编程性一直以API为主。对F5而言,这意味着使用iControl。iControl最初采用SOAP接口,后来改用REST,让网络运维团队能够如其名称所示,控制BIG-IP配置的各个方面。

这种方法不会消失。API可提供许多组织管理应用服务部署所需的精细控制,也是与合作伙伴及新环境进行集成的关键。

这并不意味着API是实现BIG-IP运维自动化的“唯一正确方式”。事实上,随着应用和应用服务部署逐步采用更具持续性的方式,另一种方法应运而生。这种方法采用声明式模式,由操作人员描述配置的最终状态,并将实施责任交由目标系统承担。

采用声明式配置方法有很多理由,其中一个重要原因是它与基础设施即代码和持续部署等DevOps方法相契合。F5 AS3的目标正是提供声明式接口,减少对API的依赖,并增强实施全自动持续部署流水线的能力。更准确地说,应将其称为“配置即代码”,因为我们实际上并不是像“基础设施即代码”这一术语所表达的那样,通过代码构建基础设施。

为何采用声明式配置

AS3是一种声明式格式,使用JSON键值对描述BIG-IP配置。从虚拟IP、虚拟服务器,到所需的成员、池和节点,AS3提供了一种简单易读的配置描述格式。配置完成后,只需将其发送到BIG-IP,其中的AS3扩展会接收该配置并执行必要的命令,将其转换为功能完备且已部署的BIG-IP配置。

以下示例展示了如何将bigip.conf中的VIP和池描述转换为AS3声明:

bigip.conf

AS3 声明

ltm virtual /Common/serviceMain {    destination /Common/10.0.1.10:80    ip-protocol tcp    mask 255.255.255.255    pool /Common/web_pool    source 0.0.0.0/0    translate-address enabled    translate-port enabled}ltm pool /Common/web_pool {members {        /Common/192.0.1.10:80 {            address 192.0.1.10                    }        /Common/192.0.1.11:80 {            address 192.0.1.11            }    }    monitor /Common/http}
"serviceMain": {     "class": "Service_HTTP",     "virtualAddresses": [         "10.0.1.10"     ],     "pool": "web_pool" }"web_pool": {     "class": "Pool",     "monitors": [         "http"     ],     "members": [         {             "servicePort": 80,             "serverAddresses": [                 "192.0.1.10",                 "192.0.1.11"             ]         }     ] }

通过这种方式描述BIG-IP配置,运维人员可以采用“配置即代码”的方法来部署应用服务。借助存储库,可以自动拉取AS3配置并进行部署。除了用于自动化之外,存储库还提供了一种更现代、更易于集成的配置版本控制和管理方式,并可在配置出现问题时快速回滚。

例如,利用GitHub的Webhook功能,可以在提交后自动启动部署新的或更新后的AS3配置。为此,需要一个Webhook服务器等待接收新服务定义(AS3)已提交的通知。这些通知以hook的形式发送。hook是一个包含事件相关信息的JSON对象。收到通知后,Webhook服务器会解析hook,从GitHub检索其中引用的AS3,并启动配置流程。

Webhook集成

您可以在GitHub上下载最新版本的AS3。有关部署AS3扩展的文档以及AS3配置示例可在此处获取。

Webhook原型由首席技术官办公室的开发者倡导者Nathan Pearce开发。如需了解更多将BIG-IP与CI/CD及遥测管道集成的原型和示例,可在GitHub上关注Nathan和F5 Networks。

分享
标签: 2018

关于作者

Lori Mac Vittie
Lori Mac Vittie杰出工程师兼首席技术布道师 | F5

Lori MacVittie是F5首席技术官办公室的杰出工程师兼首席技术布道师,在应用交付、自动化战略和基础设施领域拥有深厚的专业知识。无论是为AI智能体定义防护机制、剖析脆弱的多云架构,还是探索可扩展系统的极限,她都善于化繁为简。她在应用开发、IT架构以及网络和系统运维领域拥有30多年的行业经验。加入F5之前,她曾担任技术编辑,并因出色表现获得奖项。 MacVittie拥有计算机科学硕士学位,著述颇丰,出版作品涵盖安全、云和企业架构领域。她还热衷于桌面游戏和电子游戏,并且对奶酪有着毫不掩饰的鲜明见解。

Lori Mac Vittie 的更多博客文章

相关博客文章

F5纪念2021年世界艾滋病日
F5生态系统 | 2021/12/01

F5纪念2021年世界艾滋病日

值此世界艾滋病日,F5郑重承诺,将与员工、客户、社区和合作伙伴共同努力,消除社会对HIV感染者仍然存在的污名与偏见。

Thingbot正转变为攻击平台
F5生态系统 | 2018/11/29

Thingbot正转变为攻击平台

Lori MacVittie重点介绍了F5 Labs对2018年1月至6月全球物联网设备攻击的研究,并指出了其中令人警醒的影响。物联网设备不仅持续遭到利用,还被转变为攻击平台,这意味着攻击者可以更充分地利用这个必然增长的市场。

借助F5全新Quick Start,在AWS上快速开展业务
F5生态系统 | 2018/11/20

借助F5全新Quick Start,在AWS上快速开展业务

在AWS re:Invent开幕前,我们很高兴与大家分享F5与AWS之间全新的Quick Start集成。F5的Tom Atkins将介绍该服务如何启动、配置和运行在AWS上部署工作负载所需的计算、网络、存储及其他AWS服务。

为什么声明式模型对NetOps自动化至关重要?
F5生态系统 | 2018/04/30

为什么声明式模型对NetOps自动化至关重要?

为什么声明式模型对NetOps自动化至关重要?阅读F5博客,了解基础设施即代码如何简化网络扩展。

开源聚焦:F5基础设施即代码与多云可管理性
F5生态系统 | 2017/11/16

开源聚焦:F5基础设施即代码与多云可管理性

开源聚焦:基础设施即代码与多云。阅读博客,了解模板和Terraform如何简化F5应用服务的部署。

破解IT“无解困局”的答案:私有云
F5生态系统 | 2016/09/12

破解IT“无解困局”的答案:私有云

破解IT“无解困局”的答案:私有云。阅读F5博客,了解本地部署的敏捷性如何化解安全与速度难以兼顾的问题。