В своей практике мы часто сталкиваемся с задачей адаптации клиентских приложений для запуска в Kubernetes. При проведении данных работ возникает ряд типовых проблем. Одну из них мы недавно осветили в статье Локальные файлы при переносе приложения в Kubernetes, а о другой, связанной уже с процессами CI/CD, — расскажем в этом материале.Читать полностью »
Рубрика «werf» - 3
Запуск команд в процессе доставки нового релиза приложения в Kubernetes
2019-12-17 в 6:28, admin, рубрики: continuous delivery, devops, helm, kubernetes, werf, Блог компании Флант, системное администрирование3-way merge в werf: деплой в Kubernetes с Helm «на стероидах»
2019-11-21 в 9:39, admin, рубрики: continuous delivery, devops, helm, kubernetes, werf, Блог компании Флант, системы сборки, ФлантСлучилось то, чего мы (и не только мы) долго ждали: werf, наша Open Source-утилита для сборки приложений и их доставки в Kubernetes, теперь поддерживает применение изменений с помощью 3-way-merge-патчей! В дополнение к этому, появилась возможность adoption’а существующих K8s-ресурсов в Helm-релизы без пересоздания этих ресурсов.
Если совсем коротко, то ставим WERF_THREE_WAY_MERGE=enabled
— получаем деплой «как в kubectl apply
», совместимый с существующими инсталляциями на Helm 2 и даже немного больше.
Но давайте начнём с теории: что вообще такое 3-way-merge-патчи, как люди пришли к подходу с их генерацией и почему они важны в CI/CD-процессах с инфраструктурой на базе Kubernetes? А после этого — посмотрим, что же представляет собой 3-way-merge в werf, какие режимы используются по умолчанию и как этим управлять.Читать полностью »
Сборка и деплой однотипных микросервисов с werf и GitLab CI
2019-10-07 в 10:57, admin, рубрики: continuous delivery, devops, gitlab, gitlab ci, helm, kubernetes, werf, Блог компании Флант, микросервисы, системы сборкиДва года назад мы публиковали статью «Сборка проектов с GitLab CI: один .gitlab-ci.yml для сотни приложений», а теперь расскажем о решении схожей задачи сегодня. Новый материал — о том, как можно построить CI/CD-процессы для большого количества однотипных приложений с появлением include
в .gitlab-ci.yml
и приходом werf на замену dapp.Читать полностью »
Использование werf для выката комплексных Helm-чартов
2019-09-24 в 6:32, admin, рубрики: continuous delivery, continuous integration, devops, helm, kubernetes, open source, werf, Блог компании Флант, ФлантСтатья посвящена разработке Helm-чартов для Kubernetes с использованием готовых решений из репозиториев чартов. При таком подходе пользователь применяет рецепты сообщества или свои собственные, обеспечивая своевременное обновление типовых компонентов всех своих проектов и удобство сопровождения решений в целом.
Такая удобная возможность теперь встроена и в нашу GitOps-утилиту werf, что должно упростить весь процесс эксплуатации инфраструктуры для собираемых и выкатываемых в Kubernetes приложений.Читать полностью »
Поддержка monorepo и multirepo в werf и при чём здесь Docker Registry
2019-08-30 в 11:14, admin, рубрики: continuous delivery, continuous integration, devops, monorepo, open source, werf, Блог компании Флант, микросервисы, системы сборки, ФлантТема монорепозитория обсуждалась уже не раз и, как правило, вызывает весьма активные споры. Создавая werf как Open Source-инструмент, призванный улучшить процессы сборки кода приложений из Git в Docker-образы (и их последующей доставки в Kubernetes), мы мало размышляем на тему того, какой выбор лучше. Для нас первично обеспечить всё необходимое для сторонников разных мнений (если это не противоречит здравому смыслу, конечно).
Появившаяся недавно поддержка mono-repo в werf — хороший тому пример. Но для начала давайте разберёмся, как эта поддержка вообще связана с использованием werf и при чём здесь Docker Registry…Читать полностью »
Собирать Docker-образы в werf теперь можно и по обычному Dockerfile
2019-08-21 в 9:55, admin, рубрики: continuous delivery, devops, docker, dockerfile, werf, Блог компании Флант, системное администрирование, системы сборкиЛучше поздно, чем никогда. Или как мы чуть не допустили серьёзную ошибку, не имея поддержки обычных Dockerfiles для сборки образов приложения.
Речь пойдёт про werf — GitOps-утилиту, которая интегрируется с любой CI/CD-системой и обеспечивает управление всем жизненным циклом приложения, позволяя:
- собирать и публиковать образы,
- разворачивать приложения в Kubernetes,
- удалять неиспользуемые образы с помощью специальных политик.
werf — наш инструмент для CI-CD в Kubernetes (обзор и видео доклада)
2019-08-01 в 7:39, admin, рубрики: continuous delivery, devops, Git, gitflow, gitops, kubernetes, werf, Блог компании Флант, системное администрирование, системы сборки, Флант27 мая в главном зале конференции DevOpsConf 2019, проходящей в рамках фестиваля РИТ++ 2019, в рамках секции «Непрерывная поставка», прозвучал доклад «werf — наш инструмент для CI/CD в Kubernetes». В нём рассказывается о тех проблемах и вызовах, с которыми сталкивается каждый при деплое в Kubernetes, а также о нюансах, которые могут быть заметны не сразу. Разбирая возможные пути решения, мы показываем, как это реализовано в Open Source-инструменте werf.
С момента выступления наша утилита (ранее известная как dapp) преодолела исторический рубеж в 1000 звёзд на GitHub — мы надеемся, что растущее сообщество её пользователей упростит жизнь многим DevOps-инженерам.
Итак, представляем видео с докладом (~47 минут, гораздо информативнее статьи) и основную выжимку из него в текстовом виде. Поехали!Читать полностью »
JUnit в GitLab CI с Kubernetes
2019-07-26 в 6:37, admin, рубрики: continuous integration, devops, gitlab, gitlab ci, junit, kubernetes, werf, Блог компании Флант, системное администрирование, Тестирование IT-системНесмотря на то, что все прекрасно знают, что тестировать свой софт важно и нужно, а многие давно делают это автоматически, на просторах Хабра не нашлось ни одного рецепта по настройке связки таких популярных в этой нише продуктов, как (любимый нами) GitLab и JUnit. Восполним этот пробел!
Вводные
Для начала обозначу контекст:
- Так как все наши приложения работают в Kubernetes, будет рассмотрен запуск тестов в соответствующей инфраструктуре.
- Для сборки и деплоя мы используем werf (в смысле инфраструктурных компонентов это также автоматически означает, что задействован Helm).
- В детали непосредственного создания тестов вдаваться не буду: в нашем случае клиент пишет тесты сам, а мы лишь обеспечиваем их запуск (и наличие соответствующего отчета в merge request'е).
Как победить дракона: переписываем вашу программу на Golang
2019-01-24 в 6:10, admin, рубрики: dapp, Go, golang, ruby, werf, Анализ и проектирование систем, архитектура, Блог компании Флант, ооп, переписывание, Программирование, Проектирование и рефакторинг, проектирование по, рефакторингТак случилось, что ваша программа написана на скриптовом языке — например, на Ruby — и встала необходимость переписать ее на Golang.
Резонный вопрос: зачем вообще может понадобится переписывать программу, которая уже написана и нормально работает?