Как стать автором
Обновить
65
20
Константин @Zhbert

Technical writer, Linux-user

Отправить сообщение

Настраиваем CI/CD с GitHub Actions и werf: инструкция для новичков

Уровень сложности Простой
Время на прочтение 12 мин
Количество просмотров 2.2K

В этой статье мы рассмотрим, как настроить пайплайн CI/CD в GitHub: подготовим репозиторий, зальём туда приложение, создадим файлы конфигурации GitHub Actions, в которых опишем, как собирать наше приложение и деплоить его в кластер Kubernetes, развёрнутый под управлением Deckhouse Kubernetes Platform. Деплоить будем с помощью Open Source CLI-утилиты werf. Она помогает организовать полный цикл доставки приложений в Kubernetes и рассматривает Git как единый источник истины для состояния развёрнутого приложения. Статья рассчитана на тех, кто только начинает свой путь в мире облаков и кластеризации.

Читать далее
Всего голосов 24: ↑23 и ↓1 +22
Комментарии 1

Автоматизируем сборку и деплой приложения в GitLab CI/CD: подробное руководство с примерами

Уровень сложности Простой
Время на прочтение 21 мин
Количество просмотров 16K

При разработке приложений рано или поздно наступает момент, когда заниматься развёртыванием вручную становится затратно и неудобно. Как следствие на помощь приходит автоматизация этого процесса с помощью специально настроенных пайплайнов непрерывной интеграции и непрерывной доставки (Continuous Integration & Continuous Delivery — CI/CD). Для разных систем управления репозиториями исходного кода существуют свои способы настройки CI/CD.

В этой статье мы рассмотрим, как использовать GitLab для организации автоматической сборки и деплоя приложения в кластер Kubernetes. Сам кластер работает под управлением Deckhouse Kubernetes Platform, а автоматизировать процесс будем с помощью werf — Open Source CLI-утилиты, организующей полный цикл доставки приложения в Kubernetes и использующей Git как единый источник истины для состояния приложения, развёрнутого в кластере.

Читать далее
Всего голосов 36: ↑35 и ↓1 +34
Комментарии 17

Организация стенда локальной разработки для самых маленьких с автоматической пересборкой приложения (фронтенд + бэкенд)

Уровень сложности Простой
Время на прочтение 25 мин
Количество просмотров 13K

Вносить изменения в код приложения и тут же автоматически получать задеплоенные изменения, чтобы быстро тестировать его, — мечта разработчика. В этой статье мы посмотрим, как реализовать такой подход для небольшого приложения с фронтендом и бэкендом: организуем два варианта локального стенда на базе minikube или Docker с автоматическим развертыванием всех изменений или только закоммиченых в Git.

Бэкенд приложения напишем на Go, а фронтенд — на Vue.js. Все это позволит быстро запускать проект для тестирования прямо во время разработки, что, несомненно, повысит удобство работы с приложением.

Читать далее
Всего голосов 40: ↑38 и ↓2 +36
Комментарии 4

Установка Deckhouse в kind: пробуем K8s-платформу на ноутбуке — без серверов и облаков

Уровень сложности Простой
Время на прочтение 10 мин
Количество просмотров 5.7K

Чтобы попробовать Kubernetes-платформу Deckhouse в деле, придется найти мощный сервер, пространство у облачного провайдера или несколько машин и прокси-сервер. Но что делать, если хочется просто потестировать Deckhouse, а технических возможностей для этого нет? Конечно же, установить Deckhouse в kind — ведь для этой задачи сгодится даже ноутбук, а на выходе у нас будет рабочая инсталляция Kubernetes-платформы, правда, с некоторыми ограничениями. 

Читать далее
Всего голосов 30: ↑29 и ↓1 +28
Комментарии 18

Разворачиваем приложение в кластере Kubernetes под управлением Deckhouse c помощью werf

Уровень сложности Средний
Время на прочтение 24 мин
Количество просмотров 5.4K

В статье мы рассмотрим, как подступиться к миру Kubernetes в первый раз — развернуть кластер под управлением платформы Deckhouse, разработать и подготовить приложение, развернуть его с помощью утилиты werf, предназначенной для построения рабочего процесса по принципам CI/CD, а также настроить сертификаты для доступа по HTTPS.

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

Обновления Kubernetes-платформы Deckhouse версий 1.45–1.47: Istio в Community Edition и поддержка ALT Linux

Время на прочтение 7 мин
Количество просмотров 2.2K

В этой статье мы рассмотрим самые важные обновления платформы Deckhouse версий 1.45 — 1.47 — всё то, что появилось за последние три месяца.

Версия Deckhouse 1.45 на канале обновлений Stable появилась 17 мая этого года. Из ключевых изменений можно выделить прекращение поддержки Kubernetes 1.21 и добавление поддержки Kubernetes 1.26, появление нового модуля хранилища логов и включение поддержки ALT Linux. Рассмотрим их подробнее.

