Обновить
  • по релевантности
  • по времени
  • по рейтингу

Локальная разработка в Kubernetes с помощью werf 1.2 и minikube

Блог компании Флант DevOps *Kubernetes *
Tutorial

В этой статье на примере простого приложения будут описаны подготовка и развертывание инфраструктуры для локальной разработки с Kubernetes и последующий запуск проекта в этом окружении.

Зачем это может понадобиться? Предоставляя услуги поддержки инфраструктуры нашим клиентам, нам часто приходится искать баланс между эффективностью и затраченными ресурсами. Когда есть потребность в нескольких рабочих окружениях для разработчиков (stage, dev, test, review и т.п.), как правило, ограничивающим фактором в их реализации являются деньги. Поэтому для решения такой задачи — в дополнение к динамическим окружениям (или вместо них) — задействуются локальные окружения прямо на рабочих местах разработчиков, о которых и пойдет речь далее.

Читать далее
Всего голосов 43: ↑43 и ↓0 +43
Просмотры 4.6K
Комментарии 29

Первые шаги с werf: собираем и деплоим простое приложение в Kubernetes

Блог компании Флант Системы сборки *DevOps *Kubernetes *
Tutorial

В этой статье мы рассмотрим, как с помощью Open Source-утилиты werf собрать Docker-образ простого приложения и развернуть его в кластере Kubernetes, а также с легкостью накатывать изменения в его коде и инфраструктуре.

Мы поговорим об общих принципах работы с werf при использовании ее разработчиками, поэтому в качестве примера приложения используем небольшой эхо-сервер на основе shell-скрипта, который будет возвращать в ответ на запрос по адресу /ping строку Hello, werfer!. В следующих материалах будет рассмотрена работа и с «настоящими» приложениями, основанными на распространенных фреймворках на разных языках, но для начала сфокусируемся на общем подходе к разработке с использованием утилиты werf.

Читать далее
Всего голосов 30: ↑30 и ↓0 +30
Просмотры 4.9K
Комментарии 11

Представляем онлайн-самоучитель по Kubernetes и деплою с werf для разработчиков

Блог компании Флант Ruby on Rails *Node.JS *Laravel *DevOps *

Рады представить новую версию онлайн-самоучителя по werf, нашей CI/CD-утилите с открытым кодом!

Общая идея самоучителя — познакомить разработчиков с Kubernetes, показав на простых приложениях (готовы примеры для Ruby on Rails, Node.js и Laravel), как можно развертывать приложения в K8s с помощью werf. Это отличная возможность быстро освоить практические основы K8s без погружения в его объемную теоретическую базу. Если вы еще не решили, как провести новогодние каникулы с пользой, — вот вам идея.

Читать далее
Всего голосов 53: ↑53 и ↓0 +53
Просмотры 8.5K
Комментарии 0

werf v1.2 — стабильный релиз Open Source-утилиты для доставки приложений в Kubernetes

Блог компании Флант Open source *Системы сборки *DevOps *Kubernetes *

werf — это CLI-утилита с открытым кодом для сборки приложений и их деплоя в Kubernetes. С версией v1.2 она получила множество изменений и улучшений, которые мы так тщательно тестировали и дорабатывали, что релиз долгое время — с января 2021-го — находился в статусе Early-Access. Наконец, мы рады объявить о его переводе в категорию Stable!

Эта статья представляет актуальную версию werf, рассказывая о её предназначении и основных принципах работы.

Читать далее
Всего голосов 45: ↑45 и ↓0 +45
Просмотры 4K
Комментарии 7

В библиотеке kubedog появилась поддержка канареечных выкатов Flagger

Блог компании Флант Open source *Системное администрирование *DevOps *Kubernetes *

Наш Open Source-инструмент для отслеживания ресурсов Kubernetes — kubedog — «научился» следить за канареечными выкатами, реализованными с помощью Flagger. Чтобы объяснить суть новости, начнем с краткого пояснения о предназначении обоих упомянутых проектов.

Читать далее
Всего голосов 30: ↑30 и ↓0 +30
Просмотры 1.3K
Комментарии 0

