Turing Pi — кластерная плата для self-hosted приложений и сервисов

image

Turing Pi это решение для self-hosted приложений построенное по принципу rack стоек в дата центре, только на компактной материнской плате. Решение ориентировано на построение локальной инфраструктуры для локальной разработки и хостинга приложений и сервисов. Вообщем это как AWS EC2 только для edge.

Мы небольшая команда разработчиков решили создать решение для построения bare-metal кластеров в edge и назвали проект Turing Pi. Продукт начался на «коленке», однако сейчас для проверок своих концепций его заказали отделы разработок в Red Hat, Rancher (SUSE), Toyota Connected, Sony, Electrolux, Facebook, и набирается аудитория разработчиков под 10К.

Но все началось с открытия.

Открытие продукта


Когда-то для себя сделал открытие что мы ничего не придумываем. Все вещи существующие в этом мире, мы открываем. Мы открываем что какие то части можно комбинировать вместе, получая новые свойства продуктов или открываем законы и потом снова комбинируем. Придумать ничего нельзя, но можно открыть во время исследования. На мой взгляд изобретение это результат постоянных наблюдений, эксперименты и поиск + комбинация знаний.

В течении последнего десятилетия я наблюдал как набирает обороты любительское движение homelab (ресурс subreddit), self-hosted (ресурсы subreddit и awesome-selfhosted), одноплатные компьютеры, как растет интерес к запуску контейнеров на одноплатных компьютерах типа Raspberry Pi, растет движение собирающее кластеры из одноплатных компьютеров. Постепенно туда тянется и идея Kubernetes. Уже появилась его легкая версия k3s ориентированная на Edge/IoT. Большая сеть ресторанов быстрого питания Chick-fil-A одни из первых в мире разместили кластеры Kubernetes на своих кухнях kubectl make me a sandwich.

Я это вижу как снежный ком, как одна технология оборачивается вокруг другой, создавая более комплексную систему. При этом нет никакого хаоса, больше похоже на фрактал из технологий. В один из достаточно сложных для меня моментов в моей жизни я увидел ценность в кластерах, которые собираются из одноплатных компьютеров разработчиками любителями и начал работать над созданием кластерной платы.

Сегодня наша кластерная плата очень простая и в первую очередь ориентирована на тех кто любит cloud native технологии, изучать новое, экспериментировать.

Строительные блоки (Building Blocks)


Итак, что же из себя представляет решение, в чем суть. Суть в том чтобы дать конструктор, строительные блоки (Building Blocks) из которых можно собрать edge инфраструктуру дешевле чем на классических серверах, мобильную без громоздких металлических ящиков, не требовательную к особым условия эксплуатации типа серверных, энергоэффективную, стандартизированную в плане модулей и с возможностью быстрого масштабирования на десятки и сотни вычислительных узлов (процессоры).
Кластерная плата (Clusterboard)

Mini ITX плата объединяет несколько вычислительных модулей с помощью сети на плате, дает периферийные интерфейсы и контроль над модулями
Вычислительный модуль (Compute Module)

Плата в SO-DIMM форм-факторе содержащая процессор и оперативную память, опционально флеш-память для хранения операционной системы
image
Одна из проектируемых конфигураций версии Turing V2
image
Комбинируя кластерную плату и вычислительные модули легко создать инфраструктуру к примеру на 20+ процессоров (примеры ниже), бесшумную и с низким энергопотреблением. Сама кластерная плата увеличивает эффективность используемого объема. Примеры кластеров для сравнения
SBC based*
image
24 CPU’s
Автор Afkham Azeez
Turing Pi based
image
21 CPU’s
Автор th3st0rmtr00p3r
* SBC — Single Board Computer

Со-основателя Rancher Labs и автора k3s такой подход не оставил равнодушным

image

Далее подробнее про строительные блоки.

Вычислительный Модуль (Compute Module)


Для проверки концепции мы выбрали Raspberry Pi Compute Module это идеальная конфигурация для старта. Коммьюнити RPi активно, нет проблем с софтом, сам модуль в формате SO-DIMM (6 x 3 см), доступен по цене, содержит на борту 4-core CPU, 1 GB RAM и опционально флеш-память 8, 16 или 32 GB для ОС и других системных нужд. Подобный форм-фактор часто используют в индустриальных IoT решениях.

