Turing Pi - cluster board for self-hosted applications and services

image



Turing Pi is a self-hosted application solution built on the principle of rack racks in the data center, only on a compact motherboard. The solution is focused on building a local infrastructure for local development and hosting of applications and services. Basically it's like AWS EC2 only for edge.



We, a small development team, decided to create a solution for building bare-metal clusters in the edge and called the project Turing Pi. The product started out on the knee, but now the development departments at Red Hat, Rancher (SUSE), Toyota Connected, Sony, Electrolux, Facebook ordered it to test their concepts, and the audience of developers under 10K is recruiting.



But it all started with a discovery.



Product discovery



Once I made the discovery for myself that we are not inventing anything. We discover all things existing in this world. We discover that some parts can be combined together, getting new properties of products or discovering laws and then combining again. You can't think of anything, but you can open it while researching. In my opinion, invention is the result of constant observation, experimentation and search + a combination of knowledge.



Over the past decade, I've watched the homelab ( subreddit resource ), self-hosted ( subreddit and awesome-selfhosted), single-board computers, as interest in running containers on single-board computers such as the Raspberry Pi grows, a movement is growing to collect clusters of single-board computers. Gradually, the idea of โ€‹โ€‹Kubernetes also stretches there. Its lightweight version of k3s, focused on Edge / IoT, has already appeared. The large fast food chain Chick-fil-A was one of the first in the world to deploy Kubernetes clusters in their kubectl make me a sandwich kitchens .



I see it as a snowball, as one technology wraps around another, creating a more complex system. At the same time, there is no chaos, it looks more like a fractal from technology. At one of the rather difficult moments in my life for me, I saw the value in clusters that are assembled from single-board computers by amateur developers and began to work on creating a cluster board.



Today our cluster board is very simple and primarily aimed at those who love cloud native technologies, learn new things, experiment.



Building Blocks



So, what is the solution, what is the essence. The bottom line is to give a constructor, building blocks from which you can assemble edge infrastructure cheaper than on classic servers, mobile without bulky metal boxes, not demanding for special operating conditions such as server rooms, energy efficient, standardized in terms of modules and with the ability to quickly scaling to tens and hundreds of computational nodes (processors).

Clusterboard



Mini ITX board connects multiple compute modules via on-board networking, gives peripheral interfaces and module control

Compute Module



SO-DIMM board containing processor and RAM, optional flash memory for operating system storage

image

One of the projected configurations of the Turing V2 version

image
By combining a cluster board and compute modules, it is easy to create an infrastructure with, for example, 20+ processors (examples below), silent and with low power consumption. The cluster board itself increases the efficiency of the used space. Examples of clusters for comparison

SBC based *

image

24 CPU's

By Afkham Azeez

Turing Pi based

image

21 CPU's

By th3st0rmtr00p3r

* SBC - Single Board Computer



Co-founder of Rancher Labs and author of k3s, this approach did not leave anyone indifferent.



image



Read on for more details on building blocks.



Compute Module



For proof of concept, we chose the Raspberry Pi Compute Module, which is the perfect configuration to get started. The RPi community is active, there are no problems with the software, the module itself is in SO-DIMM format (6 x 3 cm), is affordable, contains a 4-core CPU, 1 GB RAM and optionally 8, 16 or 32 GB flash memory for OS and other system needs. This form factor is often used in industrial IoT solutions.



Raspberry Pi 1/3/3 + Compute Module



image



But the CM3 model also has serious limitations - max. 1 GB RAM and Ethernet via USB HUB with a maximum speed of up to 100 Mbps. Therefore, the second version of Turing will support Raspberry Pi 4 and up to 8 GB of RAM per module. Below is an example of Nvidia Jetson modules for Accelerated Computing tasks. Perhaps there will be support for them in the second version, if we solve some technical problems, then we can mix the modules.



Nvidia Jetson Compute Modules



image



The most important feature is hidden in the modules, which is not obvious at first glance. The ability to create other modules in a similar form factor with a different set of CPU, RAM and eMMC, for different types of tasks from general-computing to intensive computing machine learning. This is very similar to AWS EC2 instances, but only for edge. In this case, the cluster board remains unchanged or with minor changes.



Clusterboard



It can also be called a motherboard or baseboard, a fairly new direction and there are not many manufacturers of such solutions today and are still quite at the entry level, among them Pine64, MiniNodes, Clover Pi, Bitscope Blade, PicoCluster (SBC clusters). The cluster board connects the modules with a network, provides power and provides a Cluster Management Bus, at least we decided to add this bus and it seems to have taken root.

Front

image

Back

image

Backplane Bandwidth 12 Gbps SD slots for modules without eMMC, for example, you can hold a couple of modules with SD for quick access to node data
The cluster board is based on a switch chip to provide network connection of modules and access to an external network. In the current version we are using an unmanaged switch because there was no time to carry out full-fledged R&D, but for the second version we chose a good managed switch. It is possible to configure in the 'master node as a router' mode for distributing the network to the board, this is if a higher level of security and isolation of workers from outside access is required, in which case a DHCP server must also be kept on the master node.



Application



The current version is experimental and we position it as an entry-level solution to study what clusters are, work with software, or as a hypothesis test in organizations, search for new ideas, in general, such a Lite version.



To get you started, we recommend an episode by the wonderful Jeff Geerling, who read about us on Y Combinator and is the author of the best-selling Ansible for DevOps. He was so inspired that he made a 6-part review starting from the idea of โ€‹โ€‹clustering in general to practical examples of working with the board, learning Kubernetes and what software can be installed



A series about installing k3s on a cluster





In general, I recommend looking from the first, there, in general, about clustering and Kubernetes in an accessible language. And some pictures from the community



image



What's next?



Firstly, I really hope it was interesting. This is absolutely author's content, an attempt to look beyond the horizon. Secondly, I plan to write the second part about designing Turing V2. How was the search for a product, logical judgments, the search for the main properties that are important. The article will contain sketches of the product from the earliest to the final ones. The second article will be of particular interest to product engineers who are responsible for products and their development in companies.



And most likely there will be a real long read.



All Articles