Turing Pi - placa de cluster para aplicativos e serviços auto-hospedados

imagem



Turing Pi é uma solução de aplicativo auto-hospedada construída com base no princípio de racks de rack no data center, apenas em uma placa-mãe compacta. A solução está focada na construção de uma infraestrutura local para desenvolvimento local e hospedagem de aplicativos e serviços. Basicamente, é como AWS EC2 apenas para a borda.



Somos uma pequena equipe de desenvolvimento que decidiu criar uma solução para a construção de clusters bare-metal em borda e chamou o projeto Turing Pi. O produto começou no joelho, mas agora os departamentos de desenvolvimento da Red Hat, Rancher (SUSE), Toyota Connected, Sony, Electrolux, Facebook o encomendaram para testar seus conceitos, e o público de desenvolvedores com menos de 10K está recrutando.



Mas tudo começou com uma descoberta.



Descoberta de produto



Uma vez descobri por mim mesma que não estamos inventando nada. Nós descobrimos todas as coisas que existem neste mundo. Descobrimos que algumas partes podem ser combinadas, obtendo novas propriedades de produtos ou descobrindo leis e depois combinando novamente. Você não consegue pensar em nada, mas pode abri-lo enquanto pesquisa. Na minha opinião, invenção é o resultado de constante observação, experimentação e busca + combinação de conhecimentos.



Na última década, observei o homelab (recurso do subreddit ), auto-hospedado ( subreddit e incrível-selfhosted), computadores de placa única, à medida que cresce o interesse em executar contêineres em computadores de placa única, como o Raspberry Pi, cresce um movimento para coletar grupos de computadores de placa única. Gradualmente, a ideia do Kubernetes também se estende por aí. Sua versão leve do k3s, focada em Edge / IoT, já apareceu. A grande rede de fast food Chick-fil-A foi uma das primeiras no mundo a implantar clusters Kubernetes em seu kubectl para me tornar uma cozinha sanduíche .



Eu vejo isso como uma bola de neve, conforme uma tecnologia envolve outra, criando um sistema mais complexo. Ao mesmo tempo, não há caos, parece mais um fractal da tecnologia. Em um dos momentos bastante difíceis da minha vida, vi o valor dos clusters que são montados a partir de computadores de placa única por desenvolvedores amadores e comecei a trabalhar na criação de uma placa de cluster.



Hoje, nossa placa de cluster é muito simples e direcionada principalmente para aqueles que amam tecnologias nativas da nuvem, aprendem coisas novas, experimentam.



Blocos de construção



Então, qual é a solução, qual é a essência. O objetivo é fornecer um construtor, blocos de construção a partir dos quais você pode montar infraestrutura de ponta mais barata do que em servidores clássicos, móvel sem caixas de metal volumosas, não exigindo condições operacionais especiais como salas de servidores, energia eficiente, padronizada em termos de módulos e com capacidade de rápida dimensionamento para dezenas e centenas de nós computacionais (processadores).

A



placa Clusterboard Mini ITX conecta vários módulos de computação via rede on-board, fornece interfaces periféricas e controle de módulo





Placa SO-DIMM do Módulo de Computação contendo processador e RAM, memória flash opcional para armazenamento do sistema operacional

imagem

Uma das configurações projetadas da versão Turing V2

imagem
Ao combinar uma placa de cluster e módulos de computação, é fácil criar uma infraestrutura com, por exemplo, mais de 20 processadores (exemplos abaixo), silenciosa e com baixo consumo de energia. A própria placa do cluster aumenta a eficiência do espaço usado. Exemplos de clusters para comparação

Baseado em SBC *

imagem

24 CPU's

Por Afkham Azeez

Turing Pi baseado em

imagem

21 CPUs

por th3st0rmtr00p3r

* SBC - Single Board Computer



Co-fundador da Rancher Labs e autor do k3s, esta abordagem não o deixou indiferente



imagem



Mais sobre os blocos de construção.



Módulo de computação



