JuniorDevOps Engineer > Контейнеры и доставка > Kubernetes и оркестрация
Короткий ответ Job запускает Pod для выполнения разовой задачи до её успешного завершения (а не бесконечно, как Deployment), а CronJob создаёт Job по расписанию в формате cron, то есть это механизм повторяющихся по времени задач. Как это работает подробнее Job следит за тем, чтобы заданное число Pod успешно завершилось (completions), и при сбое может пересоздать Pod согласно backoffLimit; после успешного завершения Pod не перезапускается. CronJob на основе расписания создаёт новый объект Job в нужный момент времени, делегируя ему фактическое выполнение. Пример кода Что использовать на практике Практика. Job используют для разовых задач — миграции базы данных, пакетная обработка данных, обучение модели; CronJob — для регулярных задач, например ночного бэкапа или ротации отчётов. Важно учитывать политику concurrencyPolicy (Allow/Forbid/Replace) на случай, если предыдущий запуск ещё не завершился к моменту следующего. Подводные камни Риски. использовать Deployment для разовой задачи вместо Job — Deployment будет
batch-workloadscronjob
MiddlePython Developer > Основы Python > Зависимости Python
Короткий ответ pyproject.toml описывает желаемые, часто диапазонные версии прямых зависимостей, а lock-файл фиксирует точный, полностью разрешённый набор версий всех зависимостей, включая транзитивные, вместе с хешами — это гарантирует, что установка на любой машине даёт одинаковое окружение. Как это работает подробнее при добавлении зависимости resolver решает задачу совместимости версий по всему дереву и записывает результат в lock-файл; при установке по lock-файлу resolver уже не нужен — пакеты ставятся по зафиксированным версиям и хешам. Пример кода Что использовать на практике Рекомендация. в репозиторий коммитят оба файла: pyproject.toml читают люди, lock-файл перегенерируют командой и тоже коммитят, чтобы CI и прод использовали именно его. Конфликт версий resolver обнаруживает на этапе lock. Подводные камни Риск. редактировать lock-файл руками — при следующей регенерации изменения потеряются; не коммитить lock-файл, полагаясь на диапазоны в pyproject.toml — разные установки могут получить разные версии
dependencieslockfile
JuniorDevOps Engineer > Контейнеры и доставка > Мониторинг, логирование и observability
Короткий ответ В pull-модели сервер мониторинга сам периодически опрашивает (scrape) эндпоинт /metrics у приложений; в push-модели приложение само отправляет метрики на сервер или в промежуточный агрегатор. Prometheus по умолчанию использует pull, что проще для контроля нагрузки и обнаружения "упавших" целей. Как это работает подробнее при pull Prometheus по конфигурации scrape_configs сам ходит по списку целей (статическому или через service discovery) и забирает текущие значения метрик раз в заданный интервал. При push клиент (приложение или StatsD-агент) сам инициирует отправку данных по сети на коллектор, который может их буферизовать и агрегировать. Пример кода Что использовать на практике Практика. pull-модель удобна, когда сервер мониторинга может достать до всех целей по сети (типично внутри одного кластера/VPC), и позволяет легко увидеть, что цель недоступна (метрика up == 0). Push-модель нужна для короткоживущих задач (batch job, serverless-функция), которые завершаются быстрее scrape-интервала — дл
metricsmetrics-collection
JuniorPerformance Marketer > Google Ads > Специфика рекламных площадок и каналов
Короткий ответ Push-уведомления показываются напрямую на устройстве через операционную систему или браузер при наличии согласия пользователя, требуют короткого мгновенного сообщения и зависят от разрешений на уведомления, в отличие от email, который хранится в почтовом ящике и может быть прочитан позже. Как это работает подробнее мобильные push идут через push-сервисы ОС (APNs для iOS, FCM для Android), веб-push — через браузер при явном согласии пользователя; метрики delivery rate, open rate и conversion считаются похоже на email, но дополнительно важна доля пользователей с включёнными разрешениями на уведомления (opt-in rate), так как без этого канал недоступен вовсе. Что использовать на практике На практике. push эффективен для срочных сообщений (напоминание о брошенной корзине, флеш-акция), но подписчики со временем отключают разрешения или удаляют приложение, поэтому база «живых» получателей сокращается быстрее, чем email-база; частота отправки сильно влияет на отписки/отключение разрешений — выше, чем в
attributiondelivery-rate
JuniorPerformance Marketer > Google Ads > Рекламные платформы и форматы
Короткий ответ Meta показывает три относительных рейтинга объявления: качества, вовлечённости и конверсии; Google отображает Quality Score по ключевому слову из ожидаемого CTR, релевантности и качества страницы. Это разные диагностические системы и не взаимозаменяемые оценки. Как это работает подробнее Рейтинги Meta сравнивают объявление с конкурирующими за похожую аудиторию при достаточном количестве показов. В Google оценка привязана к ключевому слову и помогает диагностировать связку объявления и посадочной страницы. Meta. Анализируй отдельно качество, вовлечённость и ожидаемую конверсию. Google. Проверяй ожидаемый CTR, релевантность и качество целевой страницы. Сравнение Meta Ads — для диагностики объявления в аукционе аудитории — показывает несколько относительных рейтингов. Google Ads — для диагностики ключевого слова — использует Quality Score и три компонента качества. Что использовать на практике При слабых рейтингах Meta тестируй креатив и оффер, а при низком компоненте Google исправляй соответствую
ad-relevanceauction-ranking
JuniorData Analyst > SQL и данные > SQL
Короткий ответ RIGHT JOIN сохраняет все строки правой таблицы (а не левой, как при LEFT JOIN), заполняя NULL для несовпавших строк левой таблицы; на практике его используют реже, потому что тот же результат проще получить, переставив таблицы местами и используя привычный LEFT JOIN. Как это работает подробнее A RIGHT JOIN B ON ... логически эквивалентен B LEFT JOIN A ON ... с тем же условием — просто меняются «главная» и «подчинённая» таблицы в соединении. Пример кода Что использовать на практике На практике: большинство аналитиков договариваются о стиле, где «главная» таблица (та, чьи строки точно нужно сохранить) всегда пишется первой с LEFT JOIN — это облегчает чтение сложных запросов с несколькими соединениями, потому что не нужно удерживать в голове направление RIGHT JOIN. Результат: Оба запроса вернут одинаковый набор строк (возможно, в разном порядке столбцов). Проверка: сравнить количество строк и набор значений customer_id в обоих результатах — они должны совпадать. Подводные камни Частая ошибка: в за
joinsleft-join
JuniorPerformance Marketer > Google Ads > Юнит-экономика
Короткий ответ ROAS отвечает на вопрос о выручке на рекламный рубль, ROI — о чистой отдаче от инвестиций после затрат. Для ROI нужны себестоимость, возвраты и релевантные операционные расходы. Как это работает подробнее Для ROI нужно знать не только выручку, но и себестоимость товара, операционные расходы и возвраты — то, что в расчёте ROAS вообще не учитывается. Помимо себестоимости товара, на расчёт ROI может влиять стоимость возврата, брака и последующего обслуживания клиента, которые редко учитываются при быстром расчёте «на салфетке». Пример кода Что использовать на практике Для операционного мониторинга показывайте ROAS, но для решения о прибыльности добавляйте маржу или ROI. Фиксируйте, какие затраты включены в расчёт. Подводные камни Называть ROAS рентабельностью или сравнивать кампании с разной маржой без поправки на затраты — значит завышать реальный результат.
cost-accountingprofit-margin
JuniorData Analyst > SQL и данные > Продуктовые и бизнес-метрики
Короткий ответ Classic (unbounded) day-N retention проверяет активность пользователя ровно в день N после первого визита; rolling retention проверяет, был ли пользователь активен в день N ИЛИ в любой последующий день — то есть "вернулся хотя бы раз, начиная с дня N". Как это работает подробнее classic retention — это точечная метрика (активность = 1 конкретный день), rolling retention — кумулятивная (активность = любой день начиная с N и позже), поэтому rolling retention всегда больше или равен classic retention на тот же день N. Пример кода Что использовать на практике Практика. rolling retention лучше подходит для продуктов с нерегулярным использованием (например, приложение для путешествий, которым пользуются раз в несколько недель), а classic retention — для продуктов с ожидаемым ежедневным использованием (мессенджеры, соцсети); выбор типа метрики должен соответствовать ожидаемому паттерну использования продукта. Подводные камни Частые ошибки. сравнивают classic retention одного продукта с rolling retenti
cohortsproduct-metrics
MiddleDevOps Engineer > Контейнеры и доставка > systemd
Короткий ответ systemd timers интегрированы с journald (единые структурированные логи), поддерживают точный контроль пересечения запусков, автоматические повторные попытки, зависимость от других юнитов и системных событий (например, запуск после пробуждения из спячки), тогда как классический cron проще, но ограничен по этим возможностям и логирует через почту или отдельные файлы. Как это работает подробнее Таймер systemd — это отдельный .timer юнит, который по расписанию (OnCalendar) или по относительному времени (OnBootSec, OnUnitActiveSec) активирует связанный .service юнит; это позволяет переиспользовать весь функционал systemd для управляемого юнита — лимиты ресурсов, политику перезапуска при сбое, зависимости — чего нет у задачи cron, запускаемой напрямую демоном cron. Пример кода Что использовать на практике Практика. timers предпочтительны в современных дистрибутивах для задач, которым нужна гарантия выполнения (Persistent=true компенсирует пропущенные запуски при выключенном сервере), ограничение ресу
cronlinux
JuniorSMM Manager > Общее > Площадки и основы SMM
Короткий ответ Канал — это формат одностороннего вещания, где писать может только администратор, а подписчики читают и реагируют эмодзи/комментариями при включённой опции; чат — формат общения, где все участники могут писать сообщения напрямую друг другу. Как это работает подробнее технически в Telegram это разные типы сущностей: канал показывает число подписчиков и просмотры постов, чат — список участников и ленту сообщений в реальном времени без алгоритмической сортировки. Что использовать на практике Рекомендация. бренды используют канал как основную витрину контента и новостей, а чат — как площадку поддержки или комьюнити, где нужна постоянная модерация из-за прямого общения пользователей друг с другом. Подводные камни Риск. запуск чата без выделенного модератора, из-за чего он быстро заполняется спамом или конфликтами; попытка вести канал как чат, прося аудиторию «писать в комментарии к посту», когда комментарии не включены.
community-moderationimpressions