Обновить
256K+

DevOps *

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

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

1.0 — это не зрелость, это обещание. Что мы заморозили и что сломали за три дня до этого

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

Первый тег проекта датирован 22 июля, шестого сентября вышла 1.0. Разница между 0.37 и 1.0 не в коде: 1.0 - это список того, что автор больше не имеет права менять. Что именно попало в замороженный контракт, что осталось снаружи и почему об этом тоже надо говорить вслух, во что обошлась заморозка - 31 переменная окружения переименована за три дня до неё - и что нашла репетиция обновления и отката на копии продовых данных, включая откат, который уходил в краш-луп вместо понятной ошибки.

Читать далее

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

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

Сводил хронологию инцидента из четырёх источников: веб-сервер, балансировщик, приложение и почтовый шлюз. Собрал события, отсортировал, посмотрел, что за чем шло, - работа механическая.

Так продолжается, пока не выясняется, что порядок событий физически невозможен: ответ приходит раньше запроса, сессия закрывается до того, как открылась, а письмо оказывается доставлено на два часа раньше отправки. Ошибки в логах при этом нет. Каждый источник записал своё время правильно - по своим часам и в своих обозначениях.

Читать далее

K3s на колёсах: HA‑кластер для автопарка с ARM‑агентами, WireGuard и офлайн‑режимом

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

Большинство статей про Kubernetes на границе (edge) описывают более-менее стабильную топологию: несколько узлов в одном или нескольких дата-центрах, предсказуемая сеть между ними, редкие сетевые партиции как исключение, а не норма. У нас всё наоборот: control plane живёт в офисе/датацентре, а agent-узлы физически стоят в транспортных средствах автопарка — едут по городу, паркуются в подземных гаражах без связи, теряют VPN на десятки минут за смену. Разрыв связи с control plane — это не инцидент, это штатный режим работы системы, который нужно было спроектировать с самого начала, а не «подкрутить» постфактум.

В этой статье — то, как устроен наш K3s-кластер для автопарка: HA control plane на kube-vip, транспорт через WireGuard поверх MikroTik, разнородный флот из amd64- и ARM-агентов (включая Jetson), и отдельно — самая интересная часть: как мы подступаемся к вопросу «может ли под на границе продолжать работать, когда control plane временно недостижим».

Читать далее

Как получить OV-сертификат Минцифры для HTTPS в 2026 году

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

Как получить бесплатный HTTPS сертификат от Минцифры для своего сайта на 365 дней. Смотрим, с какими сложностями предстоит столкнуться.

Читать далее

Все компоненты зелёные, а продакшн лежит: разбор аварии, которую нашли в git

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

Инфраструктура была покрыта кодом почти на сто процентов. Мониторингом покрыты все компоненты. В момент аварии все метрики базы данных были идеальными, соседние сервисы на том же сервере СУБД работали без единой ошибки, провайдер облака показывал зелёный статус.

При этом продакшн лежал двадцать минут, и первые пятнадцать никто не понимал, что происходит.

Причина лежала в истории изменений инфраструктуры, и за первые пятнадцать минут туда не посмотрел никто.

Читать далее

Месяц Кубыша в App Store: 4 тысячи показов, 155 установок и 52 товарища из Шанхая

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

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

Прошел месяц. Докладываю обстановку)

Глянуть сутевой вопрос

Свой git без gitlab‑комбайна: настраиваем gitea, подключаем ci и проверяем полное восстановление

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

Как завести свой Git на небольшом VPS и не превратить его обслуживание в отдельный проект? Показываю свой путь с Gitea: настройку пользователей и SSH, перенос репозиториев из GitHub и подключение CI через Gitea Actions. А затем проверяю бэкап делом - восстанавливаю из внешней копии. С командами, ошибками и оговорками по безопасности - для личных проектов и небольших команд.

Читать далее

Очередные извращения с DOOM: упаковали в sheet-контейнер и запустили внутри Sheeternetes в электронной таблице

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

Есть проверенный закон вселенной: если у чего-то есть экран и хоть немного памяти, рано или поздно на этом запустят DOOM. Запускали на осциллографах, на тесте на беременность, на кофемашине и на тракторе. Мы в Sheet-Native Computing Foundation тоже решили побыть в этом уже достаточно запылившемся тренде и запустить DOOM в контейнере, упакованном в ячейки электронной таблицы. То есть образ контейнера с игрой физически лежит в ячейках, оттуда собирается обратно в Docker-образ, проверяется по sha256 и запускается.

В первой статье я рассказывал про Sheeternetes — оркестратор контейнеров, у которого весь control plane (Deployments, Nodes, Pods, Events) живёт внутри Google Таблицы или Excel, а на другом конце крутятся настоящие Docker-контейнеры. Там же мельком был упомянут наш формат образов — SICF (Sheet-Native Image Container Format). Эта статья как раз про него: как он устроен, как всё это воспроизвести у себя, как оно работает на bare metal (то есть в эксельке, а не гугл-таблице) без интернета и какие неожиданно интересные находки вылезли, когда мы начали пихать всё это дело в ячейки Google Sheets.

Спойлер: DOOM — настоящий (Chocolate Doom плюс свободный Freedoom, всё в Linux-контейнере, играется в браузере с клавиатуры).

