
Turing Pi es una solución para aplicaciones autohospedadas construida sobre el principio de racks de servidores en un centro de datos, pero en una placa base compacta. La solución está orientada a construir infraestructura local para desarrollo local y hospedaje de aplicaciones y servicios. En resumen, es como AWS EC2, pero para edge.
Somos un pequeño equipo de desarrolladores que decidimos crear una solución para construir clústeres bare-metal en edge y llamamos al proyecto Turing Pi. El producto comenzó como un proyecto personal, sin embargo, ahora para verificar nuestras ideas ha sido solicitado por departamentos de desarrollo en Red Hat, Rancher (SUSE), Toyota Connected, Sony, Electrolux, Facebook, y estamos alcanzando una audiencia de desarrolladores de casi 10K.
Pero todo comenzó con un descubrimiento.
El descubrimiento del producto
En una ocasión hice el descubrimiento de que no inventamos nada. Todas las cosas existentes en este mundo las descubrimos. Descubrimos que algunas partes se pueden combinar, obteniendo nuevas propiedades de los productos o descubrimos leyes y luego combinamos de nuevo. No se puede inventar nada, pero se puede descubrir mientras investigamos. A mi parecer, la invención es el resultado de observaciones constantes, experimentos y búsqueda + combinación de conocimientos.
En la última década he observado cómo el movimiento amateur de homelab (recurso ), self-hosted (recursos y ), computadoras de placa única, ha ido creciendo el interés por ejecutar contenedores en computadoras de placa única como Raspberry Pi, y se está formando un movimiento que agrupa clústeres de computadoras de placa única. Poco a poco, la idea de Kubernetes se está integrando también. Ya existe su versión ligera, k3s, orientada a Edge/IOT. Una gran cadena de restaurantes de comida rápida, Chick-fil-A, se encuentra entre los primeros en el mundo en haber desplegado clústeres de Kubernetes en sus cocinas. .
Yo lo veo como una bola de nieve, cómo una tecnología envuelve a otra, creando un sistema más complejo. Y no hay caos, se parece más a un fractal de tecnologías. En uno de los momentos más difíciles de mi vida, vi el valor en los clústeres que son ensamblados por desarrolladores aficionados y comencé a trabajar en la creación de una placa para clústeres.
Hoy en día, nuestra placa de clúster es muy sencilla y está principalmente orientada a aquellos que aman las tecnologías cloud native, a explorar lo nuevo y a experimentar.
Bloques de construcción (Building Blocks)
Entonces, ¿qué es exactamente la solución y en qué consiste? La esencia es proporcionar un constructor, bloques de construcción (Building Blocks) que permiten ensamblar infraestructuras edge más baratas que en servidores clásicos, móviles y sin grandes cajas metálicas, que no requieren condiciones especiales de explotación como en los servidores, energéticamente eficientes, estandarizadas en cuanto a módulos y con la posibilidad de escalar rápidamente a decenas y cientos de nodos de cómputo (procesadores).
Placa de clúster (Clusterboard)
La placa Mini ITX combina varios módulos de cómputo mediante una red en la placa, proporcionando interfaces periféricas y control sobre los módulos
Módulo de Cómputo (Compute Module)
Placa en formato SO-DIMM que contiene un procesador y memoria RAM, opcionalmente memoria flash para almacenar el sistema operativo

Una de las configuraciones diseñadas de la versión Turing V2

Combinando la placa de clúster y módulos de cómputo, es fácil crear una infraestructura, por ejemplo, con más de 20 procesadores (ejemplos a continuación), silenciosa y con bajo consumo energético. La propia placa de clúster aumenta la eficiencia del volumen utilizado. Ejemplos de clústeres para comparación
Basado en SBC*

24 CPU’s
Autor Afkham Azeez
Basado en Turing Pi

21 CPU’s
Autor
* SBC — Computadora de placa única (Single Board Computer)
El cofundador de Rancher Labs y autor de k3s no se sintió indiferente ante este enfoque

