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

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

رفتن به کانال در Telegram

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

نمایش بیشتر
4 339
مشترکین
-224 ساعت
+97 روز
+2130 روز

در حال بارگیری داده...

جذب مشترکین
ژوئن '26
ژوئن '26
+45
در 0 کانال‌ها
مه '26
+79
در 0 کانال‌ها
Get PRO
آوریل '26
+119
در 0 کانال‌ها
Get PRO
مارس '26
+161
در 2 کانال‌ها
Get PRO
فوریه '26
+124
در 0 کانال‌ها
Get PRO
ژانویه '26
+130
در 0 کانال‌ها
Get PRO
دسامبر '25
+121
در 0 کانال‌ها
Get PRO
نوامبر '25
+143
در 0 کانال‌ها
Get PRO
اکتبر '25
+154
در 0 کانال‌ها
Get PRO
سپتامبر '25
+143
در 0 کانال‌ها
Get PRO
اوت '25
+132
در 0 کانال‌ها
Get PRO
ژوئیه '25
+142
در 0 کانال‌ها
Get PRO
ژوئن '25
+124
در 0 کانال‌ها
Get PRO
مه '25
+171
در 0 کانال‌ها
Get PRO
آوریل '25
+138
در 0 کانال‌ها
Get PRO
مارس '25
+156
در 0 کانال‌ها
Get PRO
فوریه '25
+168
در 0 کانال‌ها
Get PRO
ژانویه '25
+168
در 0 کانال‌ها
Get PRO
دسامبر '24
+125
در 0 کانال‌ها
Get PRO
نوامبر '24
+132
در 0 کانال‌ها
Get PRO
اکتبر '24
+232
در 0 کانال‌ها
Get PRO
سپتامبر '24
+271
در 0 کانال‌ها
Get PRO
اوت '24
+163
در 0 کانال‌ها
Get PRO
ژوئیه '24
+159
در 0 کانال‌ها
Get PRO
ژوئن '24
+143
در 0 کانال‌ها
Get PRO
مه '24
+239
در 0 کانال‌ها
Get PRO
آوریل '24
+190
در 0 کانال‌ها
Get PRO
مارس '24
+282
در 0 کانال‌ها
Get PRO
فوریه '24
+766
در 1 کانال‌ها
Get PRO
ژانویه '24
+30
در 1 کانال‌ها
Get PRO
دسامبر '23
+223
در 0 کانال‌ها
تاریخ
رشد مشترکین
اشارات
کانال‌ها
14 ژوئن+1
13 ژوئن+1
12 ژوئن+4
11 ژوئن+2
10 ژوئن+6
09 ژوئن+4
08 ژوئن0
07 ژوئن+1
06 ژوئن+3
05 ژوئن+2
04 ژوئن+4
03 ژوئن+4
02 ژوئن+7
01 ژوئن+6
پست‌های کانال
Уже довольно давно я сталкиваюсь с плавающими проблемами связи между Яндекс Облаком и Hetzner: у рандомного https- соединения
Уже довольно давно я сталкиваюсь с плавающими проблемами связи между Яндекс Облаком и Hetzner: у рандомного https- соединения скорость может упасть до 100кб/с. Способы стабилизировать это нашлись, а вот полностью решить так и не получилось. Захотелось замониторить эту скорость скачивания, чтобы найти какие-то закономерности (спойлер, на нашел). За несколько гугл-запросов подходящий экспортер не нашелся - в основом все проверяют скорость до speedtest-а, а мне нужны кастомные URL - например свой Nexus. Время сейчас такое, что если чего то нет, или функционал не устраивает, ты просто пишешь своё. Вот и я сделал download speed exporter: 👉 https://github.com/etoosamoe/download_speed_exporter Собираем образ контейнера, запускаем, а в Prometheus или vmagent дергаем /probe-ручку с URL-ом целевого файла. В ответ получаем метрики по скорости скачивания. Дашборд есть в комплекте. На самом деле я сделал его уже давно, просто почему-то не рассказывал тут. На скриншоте пример того, как скорость скачивания вообще упала до минимума на пол дня.