Читать далее

23 урока для тех, кто отвечает за инфраструктуру: Linux, базы данных, CI/CD и безопасность

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

В этом дайджесте делимся подборкой бесплатных уроков сентября для инженеров инфраструктуры, DevOps и специалистов смежных направлений. В подборке — практические разборы Linux-серверов, PostgreSQL 18, отказоустойчивых кластеров, CI/CD, eBPF, безопасности и применения ИИ в инженерных задачах.

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

Смотреть подборку

Лендинг выключили три года назад. Запись в DNS осталась, и указывает она теперь на чужой проект

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

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

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

Читать далее

Разработчики больше не нужны для релиза. Нужны JSON Schema и Monaco

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

У нас было около сотни репозиториев-форков одного виджета — по одному на клиента, каждый на своей версии ядра, со своим CI и своим Nginx. Подключение клиента занимало две недели и разработчика. Сейчас — больше 800 брендингов на одной сборке, и новый клиент — это строка в базе. Рассказываю, как TypeScript-тип стал контрактом, JSON Schema — его исполняемой формой, а Monaco Editor — админкой для продажников. С кодом, цифрами из прода и рецептом на неделю.

Читать далее

Гонка за исключением или как один except Exception может лишить сна на неделю

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

Сервис зависает, контейнер не отвечает, а в логах — только «обработанные» ошибки. Часто причина таких инцидентов скрывается в слишком широком except Exception, который мешает приложению корректно завершаться. Разберем, как правильно обрабатывать исключения в production‑воркерах и избежать подобных проблем.

Читать разбор

Sheeternetes: первое нагрузочное тестирование и реальные бенчмарки против Kubernetes, Docker Swarm и Nomad

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

В одном чате по куберу меня спросили единственное, что реально важно, когда ты собрал оркестратор контейнеров внутри таблицы: а сколько оно вообще тянет? Сколько подов, пока не ляжет. Какой образ влезает в ячейки. Сколько кластеров держит одна машина. И — раз уж мы фонд с серьёзным лицом — как это смотрится рядом с настоящими: Kubernetes, Docker Swarm, Nomad.

Поэтому мы провели честное нагрузочное тестирование. Четыре измерения, два бэкенда (.xlsx на диске и живая Google-таблица), синтетика на ноутбуке и реальные Docker-образы на облачной виртуалке. А потом поставили цифры рядом со взрослыми оркестраторами.

Короткая версия: по каждой оси, которая имеет значение, мы проигрываем на 3–5 порядков. По осям, которые значения не имеют, — выигрываем вчистую. И один наш давний «факт» оказался неверным — бенчмарк нас поправил. Поехали.

Читать далее

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

Вы удалили ключ следующим коммитом. Из репозитория он никуда не делся

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

Секрет попадает в репозиторий почти всегда одинаково. Разработчик случайно коммитит файл с ключом доступа, замечает это, удаляет файл, делает коммит «убрал лишнее» и выдыхает.

Ключ при этом остаётся на месте: он лежит в объектах истории и достаётся одной командой. У всех, кто успел склонировать, — тоже.

Читать далее

Анонимная среда для работы в интернете на Tor под Shadowsocks

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

Можешь ли быть полностью анонимен в интернете? Сделал среду для работы в интернете через Tor поверх Shadowsocks

Читать далее

Публичное демо без регистрации: как показать живой мониторинг и не подставиться

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

В Grafana есть режим публикации дашборда наружу: генерируется токен, по нему дашборд открывается без учётной записи, только на чтение. В интерфейсе это две галочки.

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

Читать далее

LLM зацикливается: как найти причину, не трогая параметры?

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

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

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

Разобрать кейс

Дорогая, я улучшил KubeVirt! Сделали классическую виртуализацию на рельсах Kubernetes

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

KubeVirt или готовая платформа? Мы сравнили Deckhouse Virtualization Platform с «ванильной» версией по-честному: API-ресурсы, миграции, хранилища, сеть, безопасность. Получилась таблица на десяток с лишним отличий. 

Собрали в одной статье всё, что реализовали поверх KubeVirt, чтобы инженеры не тратили время на настройку и интеграцию: от sizing-политик до проброса USB в ВМ.

Смотрите, что мы добавили поверх KubeVirt

Сколько зарабатывает DevOps-инженер в 2026 году

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

Медиана зарплаты DevOps-инженера в 2026 году держится в районе от 220 000 до 250 000 ₽, но разброс внутри одного грейда огромный: у Senior вилка идёт от 300 000 до 850 000 ₽.

На переход к следующему уровню сильнее всего влияют три конкретных фактора: уверенное владение Kubernetes и облаками, движение в сторону платформенной инженерии и автоматизация процессов через AI-инструменты.

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

Читать далее

От десятка подписок к единому шлюзу LiteLLM: что пошло не по плану

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

Привет! Я Владимир Мокроусов, сисадмин в группе компаний «Синтека». Мы создаем софт для строительной отрасли и активно используем в работе ИИ-модели. 

Недавно мы сделали единый доступ к моделям на базе LiteLLM. В статье расскажу, как собрали эту схему, на какие грабли наступили с лимитами и блокировками и что пришлось контролировать, чтобы всё работало.

Читать далее