Привет, Хабр!

В данной статье рассмотрим незаслуженно забытую тему децентрализованных облачных вычислений, проведём анализ существующих решений и попробуем ответить на главный вопрос - почему мастодонты AWS / Azure до сих пор остаются единственным production-ready решением для облачных вычислений, не оставляя шансов децентрализованным пулам мощностей?

Определение и область применения

Начнём с области применения. Облачные вычисления применяются для широкого спектра задач:

  • Работа backend'a и хостинг веб-сайтов, мобильных и десктопных приложений

  • Обучение и инференс нейронных сетей, проведение computing-heavy вычислений для исследовательских задач в различных областях

  • Облачный гейминг, рендеринг

  • И множество других требовательных к вычислительной мощности задач

Вариантов их решения условно два: покупка и содержание собственного сервера, либо обращение к услугам облачных провайдеров. Второй вариант имеет множество плюсов: произвольная локация сервера, набор различных конфигураций, техническая поддержка, гарантии стабильной работы.

Минусы тоже есть: высокая цена, тонкая настройка конфигурации невозможна - можно попасть в промежуток между дешевыми, но недостаточными, и дорогими, но избыточными конфигурациями, самый актуальный - для граждан и бизнеса стран, находящихся под санкциями, вариант зарубежных облачных провайдеров сопряжен с рисками и головной болью с оплатой.

А что же децентрализованные вычисления? Это тот же AWS, только машины расположены не в множестве централизованных серверных в ряде регионов мира, а в домах / гаражах / серверных множества людей по всему земному шару, а каждая машина / кластер будет являться нодой сети блокчейна. Гарантом сделки будет выступать не централизованная корпорация, а смарт контракты, платим не картой, а токенами сети.

Плюсы и минусы этого подхода ниже.

Польза и вред

В децентрализованных вычислениях может принимать участие практически любое устройство: старый компьютер на пентиуме, мобильный телефон, майнинг ферма, любительский GPU кластер, современный домашний ПК. А расположены они могут быть в любом месте с электричеством и интернетом.

Это предоставляет арендаторам вычислительных мощностей феерический выбор конфигураций и локаций - можно арендовать мощности престарелого ПК слесаря дяди Васи, а можно арендовать рендер ферму дядюшки Джона из Северной Америки.

Ограничить вам доступ к вычислениям никакие санкции, ограничения и запреты не смогут - блокчейн живет своей жизнью.

Привлекательна и потенциальная стоимость таких услуг - косты и желаемая маржа частных энтузиастов арендодателей мощностей в разы ниже, чем у корпоративных серверов.

Распределенные системы потенциально могут решить задачу скейлинга мощностей «чем больше – тем быстрее» гораздо эффективнее централизованных провайдеров. Множество различных нод в распределенной сети для подобных задач могут сработать эффективнее реплицированных серверных инстансов, к примеру, в AWS.

Сказка, не правда ли? Но чудес не бывает, поэтому без минусов не обошлось.
У дяди Васи отключили электричество / интернет, и ваши вычисления улетели коту под хвост. Сэкономили? Да. Рады? Маловероятно.

Облачные провайдеры обладают необходимой инфраструктурой для обеспечения бесперебойной работы ваших вычислений, а вот нода из децентрализованной сети - очень вряд ли.

Ваши данные и алгоритмы представляют коммерческую ценность? Дядюшка Джон может оказаться любопытным. Возможно он захочет посмотреть, что же вы крутите на его ноде. И ваши данные / алгоритмы будут скомпрометированы.

К мастодонтам AWS и Azure в этом плане доверия, конечно же, в разы больше.

Посмотрим, что из существующих решений нам сейчас доступно.

Актуальные децентрализованные решения для вычислений и хранения данных

Начнем с периферии.

Вычисления, как правило, берутся не из воздуха, а производятся на основе данных, которые где-то хранятся. Порой эти данные могут иметь очень внушительный размер. Какие есть решения децентрализованного хранения данных?

