Die Programmierbarkeit der Steuerebene wurde jahrelang von APIs dominiert. Ab F5 ist damit iControl gemeint. Zunächst als SOAP-Schnittstelle und später als REST ermöglichte iControl NetOps, was sein Name impliziert: Kontrolle über jeden Aspekt einer BIG-IP-Konfiguration.
Diese Methode wird nicht verschwinden. APIs bieten die detaillierte Kontrolle, die viele Organisationen zur Verwaltung der Bereitstellung ihrer Anwendungsdienste benötigen. Sie sind darüber hinaus der Schlüssel zu Integrationsbemühungen mit Partnern und neuen Umgebungen.
Das bedeutet nicht, dass APIs der „einzig wahre Weg“ zur Automatisierung des Betriebs eines BIG-IP sind. Tatsächlich ist im Zuge der Entwicklung hin zu einem kontinuierlicheren Ansatz bei der Bereitstellung von Anwendungen und Anwendungsdiensten eine alternative Methode entstanden. Dabei handelt es sich um eine deklarative Methode, bei der der Endzustand der Konfiguration durch den Betreiber beschrieben und die Verantwortung für die Implementierung auf das Zielsystem verlagert wird.
Es gibt viele Gründe, eine deklarative Konfigurationsmethode zu übernehmen, nicht zuletzt ihre Ausrichtung an DevOps-Ansätzen wie Infrastruktur als Code und kontinuierliche Bereitstellung. Dies ist das Ziel hinter F5 AS3: eine deklarative Schnittstelle bereitzustellen, die die Abhängigkeit von APIs verringert und die Möglichkeit verbessert, eine vollständig automatisierte, kontinuierliche Bereitstellungspipeline zu implementieren. Es ist passender, von einer Konfiguration als Code zu sprechen, da wir die Infrastruktur nicht wirklich aus Code erstellen, wie der Begriff vermuten lässt.
AS3 ist ein deklaratives Format, das JSON-Schlüssel-Wert-Paare verwendet, um eine BIG-IP-Konfiguration zu beschreiben. Von der virtuellen IP über den virtuellen Server bis hin zu den erforderlichen Mitgliedern, Pools und Knoten bietet AS3 ein einfaches, lesbares Format zur Beschreibung einer Konfiguration. Sobald Sie die Konfiguration haben, müssen Sie sie nur noch zum BIG-IP bringen, wo die AS3-Erweiterung sie gerne akzeptiert und die erforderlichen Befehle ausführt, um sie in eine voll funktionsfähige, bereitgestellte BIG-IP-Konfiguration umzuwandeln.
Beispielübersetzung der VIP- und Poolbeschreibung in bigip.conf als AS3- Deklaration:
bigip.conf |
AS3-Deklaration |
ltm virtual /Common/serviceMain { Ziel /Common/10.0.1.10:80 IP-Protokoll TCP Maske 255.255.255.255 Pool /Common/web_pool Quelle 0.0.0.0/0 Adresse übersetzen aktiviert Port übersetzen aktiviert } ltm Pool /Common/web_pool { Mitglieder { /Common/192.0.1.10:80 { Adresse 192.0.1.10 } /Common/192.0.1.11:80 { Adresse 192.0.1.11 } } Monitor /Common/http } |
"serviceMain": { "Klasse": "Service_HTTP", "virtualAddresses": [ "10.0.1.10" ], "pool": "web_pool" } "web_pool": { "class": "Pool", "Monitore": [ "http" ], "Mitglieder": [ { "ServicePort": 80, "Serveradressen": [ "192.0.1.10", "192.0.1.11" ] } ] } |
Die Möglichkeit, eine BIG-IP-Konfiguration auf diese Weise zu beschreiben, ermöglicht es dem Betrieb, bei der Bereitstellung von Anwendungsdiensten einen Konfigurations-als-Code- Ansatz zu übernehmen. Durch die Nutzung eines Repository können wir AS3-Konfigurationen automatisch für die Bereitstellung abrufen. Neben der Automatisierungsnutzung bieten Repositories eine modernere und integrationsfreundlichere Möglichkeit, Konfigurationen zu versionieren und zu verwalten und ermöglichen ein schnelles Rollback im Falle eines Problems mit der Konfiguration.
Mithilfe der Webhook-Funktionen von GitHub können wir beispielsweise beim Commit einer neuen/aktualisierten AS3-Konfiguration automatisch eine Bereitstellung starten . Dazu benötigen wir einen Webhook-Server, der auf eine Benachrichtigung wartet, dass eine neue Dienstdefinition (AS3) festgeschrieben wurde. Diese Benachrichtigungen erfolgen in Form eines Hooks , bei dem es sich um ein JSON-Objekt handelt, das Informationen zum Ereignis enthält. Nach dem Empfang analysiert der Webhook-Server den Hook, ruft das referenzierte AS3 von GitHub ab und startet den Konfigurationsprozess.
Sie können die neueste Version von AS3 auf GitHub herunterladen . Dokumentation zum Bereitstellen der AS3-Erweiterung sowie Beispiel-AS3-Konfigurationen finden Sie hier .
Der Webhook-Prototyp wurde von Nathan Pearce , Developer Advocate im Büro des CTO, entwickelt. Weitere Prototypen und Beispiele zur Integration von BIG-IP mit CI/CD- und Telemetrie-Pipelines finden Sie bei Nathan und F5 Networks auf GitHub.