Turing Pi — scheda cluster per applicazioni e servizi self-hosted

Turing Pi — scheda cluster per applicazioni e servizi self-hosted

Turing Pi è una soluzione per applicazioni self-hosted basata sul principio dei rack nei data center, ma su una scheda madre compatta. La soluzione è progettata per costruire un'infrastruttura locale per lo sviluppo locale e l'hosting di applicazioni e servizi. In pratica, è come AWS EC2, ma per l'edge.

Siamo un piccolo team di sviluppatori che ha deciso di creare una soluzione per la costruzione di cluster bare-metal nell'edge e abbiamo chiamato il progetto Turing Pi. Il prodotto è nato in modo informale, ma ora è stato richiesto da team di sviluppo di Red Hat, Rancher (SUSE), Toyota Connected, Sony, Electrolux, Facebook, e sta raccogliendo un pubblico di sviluppatori vicino ai 10K.

Ma tutto è iniziato con una scoperta.

Scoperta del prodotto

Una volta ho fatto la scoperta che non inventiamo nulla. Tutte le cose esistenti in questo mondo, le scopriamo. Scopriamo che alcune parti possono essere combinate insieme, ottenendo nuove proprietà dei prodotti, o scopriamo leggi e poi le combiniamo di nuovo. Non si può inventare nulla, ma si possono scoprire nuove cose durante la ricerca. A mio parere, l'invenzione è il risultato di osservazioni costanti, esperimenti e ricerca + combinazione di conoscenze.

Negli ultimi dieci anni ho osservato l'emergere del movimento amatoriale homelab (risorsa subreddit), self-hosted (risorse subreddit e awesome-selfhosted), i computer a scheda singola, come cresce l'interesse nel far girare contenitori su computer a scheda singola come il Raspberry Pi, e cresce il movimento che costruisce cluster di computer a scheda singola. Gradualmente, l'idea di Kubernetes sta entrando nel settore. È già stata rilasciata una sua versione leggera, k3s, orientata all'Edge/IOT. Una grande rete di fast food, Chick-fil-A, è tra le prime al mondo a ospitare cluster Kubernetes nelle loro cucine. kubectl make me a sandwich.

Vedo questo come una palla di neve, dove una tecnologia avvolge l'altra, creando un sistema più complesso. Non si tratta di caos, ma piuttosto di un frattale di tecnologie. In uno dei momenti abbastanza complessi della mia vita, ho visto il valore nei cluster assemblati da computer a scheda singola da sviluppatori appassionati e ho iniziato a lavorare per creare una scheda per cluster.

Oggi la nostra scheda per cluster è molto semplice e si rivolge principalmente a chi ama le tecnologie cloud native, esplorando il nuovo e sperimentando.

Moduli Costruttivi (Building Blocks)

Dunque, cos'è la soluzione, qual è il punto. Il punto è fornire un costruttore, moduli costruttivi (Building Blocks) che consentano di assemblare un'infrastruttura edge a un costo inferiore rispetto ai server tradizionali, mobile senza ingombranti scatole metalliche, poco esigente in termini di condizioni di utilizzo come quelle da server, energeticamente efficiente, standardizzata a livello di moduli e con la possibilità di scalare rapidamente su decine o centinaia di nodi di calcolo (processori).

Scheda per Cluster (Clusterboard)

La scheda Mini ITX integra più moduli di calcolo tramite una rete sulla scheda, fornendo interfacce periferiche e controllo sui moduli.

Modulo di Calcolo (Compute Module)

Scheda in fattore di forma SO-DIMM contenente un processore e memoria RAM, opzionalmente memoria flash per memorizzare il sistema operativo.

Turing Pi — scheda cluster per applicazioni e servizi self-hosted
Una delle configurazioni progettate per la versione Turing V2.

Turing Pi — scheda cluster per applicazioni e servizi self-hosted

Combinando una scheda a cluster e moduli di calcolo, è facile creare un'infrastruttura, ad esempio, con oltre 20 processori (esempi sotto), silenziosa e a basso consumo energetico. La scheda a cluster stessa aumenta l'efficienza del volume utilizzato. Esempi di cluster per confronto.

basata su SBC*
Turing Pi — scheda cluster per applicazioni e servizi self-hosted
24 CPU
Autore: Afkham Azeez

basata su Turing Pi
Turing Pi — scheda cluster per applicazioni e servizi self-hosted
21 CPU
Autore th3st0rmtr00p3r

* SBC — Computer su Scheda Singola

Il cofondatore di Rancher Labs e autore di k3s non è rimasto indifferente a questo approccio.

Turing Pi — scheda cluster per applicazioni e servizi self-hosted

Di seguito, maggiori dettagli sui blocchi di costruzione.

Modulo di Calcolo (Compute Module)