2
Работа в небольшой продуктовой компании часто расширяет границы твоей позиции. Я уже давно не просто “девопс”, который перезагружает серверы и дебажит пайплайны. Вопрос плохо это или хорошо - оставлю каждому на размышление. Например, не так давно занимался сначала объединением двух "сайтов" Jira и Confluence в один. Такую попытку уже делал мой лид за полгода до этого, но всё разбилось об ограничения: проблемы при мерже, скачивание/загрузка бекапа и тд. А спустя время, оказалось, что Atlassian только-только выпустили новый инструмент как раз для переноса данных между “сайтами”. Он отработал просто превосходно, перенес проекты со всеми данными, аттачами и почти ничего не поломал. Затем приступил к миграции из Notion в Confluence. Это получилось более хаотично. Многие страницы в Ноушене были приватными. А к приватным страницам даже у админа нет доступа. Нужно просить сотрудников, у кого есть доступ, экспортировать архив, скидывать его мне, а я уже импортирую его в Confluence. Одновременно с этим руководство захотелось разделить все статьи по пространствам - например Sales, Finance, Product и так далее. Минус Confluence по сравнению с Notion или Google Docs в том, что ты не можешь дать доступ одному человеку к одному документу. Нужно добавить человека в раздел (Space), и тогда он получит доступ ко всем открытым статьям. Несмотря на то, что Confluence - хороший инструмент, переезд из Notion был воспринят коллегами не очень мягко. Было много непоняток с доступами, проблем с поисками “потерянных” статей, исправлений ссылок в легаси-местах, проблем с форматированием. Суммарно наэкономили около $24к в год. Жаль не в свой карман, конечно.
2 239
3
В последние недели погрузился в абсолютно новую для себя штуку - мобильную разработку. Точнее, DevOps-часть для нее. Всё новое, изначально ничего непонятно, даже то, с какой стороны подступаться к этому. Хорошо, что мы живем в 2026 году, где существуют ChatGPT и Claude. Но ответственность не позволяет навайбкодить все конфиги и решения. Вместо этого я сижу и делаю кросс-проверки, разбираюсь что и зачем нужно, какие инструменты есть, и почему именно они. Больше, конечно, ковырялся именно с iOS частью, потому что проверять сборку проще локально - андроид телефона у меня нет. Разобрался в целом с воркфлоу разработки: Xcode, Apple Developer аккаунт, bundle-id, загрузка в App Store Connect, публикация в TestFlight для внутренних тестировщиков. Понял, что если мы хотим тестировать приложение на dev-окружении, то по сути надо делать два приложения dev и prod. Потому что внутрь приложения зашивается конфигурация, в которой API-эндпоинты указаны. Получается, что можно собрать dev-приложение, загрузить его в App Store Connect и отправить в TestFlight для проверок. В ревью оно никогда не пойдет. А вот prod-приложение уже пойдет по пути TestFlight → Review → Store. Отсюда вытекает то, что нужно иметь схемы и конфигурации для сборки двух приложений в одном репозитории. И Firebase конфигурации тоже - этим прямо сейчас занимаюсь. Firebase - это платформа от гугла с кучей вспомогательных сервисов для мобилок, например: аналитика и push-уведомления. Ага, не забыть еще скриптик для инкремента версий приложений - сторы требуют обновления версии при каждой новой загрузке приложений. А еще требуют иконку для приложения. Чтобы на iOS картинку не зашакалило (частично из-за Liquid Glass), её надо сделать в Icon Composer-е с помощью SVG-элементов. Разобрался как работают OTA-апдейты (over the air). Это когда можешь пересобрать только внутреннюю часть, запаковать ее в js-бандл и залить в s3. Приложение при запуске проверит наличие апдейта, скачает и предложит перезапуститься. Самая большая выгода - для мелких багфиксов тебе не нужно публиковать новую версию в сторы и ждать ревью. Тут надо быть осторожным, потому что добавлять функционал через OTA-апдейты без ревью запрещается правилами сторов. Описал для разработчиков релизный процесс - как будем работать с фича-ветками, релизными ветками, версиями. Постарался сделать так, чтобы это минимально отличалось от уже привычного всем в команде процесса. В общем, погружение в новую область это всегда так - сначала чувствуешь себя идиотом, не знаешь основных терминов. Мозг к вечеру выжат настолько, что хочется просто сесть на диван и смотреть в стену. Главное помнить - глаза боятся, а руки делают. Потихоньку, мелкими итерациями, но в итоге картина становится яснее, начинаешь лучше во всем ориентироваться.
2 724
4
Немного бомбления про Docker Swarm. Есть опция max_replicas_per_node - позволяет ограничить количество реплик сервиса на одну ноду. Кейс простой: две ноды, две реплики сервиса → хочу строго 1+1, чтобы не было перекоса по памяти. Ставлю: max_replicas_per_node: 1 Логично? Логично. Дальше деплой новой версии с start-first (это как rolling update в кубе, чтобы без даунтайма): - Поднимается новый контейнер - Ждём healthcheck - Гасим старый - Повторяем Но тут начинается веселье. У нас уже есть по одной реплике на каждой ноде. Swarm пытается поднять новую реплику → и не может: - на node1 уже 1 → нельзя - на node2 уже 1 → нельзя - других нод нет И всё. Деплой просто блокируется с no suitable node. Почему? Потому что в Swarm это правило жёсткое. Он не умеет временно нарушать placement constraints, даже ради rolling update. Что с этим делать? Да фиг его знает ¯\_(ツ)_/¯
0