IPFS (InterPlanetary File System) — технология распределенной файловой системы, основанная на DHT (Distributed Hash Table) и протоколе BitTorrent. Она позволяет объединить файловые системы на различных устройствах в одну, используя контентную адресацию.

Обладает высокой пропускной способностью, хранение бесплатно. Однако удаление файлов не предусмотрено, да и вообще хранение файла в сети кем-то, помимо автора, не гарантированно. Оплата для хостеров не предусмотрена.

Есть альтернативные технологии, хранение в которых не бесплатно.
Например, Sia, Storj, Ethereum Swarm, MadeSAFE.

Чтобы обеспечить надежность хранения, используются различные проверки, например, proof of storage (доказательство принятия файла), proof of retrievability (доказательство, что файл в наличии и может быть извлечен). Пользователь платит за хранение, а хостеры получают награду. Плюсы - хранение файлов гарантированно, их можно удалять, пропускная способность высока, надежность хранения засчёт финансовой мотивации. Минусы - не бесплатно и, как правило, совсем не дешево.

С хранением понятно, а что же вычисления?

Единственный относительно известный и развивающийся сервис, найденный мной - iExec.

Схема работы от авторов представлена на рисунке.

Схема работы iExec
Схема работы iExec

На бумаге все выглядит крайне пристойно: децентрализация, безопасность данных, выбор конфигурации и локации, прозрачность взаимодействия хостер / арендатор. Внутренняя валюта - токен RLC, используемый для оплаты и вознаграждения хостеров.

А что же на деле?

А на деле есть нюанс - для нейросетей и других «обычных» вычислений это решение не подойдет. Только dApps, только Web 3.0. Но сервис вполне рабочий - в пуле есть мощности для аренды, их даже кто-то арендует и что-то с ними делает.

Узкоспециализированная, конечно, но вполне жизнеспособная (и живущая) система.

А где же провайдеры децентрализованных «обычных» вычислений?

Досконально прошерстив гугл могу со всей ответственностью заявить - ready-to-go решений в этой области мной обнаружено не было. Проекты на бумаге, замороженные, концепты и гипотетические проекты есть, но когда они попадут в реальную жизнь и попадут ли - большая загадка.

Заключение

Что мы получаем в сухом остатке?

Распределённый реестр, он же блокчейн, выглядит применимым к задаче облачных вычислений. Децентрализованные облачные вычисления имеют право на существование и точно могут найти своих потребителей, но с текущими проблемами (которые довольно сложно решить) шансы на конец гегемонии AWS и др. облачных решений крайне малы.

Недостаточно спроса (по причине рисков и проблем), недостаточно предложений - ведь их рождает спрос. Не будут же хостеры просто так включать свои машины в сеть вычислений, если в ней никто особенно и не вычисляет. Выстреливших проектов не наблюдается, развития и обсуждения темы - тоже.

С хранением файлов всё несколько более радужно. Инфраструктура есть, решений немало, спрос есть как минимум со стороны dApps - не будет же децентрализованное приложение хранить данные на централизованном файлохранилище.

И не будем забывать - в стезе децентрализованного хранения и обмена файлами есть крайне успешный мастодонт uTorrent :)

От себя добавлю, что мне, как ML ресёрчеру, было бы очень интересно воспользоваться децентрализованной сетью GPU кластеров для обучения нейросетевых моделей, если бы такое решение существовало... Но увы и ах - пока это невозможно.

Будем наблюдать за развитием этой отрасли.

