
Turing Pi ist eine Lösung für selbst gehostete Anwendungen, die nach dem Prinzip von Rack-Servern in einem Rechenzentrum entwickelt wurde, jedoch auf einer kompakten Hauptplatine basiert. Diese Lösung zielt darauf ab, eine lokale Infrastruktur für die lokale Entwicklung und das Hosting von Anwendungen und Diensten aufzubauen. Man könnte sagen, es ist wie AWS EC2, aber für Edge-Computing.
Wir sind ein kleines Team von Entwicklern, das sich entschieden hat, eine Lösung für den Aufbau von Bare-Metal-Clustern am Edge zu schaffen, und haben unser Projekt Turing Pi genannt. Das Produkt hat anfänglich auf der „grünen Wiese“ begonnen. Inzwischen hat es jedoch das Interesse von Entwicklungsabteilungen bei Red Hat, Rancher (SUSE), Toyota Connected, Sony, Electrolux, Facebook geweckt, und wir gewinnen eine Entwicklergemeinschaft mit fast 10.000 Mitgliedern.
Aber alles begann mit einer Entdeckung.
Produktentdeckung
Früher habe ich für mich selbst die Entdeckung gemacht, dass wir nichts neu erfinden. Alle Dinge in dieser Welt müssen entdeckt werden. Wir entdecken, dass wir bestimmte Teile zusammen kombinieren können, um neue Eigenschaften von Produkten zu erhalten, oder wir entdecken Gesetze und kombinieren sie erneut. Nichts kann wirklich erfunden werden, aber während der Erforschung kann man etwas entdecken. Meiner Ansicht nach ist Erfindung das Ergebnis ständiger Beobachtungen, Experimenten und der Suche nach Lösungen sowie der Kombination von Wissen.
In den letzten zehn Jahren habe ich beobachtet, wie die Begeisterung für das Hobby homelab wächst (Ressource ), selbst gehostete (Ressourcen und ), Einplatinencomputer, wie das Interesse an der Ausführung von Containern auf Einplatinencomputern wie dem Raspberry Pi zunimmt, und die Bewegung, Cluster aus Einplatinencomputern zu erstellen, an Fahrt gewinnt. Allmählich wird auch die Idee von Kubernetes dort hinübergetragen. Bereits gibt es seine leichtere Version k3s, die für Edge/IoT optimiert ist. Ein großes Netzwerk von Fastfood-Restaurants, Chick-fil-A, gehörte zu den ersten der Welt, die Kubernetes-Cluster in ihren Küchen betrieben. .
Ich sehe das wie eine Lawine, wie eine Technologie sich um eine andere windet und ein komplexeres System schafft. Dabei gibt es kein Chaos, es ähnelt eher einem Fraktal aus Technologien. In einem der ziemlich schwierigen Momente meines Lebens erkannte ich den Wert von Clustern, die von Hobby-Entwicklern aus Einplatinencomputern aufgebaut werden, und begann mit der Entwicklung einer Clusterplatine.
Heute ist unsere Clusterplatine sehr einfach gehalten und in erster Linie auf diejenigen ausgelegt, die cloud-native Technologien lieben, Neues lernen und experimentieren möchten.
Baukastenelemente (Building Blocks)
Was genau stellt diese Lösung dar? Es geht darum, einen Baukasten, die Baukastenelemente (Building Blocks) bereitzustellen, mit denen eine Edge-Infrastruktur kostengünstiger als mit traditionellen Servern erstellt werden kann. Diese Infrastruktur ist mobil, ohne schwere Metallgehäuse, benötigt keine speziellen Betriebsbedingungen wie Rechenzentren, ist energieeffizient, standardisiert hinsichtlich der Module und ermöglicht eine schnelle Skalierung auf Dutzende und Hunderte von Recheneinheiten (Prozessoren).
Clusterplatine (Clusterboard)
Die Mini-ITX-Platine vereint mehrere Recheneinheiten über ein integriertes Netzwerk, bietet Schnittstellen für Peripheriegeräte und Kontrolle über die Module.
Rechnermodul (Compute Module)
Eine Platine im SO-DIMM-Formfaktor, die einen Prozessor und RAM enthält, optional mit Flash-Speicher zur Speicherung des Betriebssystems.

Eine der geplanten Konfigurationen der Turing V2-Version.

Durch die Kombination von Clusterplatinen und Recheneinheiten lässt sich ganz einfach eine Infrastruktur mit mehr als 20 Prozessoren (Beispiele unten) schaffen, die leise und energieeffizient ist. Die Clusterplatine selbst erhöht die Effizienz des genutzten Volumens. Beispiele für Cluster zum Vergleich.
SBC basiert*

24 CPUs
Autor: Afkham Azeez
Basierend auf Turing Pi

21 CPUs
Autor
* SBC — Single Board Computer
Der Mitgründer von Rancher Labs und Autor von k3s war von diesem Ansatz nicht unbeeindruckt.

