Прим. перев.: автор данного исследования — Marc Richards, Solutions Architect и DevOps-инженер — продемонстрировал потрясающую настойчивость и тщательность в тотальной оптимизации производительности веб-приложения. Получившийся материал — кладезь полезных знаний для расширения своего кругозора в области оптимизации, особенностей сетевого стека в Linux и не только, даже вне зависимости от практической заинтересованности в конечном результате автора. Приготовьтесь к по-настоящему длинному техническому путешествию с обилием терминологии, увлекательных графиков и полезных ссылок.
Запуск контейнеров в облаке Часть 2 Elastic Kubernetes Service
В первой части статьи мы рассмотрели различные варианты запуска контейнеров в облаке на примере Amazon Web Services. В этом материале мы на практике разберем, как выглядит создание и запуск кластера Elastic Kubernetes Service.
-------------------
Итак, прежде чем начать работу EKS, нам потребуется несколько инструментов:
Техники ML, взлом банкоматов и обход IDS — какие конкурсы будут на PHDays 2022
Вслед за пандемией пришла настоящая эпидемия кибератак, и форум PHDays в новых реалиях как никогда актуален. Как обычно, скучать не придется.
Помимо серьезных докладов по информационной безопасности вас ждет кибербитва The Standoff, а захватывающие конкурсы помогут не только развлечься, но и получить новые знания и ценный опыт. Соревнования открыты для всех заинтересованных исследователей. Принять участие в них можно как онлайн, так и офлайн.
Лучший технический вопрос, который мне задавали на собеседовании
Много воды утекло с тех пор, как я в последний раз участвовал в собеседовании по программированию как соискатель. Но до сих пор помню особенно полюбившийся мне вопрос с такого собеседования. Дело было в MemSQL, году так в 2013. (Они даже успели переименоваться, поэтому, полагаю, конкретно этот вопрос они на собеседовании уже не задают. Не чувствую вины за то, что выдаю его. Это отличная история, которая также кажется мне поучительной; просто раньше я о ней никогда не писал).
Окей, вообще, это даже не вопрос как таковой, это программерская задачка на засыпку. Не помню, сколько времени мне на нее дали. Скажем, три часа, считая время, потребовавшееся на постановку задачи.
Поскольку компания MemSQL разрабатывала базу данных, этот челлендж из той же оперы.
Скрипты по сусекам: как создать инструмент для контроля количества серверных комплектующих на складе
Всем привет, Хабр. Меня зовут Сергей, в Selectel я работаю в департаменте IaaS-продуктов и отвечаю за выделенные серверы, которые мы сдаем в аренду. Число клиентов растет каждый год — вместе с ними растет потребность в новых серверах и комплектующих. Чем больше становится оборудования, тем сложнее контролировать его наличие на складе и вовремя планировать новые поставки. Но это часть моей работы.
Чтобы облегчить эту задачу, я, не программист, написал скрипт, который стал дополнительным инструментом управления постоянно меняющимися цифрами наличия комплектующих. Об этом скрипте и о том, как мы анализируем число оборудования на складе, пишу под катом.
Эволюция рекомендаций в Delivery Club. Часть 2
Всем привет! Это вторая часть статьи об изменении подхода к рекомендациям в Delivery Club. В первой части я подробно описал текущие проблемы нашей рекомендательной системы: локально оптимальный баланс exploitation и cold start, а также недостаточно развитый механизм exploration. А также рассказал, как мы решали проблему exploitation через карусель «Вы заказывали», а проблему cold start — через карусель популярных фастфуд-ресторанов.
Авторизация в PostgreSQL. Часть 2. Безопасность на уровне строк
Приветствую вас в очередном разборе инструментов авторизации PostgreSQL. В первых двух разделах предыдущей статьи мы обсуждали, чем интересна авторизация в PostgreSQL. Вот содержание этой серии материалов:
- Роли и привилегии;
- Безопасность на уровне строк (мы сейчас здесь);
- Производительность безопасности на уровне строк (coming soon!);
В первой статье мы рассмотрели, как роли и предоставленные привилегии влияют на действия (запросы SELECT, INSERT, UPDATE и DELETE) в отношении объектов БД (таблиц, представлений и функций). Та статья закончилась небольшим клиффхэнгером: если вы создадите многопользовательское приложение, используя только роли и привилегии для авторизации, то ваши пользователи смогут удалять данные друг друга, а может и вообще друг друга. Необходим другой механизм, позволяющий ограничить пользователей чтением и изменением только собственных данных — механизм безопасности на уровне строк (RLS).
Machine Learning много не бывает: отчёт с ML-митапа
Выкладываем запись с прошедшего Ozon Tech ML Meetup: были рады поделиться опытом с коллегами из Яндекс Маркета, AliExpress Россия, Циан и увидеть гостей оффлайн, как в старые-добрые времена.
Под катом найдете запись докладов:
• Spark Streaming: в погоне за оптимальной утилизацией и прозрачностью на Hadoop,
• Го обсудим: продакшен ML на Golang,
• Платформенные решения. Решаем проблемы жизненного цикла ML-сервиса,
• Как мы перестали бояться иероглифов и полюбили китайскую инфраструктуру.
После докладов на круглом столе обсудили процессы и роли в ML-командах крупных IT-компаний.
Visiology предложила специальные лицензии для миграции с других BI-платформ
Еще в марте 2022 года мы столкнулись с проблемой наших потенциальных клиентов. Потребность в миграции на российскую BI-платформу создала дополнительную финансовую нагрузку на компании. На прошлой неделе мы представили новую линейку тарифов, которые облегчают процесс перехода. Этот пост — для тех, кто уже рассматривает Visiology в качестве альтернативной BI платформы, а под катом — подробности о стоимости лицензий Visiology, с учетом своего рода Trade-In.
Расчет ППМ для АФАР
В данной статье хочу поделиться своим опытом расчетов ППМ для АФАР.
Proof-of-work — лучший выбор консенсуса для Bitcoin
Какой консенсус лучше для блокчейна, proof-of-work или proof-of-stake? Многие спорят об этом и приводят разные аргументы. В этой статье я рассмотрю основные преимущества и недостатки каждого варианта.
Это перевод поста из блога Bitcoin, дополненный комментариями наших экспертов. Эти комментарии выделены курсивом.
Установка Sonatype Nexus с SSL
Sonatype Nexus — программный продукт, который представляет собой менеджер репозиториев для хранения артефактов. По умолчанию установка происходит без включенного SSL. В данной статье будет описана установка Sonatype Nexus в контейнере Docker с использованием Nginx в качестве обратного прокси сервера, а также будет рассмотрено получение бесплатного доменного имени на сайте freenom.com и создание SSL-сертификата при помощи службы Let’s Encrypt.
Почему GPU обманывают о своей нагрузке и как с этим бороться
Почему в распределённом обучении нельзя доверять утилизации GPU? Почему переход в эру распределённого обучения — фундаментальный сдвиг парадигмы мышления, к которому должен быть готов каждый ML-разработчик? Ещё больше «Почему» и ответов на них — под катом.
Terraform-модуль для инициализации Vault
При настройке CI/CD для приложений мы в компании, как правило, используем Vault от HashiCorp. К тому же сами приложения зачастую используют Vault для хранения секретных данных. Но для того, чтобы начать использовать Vault, сначала необходимо произвести его настройку. Раньше нам приходилось вручную производить подобные манипуляции для каждого проекта, что отнимало немало времени. Найти готовый модуль, который подошел бы нам, не удалось. Поэтому мы написали свой terraform-модуль, который позволяет автоматизировать данный процесс.
На текущий момент созданный нами terraform-модуль покрывает все наши требования, но в дальнейшем он будет дорабатываться. Модуль позволяет создавать политики доступа и хранилища секретов, включать необходимые способы авторизации (certs, jwt, oidc, kubernetes и т.д.), создавать токены, jwt/oidc/token-роли и идентификационные группы. Также при помощи него можно генерировать TLS-сертификаты и jwt ключи в определенной директории.
Синхронизируем данные с yarsync
yarsync - Yet Another Rsync - предназначен для синхронизации данных между несколькими устройствами, более точно - между файловыми системами в Unix-подобных средах. yarsync обладает интерфейсом, похожим на git, и является Python-обёрткой вокруг программы rsync. Программа доступна под свободной лицензией GPL v3.0 на github (я автор).
yarsync работает там, где есть Питон и rsync.
Данные могут синхронизироваться локально или между разными компьютерами (в таком случае на удалённой машине также должен быть установлен rsync). Кроме того, файловые системы должны поддерживать жёсткие ссылки (hard links). Популярные системы, поддерживающие жёсткие ссылки - ext2-ext4, HFS+, а также NTFS. Не поддерживают жёсткие ссылки FAT, exFAT (часто используемые на флеш-накопителях).
Говоря простыми словами, допустим, что у вас есть компьютеры дома и на даче. У вас есть папка с книгами и статьями по программированию, которые вы собирали долгие годы, и которой регулярно пользуетесь (её копиями на разных машинах). Вы хотите, чтобы эти копии были одинаковы - то есть в идеале чтобы можно было работать с данными на разных компьютерах (добавлять новые статьи, удалять ненужные, переименовывать и перемещать файлы и папки), а затем эти изменения легко переносились на другие копии. Это и делает yarsync, отслеживая изменения и позволяя эффективно синхронизировать данные через доступный сервер или внешний накопитель (жёсткий диск).
Как работает оптимизатор PostgreSQL при большом количестве соединений
Работу по нахождению самого лучшего способа получения требуемых данных выполняет планировщик (он же оптимизатор) запросов. Он выбирает способы соединения наборов строк и их обработки, строит различные планы выполнения запроса и находит среди них наилучший, для чего используется стоимостная модель оптимизации.
Поэтому оптимизатор — это ключевая часть СУБД, один из самых сложных элементов всей системы.
Для демонстрации работы оптимизатора практически во всех наших (и чужих) примерах на эту тему используются довольно скромные параметры: две-три таблицы, пара JOIN-ов, миллисекунды на выполнение запросов. А что будет, если загрузить оптимизатор десятками таблиц за раз? Как разные конфигурационные параметры влияют на производительность запросов с сотней JOIN-ов? И переживет ли это среднестатистический рабочий ноутбук? Ответы на эти вопросы — со схемами и графиками — вы найдете под катом!
Мониторинг СУБД Firebird с помощью Zabbix
Примерно 20 лет назад была установлена СУБД Firebird, если не ошибаюсь, версии 1.0.3, на сегодняшний день база все еще жива и нужна, размер ее перевалил за 30ГБ, что по сегодняшним меркам очень мало, но и основной рост базы пришелся на начало века.
С повсеместным внедрением средств мониторинга захотелось снимать минимальную статистику и определять работоспособность СУБД и самой БД. Для мониторинга использую Zabbix установленный на Ubuntu 20.04 LTS, а сама СУБД находится на виртуальной машине с Windows 2008 Server. Версии на которых был использован метод мониторинга описанный ниже для СУБД Firebird 2.5.9, версия Zabbix 6.0. Но думаю что и с другими версиями проблем быть не должно.
Настройка LEMP сервера с помощью docker для простых проектов. Часть первая: База
Настройка LEMP сервера с помощью docker для простых проектов. Часть первая: База
Мы продолжаем цикл обучающих статей для начинающих системных администраторов. В серии "Настройка LEMP сервера с помощью docker для простых проектов" мы разберем docker и docker-compose, рассмотрим, как поднять стек LAMP+Nginx с помощью docker, а также расскажем вам, в чем преимущество контейнеризации и виртуализации.
CUSTIS Labs. Развертываем инфраструктуру за минуты
Старт любого нашего проекта начинается с подготовки инфраструктуры. Времени на это порой уходит довольно много. Как минимум необходимо нарезать виртуалки или донастроить Kubernetes, настроить CI, базы данных, логирование, мониторинг и прочие компоненты. В лучшем случае в этих заботах проходит несколько дней, а ни строчки кода еще не написано. Знакомая ситуация?
Миграция домашнего сервера с Hyper-V на Xen Project на Debian
В данной статье я опишу свой опыт миграции домашнего сервера на гипервизоре Hyper-V, установленного на Windows Server 2012 R2, на гипервизор Xen Project 4.14, установленного на Debian 11. Я ни в коем случае не являюсь экспертом в Linux, всю свою карьеру в основном использовал операционные системы Microsoft, но времена и технологии меняются, и нужно соответствовать.
Зачем мне нужен домашний сервер? Для меня — это во многом песочница, где я могу исследовать и пробовать технологии, которые не могу потестировать на десктопе. Помимо этого, конечно, он несёт и утилитарные функции: контроллер домена, файловый сервер, хостинг для сайта моей жены, TFS-сервер (да, до сих пор, но собираюсь поменять на GitLab) и др. Всё это разложено по виртуалкам для более эффективного управления и использования ресурсов. Разворачивал я Hyper-V версию лет 7 назад, с тех пор существенных изменений не производил, однако, какое-то время назад, решил мигрировать его на Linux. Наконец-то у меня дошли руки до этого. В этой статье собран мой опыт «не совсем новичка» в Linux (ранее опыт ограничивался в основном использованием Ubuntu в WSL) и платформах виртуализации (Hyper-V, VMWare).
Для меня всё, описанное в данной статье, — прежде всего, мой практический опыт, без которого любая теория — ничто. Для новичков, думаю, подробность повествования даст хорошее понимание принципов работы с Linux.