Building the Open Cloud, Parte 2: Reimaginando a Nuvem, com Akash
Akash
Esta é o segundo post em nossa série de blog de quatro partes . Nesta postagem, desenvolvemos nosso resumo da Parte 1, que se concentrou nos principais desafios da infraestrutura web3 hoje. Se preferir assistir a uma apresentação deste, pode encontrar a gravação aqui .
Antes de nos aprofundarmos e falarmos sobre como a Akash Network lida com esses desafios, vamos começar relembrando como as nuvens públicas funcionam hoje.
O status quo da infraestrutura de nuvem pública
Qualquer nuvem pública hoje — AWS, Azure, Google Cloud, Alibaba, Tencent, Oracle, Digital Ocean ou qualquer um dos players menores no espaço — é estruturada em torno da ideia de uma única entidade grande (como a Amazon, no caso da AWS ou Microsoft no caso do Azure) possuindo toda a infraestrutura. Todos os usuários (milhares, senão milhões) se conectam a essa infraestrutura por meio das interfaces que o provedor de nuvem expõe.
O modelo acima revolucionou a indústria de software. Ele permitiu que as pessoas começassem sem a necessidade de criar e gerenciar sua própria infraestrutura. Reduziu as despesas de capital significativas (CapEx) para pequenas startups. A programabilidade das nuvens também permitiu coisas como dimensionamento automático elástico e princípios DevOps suportados. A programabilidade da infraestrutura em nuvem permite que as equipes de desenvolvimento se movam mais rapidamente, gerenciando a infraestrutura em que seus aplicativos são executados sem depender das equipes de operações. Sua natureza de escalonamento automático também permite que as empresas mantenham os custos baixos, escalando com fluidez em resposta à demanda.
Embora as coisas acima tenham contribuído imensamente para o ritmo da inovação em muitos setores, elas têm algumas desvantagens.
- O provedor de nuvem define o preço e você pega ou larga.
- O provedor de nuvem decide onde sua infraestrutura será localizada. Portanto, se eles optarem por não ter presença em seu país ou região, os usuários de seu aplicativo serão forçados a se conectar a um local abaixo do ideal do ponto de vista da latência.
- Se um provedor de serviços em nuvem oferece um serviço melhor para uma coisa (digamos, computação) e outro oferece um serviço melhor para outra coisa (digamos, armazenamento), é difícil, senão impossível, usar “o melhor da categoria” para seu aplicativo.
- O modelo atual não faz nada para lidar com a infraestrutura subutilizada nos mais de 7 milhões de datacenters em todo o mundo.
- A experiência do usuário para implantação em um determinado provedor de nuvem é, em grande parte, decidida por esse provedor de nuvem.
Uma visão descentralizada
Imagine uma versão descentralizada de uma nuvem pública que atenda a essas preocupações. Seria mais ou menos assim:
Em vez de uma única entidade grande possuir e controlar toda a infraestrutura, você teria várias entidades menores possuindo partes da infraestrutura. Os usuários podem escolher em qual provedor desejam executar — e, se escolherem, podem executar em mais de um provedor.
Embora isso resolva alguns dos problemas que descrevemos anteriormente, ele introduz novos. Os usuários neste cenário agora se deparam com a difícil tarefa de descobrir acordos contratuais com vários fornecedores, cada um dos quais pode ter diferentes períodos de tempo. Supondo que eles descubram isso, eles teriam que descobrir como implantar em cada um desses provedores, que podem ter diferentes interfaces e conjuntos de recursos. Tudo isso exigiria um exército de talentos jurídicos, operacionais e de engenharia — tornando a tarefa irreal para uma pequena empresa.
Foi aqui que a Overclock Labs viu uma oportunidade e decidiu construir uma solução.
A Abordagem da Akash Network
A Overclock Labs foi pioneira em um mercado de dois lados para computação em nuvem, onde “inquilinos” alugam recursos de computação de “provedores” para implantar seus aplicativos e serviços. O marketplace da Akash Network para computação em nuvem é uma camada de abstração de software que fornece uma experiência consistente para os usuários, independentemente do provedor escolhido para sua implantação.
Existem benefícios claros para esta abordagem:
- Cada provedor define seu próprio preço.
- O locatário tem maior liberdade de escolha para sua implantação. Se eles estiverem dispostos a sacrificar a confiabilidade por custos mais baixos, a decisão de fazer essa troca é deixada para o usuário.
- Se um provedor optar por descartar o aplicativo ou serviço de um locatário por motivos arbitrários, o locatário terá mais opções para evitar paralisações graves.
- Esse modelo permite que a capacidade subutilizada nos mais de 7 milhões de datacenters seja trazida para o mercado, tornando-a mais ambientalmente sustentável.
- À medida que a rede cresce, as opções do usuário para localizações geográficas são dimensionadas de forma não linear, de modo que seu aplicativo obtém latência e tempos de resposta mais baixos (leia-se: melhores).
Além disso, o Akash é uma rede de código aberto voltada para a comunidade, alimentada por um blockchain. Isso significa que ele adere a um modelo de governança comprovado por muitos outros projetos de código aberto e outros blockchains.
Rede Akash
Se o que foi dito acima o deixou animado para aprender mais, aqui está uma rápida visão geral de como a Akash Network funciona.
Akash é construído em software de código aberto (OSS). As duas principais tecnologias que o Akash usa são Docker e Kubernetes . O Docker é a tecnologia de contêineres mais usada no mundo e o Kubernetes é o orquestrador de contêineres mais popular do mundo.
Os provedores na rede Akash executam clusters Kubernetes e os locatários (usuários da rede Akash) implantam seus aplicativos como contêineres Docker nesses clusters Kubernetes.
Um fluxo de trabalho de implantação típico no Akash se parece com o diagrama de blocos abaixo:
Os locatários começam conteinerizando seu aplicativo em uma imagem docker para que seja portátil (pode ser facilmente movido entre provedores). Em seguida, eles incluem uma referência a essa imagem em um arquivo SDL. SDL significa “Stack Definition Language” e, como o nome sugere, é uma maneira de os usuários especificarem qual pilha de infraestrutura eles gostariam para seu aplicativo. O arquivo SDL inclui necessidades de computação, locais e preços.
Depois que o arquivo SDL é preparado, ele é enviado ao marketplace Akash como uma “solicitação de lances” . O software Akash pega as informações contidas no arquivo SDL e as transmite para todos os provedores no marketplace Akash (mais de 50 até o momento). Os provedores inspecionam a solicitação e decidem se é algo que podem atender. Se um provedor decidir que pode atender à solicitação, ele responderá com uma oferta.
O inquilino acaba com um conjunto de lances dos provedores que respondem. O número de lances pode variar de algumas a algumas dezenas, dependendo da solicitação. Em seguida, o inquilino decide qual lance atende às suas necessidades. Eles podem decidir escolher um provedor de custo mais baixo, mesmo que esse provedor não tenha recursos. Depois que o usuário seleciona um provedor e instrui o Akash a implantar, o contêiner do aplicativo é agendado para ser executado no provedor e, em alguns minutos, o aplicativo é implantado e executado.
Para resumir, é um processo simples de quatro etapas:
- Criar arquivo SDL 📁
- Solicite um lance 💲
- Escolha um fornecedor 🤝
- Implantar! 🚀
Caso você esteja se perguntando como é um arquivo SDL, aqui está um exemplo de um que é usado para criar um jogo Tetris na web. Vamos dividi-lo e entender as várias partes.
O arquivo SDL responde a cinco perguntas para ajudar o Akash a decidir qual provedor escolher e como implantar o aplicativo:
- Qual(is) aplicativo(s) ou serviço(s) você gostaria de executar? Neste caso, é uma versão do jogo, Tetris, conforme indicado pela referência `image:bsodr/tetris` — que aponta para uma imagem docker disponível publicamente localizada aqui .
- Quais recursos de infraestrutura você precisa para executar a implantação? É aqui que você indica a quantidade necessária de CPU, memória e armazenamento.
- Onde (localização ou detalhes do provedor) você gostaria de executá-lo? Isso informa ao Akash se você tem preferência por determinados atributos auditados (mais sobre auditores em nosso próximo post sobre ecossistema) ou locais para o provedor.
- Quanto você está disposto a pagar ao provedor para hospedar a implantação? É aqui que você especifica o valor máximo que deseja gastar, que será usado em um “leilão reverso” no marketplace.
- Quantas réplicas você deseja executar? Isso é bastante auto-explicativo.
E é isso! Não é assim mais fácil do que você pensou que seria? Há muitas pessoas trabalhando duro no Overclock Labs, bem como em pequenas equipes de desenvolvedores independentes dentro da comunidade Akash que estão criando soluções de implantação e configuração de provedores. Isso tornará o processo de interação com a Rede Akash muito mais fácil. Eventualmente, alguém com pouca ou nenhuma experiência técnica pode operar no Akash. Fique atento às postagens subsequentes que abordarão alguns desses produtos.
Enquanto isso, se você está ansioso para começar, vá para a documentação da Akash Network .