Turing Pi — Clusterplatine für self-hosted Anwendungen und Dienste

Turing Pi — Clusterplatine für self-hosted Anwendungen und Dienste

Turing Pi ist eine Lösung für self-hosted Anwendungen, die nach dem Rack-Standardsatz in Rechenzentren aufgebaut ist, jedoch auf einer kompakten Hauptplatine. Die Lösung richtet sich an den Aufbau einer lokalen Infrastruktur für die lokale Entwicklung und das Hosting von Anwendungen und Diensten. Es ist im Grunde wie AWS EC2, nur für Edge.

Wir, ein kleines Team von Entwicklern, haben uns entschieden, eine Lösung für den Aufbau von Bare-Metal-Clustern im Edge-Bereich zu schaffen und das Projekt Turing Pi genannt. Das Produkt begann als Prototyp, jedoch haben nun Entwicklungsabteilungen von Red Hat, Rancher (SUSE), Toyota Connected, Sony, Electrolux, Facebook und eine wachsende Entwicklergemeinde von rund 10K es bestellt.

Aber alles begann mit einer Entdeckung.

Produkteröffnung

Früher habe ich für mich entdeckt, dass wir nichts erfinden. Alle Dinge, die in dieser Welt existieren, werden von uns entdeckt. Wir entdecken, dass einige Teile kombiniert werden können, um neue Eigenschaften von Produkten zu erhalten, oder wir entdecken Gesetze und kombinieren dann erneut. Es kann nichts erfunden werden, aber es kann während der Erforschung entdeckt werden. Meiner Meinung nach ist eine Erfindung das Ergebnis ständiger Beobachtungen, Experimente und Suchvorgänge plus das Kombinieren von Wissen.

Im letzten Jahrzehnt habe ich beobachtet, wie die Amateurbewegung Homelab (Ressource subreddit), self-hosted (Ressourcen subreddit und awesome-selfhosted), Einplatinencomputer, das Interesse am Starten von Containern auf Einplatinencomputern wie Raspberry Pi und das wachsende Interesse an der Bildung von Clustern aus Einplatinencomputern an Fahrt gewinnt. Allmählich kommt auch die Idee von Kubernetes dazu. Eine leichte Version, k3s, die auf Edge/IoT ausgerichtet ist, ist bereits erschienen. Eine große Fast-Food-Kette, Chick-fil-A, hat als eine der ersten der Welt Kubernetes-Cluster in ihren Küchen eingerichtet. kubectl mach mir ein Sandwich.

Ich sehe das als einen Schneeball, wie eine Technologie die andere umwickelt und ein komplexeres System erschafft. Dabei gibt es kein Chaos, es ähnelt mehr einem Fraktal aus Technologien. In einem der für mich ziemlich komplexen Momente in meinem Leben erkannte ich den Wert von Clustern, die von Amateurentwicklern aus Einplatinencomputern zusammengestellt werden, und begann an der Entwicklung einer Clusterplatine zu arbeiten.

Heute ist unsere Clusterplatine sehr einfach und vorrangig auf diejenigen ausgerichtet, die cloud-native Technologien lieben, Neues lernen und experimentieren möchten.

Bausteine (Building Blocks)

Was ist also die Lösung und worin besteht das Wesentliche? Es geht darum, einen Baukasten, die Bausteine (Building Blocks) bereitzustellen, aus denen eine Edge-Infrastruktur aufgebaut werden kann, die günstiger ist als klassische Server, mobil und ohne sperrige Metallgehäuse, nicht anspruchsvoll hinsichtlich spezieller Betriebsbedingungen wie Serverräume, energieeffizient, standardisiert in Bezug auf Module und mit der Möglichkeit einer schnellen Skalierung auf Dutzende oder Hunderte von Recheneinheiten (Prozessoren).

Clusterboard

Die Mini ITX-Platine verbindet mehrere Recheneinheiten über ein Netzwerk auf der Platine, bietet Peripherieschnittstellen und Kontrolle über die Module.

Rechenmodul

Eine Platine im SO-DIMM-Formfaktor, die einen Prozessor und RAM enthält, optional Flash-Speicher zum Speichern des Betriebssystems.

Turing Pi — Clusterplatine für self-hosted Anwendungen und Dienste
Eine der entworfenen Konfigurationen der Version Turing V2.

Turing Pi — Clusterplatine für self-hosted Anwendungen und Dienste

Durch die Kombination von Clusterplatine und Rechenmodulen lässt sich leicht eine Infrastruktur mit beispielsweise über 20 Prozessoren (siehe Beispiele unten) schaffen, die geräuschlos und energieeffizient ist. Die Clusterplatine selbst erhöht die Effizienz des genutzten Volumens. Beispiele für Cluster zum Vergleich.

SBC-basiert*
Turing Pi — Clusterplatine für self-hosted Anwendungen und Dienste
24 CPUs
Autor Afkham Azeez

Turing Pi-basiert
Turing Pi — Clusterplatine für self-hosted Anwendungen und Dienste
21 CPUs
Autor th3st0rmtr00p3r

* SBC — Single Board Computer

Der Mitbegründer von Rancher Labs und Autor von k3s hat ein solches Konzept als bemerkenswert empfunden.

Turing Pi — Clusterplatine für self-hosted Anwendungen und Dienste

Im Folgenden mehr über die Bausteine.

Rechenmodul

