Subutai — Construa sua Nuvem com Blockchain — Parte 1
Olá, e obrigado por sua visita! Este assunto foi uma dica do meu amigo Somatório. O artigo trata de dois assuntos extremamente modernos e relevantes: Computação em Nuvem e Blockchain. No entanto, não trata diretamente nem de um nem de outro.
Como assim? Continue lendo e você entenderá. Ambas são conceitos que estão moldando a Tecnologia da Informação, e a última tem tudo a ver com moedas. O advento das criptomoedas, que se iniciou com o Bitcoin, nos trouxe a Blockchain, ou cadeia de blocos.
Muitas outras moedas apareceram após o Bitcoin, como o Ethereum. Todas usam conceitos semelhantes de criptografia e rastreamento de transações. A Blockchain pode e é efetivamente empregada para resolver vários outros problemas, além de servir de base para criptomoedas. Apresento a vocês um projeto incrível guiado por um dos maiores nomes do software livre no mundo: John “Maddog” Hall!
É um prazer para mim escrever sobre algo apoiado por ele, pois este senhor tem sido extremamente dedicado a tornar as vidas das pessoas mais fáceis e com menos custo. Liderar uma causa assim não é fácil, uma vez que grandes empresas ao redor do mundo continuam com modelos de negócios ou código-fonte fechados.
Introdução
Para este artigo, presumo que você já tenha um conhecimento prévio sobre Blockchain. Portanto, fundamentos não serão explicados aqui. Caso não possua o conhecimento básico, veja este link.
Aqui, vamos falar sobre o Subutai, uma plataforma de computação em nuvem distribuída e baseada em open source, que tem o propósito de entregar o poder da Computação em Nuvem para qualquer pessoa, desvinculada de provedores. Ou seja, a ideia principal é quebrar o padrão tradicional segundo o qual um ou mais provedores detêm todos os recursos de computação, armazenamento e rede e cobra pelos mesmos.
O Subutai é mantido pela OptDyn. Toda a documentação pode ser encontrada aqui: https://subutai.io. Como o CEO Maddog Hall explica nesta entrevista, Subutai tem a intenção de divergir do modelo tradicional de computação em nuvem pública comercial explorado por algumas empresas.
Esta plataforma consiste de três componentes:
- PeerOS: o coração e o cérebro do Subutai. Este software, baseado em Java, permite a qualquer dispositivo que possua recursos de CPU, memória e armazenamento disponíveis construir um ambiente distribuído de computação em nuvem;
- Blockchain Router: um projeto de hardware muito bem desenhado, com diversas especificações técnicas avançadas. Além de habilitar computação em nuvem, já que vem com o PeerOS embarcado, o roteador pode gerar blockchains, minerar criptomoedas e funcionar como um NAS (Network Attached Storage) e Internet Gateway, como um roteador convencional;
- Bazaar: é o marketplace do Subutai. Aqui, você encontrará outros usuários vendendo ou literalmente disponibilizando gratuitamente seus recursos de computação. O Bazaar tem uma interface web bem decente, construída segundo padrões Web 2.0.
Antes de começar a falar sobre os componentes em si, preciso mencionar a principal porção de software dos bastidores: o KHAN. Trata-se do token por trás do Subutai. Para ser capaz de compensar os mineradores de moedas, a plataforma usa este mecanismo de token. É baseado no Ethereum e é uma das moedas em circulação no ambiente. O KHAN é a única forma de lidar com SLAs (Acordos de Nível de Serviço) baseados em smart contracts e escrow accounts.
Antes de vir a público, o software ficou sendo desenvolvido por cerca de seis anos. Portanto, apresenta-se maduro o suficiente para encarar cenários reais de nuvem. Atualmente, o Subutai, ou melhor, o PeerOS, encontra-se na versão 7.0. Este é o release que você verá no artigo.
Vamos passar por cada sub-projeto, começando com a porção de hardware. O PeerOS será o último, porque usarei meu laboratório para explicá-lo.
Blockchain Router
O roteador emprega o conceito de Fog Computing, ou Computação em Névoa. Se você nunca ouviu falar neste termo, simplesmente significa que a computação está mais próxima de onde o dado está armazenado. Nos dias atuais, os dados estão espalhados por vários lugares, especialmente dispositivos IoT. Apenas para elencar alguns, temos: drones, aparelhos “vestíveis”, como smartwatches, câmeras IP, lâmpadas inteligentes, fechaduras, medidores de sinais vitais, todos os tipos de sensores, incluindo temperatura, pressão e umidade. Então, se seus dados se encontram nestes dispositivos ou próximos a eles, faz sentido levar a computação para próximo dos mesmos.
Esta ideia foi iniciada pela Cisco em 2015, e é baseada em mover a computação para a borda. Motivadas pelos argumentos da Cisco (de fato, a empresa publicou um white paper bem conciso), outras empresas de tamanho notável, como Dell, Intel e Microsoft se juntaram ao movimento, e criaram um grupo global chamado “Open Fog Consortium”. Entre as intenções do grupo, intencionam amadurecer a arquitetura, fomentar novas discussões, publicar papers e disseminar a ideia. Muitos recursos úteis podem ser encontrados no website oficial.
A documentação do Blockchain Router é muito boa em cobrir detalhes técnicos sobre o produto. Não o encare como um produto convencional de prateleira. Na verdade, ele é bem mais que isso. Além de tudo, pode ser usado como um gateway Internet convencional, roteando seu tráfego através de suas seis interfaces gigabit ethernet. Observe a figura abaixo que obtive a partir do modelo 3D disponível no website. Deixei explícitas as medidas, em milímetros.
Se você considerar as medidas do Banana Pi BPI R2 (148 mm x 105 mm), perceberá que o Blockchain Router é bem maior que ele. E recomendo que suas comparações parem por aqui. O Blockchain Router tem muito mais características e casos de uso. Embarcado no roteador, encontra-se uma versão otimizada do PeerOS.
A versão atual do diagrama é a 2.0, e está disponível no GitHub, assim como qualquer outro recurso desta fabulosa plataforma. Um dos recursos importantes é o FPGA (Field Programmable Gate Array), que permite ao roteador se readaptar dinamicamente a mudanças de rede, detectando gargalos de desempenho, e se protegendo contra eventuais ameaças de segurança. Contando com aceleração de hardware embarcada, o roteador pode aumentar seu poder computacional, e se comportar de maneira diferente, dependendo dos status de rede e das aplicações.
Este roteador pode até fazer parte de uma SDN (Software-Defined Network) ou de um ambiente de NFV (Network Function Virtualization). A placa é equipada com algumas unidades de processamento independentes, incluindo pastilhas ARM Cortex Quad-Core. Possui 16 GB de RAM e pode usar cartões eMMC, drives SATA 3.0 ou mesmo dispositivos externos USB 3.0.
O Blockchain Router consome 18 W de potência. É uma demanda ridiculamente pequena, quando você compara a uma opção tradicional de mineração de criptomoedas: as GPUs. Elas normalmente gastam entre 1000 W e 2000 W!
E não pára por aí… O I/O do roteador pode ser conectado a um Raspberry Pi 3 ou a um Arduino. Em minha humilde opinião, a cereja do bolo é um chip TPM 2.0! Graças a ele, você pode armazenar suas chaves de criptografia no roteador, e usá-lo como um HSM (Hardware Security Module). As possibilidades são inúmeras. De fato, o roteador se apresenta mais como um computador.
Abaixo, o resumo de possíveis casos de uso para o Blockchain Router:
- Minerador de criptomoedas;
- Plataforma pessoal de computação em nuvem;
- Hardware Security Module;
- Cofre de chaves criptográficas;
- Internet Gateway;
- IoT Hub;
- NAS
- …
Infelizmente, não pude testar o produto na prática ainda por causa de uma excelente razão: no momento em que escrevi este artigo, ele ainda não estava disponível para venda. Ficarei atento ao seu lançamento para inclui-lo em testes futuros.
Bazaar e mais algumas coisas
Para facilitar a compra, venda e empréstimo de recursos distribuídos de computação, a OptDyn criou seu Bazaar. Em um formato de marketplace, a tela inicial do website mostra estatísticas sobre o número de novos peers, novos usuários, recursos computacionais, como cores de CPU, RAM e armazenamento, além de outras informações. Observe a Figura 2.
Uma vez que você crie e faça login em sua conta, é possível verificar todos os usuários online e offline, saber mais sobre os recursos disponíveis, solicitar uso dos mesmos, ou simplesmente comprá-los.
As negociações no Bazaar podem acontecer usando uma das duas moedas disponíveis: GoodWill e KHAN. A primeira, GoodWill, é 100% interna. Você deve usá-la para ser capaz de solicitar os recursos de outros usuários. E, é claro, uma vez que você forneça seus recursos a outros, você ganha GoodWill. De fato, a documentação cita as seguintes formas de obter GoodWill:
- Fazer upgrade do PeerOS para a última versão disponível, dentro de um período de tempo;
- Convidar amigos a se registrarem e compartilharem ou alugarem recursos para outros amigos ou configurarem peers no sistema;
- Criar um novo peer no sistema;
- Enviar feedback de usuário e reportar bugs;
- Submeter relatórios de bugs e/ou potenciais correções de bugs para ajudar a tornar o sistema mais estável;
- Ajudar com documentações e traduções;
- Informar antecipadamente aos usuários dos seus recursos de que você fará manutenção neles;
- Tornar-se certificado em algum aspecto de profissionalismo de software open source através de um parceiro Subutai oficial.
O KHAN, por outro lado, é uma criptomoeda real, baseada no Ethereum. Então, quando estiver lidando com ele, tenha em mente que se trata de dinheiro real! Você pode trocá-lo por dólares norte-americanos, por exemplo, ou qualquer outra moeda convencional aceita pelo seu país.
Quando você registra um peer, automaticamente recebe 100 GoodWills, como é possível ver em seu perfil de usuário:
Mas, você pode perguntar: “o que é um peer?”. É qualquer sistema que esteja executando o PeerOS. Cada peer possui um servidor NGINX personalizado executando na porta 8443. Em meu laboratório, implementei 3 VMs Debian com o PeerOS. Portanto, meu crédito total em GoodWills é de 300.
Uma vez que você esteja conectado à plataforma, a tela muda para algo semelhante ao que aparece na Figura 4. Observe a coluna da esquerda com as opções do menu:
- Environments: podem ser criados e gerenciados depois que você conecta pelo menos um peer ativo;
- AppScale: pode ser usado para criar e implementar aplicações usando o Google AppEngine. O Subutai possui um subsistema PaaS que é literalmente uma cópia do AppEngine do Google. Você pode implementar suas aplicações desta maneira, se desejar;
- War room: mapa da Terra mostrando peers e usuários;
- Products: esta opção é preenchida com blueprints de aplicações prontas para uso, desenvolvidos por outros usuários ou empresas. Assemelha-se bastante com o marketplace de provedores de computação em nuvem. Na época em que escrevi este artigo, todos os blueprints eram gratuitos e havia um total de 9. Um blueprint é apenas um arquivo JSON com playbooks Ansible que instruem o Subutai a executar instruções, instalar todo o software necessário e colocá-lo para funcionar;
- Map of Peers: novamente, um mapa da Terra com todos os peers disponíveis (sistemas sendo disponibilizados de forma pública ou privada), e se estão online ou offline;
- Organizations: aqui, você pode criar ou navegar por organizações já criadas. Pode escolher também entrar em uma delas. São úteis para reunir pessoas da mesma empresa ou da mesma equipe. Quando for criar a sua, você pode escolher entre pública e privada. Isto também vale para o registro de peers. Você também pode informar o repositório GitHub da mesma e escolher entre uma das categorias disponíveis;
- Users: como o nome indica, tratam-se de usuários (pessoas) que possuem sistemas (peers) com Subutai.
A coluna da direita apresenta estatísticas semelhantes àquelas mostradas na Figura 2.
No Bazaar, você pode convidar amigos para entrarem em sua organização ou simplesmente se registrarem no Bazaar. No entanto, você precisará de convites que podem ser fornecidos por um administrador. Também existe uma interface que suporta o uso de cupons que liberam convites. Você pode igualmente se conectar a outros usuários, enviá-los mensagens, solicitar o uso de recursos, adicioná-los à sua lista de favoritos, inserir projetos GitHub, criar seus próprios produtos, verificar sua conta, gerenciar chaves SSH, e muito mais.
A experiência gráfica com o Subutai não é limitada ao Bazaar. O software é acompanhado por outro conjunto de ferramentas: Plugin E2E, Daemon P2P e Control Center. Todos estes softwares estão disponíveis para Windows, Linux e macOS, e novamente reforçam o compromisso do Subutai em atingir pessoas em todas as plataformas.
O Plugin E2E (end-to-end) é usado para gerar pares de chaves e realizar autenticações PGP através de toda a plataforma Subutai. Fica atrelado ao Chrome, por default, ou ao Firefox. O Control Center pode detectá-lo, instalá-lo ou atualizá-lo apenas quando se usa o Chrome. Depois de instalá-lo, um ícone como o apresentado abaixo é instalado na barra de ferramentas do seu browser. Quando você clica nele, aparece uma caixa dropdown.
Crie e gerencie seus pares de chaves (keypairs). Observe as Figuras 6 e 7 logo abaixo.
O Daemon P2P (Peer-to-Peer) pode conversar diretamente com seus peers. É uma porção de software já instalada com cada PeerOS, mas que também pode ser instalada em sua estação de gerenciamento. Fica operando na porta 52523/TCP para se comunicar com seus peers. Ambos, Daemon P2P e Plugin E2E são completamente integrados ao Control Center.
A aplicação Control Center é uma parte muito interessante do Subutai. Com ela, você pode instalar e atualizar outros componentes, verificar o status dos seus peers, criar novos peers (usando Vagrant, como explicado na documentação, instalar o Vagrant e o Virtualbox, verificar seu extrato de GoodWill, gerenciar RHs (Resource Hosts), e realizar outras tarefas. Verifique a Figura 8.
Observe que preciso de atualizações em meu Control Center e Daemon P2P. Também tenho a opção de instalar componentes adicionais, como o X2Go-Client. Trata-se de uma solução leve para desktop remoto, que permite acessar containers provisionados a partir de um produto ou template.
Ao carregar o Control Center, é preciso fornecer as credenciais do Bazaar. Após fazer login, o Control Center se minimiza para a bandeja do sistema, ou algo equivalente, dependendo do sistema operacional da sua estação de gerenciamento. O ícone lembra um timão de navio. Notificações sobre seus peers ou outros recursos são apresentadas como caixas de diálogo temporárias.
Ao ver a Figura 8, como mencionei antes, você pode perceber que existem atualizações pendentes em alguns componentes. Deixei assim de propósito para mostrar como funciona o processo de atualização. Ao realizar o upgrade do Daemon P2P, você precisa reiniciá-lo manualmente.
Na segunda parte do artigo, falarei sobre o PeerOS e farei a conclusão. Encontro você lá!