Обновить
512K+

DevOps *

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

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

SLA как инструмент, а не отчёт

Уровень сложностиСредний
Время на прочтение16 мин
Охват и читатели4.2K

Это вторая часть разбора того, как мы выстраивали SLA и инцидент-менеджмент в большом продукте.

В этой части речь пойдёт о следующем этапе — масштабировании и удешевлении. О том, что происходит, когда SLA считается корректно, цифрам уже доверяют, но компания продолжает развиваться. У неё кратно растёт количество разработчиков, архитектура усложняется и количество сбоев тоже растёт. Инциденты и сбои это наши обиходные синонимы и по ITIL это не одно и тоже, уж простите. С ростом ограничением становится не математика и перегибы полиномов высоких порядков, а люди, ручной труд, коммуникации и скорость реакции. О том, что со всем этим делать и поговорим.

Читать далее

Новости

VictoriaLogs vs Loki vs Elasticsearch

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

Привет, Хабр! В этой статье разбираем плюсы и минусы VictoriaLogs как решения для логирования в облачной платформе.

Читать далее

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

Уровень сложностиПростой
Время на прочтение8 мин
Охват и читатели6.5K

На демо всё красиво: задачки бегают, доски сияют, отчёты рисуются. Через полгода команда уточняет статусы в чате, релизы сверяет в таблице, а тимлид перед стендапом открывает пять вкладок. Разбираем четыре ошибки выбора системы управления разработкой и даём чеклист из 12 вопросов, которые стоит задать до покупки.

Читать далее

От Prometheus к Victoria Metrics: как мы пересобрали мониторинг в Kubernetes

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

1.   Введение

Всем привет! Меня зовут Яблоков Олег, я — ведущий инженер ИТ-отдела Navio и отвечаю за систему мониторинга основной инфраструктуры компании. Это работа на стыке разработки и эксплуатации (development & operations, DevOps), наблюдаемости (Observability) и обеспечения надёжности сервисов (Site Reliability Engineering, SRE). Моя основная задача не просто собирать метрики, а сделать так, чтобы по ним можно было быстро понять статусы сервисов и не утонуть в шуме оповещений.

Когда я пришел в компанию около года назад, система мониторинга уже существовала и закрывала базовые задачи. В наборе технологий использовались Prometheus, Thanos, Alertmanager, Grafana, Elasticsearch и различные наборы оповещений. Со временем количество компонентов и инструментов увеличилось, что усложнило их сопровождение и масштабирование.

В этой статье я расскажу, как происходила миграция мониторинга в Kubernetes, почему в качестве основной базой данных временных рядов (Time Series Database, TSDB) была выбрана Victoria Metrics, как мониторинг связали с Gitlab и Argo CD, пересобрали систему оповещений (alerting) и начали постепенно двигаться от инфраструктурного мониторинга к сервисному подходу и практикам обеспечения надёжности сервисов (Site Reliability Engineering, SRE). 

2. С чего все начиналось.

Изначально мониторинг представлял собой связку Prometheus, Thanos, Alertmanager, Grafana и Elasticsearch. Разворачивалось все через Docker Compose на отдельных серверах, а сама система постепенно росла вместе с инфраструктурой.

Читать далее

Что у вас спросят про Docker на интервью? Разбираем 10 главных вопросов

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

Docker уже давно перестал быть «модной новинкой» и превратился в минимум для любого бэкендера, DevOps-инженера или QA. Строчка с Docker есть почти в каждом резюме, поэтому на собеседованиях технические специалисты любят копать глубже.

Вызубрить десяток флагов для docker run — недостаточно. Интервьюеры хотят видеть, что вы понимаете саму архитектуру контейнеризации: как работает изоляция процессов, почему данные внезапно исчезают после рестарта, чем слои отличаются от томов и что будет, если PID 1 внутри контейнера завершит работу.

Читать далее

Может ли Service сломать ваш K8s кластер?

Уровень сложностиСредний
Время на прочтение37 мин
Охват и читатели4.9K

Привет, Хабр! Меня зовут Михаил, я backend-разработчик в команде Managed Kubernetes в VK Cloud. При работе с K8s всем нам приходится сталкиваться с множеством конфигураций, которые мы используем постоянно, и Service не является исключением. И вот тут мне стало любопытно: а может ли с виду безобидный конфиг Service сломать нам весь кластер? Ну или хотя бы подпортить жизнь какому-то сервису?

Зачем мне это? Во-первых, это просто интересно: сломать что-то, понять, как оно работает, узнать, как то, что кажется обыденностью, может стать проблемой. Во-вторых, если удастся что-то накопать, то мы получим список потенциальных ошибок нашего кластера и будем думать над способами защиты и обнаружения. Так что приступим!

