Mit der Einführung von Cloud Computing vor etwas mehr als einem Jahrzehnt ist es einfach geworden, Computing-Ressourcen (Speicher, Rechenleistung, Netzwerk) in beliebiger Größe zu erwerben, solange man bereit ist, dafür zu bezahlen. Doch während es einfach ist, groß angelegte Berechnungen über die Cloud-Computing-Plattform Ihrer Wahl durchzuführen, bedeutet dies nicht zwangsläufig, dass sich die Kosten lohnen.

Datenberge

Bei Lokad berechnen wir unseren Kunden keine Kosten pro GB Speicher oder pro CPU pro Stunde. Stattdessen ist der Hauptfaktor für unsere Preisgestaltung, wenn Sie sich für unsere professionellen Dienstleistungen entscheiden, die Komplexität der zu bewältigenden Herausforderung in der Supply Chain. Natürlich berücksichtigen wir die Computing-Ressourcen, die wir benötigen, um unsere Kunden zu bedienen, in unseren Preisen. Letztendlich ist jedoch jeder Euro, den wir für Microsoft Azure ausgeben - ausgabenmäßig sind wir ein “echter” Unternehmenskunde geworden - ein Euro, den wir nicht für Forschung und Entwicklung oder für den Supply Chain Scientist ausgeben können, der sich um das Konto kümmert.

Daher wurde die Lokad-Softwareplattform unter dem Leitgedanken entwickelt, dass wir in Bezug auf Computing-Ressourcen so schlank wie möglich sein sollten[^Anreiz]. Die Herausforderung besteht nicht darin, 1 TB Daten zu verarbeiten - das ist einfach -, sondern 1 TB Daten so kostengünstig wie möglich zu verarbeiten. Dies führte uns zu einer Reihe von etwas “ungewöhnlichen” Entscheidungen bei der Gestaltung von Lokad.

Diff-Ausführungsgraphen. Supply Chain Scientists - wie andere Datenwissenschaftler auch - schreiben in der Regel nicht Hunderte von Codezeilen auf einmal, bevor sie ihren Code gegen die Daten testen. Der Prozess ist in der Regel stark inkrementell: ein paar Zeilen hinzufügen, die Daten verarbeiten, wiederholen. Diese Iterationen sind erforderlich, da die aus den Daten erhaltenen Ergebnisse häufig bestimmen, was der Datenwissenschaftler als Nächstes tun wird. Die meisten Data-Science-Tools (z. B. NumPy oder R) berechnen jedoch bei jeder erneuten Ausführung das gesamte Ergebnis neu. Im Gegensatz dazu führt Envision eine Diff-Analyse über aufeinanderfolgende Ausführungsgraphen durch. Im Gegensatz zu einem herkömmlichen Diff, das Unterschiede zwischen Dateien findet, findet unser Diff Unterschiede zwischen Berechnungsgraphen: Das Diff identifiziert die neuen Berechnungsknoten, die noch berechnet werden müssen. Für alle anderen Knoten wurden die Ergebnisse bereits berechnet und werden stattdessen “recycelt”. Für den Supply Chain Scientist sieht das Diffing der Ausführungsgraphen aus wie ein extrem schneller Vorgang, bei dem Terabytes an Daten in Sekunden verarbeitet werden (Hinweis: Lokad hat keine Terabytes in Sekunden verarbeitet, sondern nur die wenigen hundert Megabytes, die sich von einem Skript zum nächsten unterschieden).

