Михаэль Дехан запустил проект jet, в котором переосмысливает Ansible
Михаэль Дехан (Michael DeHaan), создатель Ansible, в своем блоге на Substack рассказал о запуске нового продукта — Jet Enterprise Performance Orchestrator, сокращенно jet.
jet — новая enterprise-платформа автоматизации и оркестрации, написанная на Rust и готовящаяся выйти под GPLv3 (примечание ред. — в рассылке указана GPLv2, а на сайте проекта GPLv3). По словам автора, ему нравится, что Ansible стал настолько популярным, и он ценит вклад Red Hat, которая поглотила проект в 2015 году, но признается: «Есть вещи, которые бы я сделал по-другому» («I also see things I would do differently»).
Особенности новой системы:
Написана на Rust. Благодаря этому в jet есть дополнительные, полностью асинхронные режимы работы, поддерживаемые потоковыми архитектурами Rust + messaging с настраиваемым параллелизмом в различных частях конвейера для разрешения конфликтов ресурсов. Также двоичные файлы не подвержены проблеме глобальной блокировки, свойственно интерпретатору Python.
Меньше ошибок. Это еще одно преимущество Rust — компилятор довольно агрессивно проверяет код благодаря лучшей в своем классе системе типов. По заверению автора, сама платформа jet тоже будет разработана так, чтобы тщательно проводить предварительную оценку содержимого автоматизации. Это позволит избежать неожиданностей на этапе выполнения и максимально устранить распространенные ошибки, возникающие из-за невнимательности и т.п.
Одновременная поддержка до 50–100 тыс. систем благодаря новой архитектуре шины сообщений (автор обещает реализовать её вскоре после первого релиза).
Возможность работы с существующими модулями Ansible благодаря специальной языковой оболочке и совместимость на 90–95% со всеми существующими плейбуками. Это позволит выпустить первую версию jet с минимальным количеством собственных модулей. Есть планы и по подключению к другим системам управления конфигурациями или даже к Terraform.
Строгая обратная совместимость (пока только на уровне идеи, потому что вышла только первая версия).
Задаваясь вопросом о том, кому нужна еще одна система управления конфигурациями в мире победившего Kubernetes, Михаэль отвечает, что даже несмотря на популярность контейнеров, рынок, в который он метится, до сих пор измеряется миллиардами долларов.
В jet используется диалект YAML, который, как сказано на официальном сайте проекта, так же похож на Ansible® playbook language, как американский английский на британский английский. Один из принципов разработки платформы — двигаться медленнее, чтобы минимизировать будущие изменения в языке. В идеале пользователям не надо будет следить за обновлениями языка, а документация должна рассматриваться как спецификация.
Есть у проекта и большая концептуальная миссия — продемонстрировать видение DevOps-процессов и практик, которые можно было бы масштабировать на уровне всей планеты.
Пока код проекта не выложен на GitHub, потому что ведется активная разработка и подготовка к выходу первой версии. На официальном сайте проекта можно почитать первые наброски документации, присоединиться к списку рассылки или Discord-чату с разработчиками. На старте jet будет поддерживать самые популярные Linux-дистрибутивы. В будущем обещают работу во всех BSD-системах.