
Turing Pi er en løsning for selvhostede applikasjoner bygget på prinsippet om rack i et datasenter, bare på et kompakt hovedkort. Løsningen fokuserer på å bygge en lokal infrastruktur for lokal utvikling og hosting av applikasjoner og tjenester. Generelt sett er det som AWS EC2, bare for edge-systemet.
Vi, et lite team med utviklere, bestemte oss for å lage en løsning for å bygge bare-metal-klynger i kanten og kalte prosjektet Turing Pi. Produktet startet på «kneet», men nå har det blitt bestilt av utviklingsavdelinger hos Red Hat, Rancher (SUSE), Toyota Connected, Sony, Electrolux og Facebook for å teste konseptene sine, og et publikum av utviklere samler seg under 10 XNUMX.
Men det hele startet med en oppdagelse.
Produktoppdagelse
En gang oppdaget jeg selv at vi ikke oppfinner noe som helst. Alt som finnes i denne verden oppdager vi. Vi oppdager at noen deler kan kombineres sammen, og dermed få nye egenskaper ved produkter, eller vi oppdager lover og deretter kombinerer dem igjen. Du kan ikke oppfinne noe som helst, men du kan oppdage det gjennom forskning. Etter min mening er oppfinnelse et resultat av konstante observasjoner, eksperimenter og søking + en kombinasjon av kunnskap.
I løpet av det siste tiåret har jeg sett amatørhjemmelaboratoriebevegelsen få momentum (ressurs ), selvhostet (ressurser и ), enkeltkortsdatamaskiner. Etter hvert som interessen for å kjøre containere på enkeltkortsdatamaskiner som Raspberry Pi vokser, vokser det en bevegelse for å sette sammen klynger av enkeltkortsdatamaskiner. Ideen bak Kubernetes beveger seg gradvis dit. Den lette versjonen k3, med fokus på Edge/IoT, har allerede dukket opp. Den store hurtigmatkjeden Chick-fil-A var en av de første i verden som plasserte Kubernetes-klynger på kjøkkenene sine. .
Jeg ser det som en snøball, én teknologi som slynger seg rundt en annen, og skaper et mer komplekst system. Det er ikke noe kaos, mer som en fraktal av teknologier. I et av de ganske vanskelige øyeblikkene i livet mitt så jeg verdien i klynger som er satt sammen av enkeltkortsdatamaskiner av amatørutviklere, og begynte å jobbe med å lage et klyngekort.
I dag er klyngetavlen vår veldig enkel og primært rettet mot de som elsker skybaserte teknologier, lærer nye ting og eksperimenterer.
Byggeklosser
Så, hva er løsningen, hva er essensen? Essensen er å tilby en konstruktør, byggeklosser (Building Blocks) som du kan bruke til å sette sammen en edge-infrastruktur billigere enn på klassiske servere, mobil uten store metallbokser, lite krevende for spesielle driftsforhold som servere, energieffektiv, standardisert når det gjelder moduler og med mulighet for raskt å skalere til titalls og hundrevis av datanoder (prosessorer).
Klyngebrett
Mini ITX-kort kobler til flere datamoduler via innebygd nettverk, gir periferigrensesnitt og kontroll over moduler
Beregningsmodul
Et kort i en SO-DIMM-formfaktor som inneholder en prosessor og RAM, eventuelt flashminne for lagring av operativsystemet

En av de prosjekterte konfigurasjonene av Turing V2-versjonen

Ved å kombinere et klyngekort og datamoduler er det enkelt å lage en infrastruktur for for eksempel 20+ prosessorer (eksempler nedenfor), stillegående og med lavt strømforbruk. Selve klyngekortet øker effektiviteten til det brukte volumet. Eksempler på klynger for sammenligning
SBC-basert*

24 CPUer
Forfatter Afkham Azeez
Turing Pi-basert

21 CPUer
Forfatter
* SBC - Enkeltkortsdatamaskin
Medgründeren av Rancher Labs og forfatteren av k3s lot seg ikke likegyldig av denne tilnærmingen.

