...

пятница, 16 октября 2020 г.

[Из песочницы] 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 инфраструктуру дешевле чем на классических серверах, мобильную без громоздких металлических ящиков, не требовательную к особым условия эксплуатации типа серверных, энергоэффективную, стандартизированную в плане модулей и с возможностью быстрого масштабирования на десятки и сотни вычислительных узлов (процессоры).
Комбинируя кластерную плату и вычислительные модули легко создать инфраструктуру к примеру на 20+ процессоров (примеры ниже), бесшумную и с низким энергопотреблением. Сама кластерная плата увеличивает эффективность используемого объема. Примеры кластеров для сравнения
* 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), по крайней мере мы эту шину решили добавить и она вроде прижилась.
В основе кластерной платы лежит микросхема switch для обеспечения сетевого соединения модулей и выхода во внешнюю сеть. В текущей версии мы используем unmanaged switch т.к. не было времени проводить полноценный R&D, но ко второй версии мы выбрали неплохой managed switch. Возможна конфигурация в режиме ‘мастер нода как роутер’ для раздачи сети на плату, это если требуется более высокий уровень безопасности и изоляции воркеров от доступа извне, в таком случае на мастер ноде необходимо также держать DHCP сервер.

Применение


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

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

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

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

image

Что дальше?


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

И скорее всего там будет реально long read.

Let's block ads! (Why?)

Комментариев нет:

Отправить комментарий