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

Technical writer, Linux-user

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

В статье мы рассмотрим, как подступиться к миру 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 мин
Количество просмотров 1.9K

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

В этой статье рассмотрен новый экспериментальный режим работы 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
Комментарии 46

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

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

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

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

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

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

«Сердце» электронного устройства на основе Silicon Labs C8051F320

Время на прочтение 2 мин
Количество просмотров 15K
Бывает, что вам необходимо быстро разработать какое-то электронное устройство для управления какими либо агрегатами или сбора какой либо информации от этих агрегатов. Для этой задачи идеально подходят либо какие либо готовые устройства наподобие Arduino, либо железка собственной разработки на основе микроконтроллера. В данной статье я решил рассмотреть небольшую самодельную плату, которая и будет сердцем любого подобного устройства.



На фото изображено получившееся устройство (слева), подключенное к программатору (справа)
Читать дальше →
Всего голосов 46: ↑40 и ↓6 +34
Комментарии 29

Информация

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

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

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