Como prova de conceito, escolhemos o Módulo de computação Raspberry Pi, que é a configuração perfeita para começar. A comunidade RPi está ativa, não há problemas com o software, o módulo em si está no formato SO-DIMM (6 x 3 cm), acessível, contém uma CPU de 4 núcleos, 1 GB de RAM e 8, 16 ou 32 GB de memória flash opcional para SO e outras necessidades do sistema. Este formato é freqüentemente usado em soluções industriais de IoT.



Raspberry Pi 1/3/3 + Módulo de computação



imagem



Mas o modelo CM3 também tem limitações sérias - máx. 1 GB de RAM e Ethernet via HUB USB com velocidade máxima de até 100 Mbps. Portanto, a segunda versão do Turing oferece suporte para Raspberry Pi 4 e até 8 GB de RAM por módulo. Abaixo está um exemplo de módulos Nvidia Jetson para tarefas de computação acelerada. Talvez haja suporte para eles na segunda versão, se resolvermos alguns problemas técnicos, então podemos misturar os módulos.



Módulos de computação Nvidia Jetson



imagem



A característica mais importante reside nos módulos, o que não é óbvio à primeira vista. A capacidade de criar outros módulos em um formato semelhante com um conjunto diferente de CPU, RAM e eMMC, para diferentes tipos de tarefas de computação geral a computação intensiva de aprendizado de máquina. Isso é muito semelhante às instâncias do AWS EC2, mas apenas para borda. Neste caso, a placa do cluster permanece inalterada ou com pequenas alterações.



Clusterboard



Ela também pode ser chamada de placa-mãe ou placa de base, uma direção bastante nova e não há muitos fabricantes dessas soluções hoje e ainda estão no nível de entrada, entre eles Pine64, MiniNodes, Clover Pi, Bitscope Blade, PicoCluster (clusters SBC). A placa cluster conecta os módulos a uma rede, fornece energia e fornece um Barramento de Gerenciamento de Cluster, pelo menos decidimos adicionar este barramento e parece ter criado raízes.

Frente

imagem

Costas

imagem

Largura de banda do backplane 12 Gbps Slots SD para módulos sem eMMC, por exemplo, você pode conter alguns módulos com SD para acesso rápido aos dados do nó
A placa de cluster é baseada em um chip de switch para fornecer conexão de rede de módulos e acesso a uma rede externa. Na versão atual, estamos usando um switch não gerenciado porque não houve tempo para realizar P&D completo, mas para a segunda versão escolhemos um switch bem gerenciado. É possível configurar no modo 'nó mestre como um roteador' para distribuir a rede para a placa, isto é, se um nível mais alto de segurança e isolamento de trabalhadores de acesso externo for necessário, caso em que um servidor DHCP também deve ser mantido no nó mestre.



Inscrição



A versão atual é experimental e a posicionamos como uma solução de nível de entrada para estudar o que são clusters, trabalhar com software, ou como um teste de hipótese nas organizações, buscar novas ideias, em geral, uma versão Lite.



Para começar, recomendamos um episódio do maravilhoso Jeff Geerling, que leu sobre nós no Y Combinator e é o autor do best-seller Ansible for DevOps. Ele ficou tão inspirado que fez uma revisão de 6 partes, começando com a ideia de cluster em geral até exemplos práticos de como trabalhar com a placa, aprender o Kubernetes e qual software pode ser instalado



Uma série sobre a instalação de k3s em um cluster





Em geral, recomendo olhar desde o início, lá, em geral, sobre clustering e Kubernetes em uma linguagem acessível. E algumas fotos da comunidade



imagem



Qual é o próximo?



Em primeiro lugar, eu realmente espero que tenha sido interessante. Este é absolutamente conteúdo do autor, uma tentativa de olhar além do horizonte. Em segundo lugar, pretendo escrever a segunda parte sobre o projeto do Turing V2. Como foi a busca por um produto, julgamentos lógicos, a busca pelas principais propriedades que são importantes. O artigo conterá esboços do produto, desde os primeiros até os finais. O segundo artigo será de particular interesse para engenheiros de produto responsáveis ​​por produtos e seu desenvolvimento nas empresas.



E provavelmente haverá uma longa leitura real.



All Articles