F5 Friday:F5 AS3によるConfiguration as Code

F5エコシステム | 2018年8月24日
Configuration as Codeのヘッダー

長年にわたり、コントロールプレーンのプログラマビリティではAPIが主流でした。F5では、それを担ってきたのがiControlです。iControlは、当初はSOAPインターフェースとして、その後はRESTとして、名前が示すとおり、NetOpsがBIG-IP構成のあらゆる側面を制御できるようにしてきました。

この手法がなくなることはありません。APIは、多くの組織がアプリケーションサービスのデプロイを管理するうえで必要とする、きめ細かな制御を可能にします。また、パートナーや新しい環境との統合を進めるうえでも重要です。

だからといって、BIG-IPの運用を自動化するうえで、APIが「唯一の正しい方法」というわけではありません。実際、アプリケーションとアプリケーションサービスのデプロイをより継続的に行うアプローチへの移行が進む中で、別の方法が登場しています。それが宣言型の手法です。オペレーターが構成の最終状態を記述し、その実装をターゲットシステムに委ねます。

宣言型の構成方法を採用する理由は数多くあります。なかでも、Infrastructure as Codeや継続的デプロイメントといったDevOpsのアプローチとの親和性は重要です。F5 AS3の目的は、APIへの依存を減らし、完全に自動化された継続的デプロイメントパイプラインを実装しやすくする宣言型インターフェースを提供することです。実際には、この用語が示すようにコードからインフラストラクチャを構築するわけではないため、Configuration as Codeと呼ぶ方が適切です。

宣言型を採用する理由

AS3は、JSONのキーと値のペアを使用してBIG-IP構成を記述する宣言型フォーマットです。仮想IPから仮想サーバー、必要なメンバー、プール、ノードに至るまで、AS3ではシンプルで読みやすい形式で構成を記述できます。構成を作成したら、あとはBIG-IPに送信するだけです。BIG-IPでは、AS3 extensionがその構成を受け取り、完全に機能するBIG-IP構成としてデプロイするために必要なコマンドを実行します。

VIPとプールの記述をbigip.confから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の設定を記述できるため、運用担当者はアプリケーションサービスのデプロイにConfiguration as Codeのアプローチを採用できます。リポジトリを活用することで、デプロイ用のAS3設定を自動的に取得できます。リポジトリは自動化に利用できるだけでなく、よりモダンで統合しやすい方法で設定のバージョン管理と運用管理を行えるようにし、設定に問題が発生した場合の迅速なロールバックも可能にします。

たとえば、GitHubのWebhook機能を使用すると、コミット時にデプロイを自動的に開始できます。対象となるのは、新規または更新されたAS3設定です。そのためには、新しいサービス定義(AS3)がコミットされたという通知を待機するWebhookサーバーが必要です。この通知は、イベントに関する情報を含むJSONオブジェクトであるhookとして送信されます。通知を受信すると、Webhookサーバーはhookを解析し、参照先のAS3をGitHubから取得して、設定プロセスを開始します。

Webhook連携

You can GitHubからAS3の最新バージョンをダウンロードできます。AS3拡張機能のデプロイに関するドキュメントとAS3の構成例は、こちらでご覧いただけます。

Webhookのプロトタイプは、CTOオフィスのDeveloper AdvocateであるNathan Pearceが開発しました。BIG-IPとCI/CDおよびテレメトリパイプラインを統合するプロトタイプや例について詳しくは、GitHubでNathanとF5 Networksをフォローしてください。

共有
タグ: 2018

著者について

Lori Mac Vittie
Lori Mac Vittie特別技術者兼チーフエバンジェリスト | F5

Lori MacVittieは、F5のOffice of the CTOに所属するDistinguished Engineer兼Chief Evangelistであり、アプリケーションデリバリ、自動化戦略、インフラストラクチャに関する深い専門知識を有しています。AIエージェントのガードレール策定、脆弱なマルチクラウドアーキテクチャの分析、スケーラブルなシステムの限界の検証など、複雑な事柄を明快にすることで知られています。アプリケーション開発、ITアーキテクチャ、ネットワークおよびシステム運用の分野で、30年以上にわたる業界経験を有しています。F5入社前は、受賞歴のあるテクノロジー編集者として活躍していました。 MacVittieはコンピューターサイエンスの修士号を取得しており、セキュリティ、クラウド、エンタープライズアーキテクチャにわたる分野で多数の著作を発表しています。また、テーブルトークゲームとビデオゲームをこよなく愛し、チーズについては遠慮なく強いこだわりを語ります。

Lori Mac Vittieのその他のブログ記事

関連するブログ記事

F5 Application Study Tool:OpenTelemetryによるF5 BIG-IP環境の監視
F5エコシステム | 2025/04/15

F5 Application Study Tool:OpenTelemetryによるF5 BIG-IP環境の監視

F5の新しいオープンソースツールは、BIG-IP環境を詳細に可視化し、データを追跡するとともに、強力でカスタマイズ可能なインサイトを得るための基盤を提供します。

F5 BIG-IPでAI防御を実現
F5エコシステム | 2024/11/13

F5 BIG-IPでAI防御を実現

F5 BIG-IP Advanced WAF、BIG-IP APM、BIG-IP SSL Orchestratorが、生成AIアプリ向けに包括的なセキュリティソリューションを提供する仕組みをご覧ください。

F5 Advanced WAFによるGraphQL APIの保護
F5エコシステム | 2021/08/31

F5 Advanced WAFによるGraphQL APIの保護

ここ数年、多くの組織がデジタルトランスフォーメーションを進めており、COVID-19のパンデミックによってその動きは加速しています。

アプリケーションサービスの現状 通信業界版:リーダーとしての台頭
F5エコシステム | 2019/02/19

アプリケーションサービスの現状 通信業界版:リーダーとしての台頭

通信ネットワークが進化し、さまざまな業界の幅広いユースケースに対応するなか、通信業界の回答者がテクノロジーリーダーとしての存在感を高めていることがわかります。

デジタルトランスフォーメーションは、単なるペーパーレス化ではない
F5エコシステム | 2017/07/10

デジタルトランスフォーメーションは、単なるペーパーレス化ではない

デジタルトランスフォーメーションは、単なるペーパーレス化ではありません。真のモダナイゼーションにアプリケーションアーキテクチャとセキュリティの再構築が必要な理由を、F5ブログでご覧ください。

やめましょう。もう本当にやめましょう。HTTPSはHTTPより高速ではありません。
F5エコシステム | 2016/09/19

やめましょう。もう本当にやめましょう。HTTPSはHTTPより高速ではありません。

もうやめましょう。HTTPSはHTTPより高速ではありません。プロトコルのパフォーマンスに関する微妙な違いと、暗号化トラフィックを適切に最適化する方法については、F5ブログをご覧ください。