
Turing Pi to rozwiązanie dla aplikacji self-hosted, zrealizowane na zasadzie racków w datacenter, ale na kompaktowej płycie głównej. Rozwiązanie skupia się na budowie lokalnej infrastruktury do lokalnego rozwoju i hostingu aplikacji oraz usług. Ogólnie to jak AWS EC2, ale dla edge.
Jesteśmy małym zespołem deweloperów, który postanowił stworzyć rozwiązanie do budowy bare-metal klastrów w edge i nazwaliśmy projekt Turing Pi. Produkt zaczął się jako pomysł z tzw. ‘low-code’, ale obecnie jego koncepcje zamówili działy rozwoju w Red Hat, Rancher (SUSE), Toyota Connected, Sony, Electrolux, Facebook, a liczba zainteresowanych deweloperów dochodzi do 10K.
Ale wszystko zaczęło się od odkrycia.
Odkrycie produktu
Kiedyś odkryłem, że niczego nie wymyślamy. Wszystko, co istnieje na tym świecie, odkrywamy. Odkrywamy, że niektóre elementy można łączyć razem, uzyskując nowe właściwości produktów lub odkrywamy prawa, a następnie znów je kombinujemy. Nic nie można wymyślić, ale można odkryć podczas badań. Moim zdaniem wynalazek to rezultat ciągłych obserwacji, eksperymentów i poszukiwań + kombinacja wiedzy.
W ciągu ostatniej dekady obserwowałem, jak zyskuje na sile ruch amatorów homelab (zasoby ), self-hosted (zasoby i ), jednopłytowe komputery, jak rośnie zainteresowanie uruchamianiem kontenerów na jednopłytowych komputerach typu Raspberry Pi, a także ruch zbierający klastry z jednopłytowych komputerów. Stopniowo zaczyna tam docierać też idea Kubernetes. Pojawiła się jego lekka wersja k3s, skierowana na Edge/IoT. Duża sieć restauracji szybkiej obsługi Chick-fil-A była jedną z pierwszych na świecie, która umieściła klastry Kubernetes w swoich kuchniach. .
Widzę to jako kulkę śnieżną, jak jedna technologia owijająca się wokół innej, tworząc bardziej złożony system. Nie ma w tym chaosu, bardziej przypomina to fraktal technologii. W jednym z dosyć trudnych momentów w moim życiu dostrzegłem wartość w klastrach, które są budowane przez amatorskich programistów z jednopłytowych komputerów, i zacząłem pracować nad stworzeniem płyty klastrowej.
Dziś nasza płyta klastrowa jest bardzo prosta i w pierwszej kolejności skierowana do tych, którzy lubią technologie cloud native, uczą się nowych rzeczy, eksperymentują.
Moduły budowlane (Building Blocks)
Cóż, czym jest to rozwiązanie, na czym polega. Polega na dostarczeniu konstruktorów, elementów (Building Blocks), z których można zbudować infrastrukturę brzegową taniej niż na klasycznych serwerach, mobilną, bez dużych metalowych skrzyń, niewymagającą specjalnych warunków eksploatacji typowych dla serwerów, energooszczędną, standaryzowaną pod względem modułów i z możliwością szybkiego skalowania do dziesiątek i setek jednostek obliczeniowych (procesorów).
Płyta klastrowa (Clusterboard)
Płyta Mini ITX łączy kilka modułów obliczeniowych poprzez sieć na płycie, dostarcza interfejsy peryferyjne i kontrolę nad modułami.
Moduł obliczeniowy (Compute Module)
Płyta w formacie SO-DIMM zawierająca procesor i pamięć RAM, opcjonalnie pamięć flash do przechowywania systemu operacyjnego.

Jedna z projektowanych konfiguracji wersji Turing V2.

Łącząc płytę klastrową i moduły obliczeniowe, łatwo stworzyć infrastrukturę na przykład z 20+ procesorami (przykłady poniżej), cichą i o niskim zużyciu energii. Sama płyta klastrowa zwiększa efektywność wykorzystanej objętości. Przykłady klastrów do porównania.
Na bazie SBC*

24 CPU
Autor Afkham Azeez
Na bazie Turing Pi

21 CPU
Autor
* SBC — Komputer jednopłytkowy (Single Board Computer)
Współzałożyciel Rancher Labs i autor k3s, ten sposób działania nie pozostawił go obojętnym.