Mer informasjon om byggeklosser nedenfor.
Beregningsmodul
For å teste konseptet valgte vi Raspberry Pi Compute Module, som er en ideell konfigurasjon å starte med. RPi-fellesskapet er aktivt, det er ingen problemer med programvaren, selve modulen er i SO-DIMM-format (6 x 3 cm), er rimelig, inneholder en 4-kjerners CPU, 1 GB RAM og valgfritt flashminne på 8, 16 eller 32 GB for operativsystemet og andre systembehov. Denne formfaktoren brukes ofte i industrielle IoT-løsninger.
Raspberry Pi 1/3/3+ databehandlingsmodul

Men CM3-modellen har alvorlige begrensninger – maks. 1 GB RAM og Ethernet via USB-hub med en maksimal hastighet på opptil 100 Mbps. Derfor vil den andre versjonen av Turing støtte Raspberry Pi 4 og opptil 8 GB RAM per modul. Nedenfor er et eksempel på Nvidia Jetson-moduler for akselererte databehandlingsoppgaver. Kanskje de vil bli støttet i den andre versjonen, hvis vi løser noen tekniske problemer, kan vi blande moduler.
Nvidia Jetson-beregningsmoduler

Modulene inneholder den viktigste funksjonen, som ikke er åpenbar ved første øyekast. Muligheten til å lage andre moduler i en lignende formfaktor med et annet sett med CPU, RAM og eMMC, for forskjellige typer oppgaver fra generell databehandling til maskinlæringsintensiv databehandling. Dette er veldig likt AWS EC2-instanser, men bare for kanten. Samtidig forblir klyngekortet uendret eller med mindre endringer.
Klyngebrett
Det kan også kalles et hovedkort eller baseboard, en ganske ny retning, og det finnes ikke mange produsenter av slike løsninger i dag, og de er fortsatt på et ganske innstegsnivå, blant dem Pine64, MiniNodes, Clover Pi, Bitscope Blade, PicoCluster (SBC-klynger). Klyngekortet kobler moduler til et nettverk, gir strøm og sørger for en klyngeadministrasjonsbuss (Cluster Management Bus), i hvert fall bestemte vi oss for å legge til denne bussen, og det ser ut til at den har slått rot.
Front

Tilbake

Bakplanbåndbredde 12 Gbps
SD-spor for moduler uten eMMC, for eksempel kan du ha et par moduler med SD for rask tilgang til nodedata
Klyngekortet er basert på en svitsjbrikke for å gi nettverkstilkobling av moduler og tilgang til det eksterne nettverket. I den nåværende versjonen bruker vi en uadministrert svitsj fordi det ikke var tid til å drive fullverdig forskning og utvikling, men for den andre versjonen valgte vi en god administrert svitsj. Konfigurasjon i modusen «masternode som ruter» for å distribuere nettverket til kortet er mulig, dette er hvis et høyere sikkerhetsnivå og isolering av arbeidere fra ekstern tilgang er nødvendig, i hvilket tilfelle en DHCP-server også må holdes på masternoden.
Søknad
Den nåværende versjonen er eksperimentell, og vi posisjonerer den som en løsning på inngangsnivå for å lære hva klynger er, jobbe med programvare, eller som en måte å teste hypoteser i organisasjoner, søke etter nye ideer, generelt sett en Lite-versjon.
For å starte anbefaler vi en serie fra den fantastiske Jeff Girling, som leste om oss på Y Combinator, han er forfatteren av bestselgeren Ansible for DevOps. Han ble så inspirert at han laget en anmeldelse i seks deler, som starter fra ideen om klynging generelt til praktiske eksempler på arbeid med styret, studier av Kubernetes og hvilken programvare som kan installeres.
Serie om å installere k3-er på en klynge

Generelt anbefaler jeg å se den første, den handler om klynging og Kubernetes på et tilgjengelig språk. Og noen bilder fra fellesskapet.

Hva blir det neste?
For det første håper jeg virkelig det var interessant. Dette er absolutt originalt innhold, et forsøk på å se utover horisonten. For det andre planlegger jeg å skrive den andre delen om designet til Turing V2. Hvordan produktsøket foregikk, logiske vurderinger, søket etter de viktigste egenskapene som er viktige. Artikkelen vil inneholde skisser av produktet fra de tidligste til de endelige. Den andre artikkelen vil være spesielt interessant for produktledere som er ansvarlige for produkter og deres utvikling i bedrifter.
Og mest sannsynlig blir det en veldig lang leseopplevelse.
Kilde: www.habr.com
