
Turing Pi är en lösning för självhostade applikationer byggd enligt rack-ställsprincipen i datacentret, fast på en kompakt moderkort. Lösningen är inriktad på att bygga en lokal infrastruktur för lokal utveckling och hosting av applikationer och tjänster. Det är i princip som AWS EC2, men för edge.
Vi är ett litet team av utvecklare som beslutade att skapa en lösning för att bygga bare-metal kluster för edge och vi gav projektet namnet Turing Pi. Produkten började som en hobby, men nu har den beställts av utvecklingsavdelningar på Red Hat, Rancher (SUSE), Toyota Connected, Sony, Electrolux, Facebook, och vi får en publik av utvecklare på nästan 10K.
Men allt började med en upptäckte.
Produktens upptäckte
En gång gjorde jag en upptäckte för mig själv att vi inte hittar på något. Alla saker som finns i denna värld, upptäcker vi. Vi upptäcker att vissa delar kan kombineras tillsammans och skapa nya egenskaper hos produkter, eller vi upptäcker lagar och kombinerar dem igen. Man kan inte hitta på något, men man kan upptäcka under forskningen. Enligt mig är uppfinning resultatet av ständiga observationer, experiment och sökande + kombination av kunskaper.
Under det senaste decenniet har jag sett hur hobbiesrörelsen homelab (resurs ), självhostade (resurser och ), enplatta-datorer, hur intresset för att köra containrar på enplatta-datorer som Raspberry Pi växer, och hur rörelsen för att bygga kluster av enplatta-datorer ökar. Gradvis har också idén om Kubernetes blivit relevant. Det har redan dykt upp en lätt version, k3s, som är inriktad på Edge/IoT. Den stora snabbmatskedjan Chick-fil-A är en av de första i världen att ha installerat Kubernetes-kluster i sina kök. .
Jag ser detta som en snöboll, hur en teknik snurrar runt en annan och skapar ett mer komplext system. Inga kaos finns, det liknar mer ett fraktal av teknologier. I ett av de ganska svåra ögonblicken i mitt liv såg jag värdet i kluster som byggs av enplatta-datorer av hobbymakare och började arbeta på att skapa en klusterplattform.
I dag är vår klusterplattform mycket enkel och är främst riktad mot dem som älskar cloud native-teknologier, att lära sig nytt och experimentera.
Byggblock (Building Blocks)
Så vad är egentligen lösningen, vad handlar det om? Det handlar om att erbjuda en byggsats, byggstenar att skapa en edge-infrastruktur som är billigare än traditionella servrar, mobil utan klumpiga metallskåp, krävande för speciella driftsvillkor som serverrum, energieffektiv, standardiserad när det gäller moduler och med möjlighet till snabbskalning till dussintals och hundratals beräkningsnoder (processorer).
Klustermodul (Clusterboard)
Mini ITX-kortet kopplar samman flera beräkningsmoduler via ett nätverk på kortet, och ger gränssnitt för periferienheter samt kontroll över modulerna.
Beräkningsmodul (Compute Module)
Ett kort i SO-DIMM-format som innehåller en processor och RAM, med valfri flash-minne för lagring av operativsystemet.

En av de designade konfigurationerna av Turing V2-versionen.

Genom att kombinera klustermodulen och beräkningsmoduler är det enkelt att skapa en infrastruktur till exempel med 20+ processorer (exempel nedan), tyst och med låg energiförbrukning. Själva klustermodulen ökar effektiviteten av den använda volymen. Exempel på kluster för jämförelse.
SBC-baserad*

24 CPU:er
Författare Afkham Azeez
Turing Pi-baserad

21 CPU:er
Författare
* SBC - Single Board Computer
Medgrundare av Rancher Labs och författare till k3s, har denna metod lämnat ingen obemärkt.

