Turing Pi is a cluster board for self-hosted applications and services.

Turing Pi is a cluster board for self-hosted applications and services.

Turing Pi este o soluție pentru aplicații self-hosted construită pe principiul rack-urilor din centrele de date, dar pe o placă de bază compactă. Soluția este orientată spre construirea unei infrastructuri locale pentru dezvoltarea locală și găzduirea aplicațiilor și serviciilor. Pe scurt, este ca AWS EC2, dar pentru edge.

Suntem o echipă mică de dezvoltatori care am decis să creăm o soluție pentru construirea de clustere bare-metal în edge și am numit proiectul Turing Pi. Produsul a început ca un experiment, dar acum, pentru verificarea conceptelor sale, a fost comandat de departamentele de dezvoltare de la Red Hat, Rancher (SUSE), Toyota Connected, Sony, Electrolux, Facebook și atrage o audiență de aproape 10K de dezvoltatori.

Dar totul a început cu o descoperire.

Descoperirea produsului

Cândva am realizat că nu inventăm nimic. Toate lucrurile existente în această lume sunt descoperite. Descoperim că anumite părți pot fi combinate împreună, obținând noi proprietăți ale produselor sau descoperim legi și apoi combinăm din nou. Nu putem inventa nimic, dar putem descoperi în timpul cercetării. Din punctul meu de vedere, inventarea este rezultatul observațiilor constante, experimentelor și căutării + combinației de cunoștințe.

În ultimul deceniu, am observat cum crește mișcarea amatorilor de homelab (resurse subreddit), self-hosted (resurse subreddit și awesome-selfhosted), computere cu un singur placaj, cum crește interesul pentru rularea containerelor pe computere cu un singur placaj de tip Raspberry Pi, și cum se dezvoltă mișcarea de a construi clustere din computere cu un singur placaj. Treptat, ideea Kubernetes a început să capteze interesul. A apărut deja o versiune ușoară, k3s, axată pe Edge/IoT. O mare rețea de restaurante de tip fast-food, Chick-fil-A, este printre primele din lume care au implementat clustere Kubernetes în bucătăriile lor. kubectl make me a sandwich.

O văd ca pe un bulgăre de zăpadă, cum o tehnologie se învârte în jurul alteia, creând un sistem mai complex. În același timp, nu există haos, ci mai degrabă pare a fi un fractal de tehnologii. Într-unul dintre momentele destul de dificile din viața mea, am văzut valoarea clustrelor construite din computere cu un singur placaj de dezvoltatori amatori și am început să lucrez la crearea unei plăci de cluster.

Astăzi, placa noastră de cluster este foarte simplă și este orientată în principal spre cei care iubesc tehnologiile cloud native, care doresc să învețe lucruri noi și să experimenteze.

Blocuri de construcție (Building Blocks)

Așadar, ce reprezintă această soluție, care este esența. Esența este de a oferi un constructor, blocuri de construcție (Building Blocks) din care se poate crea o infrastructură edge mai ieftină decât pe servere clasice, mobilă, fără casete metalice voluminoase, nepretențioasă la condiții speciale de exploatare, cum ar fi cele de server, eficientă din punct de vedere energetic, standardizată în ceea ce privește modulele și cu posibilitatea de scalare rapidă la zeci și sute de noduri de calcul (procesoare).

Placa Cluster (Clusterboard)

Placa Mini ITX unește mai multe module de calcul printr-o rețea pe placă, oferind interfețe periferice și control asupra modulelor

Modul de calcul (Compute Module)

Placă în format SO-DIMM care conține procesorul și memorie RAM, opțional flash-memorii pentru stocarea sistemului de operare

Turing Pi is a cluster board for self-hosted applications and services.
Una dintre configurațiile proiectate pentru versiunea Turing V2

Turing Pi is a cluster board for self-hosted applications and services.

Combinând placa cluster și modulele de calcul, este ușor să creezi o infrastructură, de exemplu, cu 20+ procesoare (exemple mai jos), silențioasă și cu un consum de energie redus. Placa cluster în sine crește eficiența volumului utilizat. Exemple de clustere pentru comparație

Bazat pe SBC*
Turing Pi is a cluster board for self-hosted applications and services.
24 CPU-uri
Autor Afkham Azeez

Bazat pe Turing Pi
Turing Pi is a cluster board for self-hosted applications and services.
21 CPU-uri
Autor th3st0rmtr00p3r

* SBC — Computer pe o singură placă

Co-fondator al Rancher Labs și autor al k3s, acest concept nu l-a lăsat indiferent

Turing Pi is a cluster board for self-hosted applications and services.

Mai departe, detalii despre blocurile de construcție.

Modul de Calcul (Compute Module)

