Обновить
263.38

DevOps *

Методология разработки программного обеспечения

Сначала показывать
Порог рейтинга
Уровень сложности

Эффективный CI/CD: переход на trunk-based development и GitLab

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

Меня зовут Илья Куликов, я руковожу разработкой веб-терминалов в компании «Столото». Сегодня хочу рассказать, как мы превратили ручные релизы и вечные конфликты в почти автономный CI/CD. За почти 10 лет в компании я прошёл путь от бэкенд-разработчика до руководителя направления, в «Столото» же за это время родился и вырос целый продукт — веб-терминал для агентов розничной сети. Изначально у нас был парк дорогих аппаратных терминалов, установленных у агентов. Но как расширить сеть и снизить входной порог? Возникла идея: а что, если сделать аналогичное приложение в браузере? Тогда любой желающий мог бы стать агентом — достаточно старого ноутбука и договора с нами. Так появился полноценный веб-аналог аппаратного терминала со всеми необходимыми функциями для продажи лотерей.

Но вместе с ростом продукта росла и боль: релизы занимали часы, всё постоянно ломалось на проде, а после каждого деплоя команда судорожно грепала логи в поисках причины падения. Мы поняли: без серьёзной перестройки процессов дальше — только хуже. И тогда решили кардинально пересмотреть наш подход к CI/CD. Отказались от классического GitFlow в пользу trunk-based development, полностью перестроили пайплайны в GitLab и внедрили автоматизацию на всех этапах — от сборки и тестирования до деплоя и мониторинга.

В этой статье я делюсь реальным опытом:

- как мы ушли от ручных релизов к автоматическому деплою в прод;

- какие практики и инструменты позволили нам перестать бояться каждого коммита;

- как повысить качество кода и ускорить вывод фич на рынок без ущерба для стабильности.

Этот материал будет особенно полезен техлидам, инженерам DevOps, разработчикам и командам, которые всё ещё живут в мире ручных деплоев, боятся нажимать «мердж» в пятницу вечером. Если вы задумываетесь, как перейти от хаоса к предсказуемости в релизах — вы по адресу.

А как мы этого добились — читайте под катом!

Читать далее

Когда дашборды лгут. Гайд по перцентилям, очередям и e2e-бюджету

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

Вы уже научились отслеживать среднюю скорость запросов на проекте, и это большой шаг. Без преувеличений и какой либо иронии.
И теперь, когда вы перешли от "не измеряем ничего" до "измеряем среднее" — вы попали в ловушку.

Пока вы с удовольствием наблюдаете в отчетах красивые 200ms — ваши пользователи стучат в службу поддержки со словами "у меня все висит".
И они не врут, у них действительно TTF порядка 6 секунд. Но и вы не врете, у вас действительно 200ms в отчете!

Врет метрика, а вы ей верите.

Давайте разбираться.

Читать далее

Как я построил AI-радио без команды и инвестиций: архитектура изнутри

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

Когда я только начинал Tunio, я хотел просто познакомиться с Kubernetes. В итоге получилось построить полноценную платформу для радио с AI-музыкой, новостями, прогнозами погоды, подкастами, гео-кластеризацией и TTS-ведущими - без команды, инвестиций и грантов. Эта статья - о том, как из pet-проекта вырос продакшн-сервис с реальными клиентами, и какие технические фэйлы и открытия случились по дороге.

Читать далее

ULID, UUIDv4 и UUIDv7 в логах nginx: как сделать поиск по ID быстрым и удобным в ClickHouse

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

Когда вы работаете с распределённой системой — будь то микросервисы, фронтенд + бэкенд или nginx + приложение — жизненно важно иметь возможность «протянуть» один и тот же идентификатор запроса через все её компоненты. Это позволяет сопоставлять логи из разных источников, быстро находить ошибки и проводить корреляционный анализ.

В nginx для этого из коробки есть переменная $request_id — 32-символьный hex-идентификатор (например, a1b2c3d4e5f678901234567890abcdef). Его можно передать бэкенду через proxy_set_header X-Request-ID $request_id; или fastcgi_param HTTP_X_REQUEST_ID $request_id;, а также сохранить в access-логах.

Однако стандартный $request_id — это просто случайная строка без временной привязки и без структуры, удобной для аналитики. В этой статье мы рассмотрим, как улучшить ситуацию с помощью ULID и UUIDv7.

Читать далее

Dumper: единый инструмент для резервного копирования баз данных

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

Когда в инфраструктуре десятки сервисов и баз данных разных типов, ручное резервное копирование превращается в кошмар.

Один сервер использует PostgreSQL, другой — MySQL, третий — MongoDB, и для каждого нужны свои команды (pg_dump, mysqldump, mongodump) и свои скрипты.

Проект Dumper решает эту проблему он объединяет все типы баз в один универсальный инструмент.

Dumper написан на Go и работает через CLI, конфигурация задаётся в YAML — поэтому его легко встроить в cron, CI/CD pipelines, GitHub Actions или Docker-окружение.

Читать далее

Сбой AWS 19­–20 октября: во всём виноват DNS. Постмортем

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

19–20 октября 2025 года в регионе us-east-1 произошёл каскадный сбой, повлиявший на доступность глобальных сервисов. Компания AWS опубликовала детальный разбор, в котором раскрыла первопричину — дефект в автоматизированной системе управления DNS для сервиса DynamoDB. В статье приводятся полная хронология событий, описание воздействия на смежные сервисы (EC2, NLB, Lambda) и список запланированных улучшений для предотвращения подобных инцидентов в будущем.

Читать далее

Enterprise мониторинг с нуля: Prometheus + Grafana для FastAPI приложения

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

После того как ваше веб-приложение попадает в продакшн, самый важный вопрос — а как оно работает прямо сейчас? Логи дают ответ постфактум, но хочется видеть проблемы до того, как пользователи начнут жаловаться.

В этой статье я расскажу, как построил полноценную систему мониторинга для Peakline — FastAPI приложения для анализа Strava данных, обрабатывающего тысячи запросов в день от спортсменов по всему миру.

Читать далее

Как работает DNS в Linux. Часть 4: DNS в контейнерах

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

Каждая контейнерная платформа — Docker, Podman, Kubernetes — реализует собственную DNS-архитектуру со специфическими особенностями, преимуществами и подводными камнями. Понимание этих различий критически важно для построения надежных и производительных контейнерных инфраструктур. С чем мы и попробуем разобраться в этой статье.

Читать далее

Асинхронные цепочки задач в Рег.облаке: как повысить отказоустойчивость облачной платформы без потерь

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

Привет, Хабр! На связи Александр Усачёв, системный аналитик в группе облачных продуктов Рунити. В основе нашей облачной платформы Рег.облако лежит микросервисная архитектура: каждый сервис отвечает за свой участок бизнес-логики — от биллинга до управления сетями. Между собой они обмениваются задачами через брокер сообщений. 

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

Читать далее

Неожиданная находка в Kubernetes: постквантовая криптография в кластерах

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

Развитие квантовых компьютеров ставит под угрозу классическую криптографию: потенциально они смогут взломать существующие алгоритмы шифрования вроде RSA и ECC. На выручку приходит постквантовая криптография (PQC). Автор статьи объясняет, как обстоят дела с PQC в TLS, что это значит для Kubernetes — и почему уже сегодня кластеры получили постквантовую защиту почти случайно.

Читать далее

Услуги гадалки: задать вопрос гадалке и выбрать лучшую онлайн

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

Показываю, как без лишних усилий найти гадалку, проверить репутацию, погадать на таро бесплатно и за пару минут записаться к гадалке на личный приём в видео-формате.

Читать далее

rsync и переменные окружения

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

Как скачать файлы с удаленной машины по пути, прочитанному из environment variable? Environment variable при этом сама расположена на удаленной машине...

Читать далее

Инжиниринг платформ: не CFEngine единым

Время на прочтение9 мин
Количество просмотров651

Привет, Хабр! Мы только что получили из типографии топовую DevOps-новинку этого года — книгу Камиль Фурнье и Иэна Ноуленда «Инжиниринг платформ: техническое и управленческое руководство». Промокод для читателей Хабра (скидка 32%) - fournier. Она продолжает и конкретизирует тему облачного развёртывания и дальнейшей поддержки приложений любой сложности, на которую мы ранее перевели отличную книгу Кифа Морриса «Программирование инфраструктуры» и сейчас обновляем её до 3-го издания (готовый перевод ожидается до конца года, затем пойдёт редактура). Также у нас в работе есть для вас книга «Terraform Cookbook» — за сроками выхода следите в разделе «Скоро!» у нас на сайте. Под катом же предлагаем вам перевод статьи, которую Камиль Фурнье написала около года назад, подробно изложив в ней, зачем и о чём она пишет книгу «Инжиниринг платформ», и какое место эта книга займёт на полке умелого девопса.

UPDATE: книгу прочитали сотрудники компании SSP-SOFT и разместили в своём блоге на Хабре подробную рецензию о ней, которую вам будет очень интересно почитать. Благодарим уважаемого Сергея Березина @sergbe и готовимся к наплыву покупателей.

Читать далее

Ближайшие события

В AWS утро начинается не с кофе. Пал US-EAST-1

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

