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, но наиболее типовыми выглядят два таких сценария:
Опытные пользователи, оперирующие уже существующими технологиями для сборки и развертывания контейнеров, ищут лучшие — более простые в обслуживании — альтернативы для своего набора CI/CD-инструментов. werf позволяет отказаться от самодельных скриптов и связок в пользу надежного — проверенного годами в production — интеграционного слоя между инструментами, о которых все знают и которым доверяют. Внедрение лучших практик в командах, разрабатывающих и эксплуатирующих программные продукты, делает работу более эффективной, а поддержку всего процесса — более простой.
Новички ошеломлены огромной экосистемой 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.
Читайте также в нашем блоге: