多年來,控制平面的可編程性一直主要經過 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。