Cloud-natives Computing ermöglicht wissenschaftliches Wissensmanagement über alle relevanten Informationen seit Anbeginn der Zeit
Kunde
Der Kunde ist eines der größten Unternehmen der Welt, das seit seiner Gründung kontinuierlich einen beträchtlichen Teil seiner finanziellen Mittel in Forschung und Entwicklung investiert hat.
Herausforderung
Die Produktion von eigenen Veröffentlichungen, Patenten und Forschungsberichten zusammen mit wissenschaftlichen Publikationen hat im Laufe der Zeit zu einer heterogenen Landschaft von mehreren "Big Data"-Wissenssystemen geführt. Forscher, die an der Entdeckung neuer Materialien und Prozesse arbeiten, benötigen die Verfügbarkeit des gesamten Unternehmenswissens zur Suche und zum Vergleich in einem einzigen System. Eine typische detaillierte Suche und Analyse würde einen erheblichen Zeit- und Arbeitsaufwand erfordern.
Die Software-Architektur für das eigentliche Produkt bedurfte einer sorgfältigen Überlegung, insbesondere aufgrund der nicht-funktionalen Anforderungen. Da das System in der Lage sein sollte, Anfragen im Rahmen des gesamten Unternehmenswissens seit Anbeginn der Zeit zu beantworten, musste das System in der Lage sein, enorme Datenmengen zu verarbeiten. Das System sollte in der Lage sein, in regelmäßigen Abständen große Mengen neuer Daten aufzunehmen und anschließend die neuen Daten im Kontext der bestehenden Daten zu verarbeiten und die aufbereiteten Ergebnisse ohne nennenswerte Leistungseinbußen zu schreiben. Teile der Daten sind vertraulich und erforderten ein entsprechendes Sicherheitskonzept.
Von der ersten Analyse an war klar, dass das System hohe dynamische Anforderungen an die Rechenressourcen stellen würde, da die Datenverarbeitung einen 10- bis 20-mal höheren Rechenbedarf hat als normale Suchvorgänge. Die Datenlieferung und die erneute Verarbeitung der Dokumente würden nur alle paar Tage erfolgen, was eine dynamische Skalierung zwingend erforderlich macht. Es war offensichtlich, dass dieses System von der Nutzung eines Cloud-Anbieters mit einem Pay-as-you-use-Modell profitieren würde, wenn es finanziell tragfähig sein sollte. Aufgrund der Kombination aus verfügbaren Sicherheitskonzepten und -diensten, wie beispielsweise Azure Information Protection, wurde die Microsoft Azure Cloud für das Hosting der endgültigen Anwendung ausgewählt.
Ergebnis
Die Anwendung wurde unter Verwendung der aktuellen Software-Architekturprinzipien und nativer Cloud-Technologien entwickelt. Der zentrale Wissensgraphen-Teil der Anwendung basiert auf der Graphen-Datenbank Neo4j, auf die über eine mit Spring Boot erstellte Microservice-basierte Architektur zugegriffen wird. Docker wird verwendet, um die Anwendung in Container-Images zu verpacken, die anschließend auf einem Kubernetes-Cluster unter Verwendung des Azure Kubernetes Service ausgeführt werden. Für die kontinuierliche Integration und die Verwaltung des Kubernetes-Clusters wird ein GitOps-Ansatz verwendet, bei dem Terraform als Technologie für die Beschreibung der gesamten Infrastruktur als Code eingesetzt wird. Terraform-Skripte werden unter der vollen Kontrolle des Kunden mit menschlichen Genehmigungsschritten ausgeführt. Weitere nennenswerte Komponenten der Anwendung sind Azure Blob Storage für die Speicherung von Binärobjekten, Elastic Search als Engine hinter dem Volltextindex und ChemAxon-Tools für die molekulare Substruktursuche.
Die laufende Anwendung wird mit den Metrik-Analyse- und Visualisierungssuiten Grafana und Prometheus überwacht. Im Normalbetrieb werden zehn Kubernetes-Cluster-Knoten für die Ausführung der Kerndatenbanken, Suchvorgänge und die Benutzeroberfläche für Endbenutzeranfragen benötigt. Nach der Lieferung neuer Daten wird die Anwendung automatisch auf etwa 150 Knoten für die Datenverarbeitung skaliert. Unter diesen Bedingungen belaufen sich die erforderlichen Rechenressourcen auf etwa 2300 CPU-Kerne und 16 Terabyte RAM.
Die massiven Datenmengen, die verarbeitet werden müssen, und die extrem dynamischen Anforderungen an die Rechenressourcen schlossen es aus, eine solche Anwendung in den Räumlichkeiten des Kunden zu hosten. Obwohl ein Großteil der zu verarbeitenden Daten als vertraulich eingestuft ist, konnte dieses System unter den Gesichtspunkten der Markteinführung und der finanziellen Rentabilität nur in einer Cloud-Umgebung mit zeitlich begrenzten Pay-per-Use-Ressourcen gehostet werden. Die gesamte Umgebung wurde von einem externen IT-Sicherheitsunternehmen geprüft und mit Azure Information Protection kombiniert, was bedeutet, dass alle heruntergeladenen Dokumente verschlüsselt sind und von den Mitarbeitern des Unternehmens nach einem Zwei-Faktor-Authentifizierungsverfahren eingesehen oder bearbeitet werden können.
Damit ist dieses Projekt ein Paradebeispiel dafür, dass Cloud Computing Systeme und Ziele ermöglicht, die sonst nicht realisierbar wären, und es ist ein hervorragendes Vorbild für nachfolgende Cloud-Native-Projekte.