Servertechnologie und Computing

Container

Container, bekannt vor allem durch Projekte wie »Docker«, sind vereinfacht gesagt eine Möglichkeit, Applikationen unabhängig vom Betriebssystems und auf Basis von gemeinsamen Templates (sog. »Images«) zu erstellen. Ein Container besteht dabei im Wesentlichen aus drei Schichten: einem »Image« (dem eigentlichen Template, ähnlich einer Klasse bei Objektorientierter Programmierung), einem Container (einer Art funktionsspezifischen read-only-Kopie des Templates) sowie einer anwendungsspezifischen (bzw. containerspezifischen) Datenschicht in der die Daten mit Schreibrecht abgelegt werden. Das gesamte Konzept ist relativ komplex und wird hier nur sehr unzureichend beschrieben, ermöglicht aber sehr elegante DevOps-Konzepte und Anwendungsportabilität.

Microservices

Anwendungen bestehen aus vielen einzelnen Funktionsblöcken, die untereinander kommunizieren. Werden solche Funktionen ausreichend abgegrenzt definiert und als eigene Anwendung erstellt, lassen sich diese Funktionsblöcke auch für unterschiedliche Anwendungen gemeinsam nutzen (im weitesten Sinne ähnlich der Vererbung bei der Objektorientierten Programmierung). Ein sehr, sehr stark vereinfachtes Vergleichsmodell wäre ein Service welcher Statusmails verschickt, der sowohl von einem Backupprogramm als auch von der Fahrstuhlsteuerung oder der Zisternensteuerung verwendet werden kann, ohne in jeder Anwendung neu geschrieben werden zu müssen. Microservices können dabei in beinahe beliebiger Weise (z. B. als Unix Daemon, Windows Service, Webservice, etc.) realisiert werden.

Edge Computing

Milliarden von IoT Geräten erzeugen enorm große und meistens unstrukturierte Datenmengen, die schnell verarbeitet werden müssen, um daraus wertvolle Erkenntnisse zu gewinnen. Der Ansatz von »Edge Computing« besteht darin, den größten Teil der zu erfüllenden Aufgaben nicht in einem zentralen Rechenzentrum zu bewältigen, sondern an dem Ort zu erledigen, an dem die Daten entstehen, sofern der Anwendungsfall dies erlaubt und die informationstechnischen Anforderungen erfüllt werden können.

Neuromorphic Computing

Neuromorphic Computing beschäftigt sich mit biologisch inspirierter Physik, Mathematik, Informatik und Ingenieurwissenschaften zur Entwicklung neuronaler Hardwarearchitekturen, welche sich von Turing Modellen grundsätzlich unterscheiden. Diese neuen Technologien stellen modulare Erweiterungen zu einem klassischen von-Neumann-Rechner dar und sollen effizienter neuronale Netzwerkentwicklung unterstützen bzgl. Geschwindigkeit, Energieeffizienz und Programmierbarkeit.

Neuromorpic Processing Units (NPUs) sind dem menschlichen Gehirn in der Funktionsweise nachempfunden und können als einzelne Einheiten in mobilien Geräten z.B. für Sprach- oder Bilderkennung oder in großen Clusterumgebungen für Mustererkennung, Big Data und KI eingesetzt werden. Der wesentliche Unterschied zu klassischen Prozessoren ist die hohe Vernetzung innerhalb der NPUs mit Möglichkeiten der Rückkoppelung.

Eine Erweiterung von Supercomputern durch Neuromorphic Module ermöglicht es, Systemarchitekturen zu entwickeln, um exascale-Leistung zu erreichen, wo ein klassischer Exaflop Rechner alleine am Stromverbrauch scheitern würde.

Das Bild stellt die Analogie der Signalverarbeitung in biologischen Nervenzellen und in neuronalen Netzen dar. Ein über eine Synapse eingespeistes Eingangssignal wird über eine oder mehrere Verarbeitungsschichten in ein Ausgangssignal transformiert. Die Transformation kann man sich vereinfacht als eine mit individuellen Faktoren gewichtete Überlagerung aller Eingangsgrößen vorstellen. Die kontrollierte Anpassung der Gewichte bildet den Lernprozess des neuronalen Netzes ab.

Quantum Computing

In der IT wird immer mehr das Thema Quantum Computing diskutiert, nachdem die ersten Systeme für die Privatwirtschaft in greifbare Nähe geraten sind.

Jedes Qubit kann in einem Zustand von sowohl "0" als auch "1" sein, so dass N Qubits 2N Zustände darstellen können.

Ein Quantencomputer oder Quantenrechner basiert auf den Gesetzen der Quantenmechanik und ist mit einer klassischen Von-Neumann-Architektur nicht vergleichbar. Ähnlich wie in einem klassischen Rechner, werden Quantenbits (Qubits) als kleinste Informationseinheit verwendet. Aufgrund des sogenannten Superpositionsprinzips kann ein Qubit während der Rechenzeit eine beliebige Überlagerung der Zustände 0 und 1 annehmen. Durch die Verschränkung von N Qubits können 2N Zustände parallel dargestellt und verarbeitet werden. Damit können Problembereiche adressiert werden, welche ein klassischer Computer in einer überschaubaren Zeit nicht mehr handhaben kann. Man geht davon aus, dass ein universeller Quantencomputer mit 50 Qubits nicht mehr von einem heutigen klassischen Rechner simuliert werden kann.

Ein Quantencomputer wird aber nicht die klassischen von-Neumann-Rechner ablösen. Es gibt Problembereiche wie z. B. ERP, Webhosting, Visualisierung, in denen ein Quantencomputer wohl keine Vorteile bringt. Wenn es aber um die Simulation von Molekülen, Optimierungsproblemen wie den „Traveling Salesman“, Machine Learning oder aber auch um die Suche in großen unstrukturierten Datenmengen geht, kann Quantum Computing seine exponentiellen Skalierungsfähigkeiten ausspielen.

Quantencomputer werden immer eng mit klassischen Von-Neumann-Rechnern integriert sein und sich gegenseitig ergänzen.

Quantum Computing wird zusammen mit anderen Quantentechnologien, wie der Quantenkryptographie, zu einer „Revolution“ in der Informationsverarbeitung führen und gänzlich neue Themengebiete öffnen.