Teraz dokładniej o elementach budowlanych.
Moduł Obliczeniowy (Compute Module)
Aby zweryfikować koncepcję, wybraliśmy Raspberry Pi Compute Module, co jest idealną konfiguracją na początek. Społeczność RPi jest aktywna, nie ma problemów z oprogramowaniem, sam moduł w formacie SO-DIMM (6 x 3 cm) jest dostępny w przystępnej cenie, zawiera na pokładzie 4-rdzeniowy CPU, 1 GB RAM i opcjonalnie pamięć flash 8, 16 lub 32 GB do OS i innych potrzeb systemowych. Taki format często stosuje się w przemysłowych rozwiązaniach IoT.
Raspberry Pi 1/3/3+ Compute Module

Ale model CM3 ma też poważne ograniczenia — maks. 1 GB RAM i Ethernet przez USB HUB z maksymalną prędkością do 100 Mbps. Dlatego druga wersja Turing będzie wspierać Raspberry Pi 4 oraz maksymalnie 8 GB pamięci RAM na moduł. Poniżej przykład modułów Nvidia Jetson do zadań obliczeniowych przyspieszonych. Możliwe, że będą one wspierane w drugiej wersji, jeśli rozwiążemy pewne problemy techniczne, wtedy można miksować moduły.
Moduły obliczeniowe Nvidia Jetson

W modułach kryje się najważniejsza możliwość, która na pierwszy rzut oka nie jest oczywista. Możliwość tworzenia innych modułów w podobnym formacie z różnymi zestawami CPU, RAM i eMMC, dostosowanych do różnych typów zadań, od ogólnych obliczeń po intensywne obliczenia związane z uczeniem maszynowym. Jest to bardzo podobne do instancji AWS EC2, ale skierowane na edge. Jednocześnie płyta klastrowa pozostaje niezmieniona lub z drobnymi zmianami.
Płyta klastrowa (Clusterboard)
Można ją również nazwać płytą główną lub bazową płytą, to stosunkowo nowe направление, a producentów takich rozwiązań jest obecnie niewiele i są na wczesnym etapie rozwoju, wśród nich Pine64, MiniNodes, Clover Pi, Bitscope Blade, PicoCluster (klastry SBC). Płyta klastrowa łączy moduły siecią, zapewnia zasilanie i oferuje szynę zarządzania klastrem (Cluster Management Bus), przynajmniej zdecydowaliśmy się dodać tę szynę i wygląda na to, że się przyjęła.
Front

Wstecz

Pasmo tylnej płyty 12 Gbps
Sloty SD dla modułów bez eMMC, na przykład można umieścić kilka modułów z SD dla szybkiego dostępu do danych nodu
Podstawą płyty klastrowej jest układ switch zapewniający połączenie sieciowe modułów oraz wyjście do sieci zewnętrznej. W aktualnej wersji używamy switcha unmanaged, ponieważ nie było czasu na przeprowadzenie pełnoprawnych badań i rozwoju, ale do drugiej wersji wybraliśmy przyzwoity switch zarządzany. Możliwa jest konfiguracja w trybie 'węzeł master jako router' do rozdzielania sieci na płytę, jeśli wymagana jest wyższy poziom bezpieczeństwa i izolacji pracowników od dostępu zewnętrznego, w takim przypadku na węźle masterze należy również uruchomić serwer DHCP.
Zastosowanie
Bieżąca wersja jest eksperymentalna i pozycjonujemy ją jako rozwiązanie dla początkujących, które pozwala poznać, czym są klastry, pracować z oprogramowaniem lub testować hipotezy w organizacjach, poszukiwać nowych pomysłów, ogólnie rzecz biorąc jest to wersja Lite.
Aby zacząć, polecamy serię autorstwa wspaniałego Jeffa Geerlinga, który przeczytał o nas w Y Combinator, jest autorem bestsellera Ansible for DevOps. Zainspirowany stworzył 6-odcinkowy przegląd, zaczynający od idei klastrowania w ogóle do praktycznych przykładów pracy z płytą, nauki Kubernetes oraz oprogramowania, które można zainstalować.
Seria o instalacji k3s na klastrze

Ogólnie rzecz biorąc, polecam zaczynać od pierwszego, tam w ogóle mowa o klastrowaniu i Kubernetes w przystępny sposób. I kilka obrazków od społeczności.

Co dalej?
Po pierwsze, mam nadzieję, że to było interesujące. To w pełni autorski materiał, próba zajrzenia za horyzont. Po drugie, planuję napisać drugą część na temat projektowania Turing V2. Jak przebiegało poszukiwanie produktu, logiczne rozumowania, identyfikacja kluczowych cech, które są ważne. Artykuł będzie zawierał szkice produktu od najwcześniejszych po finalne. Druga część będzie szczególnie interesująca dla produktowców, którzy odpowiadają za produkty i ich rozwój w firmach.
I najprawdopodobniej będzie to naprawdę long read.
Źródło: habr.com