Im Folgenden geben wir mehr Details zu den Bausteinen.
Recheneinheit (Compute Module)
Für den Proof of Concept wählten wir das Raspberry Pi Compute Module, da dies die ideale Konfiguration für den Start ist. Die RPi-Community ist aktiv, es gibt keine Softwareprobleme, das Modul hat das SO-DIMM-Format (6 x 3 cm), ist preiswert und enthält einen 4-Core-CPU, 1 GB RAM und optionalen Flash-Speicher mit 8, 16 oder 32 GB für das Betriebssystem und andere systembezogene Bedürfnisse. Ein ähnlicher Formfaktor wird häufig in industriellen IoT-Lösungen verwendet.
Raspberry Pi 1/3/3+ Compute Module

Die CM3-Modelle haben jedoch ernsthafte Einschränkungen – maximal 1 GB RAM und Ethernet über einen USB-HUB mit einer maximalen Geschwindigkeit von bis zu 100 Mbps. Daher wird die zweite Version von Turing Raspberry Pi 4 unterstützen und bis zu 8 GB RAM pro Modul bieten. Unten sehen Sie Beispiele für Nvidia Jetson-Module für beschleunigte Berechnungen. Möglicherweise wird deren Unterstützung in der zweiten Version verfügbar sein, wenn wir einige technische Herausforderungen lösen, dann können Module gemischt werden.
Nvidia Jetson Compute-Module

In den Modulen verbirgt sich die wichtigste Möglichkeit, die auf den ersten Blick nicht offensichtlich ist. Die Möglichkeit, andere Module in einem ähnlichen Formfaktor mit unterschiedlichen CPU-, RAM- und eMMC-Konfigurationen für verschiedene Anwendungstypen von allgemeiner Berechnung bis hin zu rechenintensiven maschinellen Lernprozessen zu erstellen. Das ähnelt stark den AWS EC2-Instanzen, jedoch für Edge-Anwendungen. Dabei bleibt die Clusterplatine unverändert oder erfährt nur geringfügige Anpassungen.
Clusterplatine (Clusterboard)
Es kann auch als Hauptplatine oder Basisplatine bezeichnet werden. Dieses Gebiet ist relativ neu, und es gibt nicht viele Hersteller solcher Lösungen, die sich noch in einer frühen Phase befinden, darunter Pine64, MiniNodes, Clover Pi, Bitscope Blade und PicoCluster (SBC-Cluster). Die Clusterplatine verbindet die Module über ein Netzwerk, versorgt sie mit Strom und stellt einen Cluster-Management-Bus zur Verfügung. Zumindest haben wir beschlossen, diesen Bus hinzuzufügen, und er scheint sich bewährt zu haben.
Vorderseite

Zurück

Backplane-Bandbreite 12 Gbps
SD-Slots für Module ohne eMMC; zum Beispiel können Sie ein paar Module mit SD für einen schnellen Zugriff auf die Knoten-Daten halten.
Das Herzstück der Clusterplatine ist ein Switch-Chip, der die Netzwerkverbindung der Module und den Zugang zum externen Netzwerk ermöglicht. In der aktuellen Version verwenden wir einen unmanaged Switch, da die Zeit für umfassende Forschung und Entwicklung fehlte. Für die zweite Version haben wir jedoch einen soliden managed Switch ausgewählt. Eine Konfiguration im Modus 'Master-Node als Router' für die Verteilung des Netzwerks auf die Platine ist möglich, wenn ein höheres Maß an Sicherheit und Isolierung der Worker vom äußeren Zugriff erforderlich ist. In diesem Fall muss auf der Master-Node auch ein DHCP-Server betrieben werden.
Anwendung
Die aktuelle Version ist experimentell und wir positionieren sie als Einstiegslösung, um zu verstehen, was Cluster sind, um mit Software zu arbeiten oder um Hypothesen in Organisationen zu testen, neue Ideen zu entwickeln – kurz gesagt, eine Lite-Version.
Um zu beginnen, empfehlen wir die Serie des großartigen Jeff Geerling, der über uns bei Y Combinator gelesen hat. Er ist der Autor des Bestsellers 'Ansible for DevOps'. Er war so inspiriert, dass er eine 6-teilige Reihe gemacht hat, die von der Idee der Clusterbildung bis zu praktischen Beispielen für die Nutzung von Hardware, dem Lernen von Kubernetes und der installation von Software reicht.
Serie über die Installation von k3s auf einem Cluster

Ich empfehle wirklich, mit der ersten Folge zu beginnen. Dort wird insgesamt über Clusterbildung und Kubernetes in verständlicher Sprache gesprochen. Und ein paar Bilder aus der Community sind auch enthalten.

Wie geht es weiter?
Zunächst einmal hoffe ich, dass es interessant war. Dies ist absolut eigenschöpferischer Inhalt, ein Versuch, über den Horizont hinauszublicken. Zweitens plane ich, einen zweiten Teil über das Design von Turing V2 zu schreiben. Wie die Produktsuche verlief, logische Überlegungen und das Finden der wichtigsten Eigenschaften, die wichtig sind. Der Artikel wird Skizzen des Produkts von den frühesten bis zu den finalen Versionen enthalten. Der zweite Artikel wird besonders für Produktmanager, die für Produkte und deren Entwicklung in Unternehmen verantwortlich sind, von Interesse sein.
Und es wird wahrscheinlich ein echtes Long Read sein.
Quelle: habr.com