Zur Überprüfung des Konzepts haben wir das Raspberry Pi Compute Module gewählt, das eine ideale Ausgangskonfiguration darstellt. Die RPi-Community ist aktiv, es gibt keine Softwareprobleme, das Modul im SO-DIMM-Format (6 x 3 cm) ist kostengünstig und enthält einen Quad-Core-CPU, 1 GB RAM und optional 8, 16 oder 32 GB Flash-Speicher für das Betriebssystem und andere Systembedürfnisse. Solch ein Formfaktor wird häufig in industriellen IoT-Lösungen verwendet.

Raspberry Pi 1/3/3+ Compute Module

Turing Pi — Clusterplatine für self-hosted Anwendungen und Dienste

Das Modell CM3 hat jedoch auch ernsthafte Einschränkungen — max. 1 GB RAM und Ethernet über einen USB-HUB mit maximaler Geschwindigkeit von bis zu 100 Mbps. Daher wird die zweite Version von Turing Raspberry Pi 4 mit bis zu 8 GB RAM pro Modul unterstützen. Unten ein Beispiel für Nvidia Jetson Module für beschleunigte Computing-Aufgaben. Vielleicht wird es Unterstützung in der zweiten Version geben, wenn wir einige technische Herausforderungen lösen können, dann könnte man Module mischen.

Nvidia Jetson Compute Modules

Turing Pi — Clusterplatine für self-hosted Anwendungen und Dienste

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 CPUs, RAM und eMMC für verschiedene Arten von Aufgaben von allgemeiner Berechnung bis hin zu machine learning intensiven Berechnungen zu schaffen. Das ähnelt sehr den AWS EC2 Instanzen, jedoch nur für Edge. Dabei bleibt die Clusterplatine unverändert oder mit minimalen Veränderungen.

Clusterboard

Man kann sie auch als Hauptplatine oder Systemboard bezeichnen, es ist ein relativ neues Bereich, und die Hersteller solcher Lösungen sind heute nicht viele und stehen noch ziemlich am Anfang, darunter Pine64, MiniNodes, Clover Pi, Bitscope Blade, PicoCluster (SBC-Cluster). Die Clusterplatine verbindet die Module über ein Netzwerk, versorgt sie mit Strom und bietet einen Management-Bus für den Cluster (Cluster Management Bus), den wir jedenfalls hinzugefügt haben und der scheinbar gut funktioniert.

Front
Turing Pi — Clusterplatine für self-hosted Anwendungen und Dienste

Hinten
Turing Pi — Clusterplatine für self-hosted Anwendungen und Dienste

Backplane Bandwidth 12 Gbps
SD-Slots für Module ohne eMMC, zum Beispiel kann man ein paar Module mit SD halten für schnellen Zugriff auf die Daten des Nodes.

Im Kern der Clusterplatine liegt ein Switch-Chip, der die Netzwerkverbindung zwischen den Modulen und den Zugang zum externen Netzwerk gewährleistet. In der aktuellen Version verwenden wir einen unmanaged Switch, da es keine Zeit für umfassende R&D gab, doch für die zweite Version haben wir einen guten managed Switch gewählt. Es ist möglich, eine Konfiguration im Modus 'Master Node als Router' zu verwenden, um das Netzwerk auf die Platine zu verteilen, falls ein höheres Maß an Sicherheit gefordert ist und die Arbeiter von externem Zugriff isoliert werden sollen, in diesem Fall sollte auf dem Master Node auch ein DHCP-Server gehalten werden.

Anwendung

Die aktuelle Version ist experimentell und wir positionieren sie als Einstiegslösung, um zu lernen, was Cluster sind, mit Software zu arbeiten oder als Hypothesenprüfung in Organisationen, um neue Ideen zu finden; im Allgemeinen so eine Lite-Version.

Um zu beginnen, empfehlen wir die Serie des großartigen Jeff Geerling, der auf uns bei Y Combinator aufmerksam wurde. Er ist der Autor des Bestsellers Ansible for DevOps. Er war so inspiriert, dass er eine sechs-teilige Übersicht gemacht hat, die von der Idee der Clusterbildung im Allgemeinen bis hin zu praktischen Beispielen für die Arbeit mit der Platine reicht, einschließlich des Lernens von Kubernetes und welcher Software installiert werden kann.

Serie über die Installation von k3s auf dem Cluster

Video abspielen

Ich empfehle, mit der ersten zu beginnen, die insgesamt über Clusterbildung und Kubernetes in leicht verständlicher Sprache spricht. Und ein bisschen Bilder aus der Community.

Turing Pi — Clusterplatine für self-hosted Anwendungen und Dienste

Was folgt jetzt?

Zunächst einmal hoffe ich sehr, dass es interessant war. Dies ist absolut origineller Inhalt, ein Versuch, über den Horizont hinauszuschauen. Zweitens plane ich, einen zweiten Teil über das Projekt Turing V2 zu schreiben. Wie die Produktsuche stattfand, logische Überlegungen, das Finden der wesentlichen Eigenschaften, die wichtig sind. Der Artikel wird Skizzen des Produkts von den frühesten bis zu den finalen enthalten. Der zweite Artikel wird besonders interessant für Produktverantwortliche sein, die für Produkte und deren Entwicklung in Unternehmen zuständig sind.

Und wahrscheinlich wird es tatsächlich ein Long Read sein.

Quelle: habr.com

60GB SSD 8Gb DDR4