Статья будет полезна DevOps, безопасникам, админам и просто юным любителям Kubernetes. 

Читать далее

«РБПО для бедных»: разворачиваем виртуальные машины

Время на прочтение8 мин
Охват и читатели6.9K

В прошлой статье цикла «РБПО для бедных» мы разобрались, что такое разработка безопасного программного обеспечения, зачем она нужна стартапам и как может выглядеть минимальный конвейер безопасной разработки. Теперь пора переходить от схем и планов к практике.

В этом материале мы рассмотрим:

— создание виртуальных машин в VirtualBox для сервисов безопасной разработки ПО;

— подготовку виртуальных машин к дальнейшей работе;

— установку Ubuntu Server с ручной настройкой статического IP;

— первичную настройку серверов: часовой пояс, базовые утилиты, брандмауэр UFW, установку Docker и docker‑compose.

Мы создадим и подготовим пять виртуальных машин, на которых в следующих частях будем разворачивать сервисы безопасной разработки. К концу статьи у нас будет готова инфраструктурная основа будущего конвейера РБПО.

Так что запасаемся терпением, запускаем VirtualBox и начинаем строить нашу небольшую лабораторию безопасной разработки.

Читать далее

Tilda и СБИС Presto: как мы синхронизируем остатки через стоп-лист, а не каталог

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

Как мы избавили общепит от часа ручной работы каждое утро: разобрали реальный кейс синхронизации стоп-листа из СБИС Presto в каталог на Tilda через CommerceML. Поток на Python/FastAPI, дебаунс через SHA-256, eventual consistency без очередей и грабли, на которые наступили в проде.

Решение и грабли

IT-ретейнер для ресторанной сети: как за 7 месяцев запустить 6 цифровых продуктов

Время на прочтение6 мин
Охват и читатели8.7K

Ресторанная сеть из 10 заведений обратилась с первичным запросом на доработку Telegram Mini App. В процессе стало понятно, что задача шире: компании нужен не отдельный подрядчик под приложение, а внешний продуктово-технический контур, который сможет развивать несколько цифровых продуктов, поддерживать инфраструктуру, закрывать интеграции и сопровождать эксплуатацию.

За 7 месяцев работы были запущены 6 продуктов:

Читать далее

Model Predictive Control для Kubernetes autoscaling: что получилось, где HPA оказался сильнее

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

Я ожидал, что прогнозирующий контроллер обгонит HPA на коротком пике. Но в Kubernetes всё упёрлось не только в алгоритм: пик длился 30 секунд, а новые Pod становились Ready примерно через 40.

Почему Pod не успевают

Личный CI/CD за один вечер: настраиваем GitLab Runner на собственном VPS

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

Если у вас пет-проект или небольшой стартап на GitLab.com, рано или поздно вы упрётесь в потолок бесплатного тарифа: 400 минут пайплайнов в месяц и общая очередь раннеров. Покупка дополнительных минут стоит денег и не решает вторую проблему: общие раннеры GitLab обслуживают миллионы проектов, и в часы пик ваша джоба может провисеть в очереди 10-20 минут.

Решение — свой GitLab Runner на VPS: без чужих джоб, под полным контролем. Такой раннер не имеет лимитов по времени, кроме ресурсов самого сервера. В статье за вечер собираем такой раннер с нуля на Ubuntu 24.04 LTS, поднимаем пайплайн на три стадии (тесты, сборка Docker-образов, пуш в GitLab Container Registry), добавляем кэширование, безопасность и автообновление.

Читать далее

AI inference на K8s: как выживать с LLM в кубере. DRA, GIE, LLM-D

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

Для многих обывателей, да и инженеров, которые не углублялись в тему, работа с LLM выглядит как работа с обычным сервисом: мы просто кидаем запросы по нужному endpoint и получаем JSON с ответом. Но на деле появляется много вопросов: как здесь работает кэш? От чего зависит время ответа? Что делать с огромным контекстным окном? И если у нас один GPU-сервер, на котором происходят все вычисления, то это не так и важно. Но что делать с масштабными распределёнными системами? Обычный Kubernetes не понимает, как устроен запрос языковой модели. Однако за последний год платформенные инженеры очень хорошо продвинулись в этом вопросе. И в этой статье я хочу подробно разобрать, как именно строится K8s-кластер под высоконагруженные LLM.

Читать далее

Elasticsearch без мастеров или как оживить труп

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