Nedan mer om byggstenarna.
Beräkningsmodul (Compute Module)
För att testa konceptet valde vi Raspberry Pi Compute Module, vilket är idealisk konfiguration för starten. RPi-communityt är aktivt, inga problem med mjukvara, och själva modulen i SO-DIMM-format (6 x 3 cm) är prisvärd, innehåller en 4-kärnig CPU, 1 GB RAM och valfritt flash-minne på 8, 16 eller 32 GB för OS och andra systembehov. Ett sådant format används ofta i industriella IoT-lösningar.
Raspberry Pi 1/3/3+ Compute Module

Men CM3-modellen har också allvarliga begränsningar - max. 1 GB RAM och Ethernet via USB HUB med maximal hastighet upp till 100 Mbps. Därför kommer andra versionen av Turing att stödja Raspberry Pi 4 och upp till 8 GB RAM per modul. Nedan är exempel på Nvidia Jetson-moduler för Accelerated Computing-uppgifter. Det kan finnas stöd för dem i den andra versionen, om vi löser vissa tekniska problem, så kan moduler blandas.
Nvidia Jetson Compute Modules

Modulerna döljer den viktigaste funktionen, som vid första anblick inte är uppenbar. Möjligheten att skapa andra moduler i liknande formfaktor med olika uppsättningar av CPU, RAM och eMMC, för olika typer av uppgifter, från allmän databehandling till maskininlärning med intensiv beräkning. Detta liknar mycket AWS EC2-instans, men endast för edge. Samtidigt förblir klusterkortet oförändrat eller med mindre ändringar.
Klustermodul (Clusterboard)
Det kan också kallas moderkort eller basplatta, en relativt ny riktning och producenter av sådana lösningar är fortfarande få och på en tidig nivå, bland dem Pine64, MiniNodes, Clover Pi, Bitscope Blade, PicoCluster (SBC-kluster). Klusterkortet förenar moduler via nätverk, försörjer dem med ström och erbjuder en klusterhanteringsbuss (Cluster Management Bus), åtminstone har vi beslutat att lägga till denna buss och den verkar ha fått fäste.
Framsidan

Tillbaka

Backplane Bandwidth 12 Gbps
SD-slotar för moduler utan eMMC, till exempel kan man ha ett par moduler med SD för snabb åtkomst till nodens data
Kärnan i klusterkortet består av en switch-krets för att säkerställa nätverksanslutning mellan modulerna och utgång till det externa nätverket. I den nuvarande versionen använder vi en unmanaged switch eftersom vi inte har haft tid att genomföra en fullständig R&D, men i den andra versionen valde vi en bra managed switch. Det är möjligt att konfigurera i läge 'master nod som router' för att fördela nätverket på kortet, om en högre säkerhetsnivå och isolering från extern åtkomst för arbetarna krävs, i så fall behöver master noden också ha en DHCP-server.
Tillämpning
Den nuvarande versionen är experimentell och vi positionerar den som en ingångslösning för att lära sig vad kluster är, arbeta med mjukvara eller som en hypoteskontroll i organisationer, leta efter nya idéer, en slags Lite-version.
För att komma igång rekommenderar vi serien av den fantastiska Jeff Geerling, som läste om oss på Y Combinator, han är författare till bästsäljaren Ansible for DevOps. Han blev så inspirerad att han gjorde en sexdelad översyn som sträcker sig från idén om klusterisering i allmänhet till praktiska exempel på arbete med kortet, studier av Kubernetes och vilken mjukvara man kan installera.
Serien om installation av k3s på klustret

Jag rekommenderar egentligen att titta från början, där pratas det övergripande om klusterisering och Kubernetes på ett tillgängligt språk. Och lite bilder från gemenskapen.

Vad händer härnäst?
För det första hoppas jag verkligen att det varit intressant. Detta är helt ursprungligt material, ett försök att titta bortom horisonten. För det andra planerar jag att skriva den andra delen om design av Turing V2. Hur produktletande skedde, logiska resonemang, identifiering av viktiga egenskaper. Artikeln kommer att innehålla skisser av produkten från de tidigaste till de slutliga. Den andra artikeln kommer att vara särskilt intressant för produktchefer som ansvarar för produkter och deras utveckling inom företag.
Och det kommer förmodligen bli en riktigt lång läsning.
Källa: habr.com
