Turing Pi — en klyngeplade til self-hosted applikationer og tjenester

Turing Pi — en klyngeplade til self-hosted applikationer og tjenester

Turing Pi er en løsning til selv-hostede applikationer bygget efter princippet om rackskabe i datacentre, blot på et kompakt bundkort. Løsningen er rettet mod at opbygge lokal infrastruktur til lokal udvikling og hosting af applikationer og tjenester. Generelt er det som AWS EC2, men til edge.

Vi er et lille team af udviklere, der besluttede at skabe en løsning til opbygning af bare-metal klynger i edge og kaldte projektet Turing Pi. Produktet startede som et hobbyprojekt, men nu har udviklingsafdelinger i Red Hat, Rancher (SUSE), Toyota Connected, Sony, Electrolux, Facebook, og mange andre bestilt det for at teste deres koncepter. Vi hører nu til en målgruppe af udviklere på næsten 10.000.

Men alt begyndte med en opdagelse.

Opdagelsen af produktet

Engang gjorde jeg mig den opdagelse, at vi ikke finder på noget. Alle ting, der eksisterer i denne verden, opdager vi. Vi opdager, at visse dele kan kombineres, hvilket giver nye egenskaber til produkterne, eller vi opdager love og kombinerer dem igen. Man kan ikke finde på noget, men man kan opdage undervejs i forskningen. Efter min mening er opfindelse resultatet af konstant observation, eksperimentering og søgning + kombination af viden.

I løbet af det sidste årti har jeg set, hvordan amatørbevægelsen homelab (ressource subreddit), selv-hostede (ressourcer subreddit og awesome-selfhosted), og enkelt-kort computere er vokset, ligesom interessen for at køre containere på enkelt-kort computere som Raspberry Pi; bevægelsen for at samle klynger af enkelt-kort computere vokser. Ideen om Kubernetes drager også langsomt ind. Den lette version k3s, der er rettet mod Edge/IoT, er allerede blevet skabt. Chick-fil-A, en stor kæde af fastfoodrestauranter, var en af de første i verden til at installere Kubernetes-klynger i deres køkkener. kubectl make me a sandwich.

Jeg ser det som en snebold, hvordan én teknologi svøber sig omkring en anden og skaber et mere komplekst system. Der er ingen kaos; det ligner mere et fraktal af teknologier. I et af de ret vanskelige øjeblikke i mit liv så jeg værdien af klynger, der samles af hobbyudviklere med enkelt-kort computere, og begyndte at arbejde på at skabe et klyngebundkort.

I dag er vores klyngebundkort meget enkelt og primært rettet mod dem, der elsker cloud native teknologier, at lære nyt og eksperimentere.

Byggeklodser (Building Blocks)

Så hvad er essensen af løsningen? Essensen er at give en konstruktør, byggestenene (Building Blocks), som man kan samle en edge-infrastruktur billigere end på klassiske servere, mobil uden store metalbokse, ikke krævende over for særlige driftsforhold som serverrum, energieffektiv, standardiseret i forhold til moduler og med mulighed for hurtig skalering til titusindvis af processelementer (processorer).

Klyngeboard (Clusterboard)

Mini ITX-boardet samler flere beregningsmoduler ved hjælp af et netværk på bordet, giver perifere interfaces og kontrol over modulerne.

Beregningsmodul (Compute Module)

Board i SO-DIMM formfaktor, der indeholder en processor og RAM, valgfrit flash-hukommelse til opbevaring af operativsystemet.

Turing Pi — en klyngeplade til self-hosted applikationer og tjenester
En af de designede konfigurationer af Turing V2-versionen.

Turing Pi — en klyngeplade til self-hosted applikationer og tjenester

Ved at kombinere klyngeboardet og beregningsmodulerne er det let at opbygge en infrastruktur, for eksempel med 20+ processorer (se eksempler nedenfor), lydløs og med lavt energiforbrug. Selve klyngeboardet øger effektiviteten af det anvendte rum. Eksempler på klynger til sammenligning.

SBC baseret*
Turing Pi — en klyngeplade til self-hosted applikationer og tjenester
24 CPU'er
Forfatter Afkham Azeez

Turing Pi baseret
Turing Pi — en klyngeplade til self-hosted applikationer og tjenester
21 CPU'er
Forfatter th3st0rmtr00p3r

* SBC — Single Board Computer

En af medstifterne af Rancher Labs og forfatteren til k3s blev rørt af denne tilgang.

Turing Pi — en klyngeplade til self-hosted applikationer og tjenester

Her er der mere information om byggestenene.

Beregningsmodul (Compute Module)

