ZYLK erreicht optimierte IoT-Dienste durch APISIX-Optimierung
May 26, 2023
Überblick
Alfonso González ist ein AI & IoT-Entwickler bei ZYLK, einem führenden Unternehmen bei der Optimierung von Open-Source-Lösungen und der Förderung der digitalen Transformation in Spanien. Alfonso teilte seine Erfahrungen darüber, wie ZYLK APISIX für MQTT-Kommunikation nutzte und Cybersicherheit in dieser Implementierung umsetzte. Er sagte: „Sicher, zuverlässig und leistungsstark – APISIX ist wahrscheinlich das beste Gateway für APIs.“
Herausforderungen
- Probleme mit MQTT-Routing, K8S-Netzwerken und HTTP-Kommunikation.
- Die Verwaltung und Wartung jedes zugänglichen Endpunkts und Routings war eine Herausforderung, was zu erheblichen Zeit- und Aufwandskosten führte.
- Die Aufnahme neuer Benutzer in das Netzwerk war schwierig, da sie sich mit der gesamten Architektur vertraut machen mussten, bevor sie auf einen Dienst oder Endpunkt zugreifen konnten.
Ergebnisse
- ZYLK behob ihre HTTP-Kommunikationsprobleme und MQTT-Probleme durch die Implementierung von APISIX.
- ZYLK nutzte APISIX als TCP-Proxy, um eine sichere Stream-Route vom Raspberry Pi zum RabbitMQ-Warteschlangensystem in der Cloud zu erstellen, wodurch die Vertraulichkeit und Integrität der Datenübertragung gewährleistet wurde.
- ZYLK erlebte erhebliche Verbesserungen in der Infrastruktur, die benutzerfreundlicher waren, was zu erheblichen Zeit- und Aufwandeinsparungen führte und letztendlich die Produktivität steigerte.
Hintergrundinformationen
ZYLK ist ein erfahrenes IT-Beratungsunternehmen, das sich seit über 15 Jahren auf Big Data, Liferay-Websites und -Portale sowie Künstliche Intelligenz spezialisiert hat. Das Unternehmen ist seit 2004 ein Pionier bei der Optimierung von Open-Source-Lösungen und der Förderung der digitalen Transformation für verschiedene Kunden, darunter private Unternehmen, öffentliche Verwaltungen und Regierungsbehörden in Spanien und Europa.
ZYLK verlässt sich ausschließlich auf Open-Source-Software, um Lösungen bereitzustellen, da sie der Ansicht sind, dass Open-Source-Software zahlreiche Vorteile gegenüber proprietären Alternativen bietet, wie z. B. Kosteneffizienz, Flexibilität, Transparenz und Community-Unterstützung. Vor der Implementierung von APISIX musste das Team ihre Kommunikationsendpunkte einzeln verwalten und jeden Endpunkt direkt vom Client aus referenzieren. Dies führte zu erheblichen Zeit- und Aufwandskosten bei der Verwaltung und Wartung jedes zugänglichen Endpunkts und Routings.
Die Hauptprobleme des vorherigen Prozesses waren die Aufnahme neuer Benutzer in das Netzwerk, die sich mit der gesamten Architektur vertraut machen mussten, bevor sie auf einen Dienst oder Endpunkt zugreifen konnten. Darüber hinaus hatte das Team Probleme mit MQTT-Routing, K8S-Netzwerken und HTTP-Kommunikation.
Technische Auswahl
ZYLK arbeitete vollständig mit Open-Source-Software, einschließlich vieler Apache-Projekte. Daher war eine Apache-Lösung eine gute Wahl, als sie nach einem API-Gateway suchten. Nach etwa sechsmonatiger Suche nach einer Lösung für ihre Probleme und einem Vergleich mit Kong Gateway und HAProxy entschied sich ZYLK schließlich für die Implementierung von APISIX. Die Gründe dafür sind:
1. APISIX ist einfacher und bietet umfassendere Sicherheits-Plugins mit einem benutzerfreundlichen Dashboard.
APISIX bietet eine einfache und benutzerfreundliche Oberfläche mit einer umfassenden Sammlung von Sicherheits-Plugins, was die Verwaltung und Sicherung des API-Gateways erleichtert. Das benutzerfreundliche Dashboard ermöglicht eine einfachere Konfiguration und Verwaltung des API-Gateways.
2. APISIX unterstützt mehrere Protokolle, nicht nur HTTP.
APISIX unterstützt eine Vielzahl von Protokollen, was es zu einem vielseitigen Werkzeug für die Verwaltung verschiedener Arten von API-Datenverkehr macht. Diese Flexibilität ermöglicht es Benutzern, ihren gesamten API-Datenverkehr an einem Ort zu verwalten, was ihre Infrastruktur vereinfacht und die Komplexität reduziert.
3. APISIX kann eingehende MQTT-Nachrichten mit mTLS zwischen Client und Server umleiten.
Die Unterstützung von APISIX für MQTT-Nachrichten und mTLS-Verschlüsselung bietet eine zusätzliche Sicherheitsebene für die Kommunikation zwischen Clients und Servern. Mit dieser Funktion können eingehende MQTT-Nachrichten sicher über APISIX umgeleitet werden, wodurch sichergestellt wird, dass sie verschlüsselt und authentifiziert sind, bevor sie ihr Ziel erreichen. Dies erhöht die allgemeine Sicherheit des Systems und schützt sensible Informationen vor unbefugtem Zugriff oder Manipulation.
APISIX erwies sich als wertvolle Ergänzung zu den Lösungen von ZYLK, da es eine einfachere und sicherere Möglichkeit bietet, ihre API-Gateway-Anforderungen zu verwalten.
Architektureinführung
1. Industrielle Geräte: PLCs erfassen Daten von Klimasteuerungsmaschinen (in entfernten Gebäuden)
Zunächst liegt der Fokus auf industriellen Geräten wie PLCs, die zur Erfassung von Daten verwendet werden, die von Klimasteuerungsmaschinen generiert werden. Das Klimasteuerungssystem befindet sich in einem entfernten Gebäude, das als Edge-Computing-Infrastruktur betrachtet wird. Die von diesen Geräten generierten Daten müssen in Cloud-Servern gespeichert werden. Die Cloud besteht aus zwei Teilen, die Daten miteinander teilen, und die Daten sind über industrielle Protokolle verbunden.
2. Industrielle Protokolle: Modbus und BACnet werden verwendet, um Daten von den PLCs zu lesen
Um die Daten direkt von den PLCs zu lesen, werden Module auf BACnet verwendet. ZYLK plant, diese Module und BACnet-Informationen in TCP zu übersetzen, um die Verwaltung zu erleichtern. Sobald die Daten in einem geeigneten Format vorliegen, werden sie über MQTT an die Cloud-Server gesendet. Während MQTT für IoT-Geräte einfach zu verwenden ist, hat die Verwendung in der Cloud einige Herausforderungen für ZYLK mit sich gebracht, insbesondere in Bezug auf die Implementierung von Cybersicherheitsmaßnahmen.
3. MQTT-Kommunikation: Die TCP-Konvertierung wird durchgeführt und die Daten werden über MQTT an einen Cloud-Server gesendet
ZYLK verwendet APISIX als Lösung für sichere MQTT-Kommunikation in ihrem Anwendungsfall. Die von den industriellen Klimaanlagen generierten Daten werden von PLCs erfasst und von einem TCP-Gateway für Modbus in TCP-Sprache übersetzt, dann an einen Raspberry Pi gesendet. Die Daten müssen über das MQTT-Protokoll gesendet werden, um ein Warteschlangensystem zu erreichen, das entweder Mosquitto oder RabbitMQ sein könnte, und ZYLK verwendet APISIX, um dies zu erreichen.
Das Ziel der Speicherung dieser Daten besteht darin, historische Aufzeichnungen über die Funktionsweise der Maschinen zu haben, die verwendet werden, um maschinelle Lernmodelle in der Cloud zu erstellen. ZYLK verwendet NTL-Modelle, um diese Daten zu trainieren und zu verarbeiten. Die Edge-Infrastruktur wird mit einem einfachen Diagramm dargestellt, wobei die industriellen Klimaanlagen auf der linken Seite Daten generieren, die von PLCs erfasst werden.
Der Raspberry Pi sendete MQTT-Nachrichten auf unsichere Weise, was ein Problem für ZYLK darstellte, da sie die Nachrichten sicherstellen mussten, zumindest von APISIX nach außen, da der Raspberry Pi in einem entfernten Gebäude untergebracht ist. ZYLK kümmerte sich weniger um die Sicherheit, sobald die Nachrichten APISIX erreichten, da das Warteschlangensystem, RabbitMQ, auf ihrem eigenen Server lag. Die Sicherung des ersten Teils der Kommunikation war jedoch entscheidend, um Cybersicherheit und verschlüsselte Nachrichten zu gewährleisten.
4. ML-Modelle: Sobald die Daten in der Cloud sind, werden sie gespeichert und verwendet, um LSTM-Modelle zu trainieren und zu verarbeiten
Schließlich befindet sich in der Cloud ein Kubernetes-Cluster mit der Datenbank NIFI. Die von den industriellen Geräten generierten Daten werden in der Cloud gespeichert und verwendet, um LSTM-Modelle zu trainieren und zu verarbeiten.
Implementierungsprozess
Schritt 1: Aktivieren des Plugins
ZYLK beschreibt die Schritte, die sie unternommen haben, um APISIX als TCP-Proxy zu aktivieren und eine Stream-Route von APISIX zum RabbitMQ-Warteschlangensystem zu erstellen. Zunächst aktivierten sie das MQTT-Proxy-Plugin, indem sie einige Zeilen in der Konfigurationsdatei auskommentierten und den angegebenen Port als Stream-Prozess für TCP-Nachrichten freigaben. Es ist wichtig zu beachten, dass sie durch diese Einrichtung weiterhin alle anderen APISIX-Funktionen nutzen und problemlos mit REST-APIs und dem HTTP-Protokoll arbeiten konnten.
Schritt 2: Erstellen der Stream-Route
Als nächstes erstellte ZYLK die Stream-Route mit einem speziellen Objekt in APISIX, das Straßen ähnelt, aber nicht im Dashboard erscheint. Sie verwendeten einen einfachen Befehl, um das verwendete Plugin, den MQTT-Protokollnamen und die Version sowie den SNI (Server Name Indication) anzugeben, um ihr Zertifikat für eine sichere Kommunikation abzugleichen. Sie spezifizierten den Upstream-Knoten, der den RabbitMQ-Dienst oder ein anderes bevorzugtes Nachrichtenwarteschlangensystem hostet. Die Aktivierung von APISIX als TCP-Proxy und die Einrichtung von Upstream-Routen ermöglichten es ZYLK, MQTT-Nachrichten sicher vom Raspberry Pi zum RabbitMQ-Warteschlangensystem in der Cloud zu senden. Dies gewährleistete die Cybersicherheit und verschlüsselten Nachrichten, die für ihren Anwendungsfall erforderlich waren. Die Möglichkeit, weiterhin andere APISIX-Funktionen zu nutzen und mit REST-APIs und dem HTTP-Protokoll zu arbeiten, machte die Lösung flexibel und anpassungsfähig an ihre Bedürfnisse. ZYLK hat ihre Lösung erfolgreich mit dem Mosquitto-Broker getestet und festgestellt, dass sie einwandfrei funktioniert.
Schritt 3: Signieren und Laden von Zertifikaten
Nach der Erstellung der Stream-Route bestand der nächste Schritt darin, Zertifikate zu erstellen und zu signieren und sie in die APISIX-Instanz zu laden. Sie verwendeten ein Python-Skript, um SSL-Objekte mit dem Zertifikat, dem Schlüssel und dem SNI zu erstellen, wobei sichergestellt wurde, dass der SNI mit dem in der Stream-Route angegebenen übereinstimmte.
ZYLK betont die Bedeutung der korrekten Angabe des SNI. Sobald die Zertifikate geladen waren, wurde eine gegenseitige TLS zwischen Client und Server eingerichtet, wobei beide ihre Zertifikate zeigten. Mit diesem Setup hatte ZYLK eine sichere Kommunikation von APISIX nach außen. Sie konnten auch die Kommunikation zwischen APISIX und ihrem Upstream verschlüsseln, falls erforderlich, entschieden sich jedoch dafür, sie unverschlüsselt zu lassen. ZYLK hat APISIX für andere Anwendungen verwendet und festgestellt, dass das Plugin ihnen zusätzliche Funktionalität bietet. Sie leiteten eingehenden Datenverkehr an MQTT-Broker um, wobei sie bei Bedarf eine Client-ID verwendeten, um Nachrichten in verschiedene Themen zu unterteilen. Auch die MQTT-Authentifizierung war möglich.
Die Verwendung von APISIX und MQTT ermöglichte es ZYLK, einzigartige Probleme zu lösen und ihre Fähigkeiten über typische HTTP-bezogene Probleme hinaus zu erweitern. Durch die Erstellung eines sicheren Kommunikationskanals konnten sie Daten, die von industriellen Geräten generiert wurden, speichern und analysieren und sie zur Schulung von maschinellen Lernmodellen für die vorausschauende Wartung verwenden.
Erfolge nach der Verwendung von APISIX
ZYLK befürwortet APISIX sehr und ist bereit, es ihren Geschäftspartnern zu empfehlen. Wenn Alfonso González APISIX einem Freund beschreiben würde, würde er sagen: „APISIX ist ein Apache-API-Gateway-Dienst, der viele Funktionen für das Routing bietet, einschließlich Authentifizierung, Ratenbegrenzung und Nachverfolgbarkeit.“ Alfonso glaubt, dass APISIX das beste Gateway für APIs ist.
Der Anwendungsfall von ZYLK umfasste industrielle Geräte, industrielle Protokolle, MQTT-Kommunikation und ML-Modelle. Die Vorteile, die ZYLK durch die Verwendung von APISIX erzielte, sind:
1. Sicheres Senden von MQTT-Nachrichten mit APISIX in industriellen Umgebungen
Industrielle Geräte wie PLCs erfassen Daten von Klimasteuerungsmaschinen, die in TCP übersetzt und über MQTT an die Cloud-Server gesendet werden. APISIX wurde verwendet, um MQTT-Nachrichten sicher vom Raspberry Pi zum RabbitMQ-Warteschlangensystem in der Cloud zu senden, wodurch die Cybersicherheit und verschlüsselten Nachrichten gewährleistet wurden, die für ihren Anwendungsfall erforderlich waren.
2. Ermöglichen sicherer Kommunikation mit dem MQTT-Proxy-Plugin und gegenseitiger TLS
ZYLK aktivierte das MQTT-Proxy-Plugin und erstellte eine Stream-Route mit einem speziellen Objekt in APISIX. Sie signierten und luden auch Zertifikate mit einem Python-Skript, wobei sichergestellt wurde, dass der SNI mit dem in der Stream-Route angegebenen übereinstimmte. Durch die Einrichtung einer gegenseitigen TLS zwischen Client und Server konnte ZYLK eine sichere Kommunikation von APISIX nach außen gewährleisten.
3. Erweitern der Fähigkeiten mit APISIX
Die erfolgreiche Implementierung von APISIX und MQTT ermöglichte es ZYLK, einzigartige Probleme zu lösen und ihre Fähigkeiten über typische HTTP-bezogene Probleme hinaus zu erweitern. Sie konnten Daten, die von industriellen Geräten generiert wurden, speichern und analysieren und sie zur Schulung von maschinellen Lernmodellen für die vorausschauende Wartung verwenden.
ZYLK ist bestrebt, an der Spitze ihrer Branche zu bleiben und ihren Kunden die bestmöglichen Lösungen zu bieten. Während sie weiterhin die Herausforderungen der Zukunft bewältigen, werden sie zweifellos neue und innovative Wege finden, Technologien wie APISIX zu nutzen, um ihre Ziele zu erreichen.
Zusammenfassung
Vor der Implementierung von APISIX musste ZYLK ihre Kommunikationsendpunkte einzeln verwalten, was zeitaufwendig und ineffizient war. Sie hatten mehrere Probleme im Zusammenhang mit MQTT-Routing, K8S-Netzwerken und HTTP-Kommunikation.
Nach der Recherche verschiedener API-Gateway-Lösungen entschied sich ZYLK schließlich für die Implementierung von APISIX aufgrund seiner umfassenden Sicherheitsfunktionen, des benutzerfreundlichen Dashboards und der Einfachheit. Mit APISIX konnte ZYLK einen Port des Routers sicher für MQTT-Nachrichtenkommunikation und internes API-Routing freigeben. Sie konnten auch eingehende MQTT-Nachrichten mit mTLS zwischen Client und Server umleiten. ZYLK erlebte auch erhebliche Verbesserungen in ihrer Infrastruktur, was zu Zeit- und Aufwandeinsparungen führte.
In Bezug auf zukünftige Ziele sieht ZYLK Cybersicherheit, die Konvergenz von IT und OT sowie erklärbares Deep Learning als die größten Herausforderungen am Horizont für ihre Branche. In den nächsten sechs Monaten plant das Team, weiterhin an F&E-Projekten zu arbeiten und ihren eigenen IoT-Dienst zu entwickeln.