Pentru verificarea conceptului, am ales Raspberry Pi Compute Module, aceasta fiind configurația ideală pentru start. Comunitatea RPi este activă, nu sunt probleme legate de software, iar modulul în format SO-DIMM (6 x 3 cm) este accesibil, conținând un CPU cu 4 nuclee, 1 GB RAM și opțional memorie flash de 8, 16 sau 32 GB pentru sistemul de operare și alte necesități sistemice. Acest tip de format este folosit frecvent în soluții IoT industriale.

Raspberry Pi 1/3/3+ Compute Module

Turing Pi is a cluster board for self-hosted applications and services.

Dar modelul CM3 are și limitări serioase — max. 1 GB RAM și Ethernet prin HUB USB cu o viteză maximă de până la 100 Mbps. De aceea, a doua versiune Turing va susține Raspberry Pi 4 și până la 8 GB de memorie RAM pe modul. Mai jos un exemplu de module Nvidia Jetson pentru sarcini de calcul accelerate. Este posibil să le suportăm în a doua versiune, dacă putem rezolva anumite probleme tehnice, atunci putem mixa modulele.

Module de Calcul Nvidia Jetson

Turing Pi is a cluster board for self-hosted applications and services.

Modulele ascund cea mai importantă posibilitate, care la prima vedere nu este evidentă. Posibilitatea de a crea alte module într-un format similar cu diferite configurații de CPU, RAM și eMMC, pentru diferite tipuri de sarcini, de la calcul general până la calcul intens pentru învățarea mașinii. Acest lucru este foarte asemănător cu instanțele AWS EC2, dar doar pentru edge. În același timp, placa de cluster rămâne neschimbată sau cu modificări minore.

Placa Cluster (Clusterboard)

O mai poți numi placă de bază sau placă de mother, un domeniu destul de nou și producătorii de soluții similare sunt puțini și încă la un nivel destul de incipient, printre ei numărându-se Pine64, MiniNodes, Clover Pi, Bitscope Blade, PicoCluster (clustere SBC). Placa de cluster conectează modulele prin rețea, asigură alimentarea și oferă un bus de gestionare a clusterului (Cluster Management Bus), cel puțin acest bus am decis să-l adăugăm și pare că a prins bine.

Frontal
Turing Pi is a cluster board for self-hosted applications and services.

Spate
Turing Pi is a cluster board for self-hosted applications and services.

Lățimea de bandă a backplane-ului 12 Gbps
Sloturi SD pentru module fără eMMC, de exemplu, poți păstra câteva module cu SD pentru un acces rapid la datele nodului

La baza plăcii de cluster se află un circuit integrat switch pentru asigurarea conectivității rețelei modulelor și ieșirea în rețeaua externă. În versiunea curentă folosim un switch unmanaged deoarece nu a fost timp pentru a efectua o cercetare și dezvoltare completă, dar pentru a doua versiune am ales un switch managed destul de bun. Este posibilă configurarea în modul 'nodul principal ca router' pentru distribuirea rețelei către placă, dacă este necesară un nivel mai înalt de securitate și izolare a lucrătorilor de accesul din exterior, în acest caz, pe nodul principal trebuie să avem și un server DHCP.

Aplicare

Versiunea curentă este experimentală și o poziționăm ca o soluție de nivel de început pentru a învăța ce sunt clusterele, pentru a lucra cu software-ul sau ca testare a ipotezelor în organizații, căutând idei noi, în general o astfel de versiune Lite.

Pentru a începe, recomandăm seria unuia extraordinar, Jeff Geerling, care a citit despre noi pe Y Combinator, el este autorul bestseller-ului Ansible for DevOps. A fost atât de inspirat încât a realizat un review în 6 episoade începând de la ideea de clustering în general până la exemple practice de lucru cu placa, învățând Kubernetes și ce software poate fi instalat.

Seria despre instalarea k3s pe cluster

Redați video

De fapt, recomand să urmăriți de la prima, acolo este vorba în general despre clustering și Kubernetes, într-un limbaj accesibil. Și puțin imagini din comunitate.

Turing Pi is a cluster board for self-hosted applications and services.

Ce urmează?

În primul rând, sper foarte mult că a fost interesant. Acesta este un conținut complet original, o încercare de a privi dincolo de orizont. În al doilea rând, intenționez să scriu a doua parte despre proiectarea Turing V2. Cum a avut loc căutarea produsului, raționamentele logice, identificarea caracteristicilor principale care sunt importante. Articolul va conține schițe ale produsului de la cele mai timpurii până la cele finale. A doua parte va fi deosebit de interesantă pentru cei care se ocupă de produse și dezvoltarea acestora în companii.

Și cel mai probabil va fi un adevărat long read.

Sursa: habr.com

Cumpără un hosting fiabil pentru site-uri cu protecție DDoS, servere VPS VDS 🔥 Cumpără un hosting fiabil pentru site-uri cu protecție DDoS, servere VPS VDS | ProHoster