Til konceptcheck valgte vi Raspberry Pi Compute Module, som er den ideelle konfiguration for starten. RPi-fællesskabet er aktivt, der er ingen problemer med softwaren, selve modulet i SO-DIMM-format (6 x 3 cm) er prisen overkommelig, og det har en 4-core CPU, 1 GB RAM og valgfrit flash-hukommelse på 8, 16 eller 32 GB til OS og andre systembehov. Dette formfaktor anvendes ofte i industrielle IoT-løsninger.

Raspberry Pi 1/3/3+ Compute Module

Turing Pi — en klyngeplade til self-hosted applikationer og tjenester

Men modellen CM3 har også alvorlige begrænsninger - max. 1 GB RAM og Ethernet via USB HUB med maksimal hastighed op til 100 Mbps. Derfor vil anden version af Turing understøtte Raspberry Pi 4 og op til 8 GB RAM pr. modul. Nedenfor et eksempel på Nvidia Jetson-moduler til Accelerated Computing-opgaver. Det kan være, de vil blive understøttet i den anden version, hvis vi løser nogle tekniske udfordringer, så kan modulerne blandes.

Nvidia Jetson Compute-moduler

Turing Pi — en klyngeplade til self-hosted applikationer og tjenester

I modulerne ligger den vigtigste mulighed, som ved første øjekast ikke er indlysende. Muligheden for at oprette andre moduler i et lignende formfaktor med forskellige CPU-, RAM- og eMMC-kombinationer til forskellige typer opgaver fra generel computing til maskinlæring og intensive beregninger. Dette minder meget om AWS EC2-instanser, men kun til edge. Samtidig forbliver den klusterplade uændret eller med mindre ændringer.

Klyngeboard (Clusterboard)

Den kan også kaldes bundkort eller hovedkort; det er en relativt ny retning, og producenten af sådanne løsninger er stadig ganske få og på et tidligt stadium, inklusive Pine64, MiniNodes, Clover Pi, Bitscope Blade, PicoCluster (SBC-klynger). Klusterpladen forbinder modulerne via netværket, leverer strøm og giver en klusterstyringsbus (Cluster Management Bus); vi har besluttet at tilføje denne bus, og den ser ud til at have fået fodfæste.

Front
Turing Pi — en klyngeplade til self-hosted applikationer og tjenester

Tilbage
Turing Pi — en klyngeplade til self-hosted applikationer og tjenester

Backplane-båndbredde 12 Gbps
SD-slot til moduler uden eMMC, for eksempel kan der opbevares et par moduler med SD for hurtig adgang til nodens data.

I bunden af klusterpladen ligger en switch-chip, der muliggør netværksforbindelse mellem modulerne og udgang til det eksterne netværk. I den nuværende version bruger vi en unmanaged switch, da vi ikke havde tid til at udføre en ordentlig R&D, men til anden version har vi valgt en ganske god managed switch. Konfiguration i 'master node som router'-tilstand er mulig for at fordele netværket til pladen, hvis der kræves et højere sikkerhedsniveau og isolering af workere fra ekstern adgang; i sådanne tilfælde skal der også være en DHCP-server på master-noden.

Anvendelse

Den nuværende version er eksperimentel, og vi positionerer den som en entry-level løsning til at lære, hvad klustre er, arbejde med software eller som en hypotese-test i organisationer, søge efter nye ideer; i det store hele som en Lite-version.

For at komme i gang anbefaler vi serien fra den fantastiske Jeff Geerling, der læste om os på Y Combinator; han er forfatter til bestsellerbogen Ansible for DevOps. Han blev så inspireret, at han lavede en 6-delt anmeldelse, der spænder fra idéen om klustering generelt til praktiske eksempler på arbejde med pladen, studiet af Kubernetes og hvilken software der kan installeres.

Serie om installation af k3s på kluster

Afspil video

Generelt anbefaler jeg at starte fra den første; den er generelt om klustering og Kubernetes på en tilgængelig måde. Og lidt billeder fra fællesskabet.

Turing Pi — en klyngeplade til self-hosted applikationer og tjenester

Hvad nu?

For det første håber jeg virkelig, at det har været interessant. Dette er helt originalt indhold, et forsøg på at se ud over horisonten. For det andet planlægger jeg at skrive den anden del om designet af Turing V2. Hvordan produktet blev søgt, logiske ræsonneringer, identifikation af de vigtigste egenskaber, der er vigtige. Artiklen vil indeholde skitser af produktet fra de tidligste til de endelige. Den anden artikel vil være særlig interessant for produktfolk, der er ansvarlige for produkter og deres udvikling i virksomheder.

Og der vil sandsynligvis være en rigtig lang læsning.

Kilde: habr.com

Køb pålidelig webhosting med DDoS-beskyttelse, VPS VDS-servere 🔥 Køb pålidelig webhosting med DDoS-beskyttelse, VPS VDS-servere | ProHoster