Review- или динамические окружения. Теория и практика в Kubernetes

Блог компании Флант Системное администрирование *DevOps *Kubernetes *
Tutorial

Статья посвящена так называемым review-окружениям, реализуемым в рамках кластеров Kubernetes. Ранее эта тема затрагивалась, например, в нашем докладе «Лучшие практики CI/CD с Kubernetes и GitLab», но не была там основной темой, поэтому раскрывалась не во всех деталях. Попробую восполнить этот пробел, рассказав, для чего нужны и/или обычно используют review-окружения, как сделать pipeline c review-окружением в GitLab CI/CD, какие могут быть потенциальные проблемы и способы их решения.

Читать далее
Всего голосов 38: ↑38 и ↓0 +38
Просмотры 8.9K
Комментарии 10

werf vs Docker. Чем лучше собирать образы

Блог компании Флант Open source *Системы сборки *DevOps *Kubernetes *

Продолжаем серию публикаций «werf vs...», которая вдохновлена часто задаваемыми вопросами. В первой статье мы объяснили, чем werf отличается от Helm. Теперь черед сравнения с еще более базовой утилитой — Docker.

Нас нередко спрашивают: зачем собирать образы с werf, если уже есть Docker с Dockerfile? Обычно мы отвечаем, что werf — не только про сборку. Утилита участвует в полном цикле CI/CD для доставки приложения в Kubernetes, а Docker при этом тоже используется, но как вспомогательный инструмент. Понятно, что такого объяснения недостаточно, нужны подробности.

Этот материал главным образом для тех, кто мало или совсем не знаком с werf, но знает Docker и хотя бы немного работал с ним. Для начала, как и в случае с Helm, попробуем разобраться, есть ли смысл в противопоставлении двух решений.

Читать далее
Всего голосов 41: ↑40 и ↓1 +39
Просмотры 9.3K
Комментарии 19

werf vs. Helm: корректно ли их вообще сравнивать?

Блог компании Флант Open source *Системное администрирование *DevOps *Kubernetes *

Эта статья — развернутый ответ на вопрос, который нам периодически задают: чем werf отличается от Helm? На первый взгляд можно предположить, что задача у них примерно одинаковая: автоматизировать деплой приложений в Kubernetes. Но всё, конечно, немного сложнее…

Читать далее
Всего голосов 50: ↑49 и ↓1 +48
Просмотры 7.4K
Комментарии 9

Настраиваем Continuous Integration для Jenkins и Bitbucket с werf

Блог компании Флант Системы сборки *DevOps *
Tutorial


Утилита werf создана так, чтобы её было легко интегрировать с любыми CI/CD-системами. Подробнее об этом процессе в общем случае читайте в эпилоге этой статьи, но основное её содержимое — практический пример по организации CI в Jenkins и Bitbucket.

Подразумевается, что в результате наших действий мы ожидаем получить следующее:

  1. Shared Library для Jenkins, чтобы все сценарии CI хранились в одном месте и их можно было править единым коммитом.
  2. Интеграцию Jenkins с Bitbucket, чтобы запускать CI по коммиту в определенные ветки или по созданию тега.

Поехали!
Читать дальше →
Всего голосов 38: ↑38 и ↓0 +38
Просмотры 6K
Комментарии 7

Запускаем тесты на GitLab Runner с werf — на примере SonarQube

Блог компании Флант Тестирование веб-сервисов *DevOps *


Если в качестве инфраструктуры, где разворачивается приложение, выступает Kubernetes, можно сказать, что существует два способа запуска тестов (и других утилит для анализа кода) в CI/CD:

  • непосредственно в кластере K8s — с помощью отдельных Job или Helm hooks;
  • «снаружи» K8s — например, на сервере сборки/деплоя или локально у разработчиков.

Первый подход мы достаточно подробно описывали на интересном примере с базами данных в статье «Как мы выносили СУБД (и не только) из review-окружений в статическое». В этой статье рассмотрен более простой путь — запуск вне K8s-кластера. Делать мы это будем на примере SonarQube-тестов в рамках CI/CD, построенного на базе GitLab с использованием werf.
Читать дальше →
Всего голосов 36: ↑36 и ↓0 +36
Просмотры 4.8K
Комментарии 0

