Turing Pi — een clusterbord voor self-hosted applicaties en services

Turing Pi — een clusterbord voor self-hosted applicaties en services

Turing Pi is een oplossing voor self-hosted applicaties, opgebouwd volgens het principe van rackservers in datacenters, maar dan op een compact moederbord. De oplossing is gericht op het opbouwen van een lokale infrastructuur voor lokale ontwikkeling en hosting van applicaties en services. Kortom, het is als AWS EC2, maar dan voor edge.

Wij zijn een klein team van ontwikkelaars dat besloot een oplossing te creƫren voor het bouwen van bare-metal clusters in edge en noemden ons project Turing Pi. Het product begon als een proefproject, maar inmiddels hebben ontwikkelafdelingen van Red Hat, Rancher (SUSE), Toyota Connected, Sony, Electrolux, Facebook het besteld, en de ontwikkelaarsgemeenschap groeit naar bijna 10K.

Maar alles begon met een ontdekking.

Ontdekking van het product

Een tijd geleden deed ik voor mezelf de ontdekking dat we niets zelf uitvinden. Alle dingen die in deze wereld bestaan, ontdekken we. We ontdekken dat bepaalde onderdelen gecombineerd kunnen worden, waardoor nieuwe eigenschappen van producten ontstaan, of we ontdekken wetten en combineren ze daarna opnieuw. Niets kan uitgevonden worden, maar je kunt het ontdekken tijdens onderzoek. Naar mijn mening is uitvinding het resultaat van constante observaties, experimenten en het zoeken + het combineren van kennis.

In het afgelopen decennium heb ik gezien hoe de hobbybeweging homelab (bron subreddit), self-hosted (bronnen subreddit en awesome-selfhosted), single-board computers groeit, evenals de interesse in het draaien van containers op single-board computers zoals de Raspberry Pi. De beweging om clusters te bouwen van single-board computers groeit ook. Geleidelijk aan komt ook het idee van Kubernetes op. Er is al een lichte versie, k3s, gericht op Edge/IOT. Een groot netwerk van fastfoodrestaurants, Chick-fil-A, was een van de eersten ter wereld die Kubernetes-clusters op hun keukens plaatste. kubectl maak me een sandwich.

Ik zie dit als een sneeuwbal, waarbij de ene technologie de andere omarmt, waardoor een complexer systeem ontstaat. Daarbij is er geen chaos, het lijkt meer op een fractal van technologieƫn. In een van de redelijk moeilijke momenten in mijn leven zag ik de waarde in clusters die door hobbyontwikkelaars uit single-board computers zijn opgebouwd, en begon ik te werken aan het creƫren van een clusterbord.

Vandaag is onze clusterkaart heel eenvoudig en vooral gericht op degenen die van cloud native-technologieƫn houden, het nieuwe onderzoeken en experimenteren.

Bouwstenen

Wat houdt de oplossing in en wat is de essentie ervan? De essentie is om een constructie te bieden, bouwstenen waaruit een edge-infrastructuur kan worden samengesteld, goedkoper dan op klassieke servers, mobiel zonder zware metalen kasten, niet veeleisend qua speciale exploitatieomstandigheden zoals serverruimtes, energiezuinig, gestandaardiseerd in termen van modules en met de mogelijkheid voor snelle schaalvergroting naar tientallen en honderden rekeneenheden (processoren).

Clusterkaart

Een Mini ITX-kaart die meerdere rekeneenheden verbindt via een netwerk op de kaart, biedt randinterfaces en controle over de modules.

Rekeneenheid

Een kaart in SO-DIMM-formaat die een processor en RAM bevat, optioneel met flash-geheugen voor het opslaan van het besturingssysteem.

Turing Pi — een clusterbord voor self-hosted applicaties en services
Een van de ontworpen configuraties van versie Turing V2.

Turing Pi — een clusterbord voor self-hosted applicaties en services

Door de clusterkaart en rekeneenheden te combineren, is het eenvoudig om een infrastructuur te creƫren, bijvoorbeeld met 20+ processoren (voorbeelden hieronder), stil en met een laag energieverbruik. De clusterkaart zelf verhoogt de efficiƫntie van het gebruikte volume. Voorbeelden van clusters ter vergelijk.

SBC gebaseerd*
Turing Pi — een clusterbord voor self-hosted applicaties en services
24 CPU's
Auteur Afkham Azeez

Turing Pi gebaseerd
Turing Pi — een clusterbord voor self-hosted applicaties en services
21 CPU's
Auteur th3st0rmtr00p3r

* SBC — Single Board Computer

De mede-oprichter van Rancher Labs en auteur van k3s was onder de indruk van deze benadering.

Turing Pi — een clusterbord voor self-hosted applicaties en services

Hieronder meer over de bouwstenen.

Rekeneenheid

