Turing Pi - carte de cluster pour applications et services auto-hébergés

image



Turing Pi est une solution applicative auto-hébergée construite sur le principe des racks de rack dans le centre de données, uniquement sur une carte mère compacte. La solution est axée sur la construction d'une infrastructure locale pour le développement local et l'hébergement d'applications et de services. En gros, c'est comme AWS EC2 uniquement pour le bord.



Nous, une petite équipe de développement, avons décidé de créer une solution pour créer des clusters bare-metal à la périphérie et avons appelé le projet Turing Pi. Le produit a commencé sur le genou, mais maintenant les départements de développement de Red Hat, Rancher (SUSE), Toyota Connected, Sony, Electrolux, Facebook lui ont ordonné de tester leurs concepts, et le public de développeurs de moins de 10K recrute.



Mais tout a commencé par une découverte.



Découverte de produit



Une fois, j'ai découvert par moi-même que nous n'inventons rien. Nous découvrons tout ce qui existe dans ce monde. Nous découvrons que certaines pièces peuvent être combinées entre elles, obtenant de nouvelles propriétés de produits ou découvrant des lois puis se combinant à nouveau. Vous ne pouvez penser à rien, mais vous pouvez l'ouvrir pendant la recherche. À mon avis, l'invention est le résultat d'une constante observation, expérimentation et recherche + une combinaison de connaissances.



Au cours de la dernière décennie, j'ai vu le homelab (ressource subreddit ), auto-hébergé ( subreddit et awesome-selfhosted), les ordinateurs monocarte, alors que l'intérêt pour l'exécution de conteneurs sur des ordinateurs monocarte tels que le Raspberry Pi se développe, un mouvement se développe pour collecter des grappes d'ordinateurs monocarte. Peu à peu, l'idée de Kubernetes s'y étend également. Sa version allégée de k3, axée sur Edge / IoT, est déjà apparue. La grande chaîne de restauration rapide Chick-fil-A a été l'une des premières au monde à déployer des clusters Kubernetes dans leur kubectl make me a sandwich cuisines .



Je le vois comme une boule de neige, car une technologie s'enroule autour d'une autre, créant un système plus complexe. En même temps, il n'y a pas de chaos, cela ressemble plus à une fractale de la technologie. À l'un des moments plutôt difficiles de ma vie pour moi, j'ai vu la valeur des clusters assemblés à partir d'ordinateurs monocarte par des développeurs amateurs et j'ai commencé à travailler sur la création d'un cluster board.



Aujourd'hui, notre tableau de bord est très simple et s'adresse principalement à ceux qui aiment les technologies cloud natives, apprennent de nouvelles choses, expérimentent.



Blocs de construction



Alors, quelle est la solution, quelle est l'essence. L'essentiel est de donner à un constructeur, des blocs de construction à partir desquels vous pouvez assembler une infrastructure de bord moins chère que sur des serveurs classiques, mobile sans boîtes métalliques volumineuses, ne nécessitant pas de conditions de fonctionnement spéciales telles que des salles de serveurs, écoénergétiques, standardisés en termes de modules et avec la capacité de rapidement mise à l'échelle à des dizaines et des centaines de nœuds de calcul (processeurs).

La carte Clusterboard



Mini ITX connecte plusieurs modules de calcul via un réseau intégré, fournit des interfaces périphériques et un contrôle de module

Carte



SO-DIMM du module de calcul contenant le processeur et la RAM, mémoire flash en option pour le stockage du système d'exploitation

image

Une des configurations projetées de la version Turing V2

image
En combinant une carte de cluster et des modules de calcul, il est facile de créer une infrastructure avec, par exemple, plus de 20 processeurs (exemples ci-dessous), silencieux et à faible consommation d'énergie. La carte de cluster elle-même augmente l'efficacité de l'espace utilisé. Exemples de clusters à comparer

SBC basé *

image

24 CPU

par Afkham Azeez

Turing Pi basé sur

image

21 CPU

par th3st0rmtr00p3r

* SBC - Single Board Computer



Co-fondateur de Rancher Labs et auteur de k3s, cette approche n'a laissé personne indifférent.



image



Lisez la suite pour plus de détails sur les blocs de construction.



Module de calcul