Комментарии (10)


  1. lair
    04.01.2023 19:17

    Это тот же AWS, только машины расположены не в множестве централизованных серверных в ряде регионов мира, а в домах / гаражах / серверных множества людей по всему земному шару, а каждая машина / кластер будет являться нодой сети блокчейна.

    А с латентностью (и пропускной способностью) вы что будете делать, когда конкретый кастомер нажимает кнопку в приложении в Филадельфии, а у вас соответствующий код "децентрализовано" выполняется в чьем-то гараже в Иркутске?


    1. rzerda
      04.01.2023 20:57
      +2

      Что будем, что будем… Страдать будем (с).

      Автору как ML ресёчреру интересно не распределенными вычислениями воспользоваться, а модельки дёшево тренировать. Теги вон про одни блокчейны и децентрализацию, ни одного про Амдала и скорость света.


      1. lair
        04.01.2023 21:00

        а модельки дёшево тренировать

        Так оно все равно не будет дешево, потому что таскать данные для обучения моделек - недешево (как и память на оконечном устройстве, чтобы оно туда влезло).


        1. drakononov Автор
          04.01.2023 22:40

          Про задержки и пропускную способность - солидарен с вами. Инфраструктура и расположение в таких вопросах - решают всё, дяди Васи и сообщества любителей-энтузиастов не подойдут

          Вы верно подметили - тягать данные это недешево, а порой и больно с точки зрения времени передачи. В типовых случаях скорость передачи едва ли превысит (хорошо, если вообще достигнет) 100 МБит. Подтянуть датасет ~700 Гб - 17 часов минимум.

          это стандартная боль в ML/DL - данные перебрасывать с хоста на хост приходится в любом случае во время сбора / препроцессинга / фильтрации, нужно лишь грамотно строить процессы, чтобы лишний раз ничего никуда не тянуть.
          На дистанции в этом вопросе вряд ли будет принципиальная разница между централизованными и децентрализованными провайдерами, что к тем, что к другим большие данные за минуту не отправить. И у обоих хранение влетит в копеечку


          1. lair
            04.01.2023 22:46

            дяди Васи и сообщества любителей-энтузиастов не подойдут

            А кто вообще подойдет, чтобы это было осмысленно?

            На дистанции в этом вопросе вряд ли будет принципиальная разница между централизованными и децентрализованными провайдерами

            Да нет, как раз принципиальная разница есть: у централизованного провайдера можно организовать локализованное хранение данных (лежит в том же датацентре, где и считаем). А у децентрализованного это по определению невозможно.


            1. drakononov Автор
              04.01.2023 22:52

              Да, вы правы

              Под дистанцией я подразумевал множество циклов сбора данных / обработки / обучения, в каждом новом цикле всё равно их нужно откуда-то куда-то тягать, вероятно это несколько сгладит разницу


              1. lair
                04.01.2023 22:55
                +2

                Не сгладит, а только усугубит. Когда у вас нормально построенная локализованная архитектура, у вас в каждом новом цикле все накладные расходы остаются в рамках одного датацентра. В децентрализованной же архитектуре вы каждый раз будете лить свои данные на какую-то новую ноду неизвестно где.


  1. triky99
    04.01.2023 21:58
    +2

    потому что на децентрализованных пулах нечего считать.

    считают или госконторы или универы на грантах - им персоналка дяди джо просто не нужна


    1. drakononov Автор
      04.01.2023 22:45

      Понял ваш посыл, в целом согласен, если говорим о "внушительных" вычислениях - высоконагруженные сервисы, обучение огромных моделей, моделирование сложных физических и биохимических процессов - без огромных денег / грантов / льгот это в принципе трудновыполнимо

      А средне-мелкого много чего есть для просчета. Но это лишь укрепляет позицию децентрализованных пулов вычислений в качестве нишевых решений для ограниченного пула задач


  1. Areso
    06.01.2023 00:23

    Если убрать пахнующие скамом web3/dApp/blockchain/smartcontract баззворды, то опции вполне находятся, именно распределенные:

    PlayKey / MTS Fog Play / Drova.io и т.п.

    Конечно, если вам "ехать". Если "шашечки" - ну, можете сделать своё решение, с куртизанками и баззвордами.

    Ну или вот, BOINC / GRIDCOIN https://gridcoin.us/