Django-аутентификация: просто о сложном
Аутентификация является фундаментальной частью любого веб-приложения. Мы рассмотрим различные способы реализации аутентификации в Django, начиная от стандартных методов и заканчивая более крутыми техниками, например как 2FA и OAuth2.
Триггеры в PostgreSQL: основы
В этой статье поговорим про триггеры в PostgreSQL. Начнём с базы: триггер в PostgreSQL — это такая функция, которая запускается автоматически при определённом событии в таблице. С триггерами можно автоматизировать массу рутины и освободить приложение от сложных проверок и вычислений, но это палка о двух концах.
Где PostgreSQL выигрывает у Oracle DB
Если вы стоите перед выбором между PostgreSQL и Oracle DB, то эта статья для вас. Разберем где PostgreSQL побеждает Oracle. Будет код и примеры — всё, что нужно для практического сравнения.
P.S: эта статья не про то, какой PSQL хороший в отличии от Oracle, а про то, в чем PSQL по мнению автора лучше.
cgroups и namespaces в Linux: как это работает?
В этой статье рассмотрим изоляции процессов и управления ресурсами в Linux, изучив возможности cgroups и namespaces. Разберёмся, как работают контейнеры изнутри и научимся создавать собственное изолированное окружение без Docker.
Стартер-пак книг для продуктового аналитика (и не только)
Автор недавно общался с одной командой аналитиков и обсуждали, что бы можно было порекомендовать тем, кто хочет прокачаться в продуктовой аналитике. Вспоминали кейсы, делились историями «до» и «после» прочтения некоторых книг. Так вот, этот список — это не просто «лучшие бестселлеры по версии Google», а те книги, которые изменили подход меня и моих коллег к работе.
Прогреваем k8s cache: оптимизация загрузки образов размером 3 ГБ и запуск 1000 POD’ов за секунды
Проблема: при обновлении k8s кластера не менее половины POD’в застряли в состоянии ContainerCreating
из-за длительной загрузки и распаковки образов размером примерно 3 ГБ.
Для решения этой проблемы в корне (не только кейс с обновлением) предложена стратегия предварительного прогрева узлов кластера:
- Создание отдельной группы узлов для каждой feature-ветки (FB): Это обеспечило изоляцию и гибкость, позволяя легко изменять тип узлов.
- Загрузка базовых образов через cloud-init: При запуске новых узлов с помощью скрипта cloud-init автоматически загружаются необходимые базовые образы, что снижало нагрузку при последующем развертывании.
- Использование DaemonSet с initContainers: Перед основным развертыванием запускался DaemonSet с initContainers, которые последовательно загружали необходимые образы на узлы, предотвращая проблемы с сверхутилизацией дисков и ускоряя запуск POD’ов.
Статистические критерии и доверительные интервалы
В этой статье поговорим о том, как понять, работает ли ваша новая фича или это просто случайный всплеск. Разберемся, что такое статистические критерии, доверительные интервалы, и как их использовать, чтобы принимать обоснованные решения.
Ваш первый A/B-тест: гайд для тех, кто ещё ничего не пробовал
Если вы слышите «AB‑тесты» и у вас в голове возникает что‑то вроде «да, я это где‑то видел, но понятия не имею, как работает», то эта статья — для вас. Я объясню, что такое AB‑тесты, зачем они нужны, какие инструменты использовать и как их настроить, чтобы результат был не просто для галочки, а действительно полезным.
Препарируем слои образов Docker
Технологии контейнеризации сейчас являются неотъемлемой частью процессов DevOps. Контейнеры активно используются в микросервисных архитектурах для изоляции отдельных микросервисов. Наиболее распространенным решением по контейнеризации на сегодняшний день является Docker, и именно о небезопасной работе с контейнерами Docker мы и будем сегодня говорить.
Ускоряем PostgreSQL с помощью Tuned
Администраторам баз данных всегда хочется, чтобы их СУБД работали быстрее. Всегда кажется, что можно прооптимизировать определенные настройки, и запросы начнут отрабатывать быстрее.
Есть множество различных параметров и настроек, которые позволяют оптимизировать работу БД PostgreSQL. В этой статье мы не будем пытаться охватить их все и поговорим об оптимизации параметров операционной и файловой систем, а также памяти на самом сервере СУБД.
Хороший рефакторинг vs плохой рефакторинг
За последние годы я нанял многих разработчиков. И не раз случалось, что новички сразу заявляли, что наш код требует серьёзного рефакторинга. Но вот в чём дело: во многих случаях их «улучшенный» код оказывался сложнее для понимания и сопровождения. Более того, он обычно становился медленнее и содержал больше багов.
Не поймите меня неправильно. Рефакторинг — это не что-то плохое само по себе. Это важная часть поддержания кода в хорошем состоянии. Проблема в том, что плохой рефакторинг это действительно плохо. И, к сожалению, попасть в ловушку «хотели как лучше, а получилось как всегда» проще, чем кажется.
Давайте разберёмся, что отличает хороший рефакторинг от плохого и как не стать тем разработчиком, которого коллеги боятся подпускать к коду.
Пара слов о вредоносном ПО для Linux и способах защиты вашей системы
Если вы следите за последними новостями в области IT‑безопасности, то, возможно, заметили рост числа атак на сетевую инфраструктуру Linux‑систем. Среди основных разновидностей вредоносного ПО, о которых вы должны знать, можно выделить Cloud Snooper, EvilGnome, HiddenWasp, QNAPCrypt, GonnaCry, FBOT и Tycoon.
Linux считается очень безопасной операционной системой, но эти угрозы безопасности облачной инфраструктуры могут заставить пользователей сомневаться в защищенности вашей компании как таковой. В этой статье мы хотим поговорить о текущей ситуации с Linux‑угрозами, дать краткий экскурс в историю вредоносного ПО для Linux и пролить свет на другие связанные проблемы, которые могут возникнуть у пользователей.
Как awk заменяет 10 команд Bash
Когда только автор начинал работать с Linux, каждую задачу обрабатывал через кучку пайпов. Потом его коллега сказал ему: «Завязывай с этим, попробуй awk». И автор попробовал. И это действительно удобно. В этой статье он рассказывает, как awk может заменить несколько привычных команд bash.
Task изнутри: управление потоками в .NET и создание своих планировщиков
В этой статье поговорим о том, как работают задачи в .NET, зачем может понадобиться собственный TaskScheduler
и как его реализовать.
Динамические SQL-запросы в PostgreSQL: когда, зачем и как
В этой статье поговорим о мощной штуке в PostgreSQL, которая одновременно помогает и открывает портал в ад: динамические SQL‑запросы. Динамика — это когда SQL собирается на лету, а не пишется заранее статичным текстом. Звучит неплохо, но при неправильном подходе легко превращается в катастрофу.
Мастерство работы с Java Stream
В этой статье рассмотрим, как использовать Stream для написания более элегантного кода на Java на основе нескольких примеров, а также кратко описали фактическую роль каждого API.
Что такое переобучение и как его избежать: основы
Если вы только начинаете свой путь в машинном обучении или уже успели столкнуться с его непредсказуемыми сюрпризами, то эта статья для тех, кто хочет понять и победить переобучение (оно же overfitting).