Мрачным утром 20 октября 2025 года мониторинг AWS был краснее некуда, его залило кровью сервисов. Пал крупнейший и по совместительству старейший регион, обрабатывающий 35–40% всего глобального трафика AWS — US-EAST-1. На его воскрешение чернокнижники из AWS потратили 13 часов.

В этой статье я хочу разобрать, что именно произошло, почему восстановление заняло так много времени, и самое главное — что мы можем сделать, чтобы наши системы пережили подобное в будущем. Ведь US-EAST-1 падает уже не первый раз, и явно не последний.

Читать далее

Как мы учились смотреть на проблемы продукта «сверху»

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

Меня зовут Александр Ковалёв, и я занимаюсь разработкой инженерных продуктов Platform V Works. В этой статье поговорим про observability, а именно про конкретную область — мониторинг в продуктах. Обсудим, как вообще появляется сама идея мониторинга, какие есть варианты реализации. Расскажу, по какому пути пошли мы, какие ресурсы и материалы использовали.

Статья может быть полезна тем, кто впервые сталкивается с такими инструментами, как Prometheus и Grafana, а также всем, кто хочет изучить чужие примеры и прокачать компетенции в данной области.

Читать далее

Миграции Postgres с использованием логической репликации

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

Миграция PostgreSQL — редкий проект, где «быстро и безболезненно» почти никогда не совпадают. Дамп/восстановление годится для сотен гигабайт, потоковая репликация по WAL — для тех, у кого есть к ней доступ. Но когда простоя не хочется, а WAL недоступен, остаётся третий путь — логическая репликация.

В этом материале — практический сценарий: как заранее перенести схему, обеспечить уникальную идентификацию строк (PK/уникальный индекс/REPLICA IDENTITY FULL), настроить публикации и подписки, следить за первичной загрузкой через pg_stat_subscription, корректно остановить запись на источнике и синхронизировать последовательности.

Старт миграции

Как настроить автообновление n8n через Portainer с помощью Watchtower

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

Поддерживать актуальность ваших Docker-контейнеров — важная задача для обеспечения безопасности и стабильности ваших приложений, будь то n8n, базы данных или веб-серверы. Ручное обновление контейнеров Docker может отнимать много времени, особенно когда их много. К счастью, существует эффективное решение – Watchtower. Этот инструмент позволяет настроить автоматическое обновление n8n а также других Docker-контейнеров, избавляя вас от рутины.

Если вы используете Portainer для управления своей Docker-средой, установка Watchtower через Portainer (Как установить Portainer читайте в этой статье) становится удивительно простой. В этой статье я подробно покажу, как выполнить установку Watchtower из интерфейса Portainer, настроить его для автоматического обновления n8n и всех других ваших контейнеров. Узнайте, как настроить Watchtower один раз и наслаждаться всегда актуальными сервисами.

Что нам понадобится для автоматизации обновлений Docker:

Читать далее

Варианты реализации GitOps при помощи Argo CD

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

В «Экспресс 42» — подразделении «Фланта», которое консультирует компании по DevOps-практикам, — решили проверить, как можно реализовать GitOps по модели BSA (Base, Service, Application) с помощью Argo CD. Чистый эксперимент на тестовом репозитории.

Мы попробовали четыре подхода — от отдельного ApplicationSet на каждое окружение до матричного генератора — и оценили их по изоляции окружений, соблюдению принципа DRY, поддержке временных стендов, масштабируемости и другим критериям. В статье — кратко о самой модели и каждом варианте с их плюсами и минусами.

Читать далее

Как быстро избавиться от лагов на сервере по методике RED S.O.S

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

Представьте: вы получаете алерт "сервер тормозит" или замечаете странные лаги в приложении. Отставить панику)) В этой статье мы разберем, как провести технический осмотр Linux-сервера и найти корень проблемы без углубления в тонны логов.

Сейчас расскажем вам про методику RED S.O.S. - структурированный подход, который превращает хаотичную проверку в системный диагноз. Это ваш чеклист для экстренного реагирования. Он не заменяет системы мониторинга (Prometheus, Zabbix), но дает моментальный снимок здоровья системы.

Фокус здесь на ключевых ресурсах: Resources (Ресурсы), Errors (Ошибки), Dependencies (Зависимости)

Читать далее

LiqTrade: от идеи до Production Ready за 3 месяца. Нельзя закончить допиливать проект, можно лишь перестать…

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

Solo developer journey: Как я довел B2B платформу от 8.5/10 до 8.8/10, исправил 13 критических багов, прошел Context7 MCP аудит и успешно задеплоил на production с первыми пользователями.

После первой части (концепция и MVP) и второй части (решение технических проблем), настал момент истины - финальная подготовка к production.

Читать далее

Вклад авторов