gram news
Аватар канала этогик // DevOps, Infrastructure, Productivity

этогик // DevOps, Infrastructure, Productivity

@etogeek

🚀Блог DevOps-инженера. Вместе растем в хард- и софт скиллах, разбираемся как жить и работать продуктивно, ищем баланс во всем 🌿 📽 yt: https://www.youtube.com/@etogeek 🌍 site: https://etogeek.dev 🌿 chat: @etogeekchat Подробнее в закрепе 🦾

4,360подписчиков

Открыть канал

Последние посты

  • этогик // DevOps, Infrastructure, Productivity

    4 сент., 08:01

    Баланс в EdTechПодписан на канал Mischa van den Burg и там недавно вышло видео, где автор горит с того как сейчас выглядит образовательный контент. Вот, хочу немного мыслями поделиться.Сейчас видео для обучения часто подкрепляются огромным количеством анимаций, картиночек, двигающихся графиков, мемов. Ну или subway surfer сбоку... Даже знаю одного блогера, который на youtube-картинках подавал "с понятными анимациями" как киллер-фичу. Такого контента сейчас полно. Зачастую сложный и дорогой монтаж используется для удержания внимания аудитории. Это по сути одна из причин, почему я выгорел со съемкой образовательного контента.Понятно почему - в такое время живем, attention span у людей маленький, фокусироваться сложно, нужно как-то завлекать людей. Факт в том, что через анимации проще объяснять сложные концепты. Как работает Kafka, как бегает трафик по сети, как Кубер масштабируется
    1,31015611Открыть в Telegram
  • этогик // DevOps, Infrastructure, Productivity

    31 авг., 16:52

    Чтобы немного подвести итог серии постов про бекапы (раз и два), расскажу как я ими управляю в своей инфрастркутуре.Основная цель такого поста не показать единственный способ "как правильно" (такого нет), а поделиться моим опытом, из которого вы можете подцепить какую-нибудь идею и реализовать у себя.В общем, конечно же, я делаю это через ansible. У меня есть довольно сильно параметризируемая роль backups. В директории files я складываю bash-скрипты в сыром виде. Можно их там разбить на под-директории, чтобы было больше порядка.В инвентори у нужных хостов я описываю бекап по следующей структуре: backups: # список - можем описать несколько бекапов - name: billing_db_backup user: root # под каким юзером запускаем scripts: - script: billing_db_backup.sh # название скрипта из files script_dest: /etc/billing/scripts # куда положить скрипт schedule: { hour: 2, minute: 30 } #
    1,87017411Открыть в Telegram
  • этогик // DevOps, Infrastructure, Productivity

    25 авг., 15:20

    Мониторинг бекаповВ прошлый раз я говорил про PITR-бекапы для PostgreSQL, теперь хочу немного рассказать про мониторинг бекапов. Проблематика следующая - мы сделали бекап-скрипт, закинули его в crontab и забыли. Как будем проверять, что скрипт работает и бекапы создаются регулярно?Переключатель мертвеца - это некая система требующая постоянной активации, чтобы основная система продолжала работать. Например, педалька у высотного погрузчика, которую человек должен всегда нажимать, чтобы двигать погрузчик.Аналогичной штукой воспользуемся и с бекапами - на каждое успешное выполнение скрипта будем отправлять "пинг" в систему. Если пинг не придет в ожидаемое временное окно - получим алерт. Что может быть надежнее?Таких сервисов полно, я использую healthchecks.io. Раньше пользовался бесплатной версией, потом развернул self-hosted, чтобы обойти лимиты на хелсчеки.Интеграция простейшая:
    Иллюстрация к посту канала этогик // DevOps, Infrastructure, ProductivityИллюстрация к посту канала этогик // DevOps, Infrastructure, Productivity
    2,45021311Открыть в Telegram
  • этогик // DevOps, Infrastructure, Productivity

    21 авг., 09:00

    Про бекапы. Хочу немного поделиться своим опытом в нескольких постах. Это больше информация для новичков, на которой я хочу и в дальнейшем фокусироваться, если честно. Синьоры-помидоры, вы итак это всё знаете (надеюсь).Что первое приходит в голову, когда мы говорим про бекапы баз данных?Ну, делать дамп раз в сутки через cron-таску и загружать его в отдельное хранилище. Есть говорить про PostgreSQL, то стандартный pg_dump достаточен для этого. А восстанавливаемся через pg_restore. Отлично подходит для небольших инстансов, всяких селф-хостед сервисов. Например, у вас развернуты self-hosted Metabase, Infisical, Grafana. База весит немного, дамп еще меньше - рестор быстрый.Проблем тут две: - мы теряем до 24 часов данных, в зависимости от того, как давно был снят последний бекап - при росте базы данных, особенно если это БД продукта, время рестора из дампа растет в прогрессииРестор
    2,73029158Открыть в Telegram
  • этогик // DevOps, Infrastructure, Productivity

    13 авг., 12:26изменён

    Когда я преподавал в Практикуме (был такой период, да. еще и видео снимал), студенты часто возмущались, что менторы не дают прямого ответа на их вопросы. Они подсказывают направление для размышления, но не дают готовое решение.Я верю в то, что когда человек в процессе обучение натыкается на проблему и решает её сам - именно так он получает тот самый ✨ОПЫТ✨. Это не потерянное время.Наткнулся на видео от JetBrains Academy (7 минуток), про то, что происходит, когда новички учатся кодить с помощью Codex/Claude. Там разбирают интересное исследование, где группе студентов давали задачу и следили за тем как именно они приходят к решению.В большинстве случаев они давали рабочее решение, но студенты разделились на две группы с разным подходом: 1. понял, что нужно сделать - AI предлагает решение - оцениваю - принимаю/отбрасываю 2. не понимаю, что делать - AI предлагает решение - выглядит
    3,160331162Открыть в Telegram
  • этогик // DevOps, Infrastructure, Productivity

    25 июн., 14:41

    В последнее время я не то что бы очень часто делаю что-то прям техническое-девопсерское руками, и когда выпадает возможность что-то потраблшутить, можно сказать даже радуюсь этому. Вот вечером приходит алерт, что на виртуалке с VictoriaMetrics и Loki осталось
  • этогик // DevOps, Infrastructure, Productivity

    11 июн., 09:05

    Уже довольно давно я сталкиваюсь с плавающими проблемами связи между Яндекс Облаком и Hetzner: у рандомного https- соединения скорость может упасть до 100кб/с. Способы стабилизировать это нашлись, а вот полностью решить так и не получилось.Захотелось замониторить эту скорость скачивания, чтобы найти какие-то закономерности (спойлер, на нашел).За несколько гугл-запросов подходящий экспортер не нашелся - в основом все проверяют скорость до speedtest-а, а мне нужны кастомные URL - например свой Nexus.Время сейчас такое, что если чего то нет, или функционал не устраивает, ты просто пишешь своё. Вот и я сделал download speed exporter:👉 https://github.com/etoosamoe/download_speed_exporterСобираем образ контейнера, запускаем, а в Prometheus или vmagent дергаем /probe-ручку с URL-ом целевого файла. В ответ получаем метрики по скорости скачивания. Дашборд есть в комплекте.На самом
    Иллюстрация к посту канала этогик // DevOps, Infrastructure, ProductivityИллюстрация к посту канала этогик // DevOps, Infrastructure, Productivity
    4,35024842Открыть в Telegram
  • этогик // DevOps, Infrastructure, Productivity

    27 мая, 08:10

    Работа в небольшой продуктовой компании часто расширяет границы твоей позиции. Я уже давно не просто “девопс”, который перезагружает серверы и дебажит пайплайны. Вопрос плохо это или хорошо - оставлю каждому на размышление.Например, не так давно занимался сначала объединением двух "сайтов" Jira и Confluence в один. Такую попытку уже делал мой лид за полгода до этого, но всё разбилось об ограничения: проблемы при мерже, скачивание/загрузка бекапа и тд.А спустя время, оказалось, что Atlassian только-только выпустили новый инструмент как раз для переноса данных между “сайтами”. Он отработал просто превосходно, перенес проекты со всеми данными, аттачами и почти ничего не поломал.Затем приступил к миграции из Notion в Confluence. Это получилось более хаотично. Многие страницы в Ноушене были приватными. А к приватным страницам даже у админа нет доступа. Нужно просить сотрудников, у кого
    4,520211284Открыть в Telegram
  • этогик // DevOps, Infrastructure, Productivity

    22 мая, 09:03

    В последние недели погрузился в абсолютно новую для себя штуку - мобильную разработку. Точнее, DevOps-часть для нее.Всё новое, изначально ничего непонятно, даже то, с какой стороны подступаться к этому. Хорошо, что мы живем в 2026 году, где существуют ChatGPT и Claude. Но ответственность не позволяет навайбкодить все конфиги и решения. Вместо этого я сижу и делаю кросс-проверки, разбираюсь что и зачем нужно, какие инструменты есть, и почему именно они.Больше, конечно, ковырялся именно с iOS частью, потому что проверять сборку проще локально - андроид телефона у меня нет. Разобрался в целом с воркфлоу разработки: Xcode, Apple Developer аккаунт, bundle-id, загрузка в App Store Connect, публикация в TestFlight для внутренних тестировщиков.Понял, что если мы хотим тестировать приложение на dev-окружении, то по сути надо делать два приложения dev и prod. Потому что внутрь приложения
    3,960592562Открыть в Telegram
  • этогик // DevOps, Infrastructure, Productivity

    2 апр., 12:06

    Немного бомбления про Docker Swarm.Есть опция max_replicas_per_node - позволяет ограничить количество реплик сервиса на одну ноду.Кейс простой: две ноды, две реплики сервиса → хочу строго 1+1, чтобы не было перекоса по памяти.Ставлю: max_replicas_per_node: 1Логично? Логично.Дальше деплой новой версии с start-first (это как rolling update в кубе, чтобы без даунтайма):- Поднимается новый контейнер - Ждём healthcheck - Гасим старый - ПовторяемНо тут начинается веселье.
    4,460176522Открыть в Telegram
  • этогик // DevOps, Infrastructure, Productivity

    26 февр., 09:03

    Хочу немного рассказать про стек, о котором я раньше никогда не слышал, а четыре года назад пришлось плотненько познакомиться сначала со стороны администрирования, а спустя время - и чуть-чуть потраблшутить часть разработки.Добро пожаловать в мир Hadoop.Всё это поделие максимально плотно связано с Java и Apache. Есть несколько коммерческих дистрибутивов/платформ, но в целом всё это с горем пополам и чертовой матерью поднимается и вручную (хотя может я просто не умею его готовить).Hadoop - это фреймворк распределенной системы обработки данных, который состоит из нескольких продуктов. Ключевая идея - большие данные распределены и обрабатываются на кластере серверов.Расскажу про те, которые используются у нас.HDFS - Hadoop Distributed File System - это буквально сетевая файловая хранилка, с репликацией данных, большой пропускной способностью. Состоит из NameNode (мастер-ноды) со
    5,59026941Открыть в Telegram
  • этогик // DevOps, Infrastructure, Productivity

    20 февр., 14:08

    Redis - это такая key-value база данных, часто используется для кэша, часто - как очередь для Celery, либо для других целей. Ее особенность в том, что все данные она хранит в оперативной памяти, из-за чего очень быстро работает. Если данные нужны, то в случае перезагрузок/перезапусков или просто по времени Redis может сохранять слепок на диск.В одном внутреннем сервисе Redis стал кушать ну слишком много памяти. Даже виртуалку повесил по OOM-у.Полез разбираться. Оказалось, что в одной базе лежит неприлично больше количество ключей - около 2 млн. Посмотрел, что в ней хранится - токены сессий для API. Хм, а у них в коде MAX_AGE стоит 180 дней всего.Спускаюсь ниже по коду, там где для записи указывается TTL: expire=int(datetime.utcnow().timestamp()) + SESSION_MAX_AGEНу вроде хорошо, берем текущий таймштамп и плюсуем 180 дней. Так и записываем.Пошел в документацию библиотечки: expir
    Иллюстрация к посту канала этогик // DevOps, Infrastructure, ProductivityИллюстрация к посту канала этогик // DevOps, Infrastructure, Productivity
    4,58049171021Открыть в Telegram
  • этогик // DevOps, Infrastructure, Productivity

    11 февр., 08:50изменён

    Про миграции в базе данных, блокировки и lock queue.Значит, ситуация: CD-пайплайн запускает миграцию в БД, которая делает совершенно рядовой ALTER TABLE - например добавляет колонку или меняет поле. Миграция должна пройти за считанную секунду, но она зависает, и приходит алерт, что прод перестал отвечать на запросы.Представили? А мне и представлять не нужно. Рассказываю до чего докопался и что узнал.Каждый SELECT запрос в PostgreSQL создает блокировку - AccessShareLock на таблицы, которые он задействует. Это самый нестрогий лок, он не конфликтует с другими запросами и локами. Кроме одного.AccessExclusiveLock - создается при различных изменениях таблиц: DROP, ALTER, TRUNCATE и тд. Этот единственный лок, который блокирует другие SELECT запросы. (подробнее про локи тут).В базу отправляется жирнющий SELECT-запрос, который выполняется, скажем, 60 секунд. Все это время на таблице
    4,090191481Открыть в Telegram
  • этогик // DevOps, Infrastructure, Productivity

    5 февр., 10:22

    Классный пример поддержки от SaaS. Именно такой уровень вовлеченности ожидаешь от поддержки крупного (очень) сервиса.Я сейчас занимаюсь переездами в небезызвестный Confluence (поделие Atlassian) из всяких Notion-ов, из соседних пространств, меняю структуру разделов и т.д. И наткнулся на неочевидную проблему - не видно страниц внутри некоторых разделов. А поиском - видно.Написал тикет, поставил галочку "можно получить доступ в наш инстанс" и стал ждать.Через полчаса увидел в списке пользователей сотрудника Atlassian, а еще через полчаса в почту пришел ответ. В нем самое интересное.Во-первых, текст был не похож на LLM-ответ. Вероятно был отформатирован, но само написание выглядело человеческим. Такое - редкость сейчас.Во-вторых, он содержал несколько скринов, подробное описание того, в чем проблема. А главное, чел написал, что в одном разделе всё пофиксил и записал ВИДЕО
  • этогик // DevOps, Infrastructure, Productivity

    3 февр., 08:22

    В последнее время я не то что бы очень часто делаю что-то прям техническое-девопсерское руками, и когда выпадает возможность что-то потраблшутить, можно сказать даже радуюсь этому.Вот вечером приходит алерт, что на виртуалке с VictoriaMetrics и Loki осталось <5% места. А я последний раз когда смотрел, там 160+ гигов было (из 300). Что-то явно пошло не так. Вряд ли это метрики, я давно не добавлял новые скрейп-таргеты, значит какие-то логи начали лететь.Начинаю смотреть графики виртуалки:- 22 декабря с 7 утра начал активно забиваться дискКак понимаю, что это именно Loki жрет место. Аномально много места занимают два конкретных чанка данных. Смотрим в ncdu или du -sh на директории с данными VM и Loki: --- /var/lib/loki/chunks/fake --- /.. 71.1 GiB [##########] /71a536873561d772 71.0 GiB [######### ] /4ed05483e3664242 9.9 GiB [# ] /47a1d97545945804 4.0 GiB [ ] /ab30104fb5a49027 3.4
    3,55025135Открыть в Telegram
  • этогик // DevOps, Infrastructure, Productivity

    22 янв., 10:49

    Пару постов назад я делился своим .zshrc файликом с алиасами и настройками ZSH. И в чате мне напомнили, что более сложные можно оборачивать в функции и даже скинули пример для git add/commit/push одной командой (спасибо, Саша!).Я его немного допилил: - добавил возможность писать без кавычек несколько слов, чтобы они улетали как commit message - проверку, что ты коммитишь НЕ в master/main веткуПолучилось очень удобно, теперь я просто в терминале пишу gacp Update Nginx configs, вместо череды из git add, git commit -m, git push (хотя эти команды уже где-то в подкорке сидят).Вот код функций, там я утянул еще из oh-my-zsh шаблонов одну: function git_current_branch() { local ref ref=$(git symbolic-ref --quiet HEAD 2> /dev/null) local ret=$? if [[ $ret != 0 ]]; then [[ $ret == 128 ]] && return # no git repo. ref=$(git rev-parse --short HEAD 2> /dev/null) || return fi echo ${ref#refs/heads
    Иллюстрация к посту канала этогик // DevOps, Infrastructure, ProductivityИллюстрация к посту канала этогик // DevOps, Infrastructure, Productivity
    3,85024124Открыть в Telegram
  • этогик // DevOps, Infrastructure, Productivity

    20 янв., 11:39изменён

    Небольшой отчет о том, чем занимался на работе в последнее время.У нас есть довольно большой проект на Python и вот мы решили мигрировать его со стандартного pip для управления зависимостями на современный и популярный uv.Как было раньше: два файла - requirements.txt с основным набором зависимостей и requirements-dev.txt - в нем добавлены некоторые дополнительные зависимости для локальной разработки и в тестах. Чтобы добавить их в pyproject.toml можно использовать uv add -r requirements.txtdev-файлик перезжает в uv в отдельную "группу" зависимостей. Зависимости такой группы можно поставить вместе с основными через флаг --group name.Сам uv генерит uv.lock файл, в котором зафиксирован слепок этих зависимостей, подзависимостей, транзитивных и так далее. Похоже на package-lock.json в Node.Основной воркфлоу теперь немного меняется: - uv sync создает виртуальное окружение (как
    3,89013711Открыть в Telegram
  • этогик // DevOps, Infrastructure, Productivity

    13 янв., 07:47

    Наткнулся на статью в которой автор говорит, что у него Oh My Zsh тормозит запуск терминала: типа 380мс (на голый OMZ) это очень медленно, а у него еще какой-то воркфлоу, который постоянно открывает новые окна терминала.Я полистал, и вспомнил, что у меня-то терминал тоже долго открывается. Оказалось до 1.47 сек. Неприятненько. Решил разобраться что к чему.Для начала небольшая экскурсия в часто-рекомендуемый стек работы с терминалом:- эмулятор терминала: например iTerm2 или ghostty. Отвечает за отрисовку терминала, GUI по сути. - zsh - командный интерпретатор. По дефолту в Макоси стоит именно zsh. Аналоги: bash, fish, sh - oh-my-zsh - фреймворк для zsh для более удобной установки плагинов, тем и т.д. - prompt - тема для строки приглашения, например: powerlevel10k или starshipУ zsh есть свой профайлер, чтобы его включить добавляем в ~/.zshrc: # в начало файла zmodload zsh/zprof ...
    Иллюстрация к посту канала этогик // DevOps, Infrastructure, ProductivityИллюстрация к посту канала этогик // DevOps, Infrastructure, Productivity
    3,94023751Открыть в Telegram
  • этогик // DevOps, Infrastructure, Productivity

    31 дек. 2025 г., 11:03

    👋 Привет всем! Юра на связи.Сегодня 31 декабря, и перед тем как идти резать салатики, я хочу просто поблагодарить вас, за то, что читаете меня, ставите классные реакции, пишете крутейшую обратную связь и делаете чат живым ❤️На следующий год я ставлю в цели возвращение к съемке видео на YouTube. Считайте это коммитом перед вами. Только надо немного пересмотреть формат: хочется делать меньше "обязательного" и больше того, что самому интересно. Энивей, следите за новостями - когда настанет время, я все расскажу.Хочу пожелать вам в следующем году:✨ Максимально отдохнуть в ближайшие дни. Очень сложно разрешить себе ничего не делать, но, кажется, сейчас это один из самых полезных навыков, чтобы не выгорать. У меня в планах собирать Лего, (пере)проходить Ведьмака, съездить в горы погулять. ✨ Успешно найти работу тем, кто ее сейчас ищет или будет
    4,05051201343Открыть в Telegram
  • этогик // DevOps, Infrastructure, Productivity

    11 дек. 2025 г., 18:16

    Половина кандидатского HR-Tech плачет сегодня. Почему? Потому что hh с 15 декабря закрывает кандидатский API.Есть приличное количество сервисов, которые через этот АПИ помогают тебе настраивать “умные” автоотклики. Вот они теперь перестанут работать.Дело в том, что рынок найма сейчас переживает кризис доверия: рекрутеры давно автоматизированно фильтруют отклики, делают авто-рассылки по кандидатам, LLM-интервью, чат-боты вместо живых людей. Кандидаты в ответ накручивают опыт, делают фейковые резюме и настраивают автоотклики. Все идет по кругу, как итог - низкоэффективный процесс найма с обоих сторон.HH отключением API пытается защитить своих клиентов-рекрутеров от потока спама и нерелевантных кандидатов.Кажется, что в будущем рынок ждет процесс повышения доверия, вероятно не очень приятными для кандидатов способами. Какой-нибудь глобальный “черный список” нет-нет да и появится.
    4,980154111Открыть в Telegram