Voor het testen van het concept hebben we de Raspberry Pi Compute Module gekozen, dit is de ideale configuratie voor een start. De RPi-gemeenschap is actief, er zijn geen problemen met software, de module in SO-DIMM-formaat (6 x 3 cm) is betaalbaar, bevat een 4-core CPU, 1 GB RAM en optioneel flash-geheugen van 8, 16 of 32 GB voor het besturingssysteem en andere systeembehoeften. Dit soort form-factor wordt vaak gebruikt in industriƫle IoT-oplossingen.

Raspberry Pi 1/3/3+ Compute Module

Turing Pi — een clusterbord voor self-hosted applicaties en services

Maar het CM3-model heeft ook ernstige beperkingen - max. 1 GB RAM en Ethernet via een USB HUB met een maximale snelheid tot 100 Mbps. Daarom zal de tweede versie van Turing Raspberry Pi 4 ondersteunen met tot 8 GB RAM op de module. Hieronder een voorbeeld van Nvidia Jetson-modules voor versnelde computing-taken. Mogelijk zal ondersteuning voor hen in de tweede versie zijn, als we enkele technische problemen oplossen, dan kunnen we modules mixen.

Nvidia Jetson Compute Modules

Turing Pi — een clusterbord voor self-hosted applicaties en services

In de modules schuilt de belangrijkste mogelijkheid die op het eerste gezicht niet duidelijk is. De mogelijkheid om andere modules in een vergelijkbaar ontwerp te creƫren met verschillende CPU, RAM en eMMC, voor verschillende soorten taken van general-computing tot machine learning intensieve berekeningen. Dit lijkt sterk op AWS EC2-instanties, maar dan voor edge. Tegelijkertijd blijft de clusterplaten ongewijzigd of met kleine aanpassingen.

Clusterkaart

Het kan ook een moederbord of basisplaat worden genoemd, een vrij nieuw domein en er zijn vandaag de dag niet veel fabrikanten van dergelijke oplossingen, en ze zijn nog steeds vrij op een initiƫle niveau, waaronder Pine64, MiniNodes, Clover Pi, Bitscope Blade, PicoCluster (SBC-clusters). De clusterplaat verbindt de modules via een netwerk, zorgt voor voeding en biedt een clusterbeheersbus (Cluster Management Bus), in ieder geval hebben we besloten deze bus toe te voegen en het lijkt goed aan te slaan.

Voorzijde
Turing Pi — een clusterbord voor self-hosted applicaties en services

Achterzijde
Turing Pi — een clusterbord voor self-hosted applicaties en services

Backplane Bandbreedte 12 Gbps
SD-slots voor modules zonder eMMC, bijvoorbeeld, je kunt een paar modules met SD aanhouden voor snelle toegang tot de gegevens van de node

De basis van de clusterplaat is een switchchip voor het garanderen van de netwerkverbinding tussen modules en de externe netwerkaansluiting. In de huidige versie gebruiken we een unmanaged switch omdat er geen tijd was voor een volledige R&D, maar voor de tweede versie hebben we een behoorlijke managed switch gekozen. Configuratie in de modus 'master node als router' is mogelijk voor het verdelen van het netwerk naar de plaat, dit is nodig als een hoger beveiligings- en isolatieniveau voor de werkers van externe toegang vereist is; in dat geval moet er ook een DHCP-server op de master node draaien.

Toepassing

De huidige versie is experimenteel en we positioneren het als een instapoplossing om te leren wat clusters zijn, te werken met de software of als een hypothese-test in organisaties, op zoek naar nieuwe ideeƫn, zeg maar een Lite-versie.

Om te beginnen raden we de serie aan van de geweldige Jeff Geerling, die over ons heeft gelezen op Y Combinator; hij is de auteur van de bestseller Ansible for DevOps. Hij was zo geĆÆnspireerd dat hij een zesdelige serie heeft gemaakt, die begint met het idee van clustering als geheel en doorgaat naar praktische voorbeelden van werken met de plank, het verkennen van Kubernetes en welke software je kunt installeren.

De serie over het installeren van k3s op een cluster.

Video afspelen

In feite raad ik aan om vanaf het begin te kijken, daar gaat het over clustering en Kubernetes in begrijpelijke taal. En een beetje afbeeldingen van de community.

Turing Pi — een clusterbord voor self-hosted applicaties en services

Wat nu?

Ten eerste hoop ik dat het interessant was. Dit is absoluut originele inhoud, een poging om verder te kijken. Ten tweede ben ik van plan om een tweede deel te schrijven over het ontwerp van Turing V2. Hoe het zoeken naar het product verliep, logische redeneringen en het vinden van de belangrijkste eigenschappen die belangrijk zijn. Het artikel zal schetsen van het product bevatten van de vroegste tot de finale versies. Het tweede artikel zal vooral interessant zijn voor productologen die verantwoordelijk zijn voor producten en hun ontwikkeling binnen bedrijven.

En het zal hoogstwaarschijnlijk een echte long read zijn.

Bron: habr.com

Koop betrouwbare webhosting met bescherming tegen DDoS, VPS VDS servers šŸ”„ Koop betrouwbare webhosting met bescherming tegen DDoS, VPS VDS servers | ProHoster