Друзья, мы договорились с компанией Онтико, что будем публиковать лучшие доклады с их конференций на своём Youtube-канале и делиться ими с вами. Так мы хотим не только распространять знания, но и помогать нашим читателям и зрителям профессионально развиваться. Ловите подборку 15 лучших докладов, которые прозвучали на Highload++ 2018.
Георгий Кириченко, Mail.ru Group
Репликация в Tarantool применяется для обеспечения высокой доступности за счет резервирования серверов или объединения серверов в кластер для распределения нагрузки, а также может использоваться для проведения операций обновления. В последних версиях Tarantool появилось несколько дополнительных возможностей, облегчающих конфигурирование и использование репликации в кластере.
В докладе рассмотрены основные принципы устройства и особенности асинхронной репликации в Tarantool. Подробно остановимся на внутреннем устройстве вектора состояний — vclock. Обсуждают способы обеспечения согласованности данных и остановимся на новых возможностях. Рассмотрены основные принципы конфигурации, их применимость и наиболее частые ошибки, а также обсуждены способы решения возникающих проблем с настройкой и эксплуатацией.
Филипп Кулин, Дремучий Лес
Технические детали блокировок. Как сейчас организован механизм блокировок. Кто, что, где, когда и как. Почему он так организован. Почему РКН блокирует целыми сетями. В чем проблема текущего механизма блокировок с технической точки зрения. В каком направлении надо двигаться с технической точки зрения в рамках минимальных изменений сегодняшней нормативной правовой базы.
Александр Алексейцев, OZON.RU
Этот доклад об автоматической системе пополнения склада. Мозг системы — ML для прогнозирования продаж: постановка задачи и выбор loss-функции, работа с признаками, генерирование дата-сета, выбор модели, подводные камни процесса обучения lightGBM, оценка результатов. Скелет системы — Spark/Hadoop: ежедневная доставка/валидация данных, повышение надёжности системы. Бизнес-реалии закупок товаров: выбор поставщика, страховые запасы, борьба с уровнем сервиса поставщиков.
Также Александр рассказал про использование обученных lightGBM-моделей для оценки эластичности спроса на товары по цене планирования маркетинговых акций и эффекта от них. Разные виды функций зависимости спроса от цены для разных типов товаров и многое другое получили как «побочный» эффект от основной задачи.
Антон Солдатов, IPONWEB
Компания IPONWEB использует язык Lua для описания бизнес-логики более 10 лет. В 2015 году они форкнули LuaJIT и с тех пор работают с собственной реализацией языка. Этот компонент технологического стека является критически важным для бизнеса, поэтому его стабильности уделено особое внимание.
Антон рассказал, как с нуля создавали тестовую базу для реализации; разобрал несколько случаев, когда тесты оказывались бессильны перед сложностью тестируемой системы, и в результате что-то ломалось на боевых серверах «внезапно» и «нерегулярно». Опыт, который они получили в процессе исправления таких ошибок, можно применить и к работе с LuaJIT'ом. И в завершение Антон поделился инструментами и приёмами, которыми в их компании пользуются при отладке.
Александр Токарев, DataArt
Доклад о том, где и как лучше организовывать row level security для высоконагруженного проекта. Описал выбор способа реализации row level security в высоконагруженном enterprise-проекте (4000 пользователей, 10000 запросов одновременно, транзакционная и olap-нагрузка одновременно). Проанализировал три технологи реализации row level security в СУБД Oracle, и почему же была выбрана именно security в базе, а не на сервере приложений. Рассказал о сделанном выборе, о проблемах и дальнейших планах.
Александр Самойлов, Код Безопасности
Linux Netfilter лежит в основе огромного количества МСЭ, как открытых, так и коммерческих. Это проверенное, надежное и с недавних пор даже достаточно производительное решение. Но в современных реалиях, когда через МСЭ зачастую приходится пропускать десятки гигабит трафика, а количество правил фильтрации может переваливать за тысячу, именно Linux Netfilter оказывается узким местом.
Александр рассказал о том, как они переписали сетевую подсистему Linux, которая получилась быстрой — десятки гигабит stateful- и stateless-фильтрации, отслеживания сессий, NAT и маршрутизации, удобной в управлении — научили подсистему понимать команды хорошо известных утилит iproute2 и nftables, независимой от количества правил фильтрации.
Владислав Шпилевой, Tarantool
До 2018 года единственным средством горизонтального масштабирования СУБД Tarantool был Shard — модуль, реализующий шардинг, частный случай горизонтального масштабирования. Shard реализует шардирование по функции от первичного ключа, поддерживает изменение топологии кластера, ребалансировку. При этом у него есть три существенных недостатка, которые не позволили использовать Shard в одном из важных проектов.
В начале года была завершена разработка нового модуля VShard — это альтернативная реализация шардирования. В ней ребалансировка выполняется поэтапно, можно задавать произвольную шард-функцию для обеспечения локальности связанных данных, результат вычисления шард-функции сохраняется в каждой записи и не перевычисляется. Владислав рассказал о внутреннем устройстве VShard, о его подсистемах и реализации с примерами использования, и о новых возможностях VShard 0.2.
Альваро Эрнандез, OnGres (доклад на английском)
BBM (Black Berry Messenger) — одно из крупнейших в мире мессенджеров с функциями текстового, голосового и видео-общения, его абонентская база составляет больше 150 млн пользователей. Он работал на on-premise СУБД Oracle. Мы помогли практически без простоя мигрировать его на PostgreSQL, работающую на GCP с репликацией в реальном времени. Альваро подробно описал процесс и подводные камни, методики, технологии и лучшие подходы к миграции Oracle на PostgreSQL без простоя. Сегодня такая миграция интересует многих, однако она требует высокой квалификации и вовлечённости в процесс, в котором подстерегает немало трудностей.
Вадим Подольный, Физприбор
Из этого доклада вы узнаете о новой платформе распределенной системы управления АЭС и как обеспечивается управление сложнейшими объектами автоматизации в мире. В режиме реального времени управление работой более 150 специальных подсистем, отвечающих за различные технологические процессы АЭС. Более 100К источников данных от датчиков и до 500К расчетных параметров. 5 разновидностей физических процессов.
При некоторых отклонениях вся система превращается в огромный DDoS-источник полезной диагностической информации, что мешает нормальному управлению объектом. Вы узнаете, как мы «разруливаем» такие проблемы, узнаете об аппаратной и программной архитектуре таких систем, как обеспечивается резервирование и репликация, зачем нужна избыточность данных и технологическое разнообразие. Как обеспечивается управление нагрузками, как устроен QoS. И что будет, если отключится система нормальной эксплуатации, как, например было на Фукусиме.
Александр Тоболь, Одноклассники
Сервис Видео в Одноклассниках — вторая площадка в Рунете по просмотрам видео: 600 млн просмотров ежедневно. Платформа стриминга ОК сейчас позволяет вести профессиональные трансляции в 4К, стримить с телефона в FullHD и отдавать пользователям более 3 Тб/сек трафика.
Александр рассказал про:
Илья Космодемьянский, Data Egret
Проблемы с производительностью ввода-вывода находятся в повседневной повестке дня администраторов баз данных с тех пор, как базы данных существуют. В Linux — вероятно, самой популярной операционной системе для баз данных, — в течение последних нескольких лет происходит капитальный ремонт IO-стека.
Илья рассказал о том, что происходит, почему IO-стек нуждается в срочном улучшении, к чему это может привести для баз данных. Как новые драйвера NVMe и blk-mq будут улучшены. В качестве полезной памятки Илья предложил контрольный список настроек PostgreSQL и Linux, чтобы максимизировать производительность подсистемы ввода-вывода в новых ядрах.
Алексей Акулович, ВКонтакте
Алексей поднял много тем и вопросов, которые возникают у людей «со стороны».
Например:
Олег Облеухов, Facebook
Олег рассказал о том, как в Facebook балансируют нагрузку, и при чём тут DNS-инфраструктура, как ресурсные записи попадают в глобальную инфраструктуру Facebook, и как компания использует DNS в организации dogfooding.
Дмитрий Столяров, Флант
Дмитрий поделился опытом и на конкретных примерах рассказал, в каких случаях имеет смысл размещать базы данных (и в целом stateful-приложения) в Kubernetes, а в каких это неоправданно, или даже вредно и опасно.
Эта подборка лежит на нашем Youtube-канале «Технострим». Мы создали его, чтобы делиться самыми разными учебными материалами, и в том числе лекциями наших учебных технопроектов. Мы уже писали на Хабре о Техностриме, так что если вы про него не слышали, почитайте. И заходите почаще, там постоянно появляется что-нибудь интересное.
Репликация в Tarantool: конфигурация и использование
Георгий Кириченко, Mail.ru Group
Репликация в Tarantool применяется для обеспечения высокой доступности за счет резервирования серверов или объединения серверов в кластер для распределения нагрузки, а также может использоваться для проведения операций обновления. В последних версиях Tarantool появилось несколько дополнительных возможностей, облегчающих конфигурирование и использование репликации в кластере.
В докладе рассмотрены основные принципы устройства и особенности асинхронной репликации в Tarantool. Подробно остановимся на внутреннем устройстве вектора состояний — vclock. Обсуждают способы обеспечения согласованности данных и остановимся на новых возможностях. Рассмотрены основные принципы конфигурации, их применимость и наиболее частые ошибки, а также обсуждены способы решения возникающих проблем с настройкой и эксплуатацией.
Технические аспекты блокировки интернета в России. Проблемы и перспективы
Филипп Кулин, Дремучий Лес
Технические детали блокировок. Как сейчас организован механизм блокировок. Кто, что, где, когда и как. Почему он так организован. Почему РКН блокирует целыми сетями. В чем проблема текущего механизма блокировок с технической точки зрения. В каком направлении надо двигаться с технической точки зрения в рамках минимальных изменений сегодняшней нормативной правовой базы.
Прогнозирование продаж интернет-магазина с помощью градиентного бустинга (lightGBM)
Александр Алексейцев, OZON.RU
Этот доклад об автоматической системе пополнения склада. Мозг системы — ML для прогнозирования продаж: постановка задачи и выбор loss-функции, работа с признаками, генерирование дата-сета, выбор модели, подводные камни процесса обучения lightGBM, оценка результатов. Скелет системы — Spark/Hadoop: ежедневная доставка/валидация данных, повышение надёжности системы. Бизнес-реалии закупок товаров: выбор поставщика, страховые запасы, борьба с уровнем сервиса поставщиков.
Также Александр рассказал про использование обученных lightGBM-моделей для оценки эластичности спроса на товары по цене планирования маркетинговых акций и эффекта от них. Разные виды функций зависимости спроса от цены для разных типов товаров и многое другое получили как «побочный» эффект от основной задачи.
Как мы работаем над стабильностью нашей реализации Lua
Антон Солдатов, IPONWEB
Компания IPONWEB использует язык Lua для описания бизнес-логики более 10 лет. В 2015 году они форкнули LuaJIT и с тех пор работают с собственной реализацией языка. Этот компонент технологического стека является критически важным для бизнеса, поэтому его стабильности уделено особое внимание.
Антон рассказал, как с нуля создавали тестовую базу для реализации; разобрал несколько случаев, когда тесты оказывались бессильны перед сложностью тестируемой системы, и в результате что-то ломалось на боевых серверах «внезапно» и «нерегулярно». Опыт, который они получили в процессе исправления таких ошибок, можно применить и к работе с LuaJIT'ом. И в завершение Антон поделился инструментами и приёмами, которыми в их компании пользуются при отладке.
Место row level security в высоконагруженном проекте
Александр Токарев, DataArt
Доклад о том, где и как лучше организовывать row level security для высоконагруженного проекта. Описал выбор способа реализации row level security в высоконагруженном enterprise-проекте (4000 пользователей, 10000 запросов одновременно, транзакционная и olap-нагрузка одновременно). Проанализировал три технологи реализации row level security в СУБД Oracle, и почему же была выбрана именно security в базе, а не на сервере приложений. Рассказал о сделанном выборе, о проблемах и дальнейших планах.
Как мы сделали свой собственный Netfilter с Intel DPDK и префиксными деревьями
Александр Самойлов, Код Безопасности
Linux Netfilter лежит в основе огромного количества МСЭ, как открытых, так и коммерческих. Это проверенное, надежное и с недавних пор даже достаточно производительное решение. Но в современных реалиях, когда через МСЭ зачастую приходится пропускать десятки гигабит трафика, а количество правил фильтрации может переваливать за тысячу, именно Linux Netfilter оказывается узким местом.
Александр рассказал о том, как они переписали сетевую подсистему Linux, которая получилась быстрой — десятки гигабит stateful- и stateless-фильтрации, отслеживания сессий, NAT и маршрутизации, удобной в управлении — научили подсистему понимать команды хорошо известных утилит iproute2 и nftables, независимой от количества правил фильтрации.
VShard — горизонтальное масштабирование в Tarantool
Владислав Шпилевой, Tarantool
До 2018 года единственным средством горизонтального масштабирования СУБД Tarantool был Shard — модуль, реализующий шардинг, частный случай горизонтального масштабирования. Shard реализует шардирование по функции от первичного ключа, поддерживает изменение топологии кластера, ребалансировку. При этом у него есть три существенных недостатка, которые не позволили использовать Shard в одном из важных проектов.
В начале года была завершена разработка нового модуля VShard — это альтернативная реализация шардирования. В ней ребалансировка выполняется поэтапно, можно задавать произвольную шард-функцию для обеспечения локальности связанных данных, результат вычисления шард-функции сохраняется в каждой записи и не перевычисляется. Владислав рассказал о внутреннем устройстве VShard, о его подсистемах и реализации с примерами использования, и о новых возможностях VShard 0.2.
BBM’s 150M+ users Oracle to Postgres migration without downtime
Альваро Эрнандез, OnGres (доклад на английском)
BBM (Black Berry Messenger) — одно из крупнейших в мире мессенджеров с функциями текстового, голосового и видео-общения, его абонентская база составляет больше 150 млн пользователей. Он работал на on-premise СУБД Oracle. Мы помогли практически без простоя мигрировать его на PostgreSQL, работающую на GCP с репликацией в реальном времени. Альваро подробно описал процесс и подводные камни, методики, технологии и лучшие подходы к миграции Oracle на PostgreSQL без простоя. Сегодня такая миграция интересует многих, однако она требует высокой квалификации и вовлечённости в процесс, в котором подстерегает немало трудностей.
Высоконагруженная распределенная система управления современной АЭС
Вадим Подольный, Физприбор
Из этого доклада вы узнаете о новой платформе распределенной системы управления АЭС и как обеспечивается управление сложнейшими объектами автоматизации в мире. В режиме реального времени управление работой более 150 специальных подсистем, отвечающих за различные технологические процессы АЭС. Более 100К источников данных от датчиков и до 500К расчетных параметров. 5 разновидностей физических процессов.
При некоторых отклонениях вся система превращается в огромный DDoS-источник полезной диагностической информации, что мешает нормальному управлению объектом. Вы узнаете, как мы «разруливаем» такие проблемы, узнаете об аппаратной и программной архитектуре таких систем, как обеспечивается резервирование и репликация, зачем нужна избыточность данных и технологическое разнообразие. Как обеспечивается управление нагрузками, как устроен QoS. И что будет, если отключится система нормальной эксплуатации, как, например было на Фукусиме.
Платформа 4К-стриминга на миллион онлайнов
Александр Тоболь, Одноклассники
Сервис Видео в Одноклассниках — вторая площадка в Рунете по просмотрам видео: 600 млн просмотров ежедневно. Платформа стриминга ОК сейчас позволяет вести профессиональные трансляции в 4К, стримить с телефона в FullHD и отдавать пользователям более 3 Тб/сек трафика.
Александр рассказал про:
- pipeline видеостриминга в 4К на миллионы онлайн;
- архитектуру системы доставки контента;
- тюнинг TCP для раздачи 4K;
- как и зачем нужно отказаться от ffmpeg и про нарезка видео на GPU;
- что делать, если мощности кончились, а пользователи продолжают приходить;
- проблемы стриминга на TCP;
- будущее видео-стриминга.
Последние изменения в IO-стеке Linux с точки зрения DBA
Илья Космодемьянский, Data Egret
Проблемы с производительностью ввода-вывода находятся в повседневной повестке дня администраторов баз данных с тех пор, как базы данных существуют. В Linux — вероятно, самой популярной операционной системе для баз данных, — в течение последних нескольких лет происходит капитальный ремонт IO-стека.
Илья рассказал о том, что происходит, почему IO-стек нуждается в срочном улучшении, к чему это может привести для баз данных. Как новые драйвера NVMe и blk-mq будут улучшены. В качестве полезной памятки Илья предложил контрольный список настроек PostgreSQL и Linux, чтобы максимизировать производительность подсистемы ввода-вывода в новых ядрах.
FAQ по архитектуре и работе ВКонтакте
Алексей Акулович, ВКонтакте
Алексей поднял много тем и вопросов, которые возникают у людей «со стороны».
Например:
- Общая архитектура взаимодействия наших серверов.
- Если ли во ВКонтакте «обычный» PHP, где и почему. А какие еще ЯП используют?
- Как обновить код на десятках тысяч серверов за секунды.
- Отказоустойчивость кластеров мемкэша при постоянно ломающихся серверах.
- Зачем ВКонтакту свои движки (БД), сколько их, и как они с ними живут.
- Чем бинлог отличается от снэпшота, и как «откатить DELETE».
- Чем можно всё это мониторить.
DNS в Facebook
Олег Облеухов, Facebook
Олег рассказал о том, как в Facebook балансируют нагрузку, и при чём тут DNS-инфраструктура, как ресурсные записи попадают в глобальную инфраструктуру Facebook, и как компания использует DNS в организации dogfooding.
Базы данных и KubernetesDevOps и эксплуатация
Дмитрий Столяров, Флант
Дмитрий поделился опытом и на конкретных примерах рассказал, в каких случаях имеет смысл размещать базы данных (и в целом stateful-приложения) в Kubernetes, а в каких это неоправданно, или даже вредно и опасно.
Эта подборка лежит на нашем Youtube-канале «Технострим». Мы создали его, чтобы делиться самыми разными учебными материалами, и в том числе лекциями наших учебных технопроектов. Мы уже писали на Хабре о Техностриме, так что если вы про него не слышали, почитайте. И заходите почаще, там постоянно появляется что-нибудь интересное.