Читать далее
Всего голосов 27: ↑27 и ↓0 +27
Комментарии 3

Как мы боролись с багами при подготовке релиза 1.43 K8s-платформы Deckhouse и какие выводы из этого сделали

Время на прочтение 6 мин
Количество просмотров 2K

Разработка собственной Kubernetes-платформы — большой и сложный проект со множеством взаимодействующих компонентов. В процессе неизбежно сталкиваешься с различными трудностями. Иногда их даже создаешь себе сам. В статье кратко рассмотрим три проблемы, с которыми нам пришлось столкнуться во время подготовки Deckhouse 1.43 к релизу, как мы их устраняли и какие выводы из всего этого сделали.

Читать далее
Всего голосов 34: ↑33 и ↓1 +32
Комментарии 1

Разворачиваем Kubernetes-кластер на bare metal под управлением Deckhouse и создаем в нем виртуальные машины

Уровень сложности Сложный
Время на прочтение 14 мин
Количество просмотров 5.6K

В новом релизе Kubernetes-платформы Deckhouse v1.43 появилась система виртуализации, основанная на современных технологиях: KubeVirt, Cilium, LINSTOR. Она позволяет в удобном и привычном для пользователя платформы режиме запускать виртуальные машины и управлять их жизненным циклом.

В статье мы рассмотрим это на практике: развернем Deckhouse на bare metal-сервере, запустим в нем виртуальную машину и протестируем, как обеспечивается связь между компонентами кластера с помощью магии Cilium.

Читать далее
Всего голосов 20: ↑20 и ↓0 +20
Комментарии 5

Устанавливаем Kubernetes-платформу Deckhouse в закрытом окружении. Пошаговая инструкция

Уровень сложности Средний
Время на прочтение 11 мин
Количество просмотров 7.8K

Продолжаем серию статей про установку Deckhouse в разные окружения. Мы уже рассказывали про развертывание в Yandex Cloud. Эта статья посвящена установке платформы в закрытое окружение, когда у машин, на которых разворачивается кластер, нет доступа в Интернет.

Читать далее
Всего голосов 32: ↑29 и ↓3 +26
Комментарии 4

Git для ленивых: обзор консольной утилиты Lazygit

Время на прочтение 7 мин
Количество просмотров 25K

При работе с Git-репозиториями часто нужно выполнять множество одинаковых действий: фиксировать изменения, переключать ветки, синхронизировать репозитории. Всё это требует ввода соответствующих команд в терминале. Когда частота ввода повышается до утомительной, на помощь могут прийти различные GUI-инструменты. В статье расскажу об одном из них — Lazygit, легковесном консольном клиенте для Git, который облегчает и упрощает работу с репозиториями.

Читать далее
Всего голосов 50: ↑48 и ↓2 +46
Комментарии 35

Разворачиваем Kubernetes-платформу Deckhouse в Yandex Cloud

Время на прочтение 14 мин
Количество просмотров 8.1K

Платформу Deckhouse можно устанавливать на виртуальные машины облачных провайдеров, на bare metal-серверы, в закрытый контур и не только. В статье рассмотрим вариант установки Deckhouse в Yandex Cloud. А чтобы убедиться, что все внутренние ресурсы и компоненты работают как надо, заглянем в веб-интерфейсы платформы, в том числе Grafana и Kubernetes Dashboard.

Читать далее
Всего голосов 31: ↑30 и ↓1 +29
Комментарии 13

Обзор UI-инструментов для мониторинга и управления кластерами Apache Kafka

Время на прочтение 8 мин
Количество просмотров 37K

Прим. перев.: автор этого материала — Герман Осин, старший архитектор решений в Provectus. Осин сравнивает функциональность восьми UI-инструментов, которые помогают решить проблемы наблюдаемости и мониторинга Apache Kafka. Стоит отметить, что обзор скорее вводный. Он будет полезен для первоначального знакомства с возможностями решений.

Apache Kafka — незаменимый инструмент для обработки данных в реальном времени и отслеживания активности приложений. К сожалению, мониторинг кластеров Apache Kafka и управление ими — непростая задача. Решить ее помогают сторонние коммерческие или Open Source-инструменты с графическим интерфейсом и дополнительными функциями в области администрирования и мониторинга.

В статье представлен краткий обзор таких инструментов.

Читать далее
Всего голосов 25: ↑25 и ↓0 +25
Комментарии 6

Задаём порядок деплоя ресурсов в Kubernetes с помощью werf/Helm

Время на прочтение 4 мин
Количество просмотров 4.9K

При деплое в Kubernetes часто требуется выкатывать ресурсы в определённом порядке, а иногда и дожидаться готовности сторонних ресурсов. Например, нужно сначала запустить БД, дождаться создания динамического Secret’а сторонним оператором, потом выполнить инициализацию или миграции БД, а уже затем запустить само приложение. 