Raspberry Pi 1/3/3+ Compute Module

image

Но у модели CM3 есть и серьезные ограничения — max. 1 GB RAM и Ethernet через USB HUB с максимальной скоростью до 100 Mbps. Поэтому вторая версия Turing будет поддерживать Raspberry Pi 4 и до 8 GB оперативной памяти на модуль. Ниже пример Nvidia Jetson модулей для Accelerated Computing задач. Возможно, будет их поддержка во второй версии, если мы решим некоторые технические задачи, тогда можно миксовать модули.

Nvidia Jetson Compute Modules

image

В модулях кроется самая главная возможность, которая на первый взгляд не очевидна. Возможность создания других модулей в подобном форм-факторе с разным набором CPU, RAM и eMMC, под разные типы задач от general-computing до machine learning интенсивных вычислений. Это очень похоже на инстансы AWS EC2, но только для edge. При этом кластерная плата остается неизменной или с минорными изменениями.

Кластерная плата (Clusterboard)


Еще ее можно назвать материнской платой или базовой платой, достаточно новое направление и производителей подобных решений сегодня не много и все еще довольно на начальном уровне, среди них Pine64, MiniNodes, Clover Pi, Bitscope Blade, PicoCluster (SBC кластеры). Кластерная плата объединяет модули сетью, обеспечивает питанием и дает шину управления кластером (Cluster Management Bus), по крайней мере мы эту шину решили добавить и она вроде прижилась.
Front
image
Back
image
Backplane Bandwidth 12 Gbps SD слоты для модулей без eMMC, например, можно держать пару модулей с SD для быстрого доступа к данным ноды
В основе кластерной платы лежит микросхема switch для обеспечения сетевого соединения модулей и выхода во внешнюю сеть. В текущей версии мы используем unmanaged switch т.к. не было времени проводить полноценный R&D, но ко второй версии мы выбрали неплохой managed switch. Возможна конфигурация в режиме ‘мастер нода как роутер’ для раздачи сети на плату, это если требуется более высокий уровень безопасности и изоляции воркеров от доступа извне, в таком случае на мастер ноде необходимо также держать DHCP сервер.

Применение


Текущая версия является экспериментальной и мы позиционируем ее как решение начального уровня изучить что такое кластеры, поработать с софтом или как проверка гипотез в организациях, поиск новых идей, вообщем такая Lite версия.

Чтобы начать мы рекомендуем серию от замечательного Джеффа Гирлинга, который прочитал о нас на Y Combinator, он автор бестселлера Ansible for DevOps. Он так вдохновился что сделал 6-ти серийный обзор начиная от идеи кластеризации в целом до практических примеров работы с платой, изучения Kubernetes и какой софт можно устанавливать

Серия про установку k3s на кластер


А вообще рекомендую смотреть с первой, там в целом про кластеризацию и Kubernetes доступным языком. И немного картинок от коммьюнити

image

Что дальше?


Во-первых, я очень надеюсь что было интересно. Это абсолютно авторский контент, попытка заглянуть за горизонт. Во-вторых, планирую написать вторую часть про проектирование Turing V2. Как происходил поиск продукта, логические суждения, поиск основных свойств которые важны. Статья будет содержать эскизы продукта от самых ранних до финальных. Вторая статья будет особенно интересна продуктологам, кто отвечает за продукты и их развитие в компаниях.

И скорее всего там будет реально long read.
Ads
AdBlock has stolen the banner, but banners are not teeth — they will be back

More