A continuación, más detalles sobre los bloques de construcción.
Módulo de Cómputo (Compute Module)
Para verificar el concepto, elegimos el Raspberry Pi Compute Module, que es la configuración ideal para empezar. La comunidad de RPi es activa, no hay problemas con el software, el propio módulo en formato SO-DIMM (6 x 3 cm) es asequible y contiene un CPU de 4 núcleos, 1 GB de RAM y opcionalmente memoria flash de 8, 16 o 32 GB para el sistema operativo y otras necesidades del sistema. Este tipo de formato se utiliza a menudo en soluciones de IoT industriales.
Módulo de Cómputo Raspberry Pi 1/3/3+

Pero el modelo CM3 tiene limitaciones serias: max. 1 GB de RAM y Ethernet a través de un HUB USB con una velocidad máxima de hasta 100 Mbps. Por lo tanto, la segunda versión de Turing admitirá Raspberry Pi 4 y hasta 8 GB de memoria RAM por módulo. A continuación, un ejemplo de módulos Nvidia Jetson para tareas de computación acelerada. Puede que haya soporte para ellos en la segunda versión si resolvemos algunos problemas técnicos, en tal caso podríamos mezclar módulos.
Módulos de Cómputo Nvidia Jetson

Los módulos esconden la posibilidad más importante, que a primera vista no es obvia. La capacidad de crear otros módulos en un formato similar con diferentes conjuntos de CPU, RAM y eMMC, para diferentes tipos de tareas, desde computación general hasta cálculos intensivos de machine learning. Esto es muy parecido a las instancias de AWS EC2, pero solo para edge. Además, la placa de clúster permanece inalterada o con cambios menores.
Placa de clúster (Clusterboard)
También se puede llamar placa base o placa madre, es una dirección relativamente nueva y hay pocos fabricantes de este tipo de soluciones hoy en día, y aún están en una etapa bastante inicial, entre ellos Pine64, MiniNodes, Clover Pi, Bitscope Blade, PicoCluster (clústeres SBC). La placa de clúster conecta los módulos a través de la red, proporciona alimentación y da un bus de gestión del clúster (Cluster Management Bus), al menos decidimos agregar este bus y parece que se ha consolidado.
Frente

Atrás

Ancho de banda del plano trasero 12 Gbps
Slots SD para módulos sin eMMC, por ejemplo, se pueden mantener un par de módulos con SD para un acceso rápido a los datos de la nodo
En la base de la placa de clúster se encuentra un chip switch para asegurar la conexión de red de los módulos y la salida a la red externa. En la versión actual utilizamos un switch no gestionado, ya que no hubo tiempo para realizar una investigación y desarrollo completa, pero para la segunda versión elegimos un buen switch gestionado. Es posible configurar en modo ‘nodo maestro como router’ para distribuir la red en la placa, esto si se requiere un nivel más alto de seguridad y aislamiento de los trabajadores del acceso externo, en tal caso también es necesario tener un servidor DHCP en el nodo maestro.
Aplicación
La versión actual es experimental y la posicionamos como una solución de nivel de entrada para estudiar qué son los clústeres, trabajar con software o como prueba de hipótesis en organizaciones, búsqueda de nuevas ideas, en general, una versión Lite.
Para empezar, recomendamos la serie del maravilloso Jeff Geerling, quien leyó sobre nosotros en Y Combinator, es autor del bestseller Ansible for DevOps. Se inspiró tanto que hizo una serie de 6 episodios comenzando desde la idea de la clonación en general hasta ejemplos prácticos de trabajo con la placa, estudio de Kubernetes y qué software se puede instalar.
Serie sobre la instalación de k3s en el clúster

De hecho, recomiendo comenzar desde el primero, allí se habla en general sobre la clonación y Kubernetes de una manera accesible. Y un poco de imágenes de la comunidad.

¿Qué sigue?
En primer lugar, realmente espero que haya sido interesante. Este es un contenido completamente original, un intento de mirar más allá del horizonte. En segundo lugar, planeo escribir una segunda parte sobre el diseño de Turing V2. Cómo fue la búsqueda del producto, los razonamientos lógicos y la búsqueda de las propiedades principales que son importantes. El artículo contendrá bocetos del producto desde los más tempranos hasta los finales. El segundo artículo será especialmente interesante para los product managers, aquellos responsables de los productos y su desarrollo en las empresas.
Y probablemente será realmente una lectura larga.
Fuente: habr.com