Проблема «умной» очистки образов контейнеров и её решение в werf

Блог компании Флант Open source *Системы сборки *DevOps *Kubernetes *


В статье рассмотрена проблематика очистки образов, которые накапливаются в реестрах контейнеров (Docker Registry и его аналогах) в реалиях современных CI/CD-пайплайнов для cloud native-приложений, доставляемых в Kubernetes. Приведены основные критерии актуальности образов и вытекающие из них сложности при автоматизации очистки, сохранения места и удовлетворения потребностям команд. Наконец, на примере конкретного Open Source-проекта мы расскажем, как эти сложности можно преодолеть.

Введение


Количество образов в реестре контейнеров может стремительно расти, занимая больше места в хранилище и, соответственно, значительно увеличивая его стоимость. Для контроля, ограничения либо поддержания приемлемого роста места, занимаемого в registry, принято:

  1. использовать фиксированное количество тегов для образов;
  2. каким-либо образом очищать образы.
Читать дальше →
Всего голосов 35: ↑35 и ↓0 +35
Просмотры 3.7K
Комментарии 3

Организация распределенного CI/CD с помощью werf

Блог компании Флант Системы сборки *DevOps *Kubernetes *


werf — наша Open Source-утилита для сборки и деплоя приложений. Сегодня мы с радостью сообщаем, что werf научилась работать в распределенном режиме, начиная с версии v1.1.10 (доступна в каналах v1.1 alpha, beta, ea и stable). Для его подключения требуется минимум усилий.

Вот некоторые из примечательных особенностей нового режима:
Читать дальше →
Всего голосов 29: ↑29 и ↓0 +29
Просмотры 4.8K
Комментарии 9

Полная поддержка популярных реализаций Docker Registry в werf

Блог компании Флант Open source *Системы сборки *DevOps *

image


Все популярные реализации реестров для образов контейнеров поддерживают Docker Registry HTTP API и позволяют использовать одни и те же инструменты для работы с ними. Тем не менее, часть реализаций имеет свои особенности и ограничения, а значит — если вам нужно их поддерживать в своем инструментарии для CI/CD, — с этой спецификой необходимо считаться. Так у нас и случилось в процессе работы над GitOps-утилитой werf, когда мы захотели улучшить в ней то, как обеспечивается жизненный цикл образов.


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

Читать дальше →
Всего голосов 35: ↑35 и ↓0 +35
Просмотры 3.3K
Комментарии 6

Content-based tagging в сборщике werf: зачем и как это работает?

Блог компании Флант Git *Системы сборки *DevOps *


werf — наша GitOps CLI-утилита с открытым кодом для сборки и доставки приложений в Kubernetes. В релизе v1.1 была представлена новая возможность в сборщике образов: тегирование образов по содержимому или content-based tagging. До сих пор типичная схема тегирования в werf предполагала тегирование Docker-образов по Git-тегу, Git-ветке или Git-коммиту. Но у всех этих схем есть недостатки, которые полностью решаются новой стратегией тегирования. Подробности о ней и чем она так хороша — под катом.
Читать дальше →
Всего голосов 39: ↑38 и ↓1 +37
Просмотры 2.9K
Комментарии 13

Релиз werf 1.1: улучшения в сборщике сегодня и планы на будущее

Блог компании Флант Open source *Системы сборки *DevOps *Kubernetes *


werf — наша GitOps CLI-утилита с открытым кодом для сборки и доставки приложений в Kubernetes. Как и обещали, выход версии v1.0 знаменовал начало добавления в werf новых возможностей и пересмотра привычных подходов. Теперь мы рады представить релиз v1.1, который является большим шагом в развитии и заделом на будущее сборщика werf. Версия доступна на данный момент в канале 1.1 ea.

