werf — наша Open Source-утилита для CI/CD — стала проектом CNCF

Рады официально сообщить, что werf пополнила ряды sandbox-проектов международной некоммерческой организации CNCF (Cloud Native Computing Foundation) и отныне будет развиваться усилиями глобального Open Source-сообщества.

  • Изначально проект werf появился в компании «Флант» как инструмент для автоматизации сборки контейнеров. Со временем он вырос в более масштабное решение для управления всем жизненным циклом поставки программного обеспечения в Kubernetes. 22 января этого года проект отпраздновал свой седьмой день рождения. Всё это время werf остается инструментом с открытым исходным кодом.

  • CNCF — организация, созданная при более известной The Linux Foundation, стоящей за ядром Linux и другими мировыми проектами. Деятельность CNCF фокусируется на области современных облачных технологий (cloud native) с открытым кодом. Она предоставляет «дом» — нейтральную площадку для управления и развития — таким Open Source-проектам, как Kubernetes, Helm, Argo CD и многим другим. На их базе построено решение werf (подробнее см. ниже).

Мы не сомневаемся, что CNCF станет лучшим «домом» и для werf. Организация не только привлечет в проект новых потенциальных пользователей и контрибьюторов, но и обеспечит оптимальную стратегию взаимодействия с другими cloud-native-проектами, поможет проекту лучше соответствовать потребностям отрасли.

Что такое werf

werf — CLI-инструмент с открытым исходным кодом для организации CI/CD. Утилита помогает реализовать эффективную и консистентную доставку программного обеспечения в Kubernetes, интегрируя известные технологии, расширяя их возможности и применяя лучшие практики.

Если говорить о технологиях, то werf:

  • подразумевает, что вы работаете с Git;

  • использует Buildah для сборки образов контейнеров;

  • совместима с различными реестрами контейнеров для управления образами;

  • включает в себя Helm и дополняет его функциональность для деплоя приложений в Kubernetes;

  • интегрируется с различными CI-системами (и предлагает готовые интеграции для GitLab CI/CD и GitHub Actions).

Помимо интеграции общепринятых технологий, лучшие практики, которые приносит werf, включают в себя:

  • продвинутую систему кэширования для ускорения времени сборки,

  • воспроизводимость сборок благодаря гитерминизму (подходе, при котором Git используется в качестве единого источника истины; мы рассказывали о нём в анонсе werf v1.2),

  • тегирование на основе содержимого (зачем оно нужно, писали в этой статье),

  • улучшенное отслеживание ресурсов в Helm (см. сравнение werf и Helm),

  • уникальную очистку старых/неиспользуемых образов контейнеров (о причинах и особенностях — см. в статье).

Почему может потребоваться werf? Применение инструмента актуально для обеих сторон DevOps: и для разработки, и для эксплуатации. Бывают разные причины выбрать werf, но наиболее типовыми выглядят два таких сценария:

  1. Опытные пользователи, оперирующие уже существующими технологиями для сборки и развертывания контейнеров, ищут лучшие — более простые в обслуживании — альтернативы для своего набора CI/CD-инструментов. werf позволяет отказаться от самодельных скриптов и связок в пользу надежного — проверенного годами в production — интеграционного слоя между инструментами, о которых все знают и которым доверяют. Внедрение лучших практик в командах, разрабатывающих и эксплуатирующих программные продукты, делает работу более эффективной, а поддержку всего процесса — более простой.

  2. Новички ошеломлены огромной экосистемой cloud-native-инструментов и не знают, с чего начать. В случае werf (и подробного самоучителя от проекта) они получают готовое руководство по сборке и развертыванию контейнеров в Kubernetes. Изучая werf, они знакомятся и с другими популярными инструментами индустрии, которые объединяет утилита. Кроме того, они получают прочную основу для внедрения полнофункционального и проверенного CI/CD в самых различных масштабах.

Что означает для werf вступление в CNCF

Отныне организация CNCF является владельцем werf и определяет будущее проекта. С практической точки зрения это означает, что проект будет следовать открытой модели управления и другим принципам CNCF, которые мировое сообщество разработало ради общего блага экосистемы облачных Open Source-решений.

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

Формальный процесс принятия werf в CNCF в этом issue.

Планы на будущее

Одним из последних этапов в разработке werf стала серьезная переработка документации. Работа еще идет, но на сайте уже можно увидеть первые плоды.

Разработчики не забывают и о глобальных целях и в скором времени планируют:

  • Довести послойное кэширование при сборке образов внутри Kubernetes-кластера (с помощью Buildah) до stable.

  • Реализовать продвинутое управление внутренними задачами werf, что позволит:

    • Минимизировать потенциальные отклонения в конфигурации доставки. Для этого станет возможным перенести всю логику в пайплайны, описанные в werf.yaml.

    • Реализовать комплексные сценарии CI/CD, в которых задачи werf будут выполняться параллельно и/или в определенном порядке. Такие возможности будут полезны при тестировании, оркестровке развертываний и т. д.

Задать свои вопросы по будущему проекта в CNCF можно в комментариях ниже или в этом GitHub Discussion.

Будем признательны, если поставите werf звезду на GitHub и поделитесь этой важной для проекта новостью с коллегами по обе стороны мира DevOps, для которых использование такого инструмента может оказаться полезным. (Для англоязычной аудитории можно делиться этим анонсом на английском из блога проекта.)

P.S.

Читайте также в нашем блоге:

© Habrahabr.ru