Der TechTalkThursday #22 fand am 5. Dezember 2024 um 18 Uhr bei uns im Büro statt. Wir freuten uns, zwei externe Redner und einen 9er als Speaker begrüssen zu dürfen. Am Event nahmen rund 40 Personen teil, darunter einige Nine-Mitarbeitende, aber auch einige Gäste der Referierenden und viele externe Teilnehmende, die sich für die Themen Kubernetes in Krankenhäusern, das Erstellen generativer KI-gestützter Apps mit MongoDB Atlas und Service Mesh interessierten.
Neben der Tatsache, dass wir die Veranstaltung seit langem wieder einmal live auf YouTube gestreamt haben, waren wir auch sehr stolz darauf, unser zweites Deploio-Bier, «Deploibroi 2.0», zu präsentieren. Nach dem Erfolg des ersten Bieres, das wir in Zusammenarbeit mit der Renuo AG, unserem Deploio-Partner, und der Braugenossenschaft Gsöff in Zürich kreiert haben, enttäuschte auch die zweite Version nicht: Das Bier kam bei allen sehr gut an.
Thomas Hug, Gründer und CEO von Nine, eröffnete die Veranstaltung mit einer kurzen Einführung und stellte die Referenten und ihre Themen vor. Die drei Speaker waren Dan Acristinii, Product Manager Edge Infrastructure bei Roche, Daniel Lorch, Senior Solutions Architect bei MongoDB, und Sebastian Nickel, Senior Engineer Platform bei Nine.
Kubernetes in Krankenhäusern: Wie Roche Edge-Cluster weltweit verwaltet
Dans Vortrag drehte sich um die Verwendung von Kubernetes durch Roche in Gesundheitseinrichtungsumgebungen, insbesondere in Krankenhäusern und Laboren. Er erläuterte, wie Roche Edge Computing zur Verwaltung medizinischer Diagnosen einsetzt und eine effiziente Datenverarbeitung unter Einhaltung der Vorschriften im Gesundheitswesen sicherstellt.
Er sprach über die Navify-Plattform, die interne Plattform von Roche für digitale Gesundheitslösungen, die Diagnoseprozesse in Laboren und Krankenhäusern unterstützt. Sie verarbeitet Daten lokal in Edge-Clustern, anstatt sich auf die Cloud zu verlassen, und minimiert so Latenzzeiten, Bandbreitenprobleme und rechtliche Bedenken. Dan erwähnte auch das Edge Computing, bei dem kleine Computer eingesetzt werden, die nicht direkt mit den Diagnosegeräten verbunden sind, sondern für die Verarbeitung und Überwachung der Gerätedaten zuständig sind. Er wies darauf hin, dass Edge-Cluster eine sichere und effiziente Datenverarbeitung ermöglichen und die Abhängigkeit von direkten Geräteaktualisierungen vermeiden, die eine strenge medizinische Compliance erfordern.
Dann tauchte er in die technische Infrastruktur ein, wo Roche Kubernetes für die eigene Cloud-native Architektur einsetzt. Edge-Cluster werden global über von AWS gehostete Dienste verwaltet, wobei Updates über einen optimierten Prozess bereitgestellt werden. Talos OS, ein Kubernetes-spezifisches Betriebssystem ohne Shell-Zugriff, wird zur Verbesserung der Sicherheit und Funktionalität eingesetzt. Und Cilium wird für fortschrittliche Netzwerkfunktionen genutzt, einschliesslich der Datenverkehrskontrolle und des sicheren API-Zugriffs, wodurch die Belastung der Anwendungsteams durch die Konfiguration von Firewalls oder die direkte Verwaltung der Konnektivität verringert wird. Dan erwähnte auch, dass die lokale Datenverarbeitung bei Roche den Datenschutz gewährleistet und Komplikationen bei der Einhaltung von Vorschriften vermeidet, wenn sensible Patientendaten in die Cloud verlagert werden. Edge Computing löst auch Bandbreitenbeschränkungen in bestimmten Bereichen und bietet geringere Latenzzeiten für kritische medizinische Abläufe.
Anschliessend sprach er über einige Herausforderungen und deren Lösungen rund um Kubernetes in Krankenhäusern. So müssen beispielsweise einige Implementierungen in Umgebungen mit Luftschleusen oder eingeschränkter Konnektivität durchgeführt werden, was spezielle Netzwerk- und Orchestrierungslösungen erfordert. Darüber hinaus hat Roche eigene Tools entwickelt, um mit den Einschränkungen von Rancher umzugehen und die Verwaltung zahlreicher unverbundener Kubernetes-Cluster weltweit zu ermöglichen. Laut Dan hat Roche zu Open-Source-Projekten beigetragen, wie zum Beispiel zu den unternehmenstauglichen Funktionen von Cilium. Terraform und andere moderne Infrastructure-as-Code-Tools spielen eine entscheidende Rolle bei der Bereitstellung und Wartung von Edge-Clustern.
Dan beendete seinen Talk mit einem Hinweis auf den breit angelegten Vorstoss von Roche in den Bereich der digitalen Produkte und Software, der die pharmazeutische und diagnostische Arbeit des Unternehmens ergänzt. Die von ihm vorgestellte Architektur ist ein Beispiel für Skalierbarkeit, Compliance und Innovation in der Gesundheitstechnologie.
Generative KI-gestützte Apps mit MongoDB Atlas erstellen
Dann war Daniel an der Reihe. Er konzentrierte sich auf MongoDB Atlas, Vektorsuche und Anwendungen in KI-gestützten Systemen. Er stellte zunächst MongoDB vor und erläuterte, dass es sich um eine dokumentenbasierte Datenbank handelt, die Informationen als strukturierte Dokumente speichert und im Vergleich zu herkömmlichen relationalen Datenbanken Flexibilität und Geschwindigkeit bietet. Atlas, die Cloud-basierte Plattform von MongoDB, unterstützt Funktionen wie Geodaten, Zeitserienmanagement, Volltextsuche und Integrationen für verteilte und synchronisierte Umgebungen.
Wie Daniel weiter ausführte, erleichtert Atlas die Integration von grossen Sprachmodellen (LLMs) in KI-gestützte Anwendungen durch Speicherung und Abruf von Vektoreinbettungen. Diese Einbettungen kodieren die Bedeutung von unstrukturierten Daten (beispielsweise Text, Bilder oder Audio) in Vektoren für eine effiziente Verarbeitung und Abfrage. Darüber hinaus ermöglicht die Vektorsuche das Auffinden ähnlicher Datenpunkte durch den Vergleich von Einbettungen, was für LLMs nützlich ist, um kontextabhängige Antworten zu generieren. Der Retrieval-Augmented-Generation-(RAG)-Ansatz kombiniert vortrainierte LLMs mit personalisierten, kontextspezifischen Daten, um die Genauigkeit bei der Beantwortung von Benutzeranfragen zu erhöhen.
Daniel zeigte einen Chatbot, der MongoDB Atlas für vektorbasierte Abfragen nutzt, um sinnvolle und relevante Antworten zu geben. Das System nimmt Daten aus Quellen wie Sitemaps auf, verarbeitet sie zu Vektoren und integriert sie in Prompts, um Antworten mit LLMs zu generieren. Die wichtigsten Vorteile sind, dass die Schemaflexibilität von MongoDB hybride Suchvorgänge ermöglicht, bei denen Schlüsselwort- und vektorbasierte Abfragen kombiniert werden. Ausserdem unterstützt die Plattform erweiterte Abfragen, die massgeschneiderte KI-Anwendungen in Bereichen wie Kundenservice, personalisierte Empfehlungen und Datenanalyse ermöglichen.
Er schloss seinen Vortrag mit einigen Worten über Tools und Frameworks im Rahmen von MongoDB Atlas. Er sagte, dass MongoDB Open-Source-Frameworks für die Erstellung von Chatbots und KI-Integrationen mit LLMs anbietet. Diese Tools vereinfachen die Aufnahme-, Indizierungs- und Abfrageprozesse, verringern die Einrichtungszeit und ermöglichen eine schnellere Bereitstellung von KI-Systemen. Zum Schluss zeigte Daniel einige praktische Demonstrationen, in denen er die Rolle von MongoDB Atlas bei der Entwicklung von KI-Anwendungen durch robuste Datenverwaltung und Integration mit LLMs hervorhob.
Service Mesh = Service-Chaos?
Nicks Präsentation war die letzte der drei beim TechTalkThursday #22. Er legte das Hauptaugenmerk auf die Herausforderungen, Lösungen und Erfahrungen bei der Implementierung von Service Mesh für nahtlose Konnektivität zwischen Services in Kubernetes-Clustern und virtuellen Maschinen (VMs). Der Vortrag zeigte die Entwicklung des Ansatzes von Nine für Service Mesh und die damit verbundenen technischen Überlegungen auf.
Das Problem bei Nine war, dass die Verbindung von Diensten zwischen Kubernetes-Clustern, VMs und anderen Systemen aufgrund von Problemen wie dynamischen IP-Adressen, fehlender Verschlüsselung und Firewall-Beschränkungen schwierig war. Daher waren klassische Netzwerkansätze wie statische IP-Zuweisungen oder öffentliche IPs mit dynamischen Firewall-Regeln nicht ausreichend.
Die ersten Versuche, die Probleme zu lösen, begannen 2021. Frühe Auswertungen von Service-Mesh-Tools wie Cilium External Workloads, Kilo und Kuma zeigten Grenzen auf:
- Cilium: Erforderte ein umfangreiches Subnetzmanagement und erfüllte die Anforderungen nicht vollständig
- Kilo: WireGuard-basiert, aber abhängig von einem Leader Pod, was die Automatisierung erschwerte
- Kuma: Bietet Multicluster-Unterstützung, hat aber Sicherheits- und Komplexitätsprobleme
Das Team rund um Nick gab diese ersten Versuche aufgrund der hohen Komplexität und der Sicherheitseinschränkungen auf.
Zwei Jahre später wurde ein zweiter Versuch unternommen. Nine griff das Problem mit Istio, einer bekannten Service-Mesh-Lösung, erneut auf. Istio ist leistungsfähig, aber übermässig komplex, und es gab Probleme bei der Fehlersuche und der Verwaltung der Konfiguration (zum Beispiel bei der Handhabung von Identität und MTLS über Spiffy/Spire). Als vorübergehende Lösung wurden statische Egress-IPs eingeführt, die es den Diensten ermöglichten, feste IPs für die externe Konnektivität zu verwenden.
In einem dritten Versuch im Jahr 2024 untersuchte Nine dann Linkerd und Istio Ambient Mesh als mögliche Alternativen. Linkerd erwies sich aufgrund seiner Einfachheit, des Fehlens einer globalen Steuerebene und der Fähigkeit zur Dienstspiegelung als vielversprechend, scheiterte jedoch an Namespace-Konflikten. Istio Ambient Mesh reduzierte die Komplexität, wurde aber durch unklare Dokumentation und Probleme mit Netzwerkrichtlinien behindert.
Dann kam endlich der Durchbruch: Nine wechselte zu Tailscale, einer auf WireGuard basierenden Full-Mesh-Networking-Lösung mit einem zentralen Kontrollserver. Die Vorteile sind zahlreich:
- Minimale Konfiguration für Kubernetes-Dienste erforderlich
- Eingebautes DNS für nahtlose Service-Erkennung
- Keine zusätzlichen IPv4-Adressen erforderlich, da vorhandene öffentliche IPs genutzt werden
- Zu den Einschränkungen gehören Kompatibilitätsprobleme mit Open-Source-Alternativen wie HeadScale
Nach jahrelangem Experimentieren mit verschiedenen Service-Mesh-Technologien kristallisierte sich Tailscale als eine einfachere, effektive Lösung für viele Anwendungsfälle heraus. Die Suche nach einem idealen, langfristigen Service Mesh geht jedoch weiter, wobei ein Gleichgewicht zwischen Komplexität, Sicherheit und Funktionalität gefunden werden muss. Am Ende bot Nicks Vortrag einen spannenden Einblick in und Überblick über den iterativen Prozess und hob den Wert der Persistenz hervor
Möchten Sie up-to-date bleiben?
Abonnieren Sie unsere YouTube-Kanal und besuchen Sie den Blog unserer Website regelmässig.