A popular DNS security overview. Modern theory and practicePhilipp KulinOverview. DNSSEC, DNSCrypt, DNS-over-TLS, DNS-over-HTTPS. Servers, clients, resolvers.
Технические аспекты блокировки интернета в России. Проблемы и перспективыPhilipp KulinТехнические детали блокировок. Как сейчас организован механизм блокировок. Кто, что, где, когда и как. Почему он так организован. Почему РКН блокирует сетями. В чем проблема текущего механизма блокировок с технической точки зрения. В каком направлении надо двигаться с технической точки зрения в рамках минимальных изменений сегодняшней нормативной правовой базы.
HighLoad++ 2018 http://www.highload.ru/moscow/2018/abstracts/4280
Юрий Насретдинов-«Сбор логов в «облаке» в Badoo»Tanya DenisyukВ нашей компании есть система для запуска PHP-скриптов по расписанию, которая позволяет распределять нагрузку на множество узлов и обеспечивать отказоустойвость. И в этой системе необходимо уметь собирать логи скриптов с сотен (и даже тысяч) машин, желательно в режиме реального времени. У нас раньше была система сбора логов, собранная «на коленке», и выдающая относительно невысокую производительность. Производительности стало не хватать, и мы переписали систему на Go. Новая система не использует scribe и обладает некоторыми уникальными фичами, например «вытесняющей многозадачностью» при доставке - если один из скриптов пишет столько логов, что мы не успеваем их всех доставить, логи всех остальных скриптов продолжают доставляться, с небольшой фиксированной задержкой. Система легко забивает гигабитную сетевую карту на нашем сервере-приемнике логов и не слишком «тормозит» доставку в случае, когда пропускной способности всё же не хваетает. В докладе я расскажу о том, как мы делали эту систему и про то, как она работает изнутри. Исходные тексты доступны на github: https://github.com/badoo/thunder
Курс высокие нагрузки и надежность: отрывокAndrey SmirnovРазработка надёжных высоконагруженных систем
Москва, 24, 25 и 26 мая
http://smira.highload.ru/
Трехдневный мастер-класс с практическими заданиями
Управление контейнерами в облакахAleksey ZalesovСлайды с моего выступления на HDConf в Минске 17 октября 2015 года. Я рассказывал из чего состоит PaaS, как запускать контейнеры в облаке и чем отличаются Mesos, Cloud Foundry и Kubernetes.
Курс высокие нагрузки: очереди (отрывок)Andrey SmirnovРазработка надёжных высоконагруженных систем
Москва, 24, 25 и 26 мая
http://smira.highload.ru/
Трехдневный мастер-класс с практическими заданиями
Курс высокие нагрузки: сеть (отрывок)Andrey SmirnovРазработка надёжных высоконагруженных систем
Москва, 24, 25 и 26 мая
http://smira.highload.ru/
Трехдневный мастер-класс с практическими заданиями
Профилирование Node.jsDenis ChistyakovЯ и моя группа занимаемся разработкой страницы Яндекс.Браузера, весь наш фронтенд построен на Node.js. Для нас очень важно максимально быстро отвечать нашим пользователям, и не только потому, что тем самым мы снижаем потребление нами системных ресурсов, а прежде всего для того, чтобы наш пользователь не ожидал лишние десятки миллисекунд и не терял интерес к нашим страницам.
Многие исследования подтверждают — каждые 100мс ожидания загрузки страницы вы теряете долю пользователей, которые ждать не захотели. Именно поэтому после того, как некоторые страницы сильно разрослись и время ответа перестало удовлетворять нас, я начал исследование узких мест.
Я перебрал множество доступных на данный момент инструментов профилирования Node.js приложений, покопался с работой оптимизаторов V8 и в результате за две недели уменьшил время ответа нашей страницы в 2.5 раза, а теперь я бы хотел поделиться с вами своим опытом.
DNS в условиях хостинг-провайдера / Константин Новаковский (Selectel)OnticoDNS — это одна из основополагающих служб и протоколов современного интернета, сервис, который должен всегда работать. Каждый раз, когда конечный пользователь обращается к какому-либо ресурсу глобальной паутины, он использует DNS, и чтобы этот самый первый шаг к проектам у наших клиентов не занимал много времени, мы построили свой DNS-хостинг с использованием Anycast-балансировки. Чуть позже мы применили этот метод для балансировки и повышения доступности рекурсивных серверов внутри наших дата-центров.
В своём докладе я расскажу о способах обеспечения непрерывного обслуживания DNS-запросов, подводных камнях использования anycast’а, постараюсь раскрыть актуальные проблемы обслуживания DNS-серверов и поведаю о современных тенденциях в мире DNS.
Защита веб-ресурса от DDoS-атак на примере нашего клиента - Rutracker.orgIT61Дмитрий Рудь, Head Of Key Account Department, DDoS-GUARD, d.rud@ddos-guard.net
Фильтрация и очистка трафика по схеме SECaaS на примере подключения Рутрекера к сервису защиты от ddos-атак провайдера DDoS-GUARD. Что такое ddos, как осуществляется фильтрация, про типы атак по протоколам. Статистика, чутка анализа.
Роман Иманкулов-«Быстрые и масштабируемые приложения с Sync API»Tanya Denisyuk"Если все возможности кеширования и индексирования исчерпаны, а производительности все равно недостаточно.
Если еженочно просыпаясь в холодном поту, вы спрашиваете себя снова и снова:
- Как организовать данные так, чтобы всё нужное всегда было под рукой
- Как сделать так, чтобы приложение не тупило даже на медленном интернете
- Как моментально обеспечивать клиента самыми свежими данными
Тогда мой доклад может оказаться полезным.Мы в Todoist, кажется, нашли простой способ решить большинство из этих проблем. Всё, что мы сделали, это дополнили наш API функциями для синхронизации данных, позволяющими
писать ""толстые клиенты"" (кстати,то же самое для решения тех же задач рекомендуют и Google, и Evernote). В докладе я расскажу как это реализовать с минимальными усилиями одним лишь MySQL и Redis, с какими проблемами мы столкнулись, и как мы героически эти проблемы побеждали."
Работа с Git в команде Яндекс.Браузера — Алёна ЦарёваYandexВ докладе я расскажу о том, как устроен процесс работы с Git в команде Яндекс.Браузера, с какими задачами мы сталкиваемся и как их решаем. А также поделюсь полезными советами и знаниями, которые вы сможете использовать при работе над своим, пусть даже и небольшим, проектом.
Docker в работе: взгляд на использование в Badoo через годBadoo DevelopmentМы в Badoo используем Docker больше года и на нашем примере попробуем поговорить о возможных моделях его применения.
- 85% наших сервисов работают в контейнерах: для чего и почему мы перенесли свои сервисы в контейнеры.
- Как мы подходим к сборке образов? Базовый образ: используем слои, следим за системными обновлениями.
- Автоматизация процесса сборки образов с нашими сервисами: Jira flow, Teamcity и другие страшные для админа слова.
- Лучшее ли место для тестирования production? Путь образа от сборки до Production.
- baDocker: webUI своими руками: зачем и почему?
- Как дать возможность управлять запущенными сервисами и их версиями разработчику.
- Docker: мониторинг и анализ работающих контейнеров.
Доклад Антона Турецкого на Highload 2015.
https://youtu.be/UgUuF_qZmWc
Горизонтальное масштабирование: что, зачем, когда и как /Александр Макаров (Y...OnticoМасштабирование — способность наращивать систему для обработки большего количества трафика, не теряя при этом пользовательские качества: скорость и отзывчивость.
Масштабирование различают двух типов: вертикальное (больше памяти, диска, лучше процессор) и горизонтальное (больше серверов в кластере).
- Зачем оно нужно, если и так всё работает?
- Когда? Мониторинг, необдуманные решения, оптимизация и жизнь с одним сервером.
- Типичная схема.
- Балансировка нагрузки.
- Какие, вообще, проблемы на стороне приложения?
- Почему PHP так хорош для масштабирования.
- Сессии.
- База данных.
- Файлы.
- Как быть со статистикой?
Архитектура хранения фотографий в BadooBadoo DevelopmentВ этом докладе я в подробностях расскажу о том, как устроено хранение фотографий в нашей компании (всего около ~1 Пб).
Наша система была устроена достаточно просто — сами фотографии хранятся на SAN Storages, которые подключены через Fiber Channel к отдельной группе серверов, "*photos". На photos-серверах смонтированы разделы на соответствующих сетевых блочных устройствах, которые с точки зрения пользователя выглядят, как обычная файловая система.
Мы не используем никакие «хитрые» системы для хранения фотографий и не храним всё в одном файле — каждый размер каждой фотографии представляет из себя обычный файл на файловой системе ext3/4. Фотографии отдаются через nginx напрямую из файловой системы.
Такой способ хранения больших объемов данных весьма дешев, но приводил к проблемам, когда соответствующие SAN «падали», вплоть до повреждения файловой системы с потерей части данных пользователей.
Поэтому, для решения этой проблемы, а также проблем с производительностью, мы решили сделать «софтверную репликацию» фотографий с кешированием данных на SSD.
Также, в качестве эксперимента, мы решили попробовать ещё один способ — хранение на локальных дисках вместо использования SAN. По стоимости решение значительно дороже, но зато надежнее и проще в поддержке. Также, для обеспечения устойчивости к выходу из строя любой машины из такого кластера, мы решили сделать возможной балансировку всех поступающих запросов на весь кластер, то есть, в современных терминах, сделать «распределенное, отказоустойчивое, высокодоступное облачное хранилище».
За счет чего Tarantool такой оптимальный / Денис Аникин (Mail.Ru)OnticoМногие из вас, наверное, видели результаты тестов сравнения Tarantool с остальными СУБД, которые показывают, что Tarantool быстрее всех, оптимальней по памяти, обрабатывает наибольшее количество транзакций в секунду.
И, несмотря на то, что исходные коды всех тестов полностью открыты и хорошо откомментированы, позволяя всем желающим повторить тесты, все равно остаются вопросы - за счет чего Tarantool такой быстрый и оптимальный?
Я решил суммировать мои ответы на эти вопросы в докладе на Highload++.
Итак, почему Tarantool такой быстрый?
Краткий ответ: потому что он с самого начала разрабатывался и до сих пор разрабатывается во главе угла с производительностью/оптимальностью/минимальным потреблением всех ресурсов системы.
Более полный ответ я раскрою в своем выступлении. Приходите, будет интересно! :)
Курс высокие нагрузки и надежность: отрывокAndrey SmirnovРазработка надёжных высоконагруженных систем
Москва, 24, 25 и 26 мая
http://smira.highload.ru/
Трехдневный мастер-класс с практическими заданиями
Управление контейнерами в облакахAleksey ZalesovСлайды с моего выступления на HDConf в Минске 17 октября 2015 года. Я рассказывал из чего состоит PaaS, как запускать контейнеры в облаке и чем отличаются Mesos, Cloud Foundry и Kubernetes.
Курс высокие нагрузки: очереди (отрывок)Andrey SmirnovРазработка надёжных высоконагруженных систем
Москва, 24, 25 и 26 мая
http://smira.highload.ru/
Трехдневный мастер-класс с практическими заданиями
Курс высокие нагрузки: сеть (отрывок)Andrey SmirnovРазработка надёжных высоконагруженных систем
Москва, 24, 25 и 26 мая
http://smira.highload.ru/
Трехдневный мастер-класс с практическими заданиями
Профилирование Node.jsDenis ChistyakovЯ и моя группа занимаемся разработкой страницы Яндекс.Браузера, весь наш фронтенд построен на Node.js. Для нас очень важно максимально быстро отвечать нашим пользователям, и не только потому, что тем самым мы снижаем потребление нами системных ресурсов, а прежде всего для того, чтобы наш пользователь не ожидал лишние десятки миллисекунд и не терял интерес к нашим страницам.
Многие исследования подтверждают — каждые 100мс ожидания загрузки страницы вы теряете долю пользователей, которые ждать не захотели. Именно поэтому после того, как некоторые страницы сильно разрослись и время ответа перестало удовлетворять нас, я начал исследование узких мест.
Я перебрал множество доступных на данный момент инструментов профилирования Node.js приложений, покопался с работой оптимизаторов V8 и в результате за две недели уменьшил время ответа нашей страницы в 2.5 раза, а теперь я бы хотел поделиться с вами своим опытом.
DNS в условиях хостинг-провайдера / Константин Новаковский (Selectel)OnticoDNS — это одна из основополагающих служб и протоколов современного интернета, сервис, который должен всегда работать. Каждый раз, когда конечный пользователь обращается к какому-либо ресурсу глобальной паутины, он использует DNS, и чтобы этот самый первый шаг к проектам у наших клиентов не занимал много времени, мы построили свой DNS-хостинг с использованием Anycast-балансировки. Чуть позже мы применили этот метод для балансировки и повышения доступности рекурсивных серверов внутри наших дата-центров.
В своём докладе я расскажу о способах обеспечения непрерывного обслуживания DNS-запросов, подводных камнях использования anycast’а, постараюсь раскрыть актуальные проблемы обслуживания DNS-серверов и поведаю о современных тенденциях в мире DNS.
Защита веб-ресурса от DDoS-атак на примере нашего клиента - Rutracker.orgIT61Дмитрий Рудь, Head Of Key Account Department, DDoS-GUARD, d.rud@ddos-guard.net
Фильтрация и очистка трафика по схеме SECaaS на примере подключения Рутрекера к сервису защиты от ddos-атак провайдера DDoS-GUARD. Что такое ddos, как осуществляется фильтрация, про типы атак по протоколам. Статистика, чутка анализа.
Роман Иманкулов-«Быстрые и масштабируемые приложения с Sync API»Tanya Denisyuk"Если все возможности кеширования и индексирования исчерпаны, а производительности все равно недостаточно.
Если еженочно просыпаясь в холодном поту, вы спрашиваете себя снова и снова:
- Как организовать данные так, чтобы всё нужное всегда было под рукой
- Как сделать так, чтобы приложение не тупило даже на медленном интернете
- Как моментально обеспечивать клиента самыми свежими данными
Тогда мой доклад может оказаться полезным.Мы в Todoist, кажется, нашли простой способ решить большинство из этих проблем. Всё, что мы сделали, это дополнили наш API функциями для синхронизации данных, позволяющими
писать ""толстые клиенты"" (кстати,то же самое для решения тех же задач рекомендуют и Google, и Evernote). В докладе я расскажу как это реализовать с минимальными усилиями одним лишь MySQL и Redis, с какими проблемами мы столкнулись, и как мы героически эти проблемы побеждали."
Работа с Git в команде Яндекс.Браузера — Алёна ЦарёваYandexВ докладе я расскажу о том, как устроен процесс работы с Git в команде Яндекс.Браузера, с какими задачами мы сталкиваемся и как их решаем. А также поделюсь полезными советами и знаниями, которые вы сможете использовать при работе над своим, пусть даже и небольшим, проектом.
Docker в работе: взгляд на использование в Badoo через годBadoo DevelopmentМы в Badoo используем Docker больше года и на нашем примере попробуем поговорить о возможных моделях его применения.
- 85% наших сервисов работают в контейнерах: для чего и почему мы перенесли свои сервисы в контейнеры.
- Как мы подходим к сборке образов? Базовый образ: используем слои, следим за системными обновлениями.
- Автоматизация процесса сборки образов с нашими сервисами: Jira flow, Teamcity и другие страшные для админа слова.
- Лучшее ли место для тестирования production? Путь образа от сборки до Production.
- baDocker: webUI своими руками: зачем и почему?
- Как дать возможность управлять запущенными сервисами и их версиями разработчику.
- Docker: мониторинг и анализ работающих контейнеров.
Доклад Антона Турецкого на Highload 2015.
https://youtu.be/UgUuF_qZmWc
Горизонтальное масштабирование: что, зачем, когда и как /Александр Макаров (Y...OnticoМасштабирование — способность наращивать систему для обработки большего количества трафика, не теряя при этом пользовательские качества: скорость и отзывчивость.
Масштабирование различают двух типов: вертикальное (больше памяти, диска, лучше процессор) и горизонтальное (больше серверов в кластере).
- Зачем оно нужно, если и так всё работает?
- Когда? Мониторинг, необдуманные решения, оптимизация и жизнь с одним сервером.
- Типичная схема.
- Балансировка нагрузки.
- Какие, вообще, проблемы на стороне приложения?
- Почему PHP так хорош для масштабирования.
- Сессии.
- База данных.
- Файлы.
- Как быть со статистикой?
Архитектура хранения фотографий в BadooBadoo DevelopmentВ этом докладе я в подробностях расскажу о том, как устроено хранение фотографий в нашей компании (всего около ~1 Пб).
Наша система была устроена достаточно просто — сами фотографии хранятся на SAN Storages, которые подключены через Fiber Channel к отдельной группе серверов, "*photos". На photos-серверах смонтированы разделы на соответствующих сетевых блочных устройствах, которые с точки зрения пользователя выглядят, как обычная файловая система.
Мы не используем никакие «хитрые» системы для хранения фотографий и не храним всё в одном файле — каждый размер каждой фотографии представляет из себя обычный файл на файловой системе ext3/4. Фотографии отдаются через nginx напрямую из файловой системы.
Такой способ хранения больших объемов данных весьма дешев, но приводил к проблемам, когда соответствующие SAN «падали», вплоть до повреждения файловой системы с потерей части данных пользователей.
Поэтому, для решения этой проблемы, а также проблем с производительностью, мы решили сделать «софтверную репликацию» фотографий с кешированием данных на SSD.
Также, в качестве эксперимента, мы решили попробовать ещё один способ — хранение на локальных дисках вместо использования SAN. По стоимости решение значительно дороже, но зато надежнее и проще в поддержке. Также, для обеспечения устойчивости к выходу из строя любой машины из такого кластера, мы решили сделать возможной балансировку всех поступающих запросов на весь кластер, то есть, в современных терминах, сделать «распределенное, отказоустойчивое, высокодоступное облачное хранилище».
За счет чего Tarantool такой оптимальный / Денис Аникин (Mail.Ru)OnticoМногие из вас, наверное, видели результаты тестов сравнения Tarantool с остальными СУБД, которые показывают, что Tarantool быстрее всех, оптимальней по памяти, обрабатывает наибольшее количество транзакций в секунду.
И, несмотря на то, что исходные коды всех тестов полностью открыты и хорошо откомментированы, позволяя всем желающим повторить тесты, все равно остаются вопросы - за счет чего Tarantool такой быстрый и оптимальный?
Я решил суммировать мои ответы на эти вопросы в докладе на Highload++.
Итак, почему Tarantool такой быстрый?
Краткий ответ: потому что он с самого начала разрабатывался и до сих пор разрабатывается во главе угла с производительностью/оптимальностью/минимальным потреблением всех ресурсов системы.
Более полный ответ я раскрою в своем выступлении. Приходите, будет интересно! :)
So Your WAF Needs a Parseryalegkoݺߣs from our talk on HighLoad2017 conference about possible performance problems and caveats of usage parsers in high load applications.
Опыт разработки модуля межсетевого экранирования для MySQL / Олег Брославский...OnticoHighLoad++ 2017
Зал «Кейптаун», 8 ноября, 15:00
Тезисы:
http://www.highload.ru/2017/abstracts/2957.html
Расскажем о нашем опыте разработки модуля межсетевого экрана для MySQL с использованием генератора парсеров ANTLR и языка Kotlin.
Подробно рассмотрим следующие вопросы:
— когда и почему целесообразно использовать ANTLR;
— особенности разработки ANTLR-грамматики для MySQL;
— сравнение производительности рантаймов для ANTLR в рамках задачи синтаксического анализа MySQL (C#, Java, Kotlin, Go, Python, PyPy, C++);
— вспомогательные DSL;
— микросервисная архитектура модуля экранирования SQL;
— полученные результаты.
Обзор перспективных баз данных для highload / Юрий НасретдиновOnticoРИТ++ 2017, Backend Conf
Зал Кейптаун, 5 июня, 10:00
Тезисы:
http://backendconf.ru/2017/abstracts/2773.html
В этом докладе я рассмотрю несколько перспективных, на мой взгляд, баз данных, которые пока еще не очень популярны, но которые определенно ждет успех в будущем, особенно для highload-проектов. Я расскажу о Tarantool, ClickHouse и CockroachDB, о том, как они устроены, и почему я считаю, что они в будущем станут стандартом де-факто, как раньше был MySQL, а сейчас — MongoDB.
...
SQL Server 2012 Deep Dive (rus)Денис РезникTalk is called Deep Dive, so be prepared to hold your breath. In this talk we will take a look at the mechanisms of the SQL Server and literally dive into the bowels of SQL Server, going through all the stages of the request processing.
Архивирование файловых и почтовых системКРОКСеминар «Реальная виртуализация?! Или актуальные способы повышения эффективности использования вычислительных ресурсов и систем хранения».
Подробнее о мероприятии http://www.croc.ru/action/detail/1464/
Презентация Алексея Яковенко, инженера компании КРОК
Wi-Fi Audit WorkshopKirill MurzinПрезентация с бесплатного воркшопа по аудиту беспроводных сетей Wi-Fi. Данное мероприятие проводилось в г.Алматы и г.Астана. Речь шла о фундаментальных основах работы сетей Wi-Fi, чипсетах, антеннах и, конечно, атаках на точку и клиентов. Был продемонстрирован арсенал инструментов атакующей стороны, а также разновидности средств защиты.
Сложности и специфика построения систем раздачи адалт видео контентаUP2ITUP2IT 2017, DEV&QA Stream 1
Володимир Смірнов, Managing Director, Apptimized Operations (Суми)
"Складнощі і специфіка побудови систем роздачі адалт контенту"
Разбор и сравнение данных в большом XML на маленькой VDSPhilipp KulinA-level meetup. 08 февраля 2020, Казань. Разбор XML и оптимизации на примере разбора списка запрещенных сайтов Роскомнадзора:
https://youtu.be/7LwL0mtBBjc
ENOG-14. Руководство оператора DNSSECPhilipp KulinРуководство оператора DNSSEC. Что делать. Когда делать. Чем делать.
P.S. Руководство регистратора доменов: /schors/dnssec-71055077
2. Зачем DNSSEC
• Цепочка доверия для записей от
корневой зоны.
• Предотвращение атаки «мужик
посерёдке»
• Вкусняшки: RR CERT, RR SSHFP, DANE
3. Принцип работы DNSSEC
• Ключи ZSK и KSK задаются в записях
типа DNSKEY зоны
• Все наборы записей зоны
подписываются ZSK (записи RRSIG)
• Набор записей DNSKEY
подписываются в том числе KSK
• Хэш KSK передаётся родителю (запись
DS)
4. Сложности внедрения
• План ротации ключей и времён
обновления подписи
• Стыковка с регистратором
• Проверка зоны и отзыв подписи
• Действия с DNSSEC должны быть
аккуратными и постоянно
контролироваться
5. Сложности DNSSEC
• Смена NS
• Имеется тяжкое наследие. Путаница в
документации.
• Файл hosts и клиентское ПО
• Метод блокировки сайтов через DNS….
6. DANE
• Реализует цепочку доверия для
сертификата, подтверждая его
доменное имя.
• Позволяет массово ввести HTTPS
• Браузеры пока нет, exim – в разработке.
• RFC 6698
7. Поддержка DNSSEC
• Google Public DNS
• Регистратор GoDaddy
• Регистратор Directi НЕ поддерживает
• RU/SU/РФ подписаны
• Из наших регистраторов –
пользователи «виртуального
регистратора», частично RU-CENTER