Разбор изменений скриптов и быстрая интеграция pull request-ов — часть ежедневной рутины. Классические diff-утилиты путаются в кавычках, списках и многострочных изменениях, а ручное разрешение конфликтов чаще раздражает, чем помогает.
Difftastic — это инструмент для сравнения файлов, созданный специально для разработчиков, которым важны не просто различия на уровне строк, а осмысленные изменения в коде.
Он построен на базе tree-sitter — парсера, поддерживающего десятки языков программирования, и анализирует файлы на уровне синтаксиса.
Пример использования:
difft simple_1.js simple_2.js
или для git:
difft git main feature-branch
#root@prompt
Please open Telegram to view this post
VIEW IN TELEGRAM
❤1
This media is not supported in your browser
VIEW IN TELEGRAM
В proglib.academy — Глобальная распродажа знаний ‼️
💥 Весь октябрь –40% на те курсы, которые выбирают чаще всего.
👉 Успей забрать свой курс на proglib.academy
💥 Весь октябрь –40% на те курсы, которые выбирают чаще всего.
Курсы с практикой, без воды и пафоса.
Просто берёшь и делаешь апгрейд.
👉 Успей забрать свой курс на proglib.academy
😁1
🛠 Bun 1.3 упрощает деплой JS-приложений
Bun 1.3 решает несколько проблем, с которыми DevOps сталкивается при работе с Node.js-приложениями. Разберём, какие фичи добавили.
Главная фича для деплоя — компиляция в standalone executable. Вместо образа с Node.js, npm install и гигабайтом зависимостей получаете один бинарник:
Также кросс-компиляция из коробки, собираете на CI под все платформы:
Не нужно тащить драйверы для PostgreSQL, MySQL, SQLite и Redis. Всё встроено, zero dependencies:
В версии 1.3 снизили потребление памяти на 10-30% для популярных фреймворков (Next.js -28%, Elysia -11%). Idle CPU тоже оптимизировали — приложение не жрёт процессор в режиме ожидания.
➡️ Подробнее про обновление
🐸 Библиотека devops'a
#пульс_индустрии
Bun 1.3 решает несколько проблем, с которыми DevOps сталкивается при работе с Node.js-приложениями. Разберём, какие фичи добавили.
Главная фича для деплоя — компиляция в standalone executable. Вместо образа с Node.js, npm install и гигабайтом зависимостей получаете один бинарник:
bun build --compile ./app.ts --outfile myapp
Также кросс-компиляция из коробки, собираете на CI под все платформы:
bun build --compile --target=linux-x64 ./app.ts --outfile app-linux
bun build --compile --target=darwin-arm64 ./app.ts --outfile app-macos
bun build --compile --target=windows-x64 ./app.ts --outfile app.exe
Не нужно тащить драйверы для PostgreSQL, MySQL, SQLite и Redis. Всё встроено, zero dependencies:
import { sql, redis } from "bun";
await redis.set("cache_key", data);
const users = await sql`SELECT * FROM users`;В версии 1.3 снизили потребление памяти на 10-30% для популярных фреймворков (Next.js -28%, Elysia -11%). Idle CPU тоже оптимизировали — приложение не жрёт процессор в режиме ожидания.
#пульс_индустрии
Please open Telegram to view this post
VIEW IN TELEGRAM
👍1
У библиотеки программиста тоже есть свой Х.
Настоятельно рекомендуем залогиниться прежде чем заходить в наш канал, ведь Х скрывает посты от случайных пользователей
🐸 Библиотека devops'a
#пятничный_деплой
#пятничный_деплой
Please open Telegram to view this post
VIEW IN TELEGRAM
😁1
Холодный старт — это когда платформа создаёт новый контейнер для вашей функции с нуля. Надо загрузить код, поднять рантайм, инициализировать библиотеки, открыть соединения. Всё это может занять от 500 мс до нескольких секунд.
Проблема не в том, что это происходит — это нормально. Проблема когда это происходит прямо во время запроса пользователя.
Тёплый пул держит нужное количество инстансов постоянно прогретыми. Платформа их уже запустила, код загружен, зависимости инициализированы. Запрос попадает в уже работающий контекст.
Настройка в Kubernetes
Базовый Deployment с фиксированным числом реплик:
apiVersion: apps/v1
kind: Deployment
metadata:
name: api-service
spec:
replicas: 3 # всегда 3 пода
selector:
matchLabels:
app: api
template:
metadata:
labels:
app: api
spec:
containers:
- name: api
image: registry.example.com/api:latest
С автомасштабированием, но с минимумом подов:
apiVersion: autoscaling/v2
kind: HorizontalPodAutoscaler
metadata:
name: api-hpa
spec:
scaleTargetRef:
apiVersion: apps/v1
kind: Deployment
name: api-service
minReplicas: 3 # минимум всегда тёплых
maxReplicas: 20 # максимум при нагрузке
K8s держит указанное количество подов всегда запущенными. Если приходит больше запросов — HPA создаёт дополнительные поды. Но первые запросы всегда попадут в прогретые.
Сколько реплик держать
• 2-3 реплики — если у вас стабильный трафик
• 5-10 реплик — для критичных API с непредсказуемыми всплесками
• По реплике на availability zone — если распределяете нагрузку по зонам
Не держите 50 реплик на всякий случай. Смотрите в метрики:
kubectl top pods -l app=api
Тёплый пул — это способ сделать так, чтобы пользователи не замечали холодные старты.
#арсенал_инженера
Please open Telegram to view this post
VIEW IN TELEGRAM
👍3🥱1
🤓 Пока Python стал π-thon, ты можешь стать Data Scientist'ом
В Proglib.academy стартует экспресс-курс «Математика для Data Science»: 10 живых вебинаров, практика на Python и спикеры из ВШЭ, Яндекс Практикума и Wildberries, которые всё разложат по полочкам.
В программе:
🔹 матан, линал, теория вероятностей;
🔹 3 практических проекта + викторина с розыгрышем TG Premium;
🔹 поддержка преподавателей и чат с единомышленниками;
🎁 Оплати курс до 19 октября — получи курс по базовой математике в подарок.
🗓️ Старт — 6 ноября
👉 Записаться на курс
В Proglib.academy стартует экспресс-курс «Математика для Data Science»: 10 живых вебинаров, практика на Python и спикеры из ВШЭ, Яндекс Практикума и Wildberries, которые всё разложат по полочкам.
В программе:
🔹 матан, линал, теория вероятностей;
🔹 3 практических проекта + викторина с розыгрышем TG Premium;
🔹 поддержка преподавателей и чат с единомышленниками;
🎁 Оплати курс до 19 октября — получи курс по базовой математике в подарок.
🗓️ Старт — 6 ноября
👉 Записаться на курс
Tino — простая CLI-тулза, которая показывает весь текстовый файл целиком в одном окне терминала, разбивая его на колонки.
Чтобы её использовать нужно лишь написать в терминале:
tino имя_вашего_файла
Проект был написан на чистом Си и не зависит ни от каких библиотек. Для такого уровня нужны фундаментальные знания, которые есть на нашем интенсиве по архитектуре.
#арсенал_инженера
Please open Telegram to view this post
VIEW IN TELEGRAM
👍3
Kubernetes делает обновления приложений безопасными благодаря механизму непрерывных обновлений (rolling updates). Это значит, что ваш сервис продолжает работать во время обновления — новые версии запускаются постепенно, а старые останавливаются только после успешного запуска новых.
Как обновить приложение
Обновите образ контейнера командой:
kubectl set image deployment/my-deployment nginx=nginx:1.21
Проверьте, как идёт обновление:
kubectl rollout status deployment my-deployment
Kubernetes хранит историю развёртываний. Откатиться к предыдущей версии очень просто:
kubectl rollout undo deployment my-deployment
#root@prompt
Please open Telegram to view this post
VIEW IN TELEGRAM
👍3
Вышла новая версия Tails 7.1 — дистрибутива Linux, созданного для максимальной приватности и анонимности в сети.
Tails (The Amnesic Incognito Live System) — это live-система, которая загружается с USB-флешки и не оставляет следов на компьютере. Весь трафик автоматически идёт через сеть Tor, а после завершения работы все данные стираются. Это как работать в режиме инкогнито, только на уровне всей операционной системы.
Что нового в версии 7.1
• Обновлён Tor Browser до последней версии
• Исправлены критические уязвимости в ядре Linux и системных компонентах
• Улучшена совместимость с современным железом, особенно с Wi-Fi адаптерами
Чтобы быть гуру анонимности стоит нужно знать как работает система. Наш интенсив по архитектуре прокачивает эти знания со скидкой.
#пульс_индустрии
Please open Telegram to view this post
VIEW IN TELEGRAM
🧐 Хочешь в Data Science, но не знаешь, с чего начать?
Пройди короткий тест по математике — бот покажет, насколько ты готов к переходу и что стоит подтянуть.
👉 Пройти тест
Пройди короткий тест по математике — бот покажет, насколько ты готов к переходу и что стоит подтянуть.
Всего пару минут — и ты поймёшь, куда двигаться дальше.
👉 Пройти тест
Forwarded from Библиотека собеса по DevOps | вопросы с собеседований
Зачем сначала делать COPY package*.json ./ и только потом RUN npm ci, а уже затем COPY . .?
Так кэшируется слой с зависимостями: пока манифесты не меняются, npm ci берётся из кеша, а изменения в исходниках не инвалидируют установку пакетов. Итог — быстрые пересборки и предсказуемость.
Библиотека собеса по DevOps
Библиотека собеса по DevOps
👍2🤩1
Elasticsearch — движок для поиска и аналитики в реальном времени. Разбираемся, как быстро развернуть его для логов, метрик и мониторинга.
Быстрый старт с Docker Compose
Самый простой способ поднять Elasticsearch локально или в dev-окружении — Docker Compose:
version: '3.8'
services:
elasticsearch:
image: docker.elastic.co/elasticsearch/elasticsearch:8.11.0
container_name: elasticsearch
environment:
- discovery.type=single-node
- xpack.security.enabled=false
- "ES_JAVA_OPTS=-Xms2g -Xmx2g"
ports:
- "9200:9200"
- "9300:9300"
volumes:
- esdata:/usr/share/elasticsearch/data
ulimits:
memlock:
soft: -1
hard: -1
kibana:
image: docker.elastic.co/kibana/kibana:8.11.0
container_name: kibana
environment:
- ELASTICSEARCH_HOSTS=http://elasticsearch:9200
ports:
- "5601:5601"
depends_on:
- elasticsearch
volumes:
esdata:
driver: local
Production-ready deployment
Для прода нужны дополнительные настройки, как минимум мультинодовый кластер:
services:
es01:
image: docker.elastic.co/elasticsearch/elasticsearch:8.11.0
environment:
- node.name=es01
- cluster.name=prod-cluster
- discovery.seed_hosts=es02,es03
- cluster.initial_master_nodes=es01,es02,es03
- xpack.security.enabled=true
- "ES_JAVA_OPTS=-Xms4g -Xmx4g"
volumes:
- esdata01:/usr/share/elasticsearch/data
es02:
image: docker.elastic.co/elasticsearch/elasticsearch:8.11.0
environment:
- node.name=es02
- cluster.name=prod-cluster
- discovery.seed_hosts=es01,es03
- cluster.initial_master_nodes=es01,es02,es03
- xpack.security.enabled=true
volumes:
- esdata02:/usr/share/elasticsearch/data
es03:
image: docker.elastic.co/elasticsearch/elasticsearch:8.11.0
environment:
- node.name=es03
- cluster.name=prod-cluster
- discovery.seed_hosts=es01,es02
- cluster.initial_master_nodes=es01,es02,es03
- xpack.security.enabled=true
volumes:
- esdata03:/usr/share/elasticsearch/data
Частые проблемы и решения
Out of memory:
• Проверьте настройки heap: не более 50% RAM
• Используйте
ulimit -l unlimited для memlockМедленные запросы:
• Оптимизируйте маппинги индексов
• Используйте index lifecycle management
• Настройте правильное количество шардов
Проблемы с дисковым пространством:
• Включите ILM для автоматической ротации индексов
• Настройте retention policy для старых данных
• Используйте
_forcemerge для оптимизации#арсенал_инженера
Please open Telegram to view this post
VIEW IN TELEGRAM
👍1
🎲 Мы не только учим, но и играем!
На экспресс-курсе «Математика для Data Science» — викторина с призом TG-Premium 🎁
Проверь знания, прокачай математику и забери приз.
‼️ Оплатишь до 19 октября — получишь базовый курс в подарок.
👉 Записаться на курс
На экспресс-курсе «Математика для Data Science» — викторина с призом TG-Premium 🎁
Проверь знания, прокачай математику и забери приз.
‼️ Оплатишь до 19 октября — получишь базовый курс в подарок.
👉 Записаться на курс
📰 Релиз Linux Mint Debian Edition 7
Команда Linux Mint выпустила LMDE 7 с кодовым именем «Gigi». Linux Mint Debian Edition — это дистрибутив, который работает напрямую на базе Debian вместо Ubuntu.
LMDE создавался как страховка на случай, если с Ubuntu что-то случится. Это альтернативная ветка развития, которая показывает, что Linux Mint может существовать независимо от Ubuntu и сохранить привычный пользовательский опыт.
➡️ Попробовать дистрибутив
🐸 Библиотека devops'a
#пульс_индустрии
Команда Linux Mint выпустила LMDE 7 с кодовым именем «Gigi». Linux Mint Debian Edition — это дистрибутив, который работает напрямую на базе Debian вместо Ubuntu.
LMDE создавался как страховка на случай, если с Ubuntu что-то случится. Это альтернативная ветка развития, которая показывает, что Linux Mint может существовать независимо от Ubuntu и сохранить привычный пользовательский опыт.
#пульс_индустрии
Please open Telegram to view this post
VIEW IN TELEGRAM
👍1
Please open Telegram to view this post
VIEW IN TELEGRAM
😁2
Парт-тайм девопс на удалёнке
DevOps-инженер от 250 000 ₽
Middle / Senior Devops на Linux до 400 000 ₽
Бустер — Офис у вас дома.
Please open Telegram to view this post
VIEW IN TELEGRAM
Недавно мы анонсировали старт нового курса «Математика для Data Science».
В ближайшие дни выйдет серия постов о том, что ждёт вас на курсе, а пока познакомим вас с его экспертами.
Спикеры курса:
👤 Ксения Кондаурова
Преподаватель и автор курсов для бакалавриата Центрального Университета (Т-Банк), спикер и методист для Edutoria (Сбербанк). Ксения расскажет, как линейная алгебра применяется для построения предсказательных моделей, и научит проверять гипотезы для бизнеса с помощью статистики.
👤 Диана Миронидис
Преподаватель НИУ ВШЭ, автор и методист Яндекс Практикума. Самый экстравагантный преподаватель из всех, с кем вы учились, — убедитесь, что математика может быть нескучной. Диана погрузит в математический анализ, научит исследовать функции и находить параметры, при которых ошибка модели минимальна.
👤 Маргарита Бурова
Академический руководитель образовательных программ по аналитике и анализу данных, Wildberries & Russ. Проведёт квиз с розыгрышем годовой подписки TG Premium. Маргарита — эксперт в дата-сайенс, ИИ и математических методах анализа данных, фанат развития ИТ-образования.
Вместе с экспертами за 8 недель вы не просто получите знания, а познакомитесь с математикой заново.
🎁 Только при оплате до 19 октября курс «Базовая математика» в подарок!
👉 Записаться на курс
В ближайшие дни выйдет серия постов о том, что ждёт вас на курсе, а пока познакомим вас с его экспертами.
Спикеры курса:
👤 Ксения Кондаурова
Преподаватель и автор курсов для бакалавриата Центрального Университета (Т-Банк), спикер и методист для Edutoria (Сбербанк). Ксения расскажет, как линейная алгебра применяется для построения предсказательных моделей, и научит проверять гипотезы для бизнеса с помощью статистики.
👤 Диана Миронидис
Преподаватель НИУ ВШЭ, автор и методист Яндекс Практикума. Самый экстравагантный преподаватель из всех, с кем вы учились, — убедитесь, что математика может быть нескучной. Диана погрузит в математический анализ, научит исследовать функции и находить параметры, при которых ошибка модели минимальна.
👤 Маргарита Бурова
Академический руководитель образовательных программ по аналитике и анализу данных, Wildberries & Russ. Проведёт квиз с розыгрышем годовой подписки TG Premium. Маргарита — эксперт в дата-сайенс, ИИ и математических методах анализа данных, фанат развития ИТ-образования.
Вместе с экспертами за 8 недель вы не просто получите знания, а познакомитесь с математикой заново.
🎁 Только при оплате до 19 октября курс «Базовая математика» в подарок!
👉 Записаться на курс
Приложение упало в продакшене. Вы открываете Kibana, ищете ошибки вручную, переключаетесь между сервисами. Уходит 30-40 минут, иногда больше.
Скрипты находят только то, что вы в них прописали. Elasticsearch и Splunk не умеют автоматически связывать события из разных сервисов. AI-агент анализирует логи сам, находит корреляции и объясняет: «Утечка памяти в payment-сервисе привела к каскадным падениям. Такое уже было 15 сентября».
Внутри — разбор шести компонентов AI-агента: роль, задачи, инструменты для запросов, память для паттернов, ограничители безопасности. Плюс пример, как агент находит проблему с индексом в базе за несколько минут вместо получаса.
#арсенал_инженера
Please open Telegram to view this post
VIEW IN TELEGRAM
KubeGUI получил обновления 1.8.0 и 1.8.1. Главная фишка — встроенная AI-интеграция, которая анализирует ошибки и предлагает решения прямо в приложении.
Когда pod падает или deployment не запускается, вы открываете логи, копируете ошибку, идёте в ChatGPT или документацию, пытаетесь понять что не так. KubeGUI теперь делает это за вас — увидел ошибку, нажал кнопку, получил рекомендацию по исправлению.
Остальные улучшения: встроенный YAML-редактор с подсветкой и валидацией, прямой доступ к shell в pod, просмотр логов из нескольких контейнеров одновременно, генератор примеров для Custom Resources на основе CRD.
#пульс_индустрии
Please open Telegram to view this post
VIEW IN TELEGRAM
👍3
🚨 Взлом SMS-агрегаторов: почему CI/CD под угрозой
В даркнете продают 3 ТБ данных якобы от двух крупных российских SMS-агрегаторов. Пока официально не подтверждено, но сам факт напоминает о критической точке отказа в архитектуре большинства продуктов.
Почему это должно волновать DevOps
• Supply Chain Attack в чистом виде
SMS-агрегаторы — это классический пример supply chain риска. Через них проходят одноразовые коды, PIN-коды и ссылки восстановления паролей для тысяч сервисов. Одна скомпрометированная точка — и валится безопасность всей цепочки.
• Ваши 2FA коды больше не ваши
Перехват 2FA-кодов и ссылок восстановления открывает путь к массовым захватам аккаунтов — от банков до корпоративных систем.
Что с этим делать
• Аудит зависимостей: составьте список всех внешних сервисов, через которые идёт критичная коммуникация.
• Мониторинг аномалий: настройте алерты на необычную активность в SMS/email каналах.
• Проверка API-ключей: убедитесь, что ключи доступа к агрегаторам не светятся в логах, Slack или документации.
• Многофакторность: используйте несколько каналов для критичных операций, напримеp, SMS + authenticator app + hardware token.
• Rate limiting: ограничьте количество запросов к SMS API и OTP-генерации.
• Zero Trust для внутряков: даже если сотрудник прошёл SMS-2FA, требуйте дополнительное подтверждение для критичных действий.
Главный урок: в supply chain нет мелочей. Каждая зависимость — потенциальный вектор атаки.
А можно просто пойти в Data Science и тогда защищать будете не вы, а вас. С нашим курсом математики для Data Science переход будет проще простого, ещё и со скидкой!
🐸 Библиотека devops'a
#разбор_полётов
В даркнете продают 3 ТБ данных якобы от двух крупных российских SMS-агрегаторов. Пока официально не подтверждено, но сам факт напоминает о критической точке отказа в архитектуре большинства продуктов.
Почему это должно волновать DevOps
• Supply Chain Attack в чистом виде
SMS-агрегаторы — это классический пример supply chain риска. Через них проходят одноразовые коды, PIN-коды и ссылки восстановления паролей для тысяч сервисов. Одна скомпрометированная точка — и валится безопасность всей цепочки.
• Ваши 2FA коды больше не ваши
Перехват 2FA-кодов и ссылок восстановления открывает путь к массовым захватам аккаунтов — от банков до корпоративных систем.
Что с этим делать
• Аудит зависимостей: составьте список всех внешних сервисов, через которые идёт критичная коммуникация.
• Мониторинг аномалий: настройте алерты на необычную активность в SMS/email каналах.
• Проверка API-ключей: убедитесь, что ключи доступа к агрегаторам не светятся в логах, Slack или документации.
• Многофакторность: используйте несколько каналов для критичных операций, напримеp, SMS + authenticator app + hardware token.
• Rate limiting: ограничьте количество запросов к SMS API и OTP-генерации.
• Zero Trust для внутряков: даже если сотрудник прошёл SMS-2FA, требуйте дополнительное подтверждение для критичных действий.
Главный урок: в supply chain нет мелочей. Каждая зависимость — потенциальный вектор атаки.
А можно просто пойти в Data Science и тогда защищать будете не вы, а вас. С нашим курсом математики для Data Science переход будет проще простого, ещё и со скидкой!
#разбор_полётов
Please open Telegram to view this post
VIEW IN TELEGRAM
