Turing Pi — placa de cluster para aplicações e serviços auto-hospedados

Turing Pi — placa de cluster para aplicações e serviços auto-hospedados

Turing Pi é uma solução para aplicações auto-hospedadas construída com base no princípio de racks de servidores em um data center, mas em uma placa-mãe compacta. A solução é voltada para a criação de uma infraestrutura local para desenvolvimento e hospedagem de aplicações e serviços. Em resumo, é como o AWS EC2, mas para edge.

Somos uma pequena equipe de desenvolvedores que decidiu criar uma solução para a construção de clusters bare-metal em edge e nomeamos o projeto de Turing Pi. O produto começou de forma improvisada, mas atualmente, para testar seus conceitos, foi encomendado por departamentos de desenvolvimento da Red Hat, Rancher (SUSE), Toyota Connected, Sony, Electrolux, Facebook, e está atraindo uma audiência de cerca de 10 mil desenvolvedores.

Mas tudo começou com uma descoberta.

Descoberta do produto

Um dia, percebi que não estamos inventando nada. Todas as coisas existentes neste mundo, nós as descobrimos. Descobrimos que algumas partes podem ser combinadas, resultando em novas propriedades dos produtos, ou descobrimos leis e, em seguida, combinamos novamente. Não se pode inventar nada, mas pode-se descobrir durante a pesquisa. Na minha visão, a invenção é o resultado de observações contínuas, experimentos e busca + combinação de conhecimentos.

Nos últimos dez anos, observei como o movimento amador homelab tem crescido (recurso subreddit), self-hosted (recursos subreddit e awesome-selfhosted), computadores de placa única, como o interesse em executar containers em computadores de placa única como o Raspberry Pi, e cresce o movimento de montagem de clusters com computadores de placa única. Gradualmente, a ideia do Kubernetes também começou a ganhar espaço. Já existe uma versão leve chamada k3s, voltada para Edge/IoT. Uma grande rede de fast-food, a Chick-fil-A, foi uma das primeiras do mundo a implementar clusters de Kubernetes em suas cozinhas. kubectl make me a sandwich.

Vejo isso como uma bola de neve, onde uma tecnologia envolve a outra, criando um sistema mais complexo. Ao mesmo tempo, não há caos; parece mais um fractal de tecnologias. Em um dos momentos bastante desafiadores da minha vida, percebi o valor de clusters montados a partir de computadores de placa única feitos por desenvolvedores amadores e comecei a trabalhar na criação de uma placa de cluster.

Hoje, nossa placa de cluster é muito simples e, em primeiro lugar, voltada para aqueles que amam tecnologias nativas da nuvem, desejam aprender algo novo e experimentar.

Blocos de Construção (Building Blocks)

Então, o que é essa solução e qual é a essência? A ideia é fornecer um construtor, blocos de construção (Building Blocks) a partir dos quais é possível montar uma infraestrutura edge mais barata do que em servidores tradicionais, móvel, sem caixas metálicas volumosas, que não requer condições especiais de operação, como os servidores, eficiente em energia, padronizada em termos de módulos e com possibilidade de escalonamento rápido para dezenas e centenas de nós de computação (processadores).

Placa de Cluster (Clusterboard)

A placa Mini ITX conecta vários módulos computacionais através de uma rede na placa, fornece interfaces periféricas e controle sobre os módulos.

Módulo Computacional (Compute Module)

Placa no formato SO-DIMM que contém um processador e memória RAM, opcionalmente com memória flash para armazenamento do sistema operacional.

Turing Pi — placa de cluster para aplicações e serviços auto-hospedados
Uma das configurações projetadas da versão Turing V2.

Turing Pi — placa de cluster para aplicações e serviços auto-hospedados

Combinando a placa de cluster e os módulos computacionais, é fácil criar uma infraestrutura com, por exemplo, mais de 20 processadores (veja exemplos abaixo), silenciosa e com baixo consumo de energia. A própria placa de cluster aumenta a eficiência do volume utilizado. Exemplos de clusters para comparação.

Baseada em SBC*
Turing Pi — placa de cluster para aplicações e serviços auto-hospedados
24 CPUs
Autor: Afkham Azeez

Baseada em Turing Pi
Turing Pi — placa de cluster para aplicações e serviços auto-hospedados
21 CPUs
Autor: th3st0rmtr00p3r

* SBC — Computador de Placa Única (Single Board Computer)

O co-fundador da Rancher Labs e autor do k3s, esse abordagem não deixou ninguém indiferente.

Turing Pi — placa de cluster para aplicações e serviços auto-hospedados

A seguir, mais detalhes sobre os blocos de construção.

Módulo Computacional (Compute Module)