Основа релиза — это новая архитектура хранилища стадий и оптимизация работы обоих сборщиков (для Stapel и Dockerfile). Новая архитектура хранилища открывает возможности к реализации распределенных сборок с нескольких хостов и параллельных сборок на одном хосте.
Читать дальше →
Всего голосов 41: ↑41 и ↓0 +41
Просмотры 2.2K
Комментарии 1

Динамическая сборка и деплой Docker-образов с werf на примере сайта версионированной документации

Блог компании Флант Системы сборки *DevOps *
Tutorial
Мы уже не раз рассказывали про свой GitOps-инструмент werf, а в этот раз хотели бы поделиться опытом сборки сайта с документацией самого проекта — werf.io (его русскоязычная версия — ru.werf.io). Это обычный статический сайт, однако его сборка интересна тем, что построена с использованием динамического количества артефактов.



Вдаваться в нюансы структуры сайта: генерацию общего меню для всех версий, страницы с информацией о релизах и т.п. — не будем. Вместо этого, сфокусируемся на вопросах и особенностях динамической сборки и немного на сопутствующих процессах CI/CD.
Читать дальше →
Всего голосов 38: ↑38 и ↓0 +38
Просмотры 7.3K
Комментарии 0

Представляем werf 1.0 stable: при чём тут GitOps, статус и планы

Блог компании Флант Open source *Системы сборки *DevOps *Kubernetes *


werf — это GitOps CLI-утилита с открытым кодом для сборки и доставки приложений в Kubernetes. werf поддерживает сборку образов приложения с помощью Dockerfile или собственного встроенного сборщика (на основе синтаксиса YAML, с поддержкой Ansible и инкрементальной пересборки на базе Git). Для доставки приложения используется формат конфигурации, совместимый с Helm. Код приложения, конфигурация собираемых образов и конфигурация выката приложения хранятся в одном Git-репозитории.

Долгожданный стабильный релиз 1.0 — это законченная по функциям базовая версия утилиты (точный номер версии первого стабильного релиза — это 1.0.6). В базовой версии werf поддерживает полный цикл доставки приложения и его сопровождения. Это включает в себя сборку образов приложения, деплой в Kubernetes, очистку неиспользуемых образов.
Читать дальше →
Всего голосов 42: ↑42 и ↓0 +42
Просмотры 5.8K
Комментарии 16

Запуск команд в процессе доставки нового релиза приложения в Kubernetes

Блог компании Флант Системное администрирование *DevOps *Kubernetes *


В своей практике мы часто сталкиваемся с задачей адаптации клиентских приложений для запуска в Kubernetes. При проведении данных работ возникает ряд типовых проблем. Одну из них мы недавно осветили в статье Локальные файлы при переносе приложения в Kubernetes, а о другой, связанной уже с процессами CI/CD, — расскажем в этом материале.

Произвольные команды с Helm и werf


Приложение — это не только бизнес-логика и данные, но и набор произвольных команд, которые необходимо выполнить для успешного обновления. Это могут быть, например, миграции для баз данных, «ожидатели» готовности внешних ресурсов, какие-то перекодировщики или распаковщики, регистраторы во внешних Service Discovery — на разных проектах можно встретить разные задачи.

Что же предлагает Kubernetes для решения таких задач?
Читать дальше →
Всего голосов 36: ↑36 и ↓0 +36
Просмотры 4.8K
Комментарии 7

У werf появилась документация на русском языке

Блог компании Флант Open source *Системное администрирование *DevOps *Kubernetes *


TL;DR: У нашей GitOps-утилиты с открытым кодом werf появилась русскоязычная документация. Она доступна на сайте ru.werf.io.
Читать дальше →
Всего голосов 33: ↑33 и ↓0 +33
Просмотры 1.9K
Комментарии 0

3-way merge в werf: деплой в Kubernetes с Helm «на стероидах»

Блог компании Флант Системы сборки *DevOps *Kubernetes *
Случилось то, чего мы (и не только мы) долго ждали: 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, какие режимы используются по умолчанию и как этим управлять.
Читать дальше →
Всего голосов 39: ↑38 и ↓1 +37
Просмотры 4.5K
Комментарии 4