推荐:采用 F5 AS3 的配置即代码

简介:   多年来,控制平面的可编程性一直主要通过 API 来实现。在 F5,这意味着 iControl。iControl曾先后作为 SOAP 和 REST接口,提供了强大的网络运维支持;正如其名字所表示的,它控制着各个方面的BIG-IP 配置。

  多年来,控制平面的可编程性一直主要通过 API 来实现。在 F5,这意味着 iControl。iControl曾先后作为 SOAP 和 REST接口,提供了强大的网络运维支持;正如其名字所表示的,它控制着各个方面的BIG-IP 配置。

  这种方法一直是非常受人青睐的。API 提供了许多当组织在管理其应用服务部署所需的精细控制。此外,它们还是与合作伙伴和新环境进行整合的关键。

  但这并不意味着 API 是实现 BIG-IP 运行自动化的“唯一方法”。事实上,在采用更持续的方法部署应用和应用服务的过程中,已经出现了一种替代方法。这种方法就是声明式配置方法,运维人员只需要描述配置的最终状态,然后将实施的任务交给目标系统。
 _1

  采用声明式配置方法的原因有很多,其中一个原因便是它能够与DevOps方法(例如基础设施即代码和持续部署)保持协调一致。这就是 F5 AS3 的真正目标,即提供声明式界面以减少对 API 的依赖,并提高实施全自动、持续部署流水线的能力。然而,因为我们实际上并没有使用代码构建基础设施,所以将其称之为配置即代码更为合适。
 _2

  AS3是一种声明性格式,它使用JSON键值对来描述BIG-IP配置。从virtualIP 到virtual server,再到所需member、pool、及node,AS3 为配置描述提供了一种简单易读的格式。在获得配置后,您只需将其移至 BIG-IP 即可。AS3 扩展程序将立即接受配置、执行必要命令,以将其转变为功能齐全 BIG-IP 配置来部署。
 _3
_4

  实例:将 bigip.conf中的 VIP 和pool配置转化为AS3声明格式:
 _5

  在具备了这种描述 BIG-IP 配置的能力后,运维人员便可采用配置即代码方法部署应用服务。利用代码存储仓库,我们能够自动提取 AS3 配置进行部署。除了自动化用途之外,代码存储仓库也为我们提供了一种更现代、更易于集成的方法来控制版本和管理配置,并支持在配置出现问题时快速回滚。

  例如,借助 GitHub 的 Webhook 功能,我们能够在提交全新或更新的 AS3 配置时自动启动部署。为此,我们需要 Webhook 服务器等待已提交新服务定义 (AS3) 的通知。上述通知以挂钩 (hook) 形式出现,而后者是一个包含有关事件信息的 JSON 对象。在接收通知后,Webhook 服务器将解析挂钩、从 GitHub 中检索引用的 AS3,并启动配置流程。

  其他实例:
 _6
_7
_8

  了解AS3技术实现:
_9

  您可以从 GitHub 下载最新版 AS3。从F5网站获取有关部署 AS3 扩展程序及 AS3 配置示例的文档,并参与在线培训。
  Webhook 原型由首席技术官办公室开发技术推广工程师 Nathan Pearce开发而成。如欲获取更多集成 BIG-IP 与 CI/CD 和遥测管道的原型和示例,请在 GitHub 上关注 Nathan和 F5 Networks。

相关文章
|
21天前
SmartDb代码修改
SmartDb代码修改
8 0
|
21天前
|
Java
SpringBoot全局异常代码复制粘贴能用
SpringBoot全局异常代码复制粘贴能用
9 0
|
6月前
|
数据安全/隐私保护
fastadmin中写接口是时Validate规则验证自定义如何用
fastadmin中写接口是时Validate规则验证自定义如何用
|
2月前
|
小程序 开发者
mPaaS问题之重新导入配置文件报错如何解决
mPaaS小程序是阿里巴巴移动平台服务(mPaaS)推出的一种轻量级应用解决方案,旨在帮助开发者快速构建跨平台的小程序应用;本合集将聚焦mPaaS小程序的开发流程、技术架构和最佳实践,以及如何解决开发中遇到的问题,从而助力开发者高效打造和维护小程序应用。
35 1
|
3月前
|
XML JSON Java
SpringBoot 配置文件编写及使用方式 (拒绝硬编码)
SpringBoot 配置文件编写及使用方式 (拒绝硬编码)
27 0
|
4月前
|
Oracle Java 关系型数据库
Generator【SpringBoot集成】代码生成+knife4j接口文档(2种模板设置、逻辑删除、字段填充 含代码粘贴可用)保姆级教程(注意事项+建表SQL+代码生成类封装+测试类)
Generator【SpringBoot集成】代码生成+knife4j接口文档(2种模板设置、逻辑删除、字段填充 含代码粘贴可用)保姆级教程(注意事项+建表SQL+代码生成类封装+测试类)
28 0
|
人工智能 JavaScript IDE
自动写代码?别闹了!
这几天,GitHub 上有个很火的插件在抖音刷屏了——Copilot。 这个神器有啥用呢?简单来讲,它就是一款由人工智能打造的编程辅助工具。 我们来看看它有啥用。
314 0
|
设计模式 算法 程序员
你是否 diss 过别人的代码?| 怎样的代码才算优秀?
你一定在内心吐槽过他的代码太烂:没注释、逻辑混乱、到处都是 magic number、实现方案过时、耦合严重、一改就出 bug。 此时心中的怒火油然而生,仿佛自己是正义的化身。。。
88 0
|
数据库
代码修改后运行结果同修改之前结果一样
今天在做机房收费系统过程中,因为命名规范有些问题,需要将一些数据库表名重新命名,出现了这个问题: 问题描述(环境:VisualStudio2013 ;框架:.Net Framework4.5 ;语言:VB.NET):修改代码之前,数据库查询语句cmdText中的表名为“T_UserInfo”,修改之后,把表名修改为“T_User”(当然数据库中的表名同样修改为“T_User”),运行出错。用Try……Catch获取异常,异常提示“对象名T_UserInfo”无效。
代码修改后运行结果同修改之前结果一样
|
XML JSON API
通过配置文件避免硬编码的一个例子
通过配置文件避免硬编码的一个例子
通过配置文件避免硬编码的一个例子