Para validar o conceito, escolhemos o Raspberry Pi Compute Module, que é a configuração ideal para começar. A comunidade RPi é ativa, não há problemas com software, e o módulo, no formato SO-DIMM (6 x 3 cm), tem um preço acessível, contém um CPU quad-core, 1 GB de RAM e, opcionalmente, memória flash de 8, 16 ou 32 GB para o sistema operacional e outras necessidades. Esse tipo de formato é frequentemente usado em soluções IoT industriais.

Módulo Computacional Raspberry Pi 1/3/3+

Turing Pi — placa de cluster para aplicações e serviços auto-hospedados

Mas o modelo CM3 também possui limitações sérias — max. 1 GB de RAM e Ethernet através de um HUB USB com velocidade máxima de até 100 Mbps. Portanto, a segunda versão do Turing suportará o Raspberry Pi 4 e até 8 GB de memória RAM no módulo. Abaixo, um exemplo dos módulos Nvidia Jetson para tarefas de Computação Acelerada. É possível que haja suporte para eles na segunda versão, se resolvermos algumas questões técnicas, então será possível misturar módulos.

Módulos de Computação Nvidia Jetson

Turing Pi — placa de cluster para aplicações e serviços auto-hospedados

Nos módulos reside a principal capacidade, que à primeira vista não é óbvia. A possibilidade de criar outros módulos em um formato similar com diferentes conjuntos de CPU, RAM e eMMC, para diferentes tipos de tarefas, desde computação geral até computações intensivas em aprendizado de máquina. Isso é muito parecido com instâncias AWS EC2, mas apenas para a edge. Enquanto isso, a placa de cluster permanece inalterada ou com alterações menores.

Placa de Cluster (Clusterboard)

Ela pode ser chamada também de placa-mãe ou placa base, uma direção relativamente nova e com poucos fabricantes de soluções semelhantes até hoje, que ainda estão em um nível bastante inicial, entre eles Pine64, MiniNodes, Clover Pi, Bitscope Blade, PicoCluster (clusters SBC). A placa de cluster conecta os módulos em rede, fornece energia e oferece um barramento de controle de cluster (Cluster Management Bus), pelo menos nós decidimos adicionar esse barramento e parece que se estabeleceu.

Frente
Turing Pi — placa de cluster para aplicações e serviços auto-hospedados

Verso
Turing Pi — placa de cluster para aplicações e serviços auto-hospedados

Largura de Banda do Backplane 12 Gbps
Slots SD para módulos sem eMMC, por exemplo, é possível manter alguns módulos com SD para acesso rápido aos dados do nó

A placa de cluster é baseada em um chip switch para fornecer conexão de rede entre os módulos e acesso à rede externa. Na versão atual, usamos um switch não gerenciado, pois não houve tempo para realizar um R&D completo, mas para a segunda versão escolhemos um switch gerenciado de boa qualidade. É possível uma configuração no modo 'nó mestre como roteador' para distribuir a rede para a placa, caso um nível mais alto de segurança e isolamento dos trabalhadores do acesso externo seja necessário, nesse caso, o nó mestre também deve manter um servidor DHCP.

Aplicação

A versão atual é experimental e a posicionamos como uma solução de nível básico para aprender sobre clusters, trabalhar com software ou como um teste de hipóteses em organizações, buscando novas ideias, em resumo, uma versão Lite.

Para começar, recomendamos a série do incrível Jeff Geerling, que leu sobre nós no Y Combinator. Ele é o autor do best-seller Ansible for DevOps. Ele ficou tão inspirado que fez uma série de 6 partes, cobrindo desde a ideia de clusterização em geral até exemplos práticos de trabalho com a placa, aprendendo Kubernetes e quais softwares podem ser instalados.

Série sobre a instalação do k3s em um cluster.

Por que no hosting comum a administração do PrestaShop é lenta, e no seu não é?

Na verdade, recomendo começar pela primeira, lá se fala de clusterização e Kubernetes de forma acessível. E tem algumas imagens da comunidade.

Turing Pi — placa de cluster para aplicações e serviços auto-hospedados

E agora?

Primeiramente, espero que tenha sido interessante. Este é um conteúdo totalmente autoral, uma tentativa de olhar além do horizonte. Em segundo lugar, planejo escrever a segunda parte sobre o design do Turing V2. Como foi a busca pelo produto, deduções lógicas e identificação das propriedades principais que são importantes. O artigo conterá esboços do produto desde os mais antigos até os finais. A segunda parte será especialmente interessante para gerentes de produto, que são responsáveis pelos produtos e seu desenvolvimento nas empresas.

E provavelmente será realmente uma leitura longa.

Fonte: habr.com

Compre hospedagem confiável para sites com proteção contra DDoS, servidores VPS VDS 🔥 Compre hospedagem confiável para sites com proteção contra DDoS, servidores VPS VDS | ProHoster