Рассмотрим, как решать такие задачи с помощью Helm, а также сравним с более быстрым и удобным вариантом, который предлагает Open Source-утилита werf.

Читать далее
Всего голосов 29: ↑28 и ↓1 +27
Комментарии 4

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

Время на прочтение 6 мин
Количество просмотров 2.6K

Какие задачи пользователю нужно выполнять в рамках CI-пайплайна или при локальной разработке? Среди них может быть что угодно, но самое очевидное — это, наверное, запуск линтеров, всевозможных unit-тестов и получение покрытия и других отчетов по результатам выполнения команды. Также при разработке и отладке может быть полезен интерактивный режим, который позволит быстрее разобраться в проблеме или проверить гипотезу.

Читать далее
Всего голосов 23: ↑22 и ↓1 +21
Комментарии 0

Новые возможности werf: CI/CD на основе werf и Argo CD

Время на прочтение 6 мин
Количество просмотров 6.6K

В этой статье мы рассмотрим новый экспериментальный режим совместной работы Open Source-утилиты werf и инструмента для непрерывной доставки Argo CD, объединяющий в себе возможности и удобства обоих проектов в рамках одного CI/CD-процесса. Сейчас идет активная разработка этих возможностей werf, но в первом приближении функционал уже доступен и готов к использованию.

Читать далее
Всего голосов 31: ↑31 и ↓0 +31
Комментарии 8

Запуск werf в GitLab CI/CD без Docker-сервера

Время на прочтение 6 мин
Количество просмотров 6.3K

В этой статье рассмотрен новый экспериментальный режим работы werf — Open Source-утилиты для сборки приложений и их деплоя в Kubernetes, — в котором не требуется наличие Docker-сервера. Мы покажем, как убедиться, что это режим будет работать на вашей машине, соберем первый образ и научимся использовать Kubernetes executor для автоматизации сборки в GitLab CI/CD.

Читать далее
Всего голосов 31: ↑31 и ↓0 +31
Комментарии 7

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

Время на прочтение 16 мин
Количество просмотров 11K

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

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

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

Делаем бэкап музыкальной базы vkontakte с помощью Python

Время на прочтение 6 мин
Количество просмотров 22K
Год назад я захотел в машину флешку с винегретом из музыки, которая была у меня в плейлисте контакта. А там, к слову, почти 1400 треков.

Итак, первое, что я сделал — октрыл список расширений оперы и набрал в поиске «vkontakte». Но вот оказия, все приложения предлагали качать по одному треку, в основном добавляя рядом с ним кнопочку «скачать». В принципе, это удобно, если надо стянуть оттуда один-два трека, но вот если их 1400…

Следующий моим шагом было открытие страницы с музыкой и внимательная медитация над ней, с целью распарсить страницу, выдрав оттуда ссылки и названия. Слегка подумав, я решил, а почему бы снова не использовать вконтактовый API? Ведь опыт использования у меня уже есть (писал десктопный плеер на Qt). Но лепить полноценное приложение, тем более на плюсах или каком-либо другом языке, мне показалось слегка не умным решением. И тут я подумал — черт возьми, есть же python, наклепаю скрипт и стяну все. Итак, выбор сделан, начинаем кодить.

Открываем Geany и пишем первые строчки… И вот тут-то моя фантазия и желание лепить комбайны из ничего опять разыгрались. Дальше под катом.
Читать дальше →
Всего голосов 42: ↑23 и ↓19 +4
Комментарии 43

Украшаем рабочий стол случайными обоями с GoodFon

Время на прочтение 3 мин
Количество просмотров 18K
Сидел я как-то вечером, делать было нечего, и я решил слегка разнообразить свой рабочий стол, написав небольшой скриптик, ставящий на него случайную картинку с GoodFon. Язык я выбрал просто — простой, скриптовый, мощный, а именно — несравненный Python.

Если хотите сделать себе и своему рабочему столу приятно — подробности под катом.
Читать дальше →
Всего голосов 20: ↑13 и ↓7 +6
Комментарии 15

Продолжение истории про «Сердце» электронного устройства или простейшее программирование Silicon Labs C8051F320

Время на прочтение 6 мин
Количество просмотров 18K
Не так давно я написал статью про мою поделку на основе микроконтроллера Silicon Labs C8051F320. Пришло время рассказать и про программирование данного мк под простейшие задачи.
image

Подробности под катом.
Читать дальше →
Всего голосов 7: ↑6 и ↓1 +5
Комментарии 0
1

Информация

В рейтинге
271-й
Откуда
Санкт-Петербург, Санкт-Петербург и область, Россия
Работает в
Дата рождения
Зарегистрирован
Активность

Специализация

Backend Developer, System Administration
Git
OOP
Java
MySQL
Docker
Java Spring Framework
REST
Linux
Bash
Unix