Comments 51

    +4

    Выглядит как бесполезная игрушка. Она ведь слабее типичного десктопа, по крайней мере по памяти. И вообще, кластеры это тоже во многих случаях игрушка, если вы не Яндекс или подобная компания (с огромным числом пользователей и большим объемом вычислений), кластеры вам не нужны, вам хватит старого доброго монолитного приложения на PHP на 10 лет вперед.

      0
      Мм что не так с памятью?
      вторая версия Turing будет поддерживать Raspberry Pi 4 и до 8 GB оперативной памяти на модуль
      В V2 будет до 32 GB RAM (LPDDR4)

      кластеры это тоже во многих случаях игрушка
      кластеры разные бывают и под разные задачи, не обязательно кластер должна использовать огромная компания, хостить много чего можно локально

      мы любим кластеры
        +3
        А зачем нужен такой кластер когда можно собрать какой нибудь пк с 8\16\32\64 ядер и воткнуть туда до 256 гигов оперативы и хостить на нем что угодно?
          0
          В первую очередь это ARM процессоры. В основном, по тому что мы узнали у текущих покупателей там и бизнесы есть. Они оффлоадят туда процессы, которые постоянно работают и их достаточно держать локально (за cloud платить они не хотят). Один клиент замерял энергоэффективность и при полной загрузке всех ядер всего 34W было потребление.

          — ARM
          — Энергоэффективно
          — Дешево при покупке и дальнейшей эксплуатации 24/7
          — Безшумно и очень компактно — 7 процессоров
            +2
            Справедливости ради, Jetson даже Nano на пассивном охлаждении в таком исполнении серьезную нагрузку не потянет, а Xavier и подавно.

            (Тоже пока до конца не понял, для чего применить такой кластер, кроме обучения, но верю, что на такую штуку есть свой покупатель)
              0
              Покупают и делают повторные покупки по первой версии. Вторую еще больше будут покупать
                +1
                Очень рад, что у вас покупают и будут покупать еще больше, но это странный ответ на вопрос о возможностях применения.
                  0
                  Вычесления в эдже, вот вам целый горизонт для применения. Из таких блоков можно строить очень гибкую эдж инфраструктуру, которая будет прекрасно дружить с облаками и легко обслуживаться
                  +2

                  Амазон хостинг тоже покупают, но это не означает, что люди разумно распределяют выделенный бюджет.

                +4
                >ARM
                А в чём тут преимущество?

                >Энергоэффективно
                >при полной загрузке всех ядер всего 34W было потребление
                Вы и производительность получите на эти же 34 ватта, магии здесь нет. Вот только одна плата с одним мобильным Селероном и 8 Гбайт памяти будет на порядок производительнее за эти же 34 ватта, чем ваши 7 плат с синхронизацией через 1 Гбит/с Так что тут еще вопрос, что энергоэффективнее.

                >Дешево при покупке и дальнейшей эксплуатации 24/7
                Опять же сомнительно. Цифр вы не привели, а на сайте цены нет. Перебьёте хотя бы вот эту цену www.hardkernel.com/shop/odroid-h2 При этом одна эта плата будет на порядок производительнее и энергоэффективней вашего «кластера».

                >Безшумно и очень компактно — 7 процессоров
                Мобильный Селерон тоже бесшумен и компактен на плате mini-itx. А вот когда вы начнёте внедрять rp4, то вам уже потребуется активное охлаждение. Но я и ваши 7 rp4 разнесу в хлам по всем пунктам. Впрочем, понятно что это никому не интересно. У вас есть дети гики, желающие игрушек, вы им их даете, пожелаю вам только удачи. Просто неприятно когда людей вводят в заблуждение.
                  0
                  >>ARM
                  >А в чём тут преимущество?
                  >Дешево при покупке и дальнейшей эксплуатации 24/7
                  > Но я и ваши 7 rp4 разнесу в хлам по всем пунктам.

                  Уже разнесли x86 в хлам и это только начало

                  Вот пример как в AWS перевели кластеры x86 на кластеры ARMv8. Теже сервисы (т.е. производительности хватило), тот же промежуток времени, трафик вырос за это время, стоимсть сократилась в 2 РАЗА, а это постоянные затраты

                  image

                  Наше решение использут многие как ARM workstation для разработки, как CI/CD для ARM решений в Edge и как Self-Hosted.

                  Почему Apple переводит все desktop решения на ARM?
                    +1
                    >Почему Apple переводит все desktop решения на ARM?
                    Им нужна единая платформа, сейчас у них зоопарк из x86 и arm. Очевидно нужно мигрировать на arm, тем более современные процессоры это позволяют.

                    >Уже разнесли x86 в хлам и это только начало
                    Когда увидим уровень Эпика с 512 потоками, тогда и поговорим, а сейчас это один маркетинг и лукавство. Примерно как вы пытаетесь выставить свою игрушку в выгодном свете, когда на самом деле одноплатник на Селероне будет дешевле, быстрее, функциональнее (есть полноценный SATA, NVMe, 1 Gbit/s), энергоэффективнее, занимать меньше места.

                    Но как я и говорил, удачи вам, этот мир безумен давно, еще одно безумство погоды не сделает.
                      0
                      Какой маркетинг, это реальные данные из AWS сравнение затрат x86 с ARM кластерами

                      image

                      Вы как то болезненно реагируете
                        +1
                        А что по поводу цены совокупной, электроенергии и тепловыделения? Есть сравнение полноценно?
                          0
                          Только вот конкурировать вам придётся как с серверными x64, так и с серверными arm.
                            0
                            Мы не собираемся конкурировать с серверным железом. Это другой класс устройств предназначеный для homelab, home automation, CL/CD серверов в edge.
                              0
                              Всё равно непонятно. По уровню производительности вы будете на уровне какого-то десктопа, только вот дестоп это вещь понятная и хорошо изученная. Вы написали про 32 Гб на кластер, но ведь кластер не позволит взять эти 32 ГБ и работать с ними как с одним куском, то есть даже просто создать ram disk например гигабайт на 30. Какая характеристика в вашем варианте делает это устройство пригодным?
                        +1

                        Вы изволите аппелировать к производительности и энергоэффективности Graviton2 и Apple Silicon так, как будто их можно вставить в Вашу плату, но ведь нельзя же. Есть вполне конкретные модули, которые можно вставить, и есть x86, который можно купить и ремонтировать методом «выкидываем сломанное и покупаем в магазине в практически любом российском городе со 100+ тысячами населения новое такое же». Хочется, всё-таки, сравнений хотя бы с t4g.micro и тем же x86 из магазина в плане цены, производительности и энергопотребления (где применимо).

                          0
                          Мы сейчас делаем на чем доступно с нашими ресурсами (инвесторов у нас извините нет). Есть процессоры которые сравнимы с Graviton 1 (по тестам), мы смотрим на них. А так для дальшнейшего шага мы добавим свои планки сравнимые с Gravtion 2 и прицеливаемся сразу дать 8 и 16 GB RAM на планку
                            +1

                            Да, с таким объемом памяти уже можно начинать разговаривать. С 1 Гбайт/хост не знаю, что облачное можно серьезно тестировать, OOM разве что. Собственно, поэтому я и взял себе для опытов x86 — россыпь RPi4 и ворох БП/проводов неинтересны, а у Turing Pi отвратительно мало памяти. Так что, как говорится, ждём ебилдов.

                              0
                              Во второй версии у нас будет 32 GB RAM на кластер
                          0
                          Когда тестировал еще первую версию arm в AWS остался не совсем доволен производительностью 16 ядер. Причем по цене было вроде примерно как х86.
                          Может во второй версии все стало получше, но я не понимаю для чего может хватить такой производительности.
                          –1
                          >Вы и производительность получите на эти же 34 ватта, магии здесь нет.

                          Конечно нет магии, просто для RISC процессоров оптимизация идет на этапе компиляции и она более затратна из-за этого. Постепенно производительность подтягивается к CISC архитектурам.
                            +1

                            Где вы тут RISC процессоры увидели, можно узнать?

                        0
                        Я хочу собрать такой кластер. Есть подозрение, что для моей задачи это может оказаться дешевле классического многоядерного компьютера на х86-64, но подозрение ещё нужно подтвердить бенчмарками RPi 4.

                        Причём моя мысль не пошла дальше стойки для обычных плат RPi c разводкой сети патч-кордами через Ethernet хаб. Даже не представлял, что есть особые модули и кластерные платы под них.
                          0
                          Я хочу собрать такой кластер. Есть подозрение, что для моей задачи это может оказаться дешевле классического многоядерного компьютера на х86-64


                          По затратам на электричество однозначно, если у вас есть workloads 24/7. По затратам на обсуживание тоже если вы планируете масштабирование, кластерная плата просто удобнее
                            0
                            Меня больше интересуют прямые затраты на покупку железа на единицу производительности. Разница в стоимости электроэнергии по сравнению с этим будет малозначительна (даже в масштабах одного года работы).
                            0
                            Знаю компанию, которая пытается делать тонких клиентов на Pi4.
                            И знаете что? У них уже кулер на радиаторе стоит. Потому, что иначе перегревается чип.
                              0
                              Лично я даже не сомневался :) Но куча воющих мелких кулеров — это грустно. Есть у китайцев «rack» корпуса, напоминающие корзины для HDD, где несколько плат и один кулер 120 мм, продувающий их, я бы в эту сторону продумывал.
                            0
                            А вот представьте вы нефте добывающая компания и вам нужно решение которое легко будет мигрироваться и синхронизироваться с клаудом чтобы собирать и обрабатывать данные в местах где ограниченный доступ в интернет. Можно и ПК воткнуть, но встает вопрос размеров и энергоэффективности. Можно и одноплатник воткнуть, и установить ВМ, но если этот одноплатник завис, вы теряете критически важный компьют. Компактные кластеры в свою очередь являются и более удобным и более надежным решением в таких кейсах. Кейс кстати реальный из жизни.
                              +1
                              А что, Вы правда считаете Pi4 надежным девайсом?
                                0
                                вполне.
                                  +1
                                  У меня есть большой с++ проект… если я его начинаю компилировать на Pi4
                                  >make -j4
                                  (компиляция на 4х ядрах) то с большой вероятностью минут через 10 повиснет.
                                  только -j3 работает.
                                  Ну или нужно хорошее активное охлаждение.
                                0
                                Есть отличные компактные решения промышленных пк с пассивным охлаждением и размерами совостовимыми с данным кластером… не одноплатником единым
                                ЗЫ а что делать с таким кластером в случае чего? у вас же дохнет не просто пк — а все модули на нем, то есть нужно купить не одно готовое устройство, а baseboard и некое колличество модулей — так себе надежность — сильно сомневаюсь что в кластере отвалится 1 модуль из условных 8
                                0
                                Вопрос цены и производительности. Мы также идём по пути кластеров, но не ARM, a x86 и специализированных чипов VPU (Intel Movidius) для высокопроизводительных вычислений. Последний — IoT устройства. Но при их плотном размещении в ЦОД на PCIe дают высокую производительность при минимальном энергопотреблении.

                                image

                                Плата с 64х VPU Intel Movidius на один слот PCIe, которых в сервере форм-фактора 1U может быть 4 штуки. Таким образом мы получаем до 256 ускорителей в рамках платформы.

                                В части х86/ARM архитектур может быть достаточно сетевого взаимодействия устройств с контролем состояний и программной виртуализацией ресурсов. Некоторое время назад публиковали сервер для процессинга на базе 8 Intel NUC, в котором размещено 8 процессоров Core i5 8-го поколения и 8 iGPU — habr.com/ru/post/477430
                              +2

                              Ну игрушки не обязательно бесполезные, мне кажется вполне годится для образовательных целей. Нагляднее, чем куча виртуалок на 1 машине.


                              Но ставка на CM3 неудачная, нужно было сразу смотреть на CM4 и 64-битный ARM. И, кстати, подобная плата уже давно в продаже у проекта Pine64, стоит даже дешевле — https://www.pine64.org/clusterboard/

                                +1
                                CM4 не существует в продаже
                                поэтому начали с CM3

                                Pine64 всего 14 GB… Мы скоро анонсируем вторую версию с 32 GB RAM и другими плюсами которых нет в Pine
                                  +1
                                  А есть понимание, когда в теории можно ожидать появление CM4 и вашей платы с ее поддержкой?
                            +2
                            Ждём пост со сценариями использования в реальной жизни.
                            Успехов в разработке. Разработчики реально молодцы
                              +1
                              Thx!

                              По сценариям, скорее всего разными они будут, сегодня с нами поделились вот этим сценарием, где команда использует наши кластеры и они очень рады и хотят еще
                              synyx.de/blog/turing-pi-gitlab-ci-ansible

                              Но сценарии это не панацея для выращивания продаж или понимания продукта, надо шире смотреть
                                +1
                                Вообще, даже при разработке сайтов, с довольно большим жизненным циклом, количество серверов не нуждающихся в вычислительных мощностях (dev, stage) обычно составляет около 2/3 от всей инфраструктуры.

                                В каком-нибудь маркетинговом отделе компании таких проектов около 10 в год, не считая экспериментов не добравшихся до продакшена.

                                И если кластеризация на Turing Pi будет обеспечивать идентичные условия работы как на «взрослых» кластерах, то это означает, что 20 серверов могут очень дешево крутиться во внутренней сети компании, а платить облакам только за 10 продакшен серверов, на которых будет трафик.

                                Но с другой стороны важным фактором будет являться стоимость обслуживания и настройки. В облака уходят и потому, что поддерживать свою инфраструктуру и штат дороже. Возможно, тут бы хорошо зашли варианты: «воткнул в сеть и все работает».

                                И я пока говорю с точки зрения компании, которая всю инфраструктуру держит в кластерах. С классическими схемами «100 сайтов в один сервер», надо считать, но там проблемнее с идентичностью окружения на разных серверах и одной конфигурацией деплоя для dev / stage / prod.
                                  +2
                                  Вообще, даже при разработке сайтов, с довольно большим жизненным циклом, количество серверов не нуждающихся в вычислительных мощностях (dev, stage) обычно составляет около 2/3 от всей инфраструктуры.
                                  Разве подобные проблемы не решаются «нарезкой» физического сервера на набор виртуальных машин (то как делают VPS хостинги) с нужными проектам параметрами?
                                    +1
                                    Решается, но это совершенно другой скейл. Стоит у вас сервер локальный за $5к, нарезали на ВМ, но хотите еще скейлиться. Вариант поставить очередной сервер за $5к и нарезать на ВМ. С такими кластернами блоками скейл выглядит совершенно по другому. Можно скейлить как модулями, так и кластерными блоками в целом.
                                      +1
                                      >Вариант поставить очередной сервер за $5к и нарезать на ВМ.
                                      Зачем сервер за $5k? Сейчас даже Селероны за 30 баксов поддерживают виртуализацию.
                                      0
                                      В некоторых случаях решаются. Но это другая экономика по закупке серверных мощностей. Там надо считать, я не не знаю про экономическую выгоду.

                                      В первую очередь я говорю про компании где кластеры — это принятая практика.

                                      Т.е. есть компании которые занимаются производством сайтов, и у них запасы мощностей — экономически выгодны.

                                      Для маркетингового отдела запасы по мощности не рентабельны. Масштабирование иное, т.к. есть пики активности сайта, во время каких-то мероприятий. Свойство кластеров — скейлится под нагрузкой хорошо себя оправдывает.

                                      А если продакшен в кластере, то и dev / stage среды должны разворачиваться аналогичным образом, чтобы релизиться без сюрпризов.

                                      Опять же это мой опыт, и мой кейс из-за которого идея автора кажется применимой
                                0
                                Поздравляю!
                                Вы сделали BladeCenter. Осталось сделать Flex, с пассивным бэкплейном.
                                  0
                                  Сколько он стоит?
                                  +1
                                  Любые блейд-центры заточены под кровавый энтерпрайз, и цены у них крайне не гуманные.
                                  Вы идёте с другой стороны. Но именно IBM хвалился тем, что его корзины были настолько продуманы, что сервера, например именно к БлейдЦентру выпускались 12! лет. И вы можете, хорошо продумав архитектуру, тоже обеспечить долгую жизнь своим изделиям.
                                  А можно двинуться уже по проторенному пути, ARM-ы позволяют:
                                  www.cnews.ru/news/top/personalnye_superkompyutery_zamenyat
                                    0
                                    Покупал несколько pi и несколько мини-пк типа наков. Для поиграть, посмотреть. Пришел к выводу что получается слишком не удобно все это держать. Только для подключения нужен с десяток проводов питания и еще столько же сетевых. По стоимости дешевле купить обычный комп, он еще и производительней будет.
                                    Но все же это интересно и верю что есть проекты которые было бы удобно протестировать на таком кластере.

                                    Only users with full accounts can post comments. Log in, please.