Всем привет, меня зовут Илья и я хочу вам рассказать как я после небольшой правки в тераформ я потерял все мастера в кластере Elasticsearch. ЧатГПТ и гугл уже принесли мне лопату чтобы похоронить эти сервера, но начальство сказало: "Может что нибудь придумаешь?". В итоге 6 часов работ и кластер снова живой и зеленый. Хотите знать больше?

Хочу знать больше!

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

Kubernetes Gateway API в 2026 году: сравниваем Envoy Gateway, Istio, Cilium, Kong и NGINX Gateway Fabric

Время на прочтение13 мин
Охват и читатели7.1K

Сейчас ландшафт сетей Kubernetes переживает самую значительную трансформацию со времен появления Ingress API в 2015 году. Gateway API прошел путь от бета-версии до General Availability и продолжает развиваться: к 2026 году — версия 1.4. Это фундаментальная переархитектура того, как трафик моделируется, управляется и защищается в Cloud-Native-окружениях. Это руководство — исчерпывающий анализ экосистемы вокруг этого стандарта: разбираем архитектурные подходы, характеристики производительности и наборы функций ведущих реализаций.

Наше исследование показывает: стандарт Gateway API успешно унифицировал базовый интерфейс конфигурации, заменив фрагментированную аннотационную модель Ingress, — но нижележащие реализации демонстрируют глубокие расхождения в производительности и операционном поведении.

Команда VK Cloud перевела статью для тех, кто уже несколько лет живет с зоопарком Ingress-аннотаций под NGINX, Traefik и ALB и сейчас выбирает, на что мигрировать. Автор разбирает Gateway API в его нынешнем состоянии (версия 1.4, GA), сравнивает пять Production-Ready-реализаций — Envoy Gateway, Istio в Ambient Mode, Cilium, Kong и NGINX Gateway Fabric — и дает фреймворк выбора под конкретный профиль нагрузки. Никакого маркетинга и «лучшего решения для всех»: цифры по Latency и CPU, архитектурные компромиссы, явные пределы масштабирования каждой модели.

Читать далее

OTel Collector в кастомизации Битрикс24: подключаем Observability

Уровень сложностиСредний
Время на прочтение15 мин
Охват и читатели7.3K

Рассказываем про инструмент для наблюдения за кастомизациями Битрикс24 — телеметрическую инфраструктуру на базе OpenTelemetry Collector. Для проектов Битрикс24 эту роль выполняет репозиторий github.com/bitrix-tools/b24-ai-starter-otel.

В статье объясним, зачем это надо, подключим Collector к уже существующему приложению чат-бота и покажем, как работает и выглядит сбор метрик.

Это статья из цикла туториалов, где мы показываем полезные вещи, которые можно сделать на своём портале с помощью стартер-кита для ИИ-ассистированной разработки: github.com/bitrix-tools/b24-ai-starter.

Что мы уже сделали и разобрали в других статьях:
Пишем первое приложение с AI-стартером, чтобы видеть прибыли и убытки
Добавляем в бизнес-портал Битрикс24 роботов для автоматизации
Что даёт воспроизводимая среда разработки и как развернуть контейнеры на VPS.
Анализ и модернизация коннектора баз данных с помощью AI-агентов
Создание чат-бота в портале Битрикс24 с помощью AI-агентов
Как стартер-кит может стать стандартом разработки
— OTel Collector в кастомизации Битрикс24: подключаем Observability (вы здесь)

Читать далее

Pull request открыл — стенд появился. Закрыл — исчез. Эфемерные окружения в kubernetes через FluxCD

Уровень сложностиПростой
Время на прочтение5 мин
Охват и читатели9.1K

Когда несколько разработчиков хотят одновременно показать свои изменения — локальной разработки уже недостаточно. В статье разбираем, как автоматически поднимать изолированные окружения в Kubernetes по PR с лейблом и так же автоматически удалять их при закрытии.

Реализация построена на FluxCD с использованием директивы postBuild для шаблонизации манифестов через переменные. Каждое окружение получает собственный namespace, базу данных, TLS‑сертификат и уникальный URL — и всё это без ручного вмешательства. Разбираем структуру CI/CD пайплайна, слоёвую организацию GitOps‑репозитория и автообновление образов через ImagePolicy.

Читать далее

Chrome-расширение для GitLab: от rebase до cherry-pick

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

Работая с GitLab каждый день, повторяешь кучу одинаковых действий которые хотелось бы делать быстрее чем позволяет UI. Надоело, запилил Chrome-расширение.

В статье рассказываю как устроено внутри: авторизация через session cookies без токенов, цепочки действий в background worker, борьба с постоянно меняющимся DOM GitLab (Vue-миграция между версиями сломала все селекторы несколько раз).

