Сертифицированные и проверенные коллекции#

Форматы распространения кода Ansible#

Код для автоматизации с помощью Ansible может включать следующие элементы:

  • сценарии;

  • определения переменных;

  • модули и другие.

Код может иметь произвольную структуру каталогов в проекте. Для обеспечения модульности и переиспользования Astra Automation предлагает контент в виде коллекций Ansible, которые объединяют элементы кода в стандартную структуру. Смотрите более подробную информацию в описании коллекций Ansible.

Все коллекции Astra Automation доступны в Astra Automation Hub и являются проверенными.

API#

Коллекции Ansible используются посредством подключения их к другому коду Ansible (например, к playbook или другим коллекциям) в качестве зависимостей и «библиотек» – подобно тому, как аналогичный подход применяется в высокоуровневых языках программирования. У пользователя коллекции нет необходимости редактировать ее код, чтобы использовать необходимую функциональность в своем окружении.

Пользователь взаимодействует с коллекцией с помощью следующих элементов интерфейса:

  • переменные ролей и playbook, объявленные в коллекции;

  • инвентарь в формате, определенном коллекцией;

  • параметры модулей, содержащихся в коллекции;

  • названия ролей, модулей и playbook.

Совокупность перечисленных интерфейсов можно воспринимать как API коллекции, который для каждой коллекции описан в ее документации. API определяется функциональными возможностями коллекции, но также на него может влиять состав Execution Environment.

Проверенный контент#

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

  • Код организован в соответствии со структурой коллекции Ansible.

  • Коллекция версионируется в соответствии с SemVer (Semantic Versioning).

  • Код не требует интерактивного взаимодействия с пользователем.

  • Коллекция содержит документацию на все компоненты (роли, модули, общий README.md).

После прохождения проверки инженерами Astra Automation коллекция, отвечающая данным требованиям, получает статус проверенной.

Проверенный контент имеет следующие ограничения:

  • Отсутствует фиксированный жизненный цикл и выпуски с длительным сроком поддержки.

  • Код может быть неидемпотентным.

Сертифицированный контент#

Коллекции Ansible могут быть сертифицированы в рамках определенной версии Astra Automation. К сертифицированным коллекциям предъявляются следующие требования (помимо требований, предъявляемых к проверенным коллекциям):

  • Код не должен дублироваться. Если коллекция collection1 разработана для настройки сервиса service1, которому для функционирования необходим сервис service2, код настройки которого уже есть в составе отдельной сертифицированной коллекции collection2, то запрещается дублировать его в коллекцию collection1.

  • Коллекция настраивает только тот объект (сервис, устройство), для которого разрабатывается. Коллекция не должна содержать реализации функций настройки каких-либо других объектов – такие функции должны быть добавлены в соответствующие сертифицированные коллекции.

  • Код коллекции должен быть идемпотентным.

  • Возможности коллекции должны быть покрыты тестами.

Жизненный цикл#

Для сертифицированных коллекций поддерживаются следующие типы выпусков:

  • FR (feature release) – выпуски с новыми возможностями коллекции. Периодичность выпуска составляет 4 недели, если есть готовые к публикации изменения.

  • LTS (long-term support) – выпуски с длительным сроком поддержки в течение 24 месяцев. В таких выпусках зафиксированы функциональность коллекции и версии поддерживаемых продуктов. Выпуски получают только обновления безопасности и устранение ошибок, а также совместимость с новой версией Astra Automation Controller, если подходит к концу срок поддержки текущей версии контроллера.

Порядок выпуска FR#

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

  • Исправления – исправления обнаруженных ошибок, в том числе исправление и дополнение документации.

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

  • Мажорные обновления – значительные изменения в коллекции, которые меняют формат входных/выходных параметров ролей, playbook и других компонентов коллекции (API). Для таких версий теряется обратная совместимость с предыдущими мажорными версиями коллекции. Изменения могут быть связаны с добавлением поддержки новой версии продукта, исправлениями критических ошибок или удалением компонентов коллекции.

При внесении изменений в служебные файлы (taskfile.yml, конфигурации linter и другие) и тесты версия коллекции не меняется.

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

В рамках выпусков FR может добавляться поддержка новых версий продуктов. Для сертифицированных коллекций это должно происходить при очередном выпуске FR после даты релиза продукта или ранее.

Порядок выпуска LTS#

Использование долговременно-поддерживаемых версий (LTS, long-term support) позволяет сопровождать инфраструктуру с помощью коллекции с зафиксированным API в течение длительного времени. Новый выпуск LTS формируется каждые 18 месяцев на основе текущего выпуска FR, что позволяет плавно мигрировать с предыдущего LTS-выпуска.

Выпуски LTS поддерживаются в течение 24 месяцев со дня выпуска. В течение этого периода коллекция получает следующие обновления:

  • исправления обнаруженных ошибок;

  • исправления безопасности;

  • новые функции, если это требуется для исправлений.

Мажорная и минорные значения версии коллекции всегда зафиксированы для выпуска LTS. В версии коллекции изменяется только поле patch.

Поддержка#

Для сертифицированных и проверенных коллекций клиент может направлять запросы о нововведениях или исправлениях ошибок в поддержку Astra Automation. Запросы будут отрабатываться инженерами Astra Automation и партнерами, сопровождающими сертифицированную коллекцию.

Удаление коллекций#

Коллекции могут терять свой статус сертифицированной или проверенной, а также быть удалены с Astra Automation Hub.

Коллекция теряет статус сертифицированной в следующих случаях:

  • Если сопровождающий коллекцию не обеспечивает устранение ошибок для выпусков LTS.

  • Если сопровождающий коллекцию не обеспечил совместимость с новой версией Astra Automation.

  • Если закончилась поддержка версии Astra Automation, для которой сертифицировалась коллекция.

Коллекция теряет статус проверенной, когда версия Astra Automation Controller, для которой она предназначена, перестает поддерживаться.