Domänenspezifische Datentypen. Die probabilistische Vorhersage ist ein bahnbrechender Ansatz für die Supply Chain: Betrachten wir alle möglichen Zukunftsszenarien, anstatt eine Zukunft zu wählen, als ob sie garantiert eintreten würde. Leider erfordert die Verarbeitung von Wahrscheinlichkeitsverteilungen eine Algebra von Verteilungen, die nicht-triviale Berechnungen beinhaltet. Daher haben wir erhebliche Anstrengungen unternommen, um diese Algebra zu optimieren und große Operationen über Zufallsvariablen mit minimalen CPU-Kosten durchzuführen. Insbesondere berücksichtigen wir aggressiv die Tatsache, dass in der Supply Chain die meisten Zufallsvariablen Wahrscheinlichkeiten in kleinen Mengen darstellen, in der Regel nicht mehr als einige Dutzend Einheiten[^Spärlichkeit]. Im Vergleich zu generischen Ansätzen, die beispielsweise für wissenschaftliches Rechnen gedacht sind, bietet der domänenspezifische Ansatz eine um zwei Größenordnungen schnellere Berechnungsgeschwindigkeit.

Defensive Skalierbarkeit. Die meisten Programmiersprachen, die für die Verarbeitung großer Datenmengen gedacht sind (z. B. Scala oder Julia), bieten enorme Möglichkeiten, Berechnungen auf viele Knoten zu verteilen. Dies bedeutet jedoch, dass jede geschriebene Codezeile die Möglichkeit hat, eine beliebig große Menge an Rechenressourcen zu verbrauchen. Es erfordert viel Ingenieursdisziplin, den scheinbar immer größer werdenden Anforderungen der Anwendung entgegenzuwirken, wenn Änderungen in die Anwendung einfließen. Im Gegensatz dazu nimmt Envision eine defensive Haltung ein: Die Sprache wurde so entwickelt, dass Supply Chain Scientists davon abgehalten werden, Code zu schreiben, der enorm teuer zu skalieren wäre. Dies erklärt, warum Envision beispielsweise keine Schleifen enthält, da es nahezu unmöglich ist, bei der Kompilierung eine vorhersagbare Leistung zu bieten, wenn die Sprache beliebige Schleifen enthält.

Nur Key-Value-Speicher. Blob Storage1 ist der kostengünstigste Ansatz für die Datenspeicherung in der Cloud, wobei die Preise auf etwa 20 US-Dollar pro TB pro Monat sinken können. Lokad arbeitet direkt über Blob Storage (zusätzlich zu lokalen Festplatten für den Cache), wir haben keine relationalen Datenbanken oder NoSQL-Datenbanken - außer denen, die wir selbst auf Basis von Blob Storage entwickelt haben. In der Praxis ist unsere Speicherschicht eng mit Envision integriert, der Sprache, die der Optimierung der Quantitativen Supply Chain in Lokad gewidmet ist. Dadurch können wir Schichten von Overhead vermeiden, die traditionell an der Schnittstelle zwischen Anwendung und Datenzugriffsschicht vorhanden sind. Anstatt die Reibung an den Grenzen mikrozuoptimieren, haben wir diese Grenzen vollständig entfernt.

Obwohl es für große Lieferketten möglicherweise nur eine “technische Frage” ist, eine schlanke skalierbare Datenverarbeitung für Ihre Lieferkette zu erreichen, ist der IT-Aufwand für die Verarbeitung von Terabytes an Daten real. Häufig ist das System entweder zu teuer oder zu langsam, und die Reibung frisst einen großen Teil der beabsichtigten Vorteile, die das System überhaupt erst generiert. Die Kosten für Cloud Computing sinken zwar weiter, aber erwarten Sie nicht mehr als 20% pro Jahr. Daher ist es keine Option mehr, einfach den allgemeinen Fortschritt der Hardware abzuwarten, es sei denn, Sie sind bereit, Ihre datengesteuerte Lieferkette um ein weiteres Jahrzehnt oder so zu verzögern.

Sie können auch die von uns produzierte Lokad TV-Episode über Terabyte-Skalierbarkeit für Lieferketten ansehen.


  1. Blob Storage in Azure ist ein einfacher Key-Value-Speicher. Nahezu jeder Cloud-Anbieter bietet einen ähnlichen Dienst an. Amazon hat das Gebiet mit seinem S3-Dienst pioniert. Google bezeichnet diesen Dienst als Cloud Storage↩︎