JuniorDevOps Engineer > Контейнеры и доставка > Облачные платформы
Короткий ответ Блочное хранилище подключается к одной ВМ как диск и используется для ОС и баз данных; файловое хранилище монтируется одновременно к нескольким серверам как общая файловая система; объектное хранилище хранит файлы как объекты через HTTP API и подходит для больших объёмов неструктурированных данных. Как это работает подробнее блочное хранилище даёт низкую задержку и работу на уровне файловой системы, но обычно подключено к одной ВМ одновременно; файловое — разделяемый доступ по сетевому протоколу; объектное — доступ по HTTP(S) к объектам с метаданными, без прямого монтирования как диска. Пример кода Что использовать на практике Рекомендация. диск БД — блочное хранилище; общие конфиги для нескольких воркеров — файловое; бэкапы, логи, статические файлы, дата-лейк — объектное хранилище из-за цены и масштабируемости. Проверка. файл становится доступен по ключу в bucket сразу после успешной загрузки, без необходимости монтировать том. Подводные камни Риск. пытаться хранить миллионы мелких файлов прил
block-storagecloud-storage
JuniorPython Developer > Основы Python > Типы данных
Короткий ответ == сравнивает значения объектов через метод __eq__, а is сравнивает идентичность — указывают ли переменные на один и тот же объект в памяти (совпадает ли id()); два разных объекта могут быть равны по значению, но не быть одним и тем же объектом. Как это работает подробнее a == b вызывает a.__eq__(b) (с запасным вариантом b.__eq__(a)), и поведение зависит от того, как класс объекта определяет равенство. a is b — это сравнение id(a) == id(b), то есть равенство адресов/идентификаторов объектов, которое ни один класс переопределить не может. Пример кода Что использовать на практике Практика. is используют для сравнения с синглтонами: is None, is True/False (хотя для bool обычно пишут просто if flag:), и иногда для проверки "это тот же самый объект, а не его копия". Для сравнения значений — чисел, строк, списков, собственных объектов — всегда используют ==. Подводные камни Риски. Пишут if x == None вместо if x is None (работает, но не идиоматично и может дать неожиданный результат, если у объекта пе
data-typesequality
JuniorDevOps Engineer > Контейнеры и доставка > Надёжность и инцидент-менеджмент
Короткий ответ Высокая доступность — это свойство системы оставаться доступной для пользователей большую часть времени (измеряется в проценте времени работы), а отказоустойчивость — это способность системы продолжать работать корректно даже при отказе отдельных компонентов, без видимого простоя. Как это работает подробнее высокая доступность достигается за счёт резервирования (несколько инстансов, несколько зон доступности) и быстрого переключения при сбое, а отказоустойчивость требует, чтобы отказ одного узла не приводил к потере функциональности или данных — система продолжает отвечать корректно, хотя бы с деградацией. Пример / кейс Сервис развёрнут в трёх зонах доступности с балансировщиком нагрузки. Одна зона падает. Ожидаемое поведение: балансировщик health-check обнаруживает нездоровые инстансы и перестаёт направлять на них трафик, оставшиеся две зоны продолжают обслуживать запросы без ошибок для пользователя — это и есть отказоустойчивость, а не просто "высокая доступность на бумаге". Что использовать
fault-tolerancegraceful-degradation
JuniorPerformance Marketer > Google Ads > Бюджет и пейсинг
Короткий ответ Дневной бюджет задаёт средний желаемый расход в сутки на весь срок работы кампании, а пожизненный бюджет задаёт общую сумму на весь период кампании с конкретной датой начала и окончания, и платформа сама распределяет расход внутри этого периода. Как это работает подробнее При дневном бюджете платформа ориентируется на сутки и может гибко управлять расходом день в день. При lifetime-бюджете система прогнозирует оптимальное распределение расхода по всему заданному сроку кампании, в том числе может расходовать больше в периоды с ожидаемо лучшим откликом. Что использовать на практике На практике. Lifetime-бюджет удобен для кампаний с фиксированными сроками (акция, запуск продукта), дневной — для постоянных кампаний без конечной даты. При lifetime-бюджете важно обязательно указывать даты старта/окончания. Пример. Lifetime-бюджет 300 000 руб. на кампанию с 1 по 30 число. Проверка: к середине периода (15 число) логично ожидать расход около 150 000 руб. ± ускоренный пейсинг, если он включён. Подводные
ad-platformsads-scripts
JuniorSMM Manager > Общее > Рекламные платформы и медиазакупка
Короткий ответ Показы — общее количество раз, когда объявление было показано (один человек может увидеть его несколько раз), охват — число уникальных пользователей, увидевших объявление хотя бы раз. Как это работает подробнее отношение показов к охвату называется частотой (frequency) и показывает, сколько раз в среднем каждый уникальный пользователь увидел объявление. Что использовать на практике Подход. высокая частота при низком охвате может говорить о слишком узкой аудитории или усталости от рекламы; эти метрики всегда читают вместе. Пример. Кампания получила 100 000 показов и охват 20 000 человек — частота 5. При плановой частоте 2–3 для охватной кампании это сигнал сузить или обновить аудиторию, чтобы снизить усталость. Подводные камни Ошибка. сообщать клиенту только показы как «охват аудитории», что искажает реальное представление об уникальных людях, увидевших рекламу.
ad-metricscampaign-optimization
JuniorPerformance Marketer > Google Ads > Стратегии ставок
Короткий ответ При ручной ставке специалист сам задаёт максимальную цену за клик/результат, при автоматической — алгоритм платформы сам подбирает ставку в каждом аукционе на основе вероятности нужного результата. Как это работает подробнее Ручная стратегия фиксирует верхнюю границу ставки, которую рекламодатель меняет сам по данным отчётов. Автоматическая стратегия использует машинное обучение платформы, которое оценивает сигналы пользователя и контекста в реальном времени и выставляет индивидуальную ставку на каждый аукцион. Что использовать на практике На практике. Ручные ставки дают больше контроля, но требуют постоянного мониторинга и быстрее устаревают при изменении конкуренции. Автоматические стратегии снижают ручную нагрузку, но нуждаются в достаточном объёме данных по конверсиям и корректном отслеживании, иначе алгоритм обучается на шуме. Пример. Кампания в Google Ads Search с 5 конверсиями в месяц: ставка Manual CPC не менялась 3 месяца, а Impression Share упал с 60% до 30%. Проверка: сравнить истори
ad-platformsbidding-strategies
JuniorData Analyst > SQL и данные > SQL
Короткий ответ WHERE фильтрует строки до GROUP BY, а HAVING фильтрует группы после агрегации. Поэтому условие на SUM или COUNT размещают в HAVING. Как это работает подробнее Логический порядок обработки запроса: FROM, WHERE, GROUP BY, HAVING, SELECT, ORDER BY. На этапе WHERE агрегатные значения ещё не вычислены. Ранний фильтр уменьшает объём данных для соединения и группировки. Если условие относится к отдельной строке, его обычно выгоднее и понятнее записать в WHERE. Пример кода Что использовать на практике WHERE. Ограничивайте период, статус исходной строки и другие неагрегированные признаки. HAVING. Оставляйте группы по условиям вроде SUM(amount) > 1000 или COUNT(*) > 5. Подводные камни Агрегат в WHERE. Запись WHERE SUM(amount) > 1000 некорректна, потому что сумма ещё не рассчитана. Поздняя фильтрация. Перенос обычного условия в HAVING может заставить СУБД обработать лишние строки.
aggregationsgroup-by
JuniorPerformance Marketer > Google Ads > Специфика рекламных площадок и каналов
Короткий ответ При CBO Meta сама распределяет общий бюджет кампании между группами объявлений в реальном времени на основе прогнозируемой эффективности, при ABO бюджет фиксируется вручную на каждую группу объявлений отдельно. Как это работает подробнее алгоритм Meta в режиме CBO непрерывно оценивает, какая группа объявлений внутри кампании вероятнее принесёт результат по заданной цели, и динамически перераспределяет расход в её сторону, тогда как в ABO каждая группа получает фиксированный бюджет независимо от результатов других групп. Что использовать на практике На практике. CBO удобен, когда нужно автоматически находить лучшую аудиторию или плейсмент среди нескольких вариантов и не хочется вручную следить за распределением, но может «забрасывать» бюджет в одну-две группы, оставляя остальные без данных для анализа; ABO даёт больше контроля для тестов, где важно собрать сопоставимую статистику по каждой группе отдельно, например в A/B-тесте креативов. Пример. Кампания с тремя группами объявлений (look-alike,
aboad-sets
JuniorDevOps Engineer > Контейнеры и доставка > Файловые системы Linux
Короткий ответ df показывает использование места на уровне смонтированных файловых систем (разделов), а du считает фактический размер файлов и каталогов рекурсивно; для поиска «тяжёлых» каталогов используют du, для общей картины по разделам — df. Как это работает подробнее df читает статистику напрямую из суперблока файловой системы, поэтому работает мгновенно даже на больших дисках; du обходит дерево каталогов и суммирует размеры файлов, поэтому может быть медленным на файловых системах с миллионами файлов. Пример кода Что использовать на практике Практика. для поиска самых больших каталогов используют du с сортировкой по глубине (du -h --max-depth=1 | sort -h), последовательно спускаясь в самый тяжёлый подкаталог; df -h используют для первичной диагностики «кончилось место». Подводные камни Риск. Частая ошибка — делать du / по всей файловой системе без ограничения глубины на проде: это создаёт избыточную нагрузку на диск и может занять очень долгое время на сетевых или сильно фрагментированных ФС.
disk-usagefilesystems
JuniorDevOps Engineer > Контейнеры и доставка > Облачные платформы
Короткий ответ IaaS даёт только виртуальную инфраструктуру (сеть, диски, виртуальные машины), и всю ОС, рантайм и приложение настраивает команда; PaaS берёт на себя ОС, рантайм и часть эксплуатации, оставляя команде код и конфигурацию; SaaS — готовое приложение, где DevOps обычно настраивает только интеграции. Чем выше уровень абстракции, тем меньше контроля, но и меньше операционной нагрузки. Как это работает подробнее облачный провайдер проводит условную границу ответственности — IaaS (виртуальные машины, сети, диски) оставляет ОС, патчи и масштабирование приложения на пользователя; PaaS (управляемые среды выполнения) берёт на себя ОС и рантайм, пользователь поставляет код и конфиг; SaaS — готовый продукт, доступный через API/UI. Пример кода Что использовать на практике Рекомендация. выбор уровня абстракции зависит от требований к контролю (кастомные ядра, специфичные библиотеки) и скорости разработки; команда DevOps для IaaS отвечает за патчинг и автоскейлинг, для PaaS — за деплой и конфигурацию, для SaaS
cloud-computingiaas