В настоящее время все в пространстве DevOps связано со словом, оканчивающимся на ops: GitOps, AIOps, MLOps, DevSecOps, EverythingOps. Хотя, возможно, это уже упоминалось в другом месте, я хочу написать некоторые точки зрения о том, как применять процессы DevOps к блокчейнам и/или технологиям распределенного реестра ( DLT ).

Например, просто для описания одного из этих так называемых терминов «эксплуатация»: «GitOps — это операционная среда, которая использует лучшие практики DevOps, используемые для разработки приложений, такие как контроль версий, совместная работа, соответствие требованиям и CI/CD, и применяет их к автоматизации инфраструктуры. Сразу приходят на ум инструменты инфраструктуры как кода, такие как Terraform.

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

В децентрализованном мире основным участником разработки приложений или Dapps (децентрализованных приложений) является узел , узел в DLT (технология распределенного реестра) — это минимальный компонент инфраструктуры, способный запускать необходимое программное обеспечение, чтобы быть функциональной частью бухгалтерской книги.

Таким образом, Devops должен отвечать за то, чтобы каждый узел имел одинаковые сетевые и инфраструктурные возможности (например, ОЗУ, ЦП, пропускную способность), а также одинаковые версии пакетов программного обеспечения. (Например, версии биткойн-ядра или версии DappNode)

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

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


С точки зрения инфраструктуры блокчейн — это цепочка узлов, которые имеют одно и то же программное обеспечение для вычислений и соединения с другими узлами, с точки зрения devops децентрализованная архитектура предлагает определенные преимущества, поскольку каждый узел или экземпляр точно такие же, как и другие. Хотя масштабируемость и высокая доступность не полностью достижимы, отчасти из-за синхронизации БД (каждый узел должен иметь одни и те же данные) среди других причин.

Вероятно, лучший способ начать рабочий процесс Devops для блокчейна (или DLT) — это использовать Terraform, код terraform должен отвечать за определение базовой сети и экземпляров, на которых должно работать программное обеспечение узла. Также Terraform дает возможность легко взаимодействовать с различными облаками.

Рабочий процесс GitOps должен быть настроен в Github/Gitlab/Bitbucket и т. д., чтобы разрешить реализацию CI/CD для кода или модулей Terraform.

Terraform также можно использовать для развертывания настраиваемых экземпляров с помощью, например, Packer, но это сильно влияет на время, необходимое для предоставления функций для блокчейна и/или узлов. Лично я предпочитаю, чтобы Terraform брал на себя определение общей инфраструктуры, а затем написать Ansible playbook для одновременного развертывания настроенного программного обеспечения на многих узлах, таким образом разделив развертывание инфраструктуры и сети и развертывание программного обеспечения.

Единственная часть, связанная с программным обеспечением, которую должна выполнить terraform, — это «упаковка» настроенного ami (или базового образа) с минимальным программным обеспечением, необходимым (если таковое имеется) для развертывания программного обеспечения узла.

В заключение, ChainOps — это сводка лучших практик и инструментов, которые позволяют реализовать автоматизацию инфраструктуры и конвейеры CI/CD, необходимые для развертывания Dapps и узлов подготовки на DLT.

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


  1. amarao
    18.06.2022 11:30
    +4

    Я думал вы хоть чуть-чуть проблему затроните. Мимо. Просто совсем мимо.

    У Ci/Cd на блокчейне есть серьёзная проблематика, потому что среду для тестирования очень трудно воспроизводить (либо хардфорк, либо ручной крафтинг своего форка с нуля), и ещё труднее тестировать взаимодействие (потому что тогда нужно прям хардфорк-хардфорк с нодами и т.д.).

    А у вас вода.