Per verificare la nostra idea, abbiamo scelto il Raspberry Pi Compute Module, una configurazione ideale per iniziare. La community RPi è attiva, non ci sono problemi di software, e il modulo è in formato SO-DIMM (6 x 3 cm), accessibile nel prezzo, con un CPU a 4 core, 1 GB di RAM e, opzionalmente, memoria flash da 8, 16 o 32 GB per il sistema operativo e altri bisogni di sistema. Questo tipo di fattore di forma è spesso utilizzato nelle soluzioni IoT industriali.

Raspberry Pi 1/3/3+ Compute Module

Turing Pi — scheda cluster per applicazioni e servizi self-hosted

Ma il modello CM3 ha anche limitazioni significative: max. 1 GB di RAM e Ethernet tramite USB HUB con una velocità massima fino a 100 Mbps. Pertanto, la seconda versione di Turing supporterà il Raspberry Pi 4 con fino a 8 GB di RAM sul modulo. Qui sotto è un esempio di moduli Nvidia Jetson per compiti di calcolo accelerato. È possibile che ci sarà supporto per questi nella seconda versione, se risolveremo alcune sfide tecniche, permettendo così di mixare i moduli.

Moduli Compute Nvidia Jetson

Turing Pi — scheda cluster per applicazioni e servizi self-hosted

Nei moduli si nasconde la possibilità più importante, che a prima vista non è evidente. La capacità di creare altri moduli in un formato simile con diverse combinazioni di CPU, RAM ed eMMC, per vari tipi di carichi di lavoro, dal computing generale ai calcoli intensivi per il machine learning. Questo è molto simile alle istanze AWS EC2, ma solo per l'edge. Inoltre, la scheda cluster rimane invariata o con minime modifiche.

Scheda per Cluster (Clusterboard)

Può anche essere chiamata scheda madre o scheda di base, un settore relativamente nuovo e i produttori di tali soluzioni sono ancora pochi e per lo più agli inizi, tra cui Pine64, MiniNodes, Clover Pi, Bitscope Blade, PicoCluster (cluster SBC). La scheda cluster connette i moduli tramite rete, fornisce alimentazione e offre un bus di gestione del cluster (Cluster Management Bus); almeno abbiamo deciso di aggiungere questo bus e sembra che abbia avuto successo.

Front
Turing Pi — scheda cluster per applicazioni e servizi self-hosted

Indietro
Turing Pi — scheda cluster per applicazioni e servizi self-hosted

Larghezza di banda del Backplane 12 Gbps
Slot SD per moduli senza eMMC, ad esempio, è possibile mantenere un paio di moduli SD per un rapido accesso ai dati della node.

Alla base della scheda del cluster si trova un chip switch per garantire la connessione di rete tra i moduli e l'uscita verso la rete esterna. Nella versione attuale utilizziamo uno switch unmanaged poiché non abbiamo avuto tempo per un R&D completo, ma nella seconda versione abbiamo scelto un buon managed switch. È possibile configurare la modalità ‘master node come router’ per distribuire la rete alla scheda, se è richiesto un livello di sicurezza più elevato e l'isolamento dei worker dall'accesso esterno; in tal caso, è necessario mantenere anche un server DHCP sul master node.

Applicazione

L'attuale versione è sperimentale e la posizioniamo come una soluzione entry-level per esplorare che cosa siano i cluster, lavorare con il software o come test di ipotesi nelle organizzazioni, ricerca di nuove idee, insomma una versione Lite.

Per iniziare, consigliamo una serie del fantastico Jeff Geerling, che ha letto di noi su Y Combinator; è l'autore del bestseller Ansible for DevOps. È stato così ispirato che ha realizzato una serie di 6 episodi a partire dall'idea della clustering in generale fino a esempi pratici di lavoro con la scheda, studiando Kubernetes e quale software si può installare.

Serie sull'installazione di k3s su cluster

Riproduci video

In realtà, consiglio di iniziare dalla prima, lì si parla in modo accessibile di clustering e Kubernetes, con alcune immagini dalla community.

Turing Pi — scheda cluster per applicazioni e servizi self-hosted

E ora?

Innanzitutto, spero davvero che sia stato interessante. Questo è un contenuto totalmente originale, un tentativo di guardare oltre l'orizzonte. In secondo luogo, ho intenzione di scrivere una seconda parte sulla progettazione di Turing V2. Parlerò di come è avvenuta la ricerca del prodotto, delle considerazioni logiche e dei principali attributi che sono importanti. L'articolo conterrà schizzi del prodotto dalle versioni più iniziali a quelle finali. La seconda parte sarà particolarmente interessante per i product manager, responsabili dei prodotti e del loro sviluppo nelle aziende.

E probabilmente sarà davvero un long read.

Fonte: habr.com

Acquista hosting affidabile per siti web con protezione DDoS, VPS VDS server 🔥 Acquista hosting affidabile per siti web con protezione DDoS, VPS VDS server | ProHoster