Из фич: кнопки на MR странице (rebase, bump версии, auto-merge, ship), Jira-сайдбар прямо в GitLab, бейджи размера/конфликтов/тредов на списке MR, cherry-pick в несколько веток, command palette.

Читать далее

Hermes Agent сжигал 603M токенов за спиной — как я сократил фоновые расходы в 125 раз

Время на прочтение5 мин
Охват и читатели9.5K

На днях я заметил, что квота Ollama Cloud Pro тратится быстрее обычного. Значительно быстрее. За семь дней я сжёг 603 миллиона токенов и не понимал, куда они уходили.

Я открыл логи Hermes Agent и нашёл то, о чём не знал: блок auxiliary: с двенадцатью фоновыми задачами. Сжатие контекста, извлечение из веба, vision, поиск по сессиям, подбор навыков — всё это молча запускалось при каждом моём сообщении. Каждая задача стояла на provider: auto. И поскольку у меня не было ключей для цепочки fallback, каждая молча откатывалась на kimi-k2.6, мою основную модель на триллион параметров.

Я понятия не имел, что это происходит. Пока я печатал одно сообщение, агент отправлял одиннадцать других в фоне — через ту же модель, из того же квоты, не показывая мне промпты. Только сжатие контекста срабатывало 10–20 раз за длинную сессию, каждый раз отправляя всю историю.

Читать далее

Домашний удалённый доступ без панели: эксперимент с Xray, Docker Compose и локальным CLI (Часть 1)

Уровень сложностиСредний
Время на прочтение14 мин
Охват и читатели12K

Домашний удалённый доступ без панели: эксперимент с Xray, Docker Compose и локальным CLI

Самый неприятный момент в маленькой домашней инфраструктуре наступает не тогда, когда она падает. Хуже, когда она начинает работать достаточно хорошо, чтобы ей начали пользоваться другие.

Сначала у меня был один сервер, один конфиг и одно устройство. Потом добавился телефон. Потом ноутбук. Потом кто-то из близких попросил «скинуть настройки ещё раз». Потом старое устройство осталось неизвестно где, а в конфиге уже лежало несколько UUID с названиями, которые я придумал в полночь и больше не понимал.

На этом этапе обычно появляется знакомый выбор: открыть SSH, поправить JSON руками, рестартануть контейнер и пообещать себе «потом нормально оформлю». Через пару месяцев «потом» превращается в маленький прод: пользователи, секреты, квоты, бэкапы, мониторинг, логи, обновления и вопрос, какие изменения на сервере были осознанными, а какие - следами экспериментов.

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

Но и жить в режиме ssh -> vim -> docker compose restart мне тоже не хотелось.

Поиск по open source проектам — не дал результата. Многое из того, что я пытался ставить, либо не запускалось, либо было написано на bash, где было много хардкода, который приходилось переписывать под мои VDS. Потратив несколько вечеров - я понял, что есть запрос на простое решение по оркестрации self-hosted VPN серверов с локальным хранилищем и удобным масштабированием.

Читать далее

Я собрал Telegram-бота с лентой новостей, которая учится на твоих реакциях — и хостится за $5 в месяц

Уровень сложностиСредний
Время на прочтение15 мин
Охват и читатели7.4K

Хотел ленту новостей без двух вещей: дублей (одно событие из пяти каналов с разными заголовками) и потока негатива по утрам.

Получился Telegram-бот, который по умолчанию показывает только хорошие и нейтральные новости — а тяжёлый контент включается в настройках на 4 уровнях. Плюс он убирает дубли, переводит RU↔EN и подстраивает выдачу под твои реакции 🔥 ❤️ 😢.

Но самое интересное — он живёт на одной машине Fly.io за ~$5 в месяц. В статье разбираю, как:

заменил Postgres + pgvector на встраиваемый sqlite-vec и убрал отдельную БД-машину;

гоняю типизацию, перевод и оценку тональности через бесплатные LLM на OpenRouter (счёт $0–1/мес);

считаю эмбеддинги локально на fastembed/ONNX без внешних API;

собрал рекомендательное ядро на «векторе вкуса» с EWMA и анти-баблом.

И, конечно, грабли: sqlite-vec, который ломался на arm64; vec0 без INSERT OR REPLACE; fastembed, сменивший пулинг между версиями; и LLM, которая «подкручивала» оценки негатива, пока я не дал ей чёткую рубрику.

👉 Бот живой, можно потрогать: @futur_e_news_bot

Читать далее
1
23 ...