Pour la preuve de concept, nous avons choisi le module de calcul Raspberry Pi, qui est la configuration parfaite pour commencer. La communauté RPi est active, il n'y a aucun problème avec le logiciel, le module lui-même est au format SO-DIMM (6 x 3 cm), est abordable, contient un processeur 4 cœurs, 1 Go de RAM et éventuellement 8, 16 ou 32 Go de mémoire flash OS et autres besoins du système. Ce facteur de forme est souvent utilisé dans les solutions IoT industrielles.



Module de calcul Raspberry Pi 1/3/3 +



image



Mais le modèle CM3 a également de sérieuses limitations - max. 1 Go de RAM et Ethernet via USB HUB avec une vitesse maximale de 100 Mbps. Par conséquent, la deuxième version de Turing prendra en charge Raspberry Pi 4 et jusqu'à 8 Go de RAM par module. Vous trouverez ci-dessous un exemple de modules Nvidia Jetson pour les tâches de calcul accéléré. Peut-être qu'il y aura un support pour eux dans la deuxième version, si nous résolvons des problèmes techniques, nous pourrons alors mélanger les modules.



Modules de calcul Nvidia Jetson



image



La caractéristique la plus importante est cachée dans les modules, ce qui n'est pas évident à première vue. La possibilité de créer d'autres modules dans un facteur de forme similaire avec un ensemble différent de CPU, de RAM et d'eMMC, pour différents types de tâches, du calcul général au machine learning intensif. Ceci est très similaire aux instances AWS EC2, mais uniquement pour Edge. Dans ce cas, la carte de cluster reste inchangée ou avec des modifications mineures.



Clusterboard



On peut aussi l'appeler carte mère ou plinthe, une direction assez nouvelle et il n'y a pas beaucoup de fabricants de telles solutions aujourd'hui et sont encore assez au niveau de l'entrée, parmi eux Pine64, MiniNodes, Clover Pi, Bitscope Blade, PicoCluster (clusters SBC). La carte de cluster connecte les modules à un réseau, fournit de l'énergie et fournit un bus de gestion de cluster, au moins nous avons décidé d'ajouter ce bus et il semble avoir pris racine.

De face

image

Retour

image

Bande passante du fond de panier 12 Gbit / s Emplacements SD pour les modules sans eMMC, par exemple, vous pouvez contenir quelques modules avec SD pour un accès rapide aux données des nœuds
La carte de cluster est basée sur une puce de commutation pour fournir une connexion réseau de modules et un accès à un réseau externe. Dans la version actuelle, nous utilisons un commutateur non géré car nous n'avons pas eu le temps de mener une R&D à part entière, mais pour la deuxième version, nous avons choisi un commutateur bien géré. Il est possible de configurer en mode `` nœud maître en tant que routeur '' pour distribuer le réseau à la carte, c'est-à-dire si un niveau plus élevé de sécurité et d'isolement des travailleurs de l'accès extérieur est requis, auquel cas un serveur DHCP doit également être conservé sur le nœud maître.



Application



La version actuelle est expérimentale et nous la positionnons comme une solution d'entrée de gamme pour étudier ce que sont les clusters, travailler avec des logiciels, ou comme test d'hypothèse dans les organisations, rechercher de nouvelles idées, en général, une version Lite.



Pour commencer, nous vous recommandons un épisode du merveilleux Jeff Geerling, qui a lu des articles sur nous sur Y Combinator et est l'auteur du best-seller Ansible pour DevOps. Il a été tellement inspiré qu'il a fait une revue en 6 parties partant de l'idée du clustering en général à des exemples pratiques de travail avec le tableau, d'apprentissage de Kubernetes et des logiciels pouvant être installés



Une série sur l'installation de k3 sur un cluster





En général, je recommande de regarder dans un premier temps, là, en général, le clustering et Kubernetes dans un langage accessible. Et quelques photos de la communauté



image



Et après?



Tout d'abord, j'espère vraiment que c'était intéressant. C'est absolument le contenu de l'auteur, une tentative de regarder au-delà de l'horizon. Deuxièmement, je prévois d'écrire la deuxième partie sur la conception de Turing V2. Comment s'est passée la recherche d'un produit, les jugements logiques, la recherche des principales propriétés qui sont importantes. L'article contiendra des croquis du produit du premier au dernier. Le deuxième article intéressera particulièrement les ingénieurs produits responsables des produits et de leur développement en entreprise.



Et très probablement, il y aura une très longue lecture.



All Articles