Доклады
Базы данных и системы хранения (14)
Транзакционная репликация в YTsaurus
Репликация между инстансами СУБД позволяет повысить отказоустойчивость совокупной системы. Мы разберём, как устроена репликация в YTsaurus: распределённом key-value-хранилище, использующемся в Яндексе и ставшем в 2023 году Open Source-продуктом. Тогда как данные внутри одного кластера YTsaurus хранятся с избыточностью и позволяют переживать выпадения отдельных машин и стоек, межкластерная репликация в YTsaurus предназначена для обеспечения отказоустойчивости на случай выключения целых кластеров. Один из важных сценариев даунтайма кластера YTsaurus — обновление на следующую версию. Мы разберём, как работает межкластерная репликация в YTsaurus, какие гарантии даёт и как позволяет строить системы без даунтайма поверх обновляющихся кластеров YTsaurus.
Доклад принят в программу конференции
Устройство индексов в почте Mail.ru
На докладе расскажу о технических особенностях индексирования писем в почте Mail. ru. Остановлюсь на проблемах, с которыми столкнулись, и как эти проблемы решали.
Наши задачи:
* эффективная утилизация аппаратных ресурсов: уменьшение IOPS на терабайт хранилища, CPU — уменьшение % загруженности ядер;
* уменьшение и, как следствие, удешевление инфраструктуры без потери качества сервиса за счет более эффективной утилизации аппаратных ресурсов;
* обеспечение SLA на уровне 99.999%;
* автоматическое сохранение полноценного рабочего состояния сервиса при отключении дата-центра.
Архитектура хранения почты эволюционировала и адаптировалась к обновляющимся требованиям пользователей. Количество ящиков и писем в них растет в каждый момент времени, индексы ящиков и писем, хранящихся в них, не помещаются в память. В этом контексте расскажу о том, как шардируются ящики, как данные в ящике всегда остаются консистентными и как происходит кэширование и перестроение индексов почты.
Доклад принят в программу конференции
BARSiC — асинхронная репликация и консенсус для 70 баз данных
Ядром ВКонтакте являются 70 специализированных баз данных (движков), организованных в 800 кластеров, имеющих в сумме 10000+ шардов.
Чтобы безболезненно переживать отказы мастера шарда, мы сделали BARSiC (Binlog Asynchronous Replication using Simple BD interface + Consensus) — в простонародье Барсик. Это система, которая обеспечивает автоматическое переключение ролей реплик и консистентность данных между ними, при этом не усложняет и не замедляет сами движки.
Расскажу, как мы проектировали BARSiC, почему отказались от стороннего консенсуса и каким образом с помощью модели TLA+ проверяем корректность кода Барсика на Go.
Доклад принят в программу конференции
Эволюция платформы данных для своевременных коммуникаций со 100+ млн клиентов
В докладе рассмотрим:
1. Какую цель решает подразделение и почему без данных эту цель не решить.
2. Какая задача стояла перед командой при старте построения data-платформы.
3. Описание реализованного решения: архитектура и технический стек реализации решения.
4. Как решали проблемы скорости, надежности и качества расчета.
5. Погорим о результатах: какое value принесла реализация этого решения.
Доклад принят в программу конференции
Как пережить спринт в 1 год и переехать в Clickhouse
Clickhouse быстро ворвался в сегмент аналитических баз данных и стал де-факто одним из стандартов индустрии. Однако погружение в эту технологию может быть не столь радужным для обычной продуктовой компании или стартапа. Путь внедрения может оказаться ночной прогулкой в диком лесу, где «не тормозят» только волки, а не как это рисуют рекламные буклеты:)
Проведем ретроспективу нашего опыта, соберем все найденные грабли и набитые шишки и, конечно же, постараемся из них извлечь пользу — ну или хотя бы отгрузим на маркетплейс:)
Доклад принят в программу конференции
Когда нужно делать свою базу данных
Все программисты любят велосипеды, но любой сеньор скажет вам, что их следует избегать. Как же тогда на свет появляются новые продукты? С какими проблемами должна столкнуться компания, чтобы стало понятно — пора?
В докладе поговорим про текущие и перспективные решения хранения логов, обсудим архитектуру, положительные стороны и недостатки, почему все делают одно и то же, но немного по-разному и почему R&D-разработка — это сложно.
В конце мы рассмотрим некоторые интересные особенности эффективного хранения и поиска в нашей базе данных SageDB, которые позволяют экономить терабайты памяти и трафика.
Доклад принят в программу конференции
YDB-оптимизации производительности под ARM
В докладе я расскажу, с какими проблемами мы столкнулись и как мы их решили при оптимизации YDB под архитектуру ARM. Детально рассмотрим основные проблемы оптимизаций высоконагруженных приложений под ARM. Расскажу про методы и инструменты, с помощью которых мы тестировали производительность, находили места для оптимизации, сравнивали производительность ARM и X86-64.
Доклад будет полезен всем разработчикам высокопроизводительных систем, которые планируют оптимизировать систему под ARM.
Доклад принят в программу конференции
Частичная модификация объектов в Yandex Object Storage: как мы улучшаем работу ФС поверх S3
Объектные хранилища являются популярными системами хранения данных с отличной масштабируемостью, простым API и подходят для большого спектра задач. Однако для некоторых приложений возможностей стандартного объектного хранилища может оказаться недостаточно, а именно когда для работы требуется интерфейс ФС.
Сейчас уже есть возможность работать с Yandex Object Storage как с ФС с помощью GeeseFS, про которую мы рассказывали в прошлом году. Но для хорошего решения нам сильно не хватало возможности частичной перезаписи объектов - метода PATCH. Про него и будет доклад.
В докладе я расскажу про:
* задачи, для которых не хватает стандартного S3 API, и хочется работать с хранилищем как с ФС;
* какие возможности предоставляют в этом плане различные облачные провайдеры;
* подробности про то, как мы решали эту проблему в прошлом и чего не хватало для счастья;
* технические аспекты реализации частичной модификации объектов, проблемы, с которыми мы столкнулись;
* что получилось в итоге, какие возможности дает метод PATCH и что планируется в будущем.
Доклад принят в программу конференции
Как при помощи бумаги, карандаша и алгоритма Raft достичь консенсуса
Есть во вселенной такой алгоритм — Raft. Он широко используется для решения задач консенсуса в распределенных системах (для наглядности — сервисы Etcd или Consul как наиболее известные проекты, его использующие).
Мастер-класс предлагает участникам поучаствовать в своеобразной настольной ролевой игре: каждый участник — это отдельный сервер. Вместо жесткого диска — листок бумаги и карандаш, вместо сообщений по сети — записки под партой. Игроки образуют единый кластер и стараются консистентно реплицировать данные, героически переживая сбои сети. Правила игры — это и есть алгоритм Raft. Приходите, будет весело.
Доклад принят в программу конференции
YDB Topic Service: как мы повышали производительность очереди сообщений
В составе платформы YDB работает сервис очередей сообщений — Topic Service. Он обладает надёжностью, масштабируемостью, гарантиями порядка и доставки.
В этом докладе рассказывается про ускорение YDB Topic Service и приведено сравнение с конкурентами.
Доклад принят в программу конференции
Поиск по образцу на последовательностях строк в БД
Задача поиска по образцу на последовательности строк БД может возникать в различных сферах деятельности. Например, в финансовой аналитике — поиск определённых паттернов изменения цены акций; в системах борьбы с мошенничеством (AntiFraud) — поиск последовательностей событий, которые могут свидетельствовать о подозрительной активности, а также в IoT и многих других.
Для реализации таких запросов к базам данных в стандарте SQL:2016 была введена конструкция MATCH_RECOGNIZE, которая постепенно появляется в популярных базах данных с тем или иным набором ограничений, т. к. конструкция довольно сложная и имеет большое количество особенностей и режимов работы.
В своём докладе я расскажу о реализации MATCH_RECOGNIZE в YDB: о том, как это работает под капотом, какие подходы и алгоритмы реализованы, с какими сложностями мы столкнулись.
Отдельная часть выступления будет посвящена отличиям в обработке аналитических запросов на табличках и обработке на потоках «живых» данных. Какие возникают ограничения при обработке потоков, как бороться с большим стейтом, необходимым для накопления цепочек совпадений на сложных образцах и пр.
Доклад принят в программу конференции
Реализовать OLAP: как мы делали колоночное хранение в YDB
Итак, у нас есть YDB. Это платформа, которая умеет обрабатывать большой поток быстрых транзакций (OLTP, Online Transaction Processing).
Помимо этого, она даёт всю необходимую инфраструктуру для базы данных:
* репликации,
* отказоустойчивый сторадж,
* автошардирование,
* query processing,
* grpс-клиенты,
* систему доставки данных
и проч.
Имея такой стартовый набор, мы захотели научить YDB обрабатывать другой тип запросов — аналитические (OLAP, Online Analytical Processing).
Казалось бы, давайте поменяем систему хранения, упакуем данные по колонкам и получим профит. Но достаточно ли этого?
Ответ на данный вопрос, а также вопросы: зачем это было нужно и какая польза от таких расширений системе в целом — будет в докладе.
Доклад принят в программу конференции
Мифы и реалии архитектуры мультимастера в реляционной СУБД PostgreSQL
Существуют несколько мифов о мультимастере: он медленный, сложно интегрировать с приложением, неудобен в обслуживании.
Недавно удалось получить опыт работы с мультимастером в реальных боевых условия. Теперь же хочется поделиться плюсами, минусами и life-хаками при работе с мультимастером на примере продукта PostgresPro Enterprise:
* как выжать максимальную производительность из мультимастера?
* почему можно забыть о проксях и балансировщиках?
* какой же trade-off и какие ещё бонусы можно получить?
Доклад принят в программу конференции
Алгоритм инкрементальных бэкапов в Apache Ignite
Реализовать функционал создания бэкапов (или снапшотов) в СУБД непросто. Задача вдвойне сложнее, когда это нужно сделать в распределённой СУБД. Втройне — когда СУБД поддерживает распределённые транзакции. Тем не менее любой хороший Crash Recovery-план содержит противоречивые пункты — «Иметь под рукой полный бэкап» и «Обеспечить RPO в пределах 5 минут».
Мы реализовали в Ignite алгоритм «Consistent Cut» для снятия инкрементальных снапшотов. В докладе расскажу, как нам удалось сделать снятие максимально незаметным для пользователя, а восстановление каждого узла полностью автономным. Обсудим, про что не нужно забывать при разработке production-фичи, даже если ослеплен красотой алгоритма.
Доклад принят в программу конференции
Менеджмент крупных проектов (2)
По мотивам шестого подвига Геракла
Путь от техдолга в 20 лет до построения катастрофоустойчивого решения в IT-компании среднего размера. Не пытайтесь повторить. Все трюки выполнены профессионалами, которые не знали, во что ввязываются.
В докладе — попурри из подходов и решений, которые позволяют не бояться отказа целого дата-центра. Организация мониторинга и алертинга, особенности построения геораспределенных кластеров БД, воспроизводимость серверов, сегментация production-контура и прочая. Формула баланса надежности, скорости разработки и стоимости владения, которая нам подошла на этапе перестройки.
Доклад принят в программу конференции
Современные методы построения платформы мониторинга
* Методы, их преимущества и недостатки. Метод классического водопада. Метод циклического обхода и Agile. «Государственный» подход.
* Использование «философских» принципов при построении системы. Ретроспектива технологии.
* Инструментарий. Высокоуровневый дизайн и архитектура современных платформ мониторинга на примере VK Cloud.
* Имплементация и межкомандное взаимодействие. Как строить мониторинг для большой платформы, когда уже все написано и работает.
* Организационные особенности имплементации мониторинга. Карта ответственности в оргструктуре.
Доклад принят в программу конференции
DevOps-практики и культура (3)
Как Nomad может выстрелить в ногу, и что сделать, чтобы увернуться
Что общего у водителя, пересевшего с автоматики на механику, и SRE-инженера, познавшего переход с K8s на Nomad?
Nomad выбирают за его флексабилити и админ-френдли-подход, но что, если вы продвинулись чуть дальше «стартовой локации»? В гайде не описаны тонкости реализации кастомных решений: например, про обновление Nomad с Raft 2 на 3, когда кластер построен на основе Consul.
Рассказываем, как пытались использовать функционал K8s на примере sidecar, внедряли многопоточные тесты, как подружили GitLab и Nomad. Делимся горьким опытом, советами по кастомизации Nomad и способами безопасной передачи секретов типа. env с помощью Vault в продуктовом окружении.
Доклад принят в программу конференции
SRE-практики как управление многоквартирным домом
Управление инфраструктурой IТ и управление многоквартирным домом — это сравнимые процессы, которые имеют общие цели: обеспечить бесперебойную работу системы и удовлетворить потребности конечного пользователя. Обе эти задачи подразумевают работу со сложными и многокомпонентными системами, в которых важны безопасность, мониторинг и анализ данных, оптимизация процессов и ремонтоспособность.
В выступлении я на своём личном опыте председателя ТСЖ расскажу об общности и разности подходов, а также о том, чему может научиться DevOps или SRE в эксплуатации собственных систем из реального мира.
Доклад принят в программу конференции
История одного инцидента: как парализовать работу 20к сотрудников и организовать чемпионат по игре в тетрис
Постмортем инцидента во внутренней инсталляции Yandex Tracker.
Расскажем, как устроен инцидент-менеджмент, как мы обнаруживаем инциденты и реагируем на них, что делаем, чтобы инциденты не повторялись. Покажем, почему стабильность сервиса — это процесс, а не результат.
Доклад принят в программу конференции
Безопасность, DevSecOps (2)
Kubernetes без интернета
Kubernetes сейчас запускают везде, в том числе и в банках, и в КИИ. Только вот с интернетом там дела не то чтобы обстоят плохо, его нет от слова совсем.
В докладе мы расскажем про установку самого популярного решения для запуска контейнеров там, где не ступал ни один пакет из публичной сети.
* Рассмотрим целевую схему закрытого контура.
* Отдельно остановимся на нюансах работы инструментов для создания безопасной среды.
* Покажем, как мы готовим дистрибутив к установке.
* Обсудим нюансы, возникающие на тех масштабах, на которых это делает Флант.
* Не обойдем стороной и доставку приложений в закрытых окружениях.
Доклад принят в программу конференции
С++ и безопасность: можно ли сделать лучше?
По следам гайда от Агентства национальной безопасности (NSA), в котором языки С/C+ признаются «опасными» и требующими перехода на «безопасные» C#, Go, Java, Ruby и Swift. Поймем, так ли плохо обстоят дела с безопасностью в С++ на самом деле, и что современная индустрия предлагает для решения данного вопроса.
Доклад принят в программу конференции
Узкотематические секции (4)
Перестаньте писать свою аутентификацию!
Чтобы воспользоваться приложением, в него надо сначала войти. И без аутентификации вам не обойтись...
Тонкая грань дозволенного: писать свою аутентификацию или взять готовый продукт? На докладе поговорим о базовых принципах и вариантах аутентификации и почему писать самому аутентификацию, если вы не эксперт в безопасности, — это сложно. Я расскажу о реальных факапах в написании аутентификации в компаниях. А дальше думайте сами, решайте сами...
Доклад принят в программу конференции
От CPU к GPU: когда ядра решают
GPU — революция в вычислениях или просто модный тренд? Узнайте, как GPU стали краеугольным камнем современных вычислительных технологий, и в каких ситуациях они могут стать вашими верными спутниками.
В этом докладе мы детально рассмотрим архитектурные различия между CPU и GPU, поймем, что делает GPU столь эффективным в определенных задачах. Специфичные примеры, детальный анализ и практические советы.
Доклад принят в программу конференции
Arc — внутренняя VCS для монорепозитория Яндекса
Репозиторий Яндекса просто громадный и, для того чтобы с ним вообще можно было работать, приходится прибегать к куче хитростей.
В докладе мы расскажем вам:
* Какие системы контроля мы перепробовали, прежде чем прийти к своей собственной.
* Что такое виртуализация файловой системы, как она помогает в борьбе с большим количеством файлов и какие у нее есть подводные камни.
* Как мы вычисляем лог файла на графе из десятков миллионов коммитов за пару секунд, и почему так не может git.
* О наших костылях на максималках: что делать, если поверх твоей VCS не работает rsync и XCode.
* Как свести интерфейс к трем командам и перестать думать о ветках и коммитах.
Доклад принят в программу конференции
Чтобы всех отыскать, воедино созвать: система трейсинга событий в VK Звонках
Раньше расследование обращений вида «Я не могу дозвониться!», «Меня выкинуло посреди созвона!», «Я включаю демонстрацию экрана, а её никто не видит!» у нас в команде VK Звонков могло походить на поиск иголки в стоге сена или гадание на картах Таро. Мы тратили на выяснение причины жалобы огромное количество времени и сил. Но теперь всё изменилось!
Мы разработали и внедрили систему трейсинга событий, происходящих в звонке: начиная от подключения первого пользователя и заканчивая завершением звонка.
В докладе я расскажу об архитектуре данной системы и об устройстве регистрации событий в условиях высокой нагрузки. А также поделюсь примерами из нашей практики, когда трейсинг в Звонках оказался крайне полезен.
Доклад принят в программу конференции
Эксплуатация систем (8)
«Mattermost» на стероидах: как мы запустили и развиваем корпоративный мессенджер
В докладе расскажем о том, с какими трудностями мы столкнулись при использовании корпоративного мессенджера Mattermost. Доклад будет полезен тем, кто только собирается развернуть собственный корпоративный мессенджер, чтобы понять, на что обратить внимание и какие узкие места можно обнаружить. Пройдем путь развития сервиса от 20 человек до 10 тысяч: что делали, чтобы улучшить его работоспособность и облегчить жизнь при поддержке/администрировании.
1) Да будет свет, или Как все начиналось: почему появилась необходимость в корпоративном мессенджере. Первая версия сервера 3 в 1 (БД, сервер Mattermost + сервер авторизации все вместе). Добавление инструментов. Привлечение IT-команд.
2) Первый блин не комом! Реакция пользователей: плюсы и минусы. Добавление функционала на основе Обратной Связи (плагины). Увеличение функционала — самописные плагины. Как мы придумали использовать скрытые сообщения (что дало: экономия, безопасность, сокращение времени решения задачи).
3) А нам 1 год! Увеличение пользователей и устранение узких мест. Настройка отказоустойчивости (уменьшаем время простоя; делаем общий конфиг без синхронизации). Наработка автоматизаций (скрипт автообновления, скрипт автопроверки версий, автоочистка файлового хранилища, автоочистка каналов). Вторая версия сервера + s3-хранилище. Создаем свой сервер видеозвонков на базе LiveKit.
4) Что будет дальше? Выводы, что имеем сейчас. Графики доступности сервиса (было/стало), графики нагрузок на систему (было/стало). Новый функционал, который планируем внедрить: интеграция с внутренней HR-системой, интеграция с Outlook.
Доклад принят в программу конференции
Эксплуатация cilium в кластерах VK
* Что было до cilium (параллельный интерактив «Какой у вас CNI»)?
* Причины появления cilium в VK.
* Эксплуатация cilium в наших кластерах.
* С какими задачами и проблемами столкнулись при эксплуатации cilium?
* Сценарии отказа cilium.
* Мониторинг cilium.
* Минусы cilium.
* Онлайн-тест — надо ли вам переходить с calico на cilium?
Доклад принят в программу конференции
Как наши системы приобретают устойчивость, почему ошибки полезны, и как начать их использовать во благо
На текущий день не так легко найти человека, который постоянно работает только над небольшой частью кода и не затрагивает остальных частей системы вокруг него. В такой ситуации возможность ошибки или конфликта велика, а значит, мы вынуждены уметь с ними бороться.
В докладе на примере существующих информационных систем я раскрою понятие самой «системы» и процессов взаимодействия с ней, а также помогу с новой стороны посмотреть на природу отказоустойчивости. С примерами и ссылками расскажу о том, какую реальную пользу могут принести инциденты и как эффективнее извлекать уроки из подобных событий. Не ограничимся стандартными «пишите post-mortem ©», а затронем тему практической пользы анализа.
Доклад принят в программу конференции
Создаём отказоустойчивый деплой приложений в Kubernetes. Принципы, паттерны, приёмы
В google SRE book приводится статистика, что около 70% сбоев приходится на этап внесения изменений в работающую систему. То есть создание хорошего, отказоустойчивого деплоя может принести вам до 70% успеха в деле обеспечения надёжности ваших приложений.
В процессе развития IТ-индустрии сформировалось несколько популярных подходов и стратегий деплоя. Давайте разберём варианты их реализации в Kubernetes как самой популярной инфраструктурной платформы.
Доклад принят в программу конференции
Используй Силу, Люк: Single Pane of Glass в мире SRE
Один из антипаттернов наблюдаемости — это Wall of Dashboard.
В большинстве компаний есть огромное количество дашбордов, как правило, они создают ряд проблем: информационную перегрузку, потерю фокуса, сложность восприятия и затруднение выявления важных трендов. Ответьте себе на вопрос: можно ли, посмотрев на дашборды, понять, работает ли система? Если ответ нет, то вы выбрали нужный доклад.
В докладе я приведу аналогии из разных сфер, в которых тоже используется статус панели для определения «живости» сервиса.
* Рассмотрим один из вариантов правильной организации дашбордов.
* Рассмотрим стратегию упрощения дашбордов.
* Разберем, как четко определенные метрики могут помочь в создании более понятных и эффективных дашбордов.
Доклад принят в программу конференции
Как мы сэкономили бюджет на облачные ресурсы, используя масштабирование и самописный плагин для разворачивания стендов
Разработка рекомендательной платформы с использованием ML SOTA-алгоритмов требует больших CPU/RAM-вычислительных ресурсов. К примеру, на одном из экземпляров нашей рекомендательной платформы до оптимизации использовалось ~ 930 CPU/4,7 Tb RAM только на ML.
Мы расскажем, как при помощи динамического выделения стендов/ресурсов на базе технологий Node Autoscaler, HPA, самописного плагина для автоматического развертывания стендов можно повысить эффективность разработки, сэкономив до 30% стоимости. При этом сохранить темпы роста количества разрабатываемых фич и количества партнёров и сделать так, чтобы разработчики, в том числе и DS, могли проводить свои эксперименты, не мешая друг другу в облаке Cloud.ru.
О чем пойдёт речь:
1. О нашей рекомендательной системе и основном техническом стеке.
2. Как мы сделали feature-окружения для разработки моделей.
3. Как мы настроили масштабируемую систему в облаке для сокращения стоимости и в результате получили до 30% суммарной экономии на всех стендах.
Доклад принят в программу конференции
MaaS — мониторинг как сервис
MaaS — monitoring as service.
* Как узнавать о проблемах с сервисами до первого обращения клиента?
* Как использовать мониторинг на пользу, не подглядывая в монитор соседа?
* Как не «утонуть» в постоянно дребезжащих алертах?
* Как мониторинг улучшает отношения между бизнесом и IТ?
Доклад принят в программу конференции
Сменить 4 системы мониторинга за 4 года и остаться в живых
Расскажу, как мы поменяли 4 системы мониторинга за 4 года. Покажу 5 факапов, которые стали причиной изменений (однажды мы посреди ночи разбудили десятки человек из-за сбоя системы мониторинга).
Объясню, почему нам иногда проще поменять всю систему мониторинга, чем что-то менять в текущей.
Расскажу, насколько замена системы мониторинга влияет на разработчиков и что им приходится испытывать во время изменений. И как во время турбулентности системы мониторинга оставить веру в его адекватность и корректность.
Какие выводы мы делаем, и что делать, если хочется хранить метрики долго, а платить бесконечное количество денег не получается.
Доклад принят в программу конференции
Безопасность, информационная безопасность (5)
Актуальные угрозы безопасности в Large Language Model Applications
LLM уже давно на склоне просветления в своем маленьком цикле хайпа, а значит настало время погрузиться во все аспекты безопасности моделей и приложений, их использующих.
В рамках доклада рассмотрим топ-10 угроз для LLMA, кейсы атак и способы предотвращения угроз. Проведем приоритизацию, соотнесем со знакомыми примерами и в кулуарах поделимся своими находками и «случаями на производстве».
Доклад принят в программу конференции
Уязвимости платформы Hyperledger Fabric
* Уязвимости консенсусов платформы Hyperledger Fabric (Raft, Kafka, SmartBFT).
* Уязвимости и архитектурные особенности платформы Hyperledger Fabric.
* Потенциальные атаки на протоколы и компоненты платформы.
Доклад принят в программу конференции
Как собрать контейнер и не вооружить хакера
Всё, что вы положите в контейнер, может быть использовано против вас. Именно такой фразой можно описать Living off the Land (LotL) атаки.
LotL — это атаки, при которых злоумышленник использует легитимные утилиты для выполнения вредоносных действий. При таких атаках злоумышленнику не потребуется установка специального «хакерского» софта, ему будет достаточно инструментов, добытых на местности. Многие стандартные инструменты детектирования становятся бесполезны против таких атак.
В докладе разберём практические примеры LotL-атак в контейнерных инфраструктурах, а также обсудим, как от них защищаться.
Доклад принят в программу конференции
zkSNARKs — криптографические пруфы для задач масштабирования и безопасности
Доклад описывает технологию zkSNARKs, используемую для масштабирования сервисов и в различных zero-knowledge-протоколах. Эта молодая технология сейчас находится на острие развития современной криптографии, ей занимаются в топовых университетах мира, а решения на ее основе позволяют доказывать исполнение вычислений на trustless-клиентах с легкой, constant-sized-верификацией на стороне сервера. Она идеально ложится на блокчейн-технологии, где легкая верификация располагается на сильно ограниченной в ресурсах блокчейн-стороне, но и для других архитектур открывает множество новых возможностей. Например, сверхлегкие доказательства наличия пользователя в некотором списке, аутентификация без обращения к базе пользователей, доказательства нахождения некоторого значения в storage и т.п.
Расскажем про основную концепцию арифметических circuits, покажем практические примеры простых доказательств, опишем дизайн некоторых протоколов и ограничения подобных решений. Сама технология уже несколько лет успешно используется в production, где отвечает за реальные деньги пользователей, используется для масштабирования и защиты финансовых активов, активно развивается в проектах, не имеющих аналогов в традиционном поле.
Доклад принят в программу конференции
BrainSploit. Эксплойты социальной инженерии
Легендарный Кевин Митник рассказывал о своем практическом опыте социальной инженерии. Мы же, проводя проекты по социо-техническому тестированию на проникновение, в какой-то степени лишь повторяем его сценарии или сценарии коллег. Но почему? Потому что мы отталкиваемся только от чьего-либо опыта, а не от базы. Представьте, насколько был бы эффективен пентест в иной области, если бы все практически бездумно повторяли проверки коллег, не понимая, как оно работает изнутри?
В этом докладе мы поговорим с вами о базе. О тех психологических механизмах, которые лежат в основе психологии влияния. Эти основы, подтвержденные многочисленными исследованиями и экспериментами социальных психологов 20 и 21 века, крайне эффективно используются в различных областях — от фишинга, маркетинга и продаж до любовных аферистов и мошенников кол-центров «службы безопасности». Эти уязвимые механизмы — наше эволюционное наследие, legacy-код нашего мозга.
В этом докладе мы разберём примеры скриптов, полученных из мошеннического кол-центра в Бердянске, а также примеры из собственной практики автора. Эта база позволит вам писать собственные успешные сценарии и эффективнее противостоять вредоносным манипуляциям.
Доклад принят в программу конференции
BigData и машинное обучение (10)
Архитектура бесконечной персональной ленты Яндекс Маркета
В конце прошлого года мы запустили бесконечную персональную ленту на главной странице приложения Яндекс Маркет. Лента — это то, что пользователь видит в первую очередь, поэтому она должна работать быстро и отдавать релевантный контент.
Доклад посвящен нашему пути развития от статичных рекомендательных каруселей к бесконечной ленте.
В докладе я расскажу:
* как мы поменяли архитектуру рекомендаций, чтобы лента работала в 2 раза быстрее;
* об особенностях ранжирования и устройства рекомендательной системы;
* как мы описываем рекомендательные программы на Python для рантайма на C++.
Доклад принят в программу конференции
Поймать за 60 секунд: как быстро реагировать на взломы, используя поведенческие трансформеры в Почте
Почтовый ящик для злоумышленника — это настоящая «золотая жила» чувствительной информации, доступ к которой можно получить разными сомнительными способами. Мы ставим своей целью воспрепятствовать этим атакам.
Кто такие «мы»? Мы — это направление ML Integrity в Почте Mail. ru, и мы отчетливо понимаем две вещи:
* каждая лишняя секунда, в течение которой злоумышленник имеет доступ к аккаунту, может привести к катастрофическим последствиям для пользователя;
* злоумышленники, получая доступ к почте, ведут себя, мягко говоря, аномально и крайне несвойственно для владельца ящика.
В докладе будет рассказано, как, полагаясь на эти две посылки, мы разработали систему детекта взломов — FieldMarshal (Fast Mail. Ru Supervisor Hacking Alert). FieldMarshal выявляет скомпрометированные ящики, основываясь на поведенческом эмбеддинге пользователя, причем время реакции на несанкционированное проникновение составляет считанные секунды.
Доклад будет полезен широкому кругу ML-аудитории. А если вы всегда мечтали анализировать поведение своих пользователей в онлайне SOTA-архитектурами, но не знали как, то в докладе вы, однозначно, найдете множество ответов на свои вопросы.
Кроме прочего, в докладе мы осветим:
* как обучать transformer-based эмбеддинг пользователя и как знания текстовых моделей могут помочь вам в этом;
* как спроектировать систему, которая в online-режиме будет распознавать взломы в потоке действий;
* как при помощи одного большого проекта прокачать в команде ML, System Design и разработку микросервисов.
Доклад принят в программу конференции
Рекомендации медиаконтента ВКонтакте: как мы строим персонализированную ленту «Для Вас»
Мы рассмотрим полный путь построения новой ленты рекомендаций ВКонтакте с фокусом на персонализированном медиаконтенте. Особое внимание уделим ML, аналитической и бэкендной части задачи. Вместе узнаем, какие алгоритмы машинного обучения применимы в данной задаче, как с ними работать в рамках огромного массива данных (терабайтов). Как контролируемо ставить множество А/B-тестов и тестировать сразу много гипотез в каждый момент времени, чтобы как можно быстрее двигаться к нашей конечной цели — новой ленте. А также выясним, как построить бэкенд-архитектуру вокруг такого высоконагруженного продукта, как лента рекомендаций ВКонтакте.
Доклад принят в программу конференции
Как выглядит борьба со спамерами в Антифроде билайн глазами Data Scientist
Команда Антиспам (подразделение Антифрод) занимается созданием услуги по защите абонентов от нежелательных (навязчивых, рекламных) спам-вызовов, а также повышением информированности абонентов о таких звонках.
Услуга работает на уровне сети, не задействуя устройство абонента, и блокирует подозрительные звонки, перенаправляя их на голосового ассистента, а абонент получает SMS или push-уведомление о характере звонка.
Data Science в команде находит применение в:
* построении механизмов сбора и обработки обратной связи и получении разметки (таргета) на основе всех доступных источников (интернет, мобильное приложение, опрос абонентов, экспертные соображения, жалобы и обращения)^;
* построении классификатора спам-номеров, выявляющих токсичные номера с разделением на категории (финансы, медицина, опросы...)^;
* мониторинге качества решений как на офлайн (точность, полнота, скорость определения — в номерах, звонках, жертвах), так и онлайн (отток, средняя длительность, кол-во спамеров) метриках^;
* выявлении оптимальной версии модели на основе А/В-тестирования^;
* автоматизации процессов переобучения, валидации, мониторинга качества данных и инференса моделей^;
* поддержании алгоритмов в рабочем состоянии в условиях сильной сезонности и дрифта признаков, а также при приспособлении спамеров к новым условиям (под воздействием этикетки, недозвонов) и смене поведения (переход в мессенджеры, частая смена номерных емкостей).
Мы начнем доклад с краткого обзора рынка антиспам-услуг и существующих решений, сравнив их с целевым дизайном, к которому мы пришли в билайн. Мы также обрисуем текущую ситуацию на цифрах в терминах количества звонков, приходящихся на нашу базу, и их распределении внутри дня, активных номеров и их лайф-тайма, особенности трафика спам-номеров.
Перед тем, как мы сконцентрируемся на сердце услуги — алгоритмах машинного обучения, отвечающих за обнаружение токсичного трафика, мы рассмотрим доступные нам способы получения таргета и их ограничения, а также технические (подмена номеров, задержка данных) и логические (использование одного номера под разные цели) сложности определения спама.
Затем мы проведем обзор комплекса существующих моделей и офлайн- и онлайн-метрик, которые мы отслеживаем. Мы поясним, почему была выбрана именно такая конфигурация и какие альтернативы были отброшены — и почему.
Далее мы расскажем про то, как устроено А/В-тестирование в нашей команде, и поделимся краткими результатами первых пилотов.
И в завершение мы пройдемся по ближайшими планам, которые нам предстоят для поддержания качества алгоритмов с учетом изменения поведения спамерами (появление номеров-однодневок, перевод трафика в WhatsApp, маскировка под положительный трафик).
Доклад принят в программу конференции
Рецепт идеальной разметки в Computer Vision
За последний год мы собрали, разметили и выложили в открытый доступ 3 больших датасета для различных задач компьютерного зрения (Computer Vision, CV): HaGRID, EasyPortrait и Slovo. Использование краудсорсинга платформ для разметки этих данных подвигло нас создать методы агрегации разметки, которые позволили добиться максимальной точности.
Решение обобщить эти методы на другие CV-задачи привело нас к созданию фреймворка агрегации, о котором и пойдет речь в докладе. Мы расскажем о:
* самых популярных способах разметки больших данных в CV: о краудсорсинге и нейронных сетях;
* необходимости агрегировать разметку на примере HaGRID, EasyPortrait и Slovo;
* мотивации создания фреймворка агрегации и о его реализации.
В конце продемонстрируем работу фреймворка для различных типов CV-разметки. Фреймворк доступен в Open Source, и мы планируем его поддерживать и обновлять, в том числе ориентируясь на пожелания комьюнити!
Доклад принят в программу конференции
Data Sketches — как съесть слона целиком (даже если он бесконечный)
При обработке и анализе данных часто возникают задачи, которые сложно масштабировать из-за огромного количества требуемых вычислительных ресурсов или значительного количества времени для получения точных результатов. Примеры таких задач — подсчет уникальных элементов, подсчет распределения элементов, определение частоты тех или иных элементов и т. д.
Если приблизительные результаты при решении подобных задач допустимы, то существует класс алгоритмов, называемых потоковыми или скетчами, которые позволяют получить результат (в заданных пределах погрешности) на несколько порядков быстрее. В случае пакетной обработки данных, жизнеспособных альтернатив часто может и не быть, а в случае потоковой обработки данных скетчи — единственное известное жизнеспособное решение.
Дата-скетчи (HyperLogLog, CPC, Theta, Count-min, Fdt, KLL и др.) могут стать отличным инструментом для всех, кому необходимо извлекать полезную информацию из больших объемов данных на ежедневной основе, используя приемлемое количество времени и ресурсов.
Доклад принят в программу конференции
Как CV помогает пользователю найти товар мечты по визуальному образу
В своем докладе я расскажу, как мы вдохновились игрой «Акинатор» (https://ru.akinator.com/), которая угадывает загаданного вами персонажа с помощью наводящих вопросов, а мы взяли за основу похожий подход и создали продукт, который помогает нашим пользователям находить товар мечты.
«Хочу новую футболку, но не знаю какую...»
Как же это работает на практике, когда в голове пользователя запрос звучит не слишком конкретно? За всем этим стоит применение машинного обучения и Computer Vision, которые позволяют определять атрибуты товаров и искать похожие на них.
Заглянем под капот Laкинатора (да-да, именно так мы его и назвали) и узнаем, как путем проб и ошибок мы выстраивали логику обучения, какие бизнес-результаты принесли.
Доклад принят в программу конференции
Чистые метки для ML
Расскажу про связь качества моделей и меток, на которых она обучена, про способы улучшить качество меток, полученных от крауда (Toloka, MTurk и аналоги). Поделюсь историями из жизни — плохими и хорошими примерами, как можно организовать сбор меток, и как их качество помогает улучшить распознавание речи, распознавание текста по картинке, синтез речи и другие ML-модели.
Доклад принят в программу конференции
Быстрая обработка данных в data lake с помощью SQL
Популярные распределенные SQL-движки, такие как Trino, Presto и Dremio, умеют выполнять SQL-запросы непосредственно к файлам в озере данных, что позволяет компаниям более гибко и эффективно анализировать свои данные за счет уменьшения потребности в ETL и снижения нагрузки на корпоративное хранилище. Подобные продукты используют принцип разделения compute и storage, при котором обработка и хранение данных происходит на разных серверах. Несмотря на многочисленные преимущества, разделение compute и storage приводит к серьезному вызову: как обеспечить высокую производительность обработки информации, хранящейся на удаленных серверах? Конкурентоспособен ли такой подход по сравнению с классическими хранилищами данных?
В докладе мы рассмотрим реализацию ключевых оптимизаций, которые позволяют Trino, Presto и Dremio быстро «перемалывать» данные из вашего озера: использование метаданных Parquet и ORC для уменьшения количества зачитываемых данных (partition pruning, project/filter/aggregate pushdown), динамическая фильтрация (runtime filtering), материализованные представления (materialized views), а также многочисленные кэши: кэш метаданных, кэш данных и кэш промежуточных результатов запросов.
Доклад принят в программу конференции
Hadoop в Облаке: история миграции сотен петабайт
Для OK Hadoop — это ключевой компонент инфраструктуры: он активно используется как для реализации продуктовой аналитики, так и для продакшна рекомендательных систем. С точки зрения объемов это более 200 PB в HDFS, 70k vcores, 200 TB RAM.
Вся инфраструктура в Одноклассниках (и не только) разворачивается во внутреннем контейнерном облаке, в прошлом году очередь дошла и до Hadoop.
Поговорим о проблемах железного Hadoop, о том как запустить Hadoop в контейнерах в Облаке, а также о схемах миграции сотен петабайт (и конечно же, о проблемах в пути).
Доклад принят в программу конференции
Нейронные сети, искусственный интеллект (12)
Переводчик с языка, на котором нельзя говорить и писать
Представьте себе мир, где слова не используются для общения! Наш доклад раскрывает секреты создания переводчика для языка, которым нельзя говорить и писать. Узнайте, почему русский жестовый язык (РЖЯ) — не просто жесты, а мощный инструмент передачи абстрактных понятий. Какие трудности возникают при переводе РЖЯ и как их преодолеть? Будьте первыми, кто узнает о новых данных и инновационных подходах, основанных на нейросетях! Не упустите шанс овладеть новым языком — языком жестов! Готовы ли вы открыть дверь в мир без слов и звука? Мы расскажем о проблемах и особенностях русского жестового языка и как мы решаем эту задачу в нашей команде. В качестве бонуса выкладываем большой датасет в открытый доступ, что поможет ускорить реализацию AI-сервисов распознавания и генерации РЖЯ!
Доклад принят в программу конференции
Краткая история NLP: от T9 до ChatGPT
В рамках доклада хочется осветить историческую хронологию того, как человечество пришло к текущему состоянию NLP-индустрии (появление ChatGPT и других LLM), какие челленджи, сложности и препятствия стояли перед сообществом и что нас может ждать дальше.
Обсудим следующее:
1. Состояние NLP до появления модели трансформера в 2017 году.
2. Что такое языковые модели.
3. Появление GPT-1, BERT, и как transfer learning изменил индустрию.
4. Появление GPT-2 и zero-shot.
5. Появление GPT-3, больших языковых моделей и few-shot.
6. Появление инструктивных моделей Flan-T5, Instruct-GPT, ChatGPT.
7. Их возможности, ограничения и перспективы.
Доклад принят в программу конференции
LLMops: что есть, кроме ChatGPT, и как ты можешь развернуть это
1. ML-ликбез. Про используемые в дальнейшем термины простыми словами.
2. Классический MLops и его принципы.
3. Почему Large Language Models действительно такие крутые.
4. Эволюция генерации языка. Как мир пришел к LLM.
5. Многообразие LLM: основные модели и их особенности.
6. Развернуть LLM и радоваться жизни: обзор способов, лицензий и требований к железу.
7. Квантизация и файн тьюнинг — убрать нельзя использовать.
8. Векторные базы данных и LangChain.
9. LLM всегда ли нужен?
10. Заключение.
Доклад принят в программу конференции
Внедрение GigaChat LLM в виртуального ассистента: техническая реализация
В докладе расскажем о внедрении LLM GigaChat в виртуального ассистента Сбера.
Обсудим следующие вопросы:
* цель. Зачем LLM в виртуальном ассистенте;
* использование внешних навыков;
* процесс обработки запроса;
* структура промпта;
* эксперименты и результаты.
Доклад принят в программу конференции
Новые возможности в HR tech. Решаем генеративные задачи с помощью: Transformer + LoRA + RLHF
Успех ChatGPT вдохновил многих исследователей попробовать технологии, которые лежат в основе обучения подобных моделей. Подход к Fine-tuning больших моделей с помощью LoRA-адаптеров, а также механизм RLHF для учета мнения людей существенно упростили решение генеративных задач. А Instruction tuning позволил использовать генеративные модели в кейсах, в которых сложно формализовать задачу заранее.
Мы в Работа.ру давно планировали решить несколько генеративных задач, но с классическим подходом к обучению моделей это было слишком ресурсозатратно. Сейчас же несколько кейсов уже реализованы и ушли в прод.
В своем докладе я:
* расскажу о самих технологиях SFT, LoRA, RLHF, Instruction tuning;
* покажу примеры реализации и расскажу о некоторых особенностях и подводных камнях этих технологий;
* подробно расскажу о реализованных нами кейсах в сфере HR tech;
* поделюсь архитектурными решениями;
* расскажу о ближайших планах.
Доклад принят в программу конференции
Real-time-распознавание лиц: методы обучения быстрых и точных моделей для работы на мобильных девайсах
Наиболее точные решения по распознаванию лиц строятся на основе больших моделей глубокого обучения. Для успешного продуктового внедрения на мобильные платформы в условиях ограниченных вычислительных ресурсов эти модели должны быть не только точными, но также быстрыми и легковесными.
В этом докладе разберем следующие вопросы:
* Как выбрать современную компактную архитектуру с наилучшим балансом скорости и качества?
* Какие трудности могут возникнуть при распределенном обучении face recognition-модели на датасетах с миллионами изображений и сотнями тысяч классов?
* При помощи каких методов передачи знаний от больших моделей к более маленьким можно минимизировать потери в точности из-за сокращения размера архитектуры?
Доклад принят в программу конференции
NeuroHD: охота на шакалов, или Деплой и ускорение сеток в высоконагруженной инфраструктуре VK
NeuroHD — технология VK улучшения качества видео. С помощью NeuroHD мы увеличиваем разрешение видео, повышаем частоту кадров и убираем шумы. Под капотом NeuroHD использует две нейронные сети — одну для улучшения качества, другую для повышения частоты кадров. Доклад посвящен тому, что случилось после обучения нейронных сетей.
* Как сетки попали в прод, и что с ними произошло.
* Как получилось ускорить пайплайн в 10 раз.
* Как удалось конвертировать сеть с нетипичной архитектурой в TensorRT.
* Как удалось удачно зарефакторить код и упростить интеграцию.
Доклад принят в программу конференции
Движки распознавания речи ВКонтакте
В докладе расскажу о движках распознавания речи ВКонтакте. Рассмотрим особенности онлайн- и офлайн-движков: какие архитектуры нейронных сетей используем, как обучаем и адаптируем их под продукты. Расскажу, какие дополнительные трюки можно сделать и какие модули добавить, чтобы улучшить качество работы движка распознавания речи.
Доклад принят в программу конференции
Генеративные языковые модели
В данном докладе будет рассмотрено развитие идей NLP от вероятностных моделей в прошлом до современных больших языковым моделей. Мы поговорим об интересных архитектурах и путях развития.
Доклад принят в программу конференции
Обучение бота поддержки для банка: качественные данные и тысячи интентов
В Тинькофф робот Олег для поддержки пользователей работает несколько лет и сейчас NLP-команда обучает модели для более 1000 тематик (интентов) по разным направлениям и продуктам.
Расскажу, как развивались наша система классификации интентов и подходы к работе, с какими ограничениями сталкивались и как их решали. Обсудим подробно пайплайн по поиску новых тематик, сбору датасета и какие модели можно использовать. А также поговорим про то, как поменялся мир и наши задачи после появления LLM.
Доклад принят в программу конференции
Zero-cost I/O и fault tolerance в распределенном глубоком обучении
Поделимся, как мы в Яндексе сделали zero-cost-инфраструктуру распределенного обучения поверх распределенной транзакционной файловой системы:
1. Никаких модификаций однопоточного однопроцессного кода обучения на Python — экономим время DataScientist’а. Не нужно быть бэкендером-профессионалом, чтобы писать распределенный код обучения.
2. Никакого дополнительного оверхеда по производительности под Python GIL при переходе к распределенному обучению — улучшаем утилизацию железа.
3. Автоматическое масштабирование обучений с 1 GPU на сотни видеокарт, I/O на чтение/запись в десятки GB/s — улучшаем общую емкость систем обучения.
Доклад принят в программу конференции
Как мы запускали YandexGPT
• Какие этапы проходила модель от pretrain-а до релиза в продукт, и с какими сложностями мы столкнулись
• Как мы починили баг в фреймворке распределенных коммуникаций NCCL и ускорили pretrain на 30% для всех
• Как уложиться на инференсе в имеющиеся вычислительные ресурсы, ускорив модель в N раз без значительных потерь в качестве
Доклад принят в программу конференции
Технологии будущего (2)
Prompt engineering: путь к эффективной работе с ChatGPT
В ходе мастер-класса мы начнем с основных принципов работы языковых моделей и детально разберем роль промптов во взаимодействии с ChatGPT. Особое внимание уделим мастерству формулировки промптов, которое является ключевым для извлечения максимальной пользы из возможностей искусственного интеллекта.
На мастер-классе рассмотрим как аспекты применения ИИ в разработке и тестировании, так и методы работы с ChatGPT для проектирования архитектуры. В ходе мастер-класса разберем конкретную архитектурную задачу, вместе с участниками спроектируем архитектуру решения используя ChatGPT в качестве copilot ассистента архитектора.
Участники смогут на практике улучшить свои промпты и получить ценный навык для работы с современными языковыми моделями.
Доклад принят в программу конференции
Добро пожаловать в реальный мир, робот!
Прежде чем выпускать беспилотный автомобиль на дороги города, необходимо удостовериться в его безопасности и эффективности. Конечно, можно для этого улучшать тестовое покрытие компонентов, выстраивать более чувствительные метрики для оценки ML-моделей, описывать сотни тестовых сценариев для анализа поведения беспилотного автомобиля в конкретных дорожных ситуациях. Однако реальный мир оказывается намного сложнее, чем это могла бы предвидеть любая рукописная система тестирования.
В своём докладе я расскажу:
* как мы построили систему симуляции, позволяющую тестировать новые беспилотные автомобили на произвольных кейсах из реального мира;
* откуда в симуляторе берутся 2 реальности и из чего они состоят;
* к каким проблемам приводит эффект бабочки и как обратить эти проблемы в преимущества;
* зачем мы заставили беспилотное авто проходить тест Тьюринга и как с помощью этого теста померили то, что не смог замерить человек.
Доклад принят в программу конференции
Бэкенд, теория программирования (5)
Eventual consistency в stateful-сервисе
* Распределенное хранилище размером 80+ Тб.
* Проблемы масштабирования.
* Невозможность строгих гарантий.
* Откуда взялась потребность усложнять простую схему.
* Как изначально звучал продуктовый заказ.
* Как устроена транзакционность в Метрике.
* Какие проблемы возникают, когда появляются связи между пользователями.
* Как мы пошли «в лоб» и к чему это привело.
* Как мы пришли к идее «команд».
* Переход к eventual consistency.
* Планировщик и decision maker как участник конвейера.
Доклад принят в программу конференции
Точки отказа в хайлоад-системах. Backend
* Как разработчик видит хайлоад (джун/мидл/сеньор);
* виды точек отказа в хайлоаде с точки зрения backend;
* память сервиса под нагрузкой;
* пулы потоков;
* пулы соединений к базе данных;
* пулы tcp-соединений;
* пулы jms-сессий и соединений;
* реактивность (project reactor) и распространенные ошибки (java/kotlin);
* прокси и балансировщики;
* примеры инцидентов и их решение (как можно было предотвратить);
* диагностика и мониторинг хайлоад-проблем (практические примеры мониторинга).
Доклад принят в программу конференции
Под капотом быстрого сплитования трафика для А/B-тестирования: оптимизация производительности и инфраструктурные уроки
В эпоху быстро меняющихся потребностей пользователей, платформа A/B-тестирования становится ключевым инструментом принятия решений в любом продуктовом сервисе. С учетом того, что наш онлайн-кинотеатр обслуживает миллионы пользователей по всей России и имеет нагрузку в несколько тысяч запросов каждую секунду, мы стремимся к тому, чтобы сервис сплитования трафика для А/B экспериментов был максимально незаметным для пользователей. Отсюда и цель: время ответа при расчете групп для А/В-экспериментов должно быть не более 10 мс. Поэтому возникает вопрос: как именно мы достигаем такой эффективности, и что может пойти не так?
Приглашаем вас на наш доклад, где мы поделимся тем:
* что такое A/B-эксперименты и как происходит сплитование трафика в них;
* как мы искали узкие места в производительности сервиса на Python и устраняли их;
* как нам удалось разогнать сервис до времени ответа в 5 мс в 99,9% запросов, но всё равно наблюдать большой процент запросов, отвалившихся по тайм-ауту;
* как мы расследовали причины тайм-аутов к нашему сервису и нашли проблемы там, где не ждали — в инфраструктуре. И как это обнаружение помогло другим других сервисам компании;
* что бы мы сказали сами себе, если бы встретились полгода назад.
Доклад принят в программу конференции
Как устроена система сканирования робота Spectro
Доклад описывает принцип работы системы сканирования на роботе Spectro (на уровне компьютерного зрения), челленджи, с которыми мы столкнулись по Perfomance во время разработки, как выполняется базовая бизнес-логика для проведения инвентаризации робота, а также какие результаты собирает робот и как склад ими пользуется уже сейчас.
Доклад принят в программу конференции
Как делать бинарно-совместимые API на компилируемых языках?
Скажем, мы разрабатываем продукт на компилируемом языке. Рано или поздно наступает момент, когда нужно разделить продукт на несколько компонентов, развивающихся независимо. Или дать возможность расширять функциональность плагинами, разрабатываемыми отдельными коллективами или сообществом.
Здесь мы сталкиваемся с проблемой обеспечения прямой и обратной совместимости: что произойдет при обновлении одного из компонентов независимо от другого?
Если бы компоненты были микросервисами, в качестве интерфейса выступал бы JSON поверх HTTP или другой высокоуровневый протокол RPC. Но мы хотим сочетать независимость развития компонентов с нативным вызовом функций и нативным представлением структур.
Доклад дает обзор подходов к этой проблеме и набор практических приемов.
Доклад принят в программу конференции
Цифровая культура / CTO-трек (2)
Масштабирование OpenAPI в API-first-компании
Мы в Flussonic два года назад резко перешли на API-first-подход к построению систем, и это было необходимо для возможности расти и развиваться. Мы внедрили OpenAPI 3.1 для коммуникации сложных систем на Erlang, Golang, Python, Rust, Rails, C, Node.js. Репозиторий со схемами стал местом, где бизнес может договариваться с разработкой на простом и формальном языке. В нём сейчас 56 тыс. строк кода в YML-файлах и 140 тыс. строк кода в результирующих json-файлах.
Поддержание его читаемым, понятным, лаконичным инструментом, позволяющим согласовывать сущности между различными командами, потребовало собственных доработок кодогенераторов, валидаторов и прочего инструментария для работы с OpenAPI.
В докладе будет рассказано про доработки инструментов вокруг такого репозитория с OpenAPI-схемами, который становится главным местом сборки целой компании.
Доклад принят в программу конференции
Как на практике оптимизировать расходы на облако с помощью FinOps
В своем докладе я расскажу, какие FinOps-инструменты сейчас присутствуют на российском рынке, как выглядит процесс их внедрения и к каким результатам может привести.
FinOps — это развивающаяся дисциплина управления облачными финансами, основной целью которой является увеличение рентабельности бизнеса за счет повышения эффективности облачной инфраструктуры. Внедрение FinOps позволяет ответить на вопросы: кто, сколько и на что тратит в организации, позволяя организовать эффективный учет и контроль расходов и привязать облачные расходы организации к конкретным бизнес-метрикам.
Основной причиной появления FinOps стало увеличение неэффективности использования облачных ресурсов. Данный показатель называется cloud waste и на текущий момент равняется 30% — это означает, что около 30% всей облачной инфраструктуры, которые используют различные организации в мире (или около 147 миллиардов долларов) потрачены впустую, не принося никакой пользы владельцам инфраструктуры.
Доклад принят в программу конференции
TechTalk (9)
Как перекачивать гигабайты данных из закрытого контура сети
Процесс построения интеграции между сегментами сети разного уровня доступа — это задачка со звездочкой. И если вы в первую очередь подумали об инфраструктуре, то начали вы с самого простого.
А вот как в реальности выполнить безопасную передачу данных и какие прикладные задачи по факту придется решать, об этом постараюсь рассказать на примере разработки и сопровождения шины данных в Мир Plat. Form.
А также поделюсь советами, которые были выработаны на основании решении болей в нашей команде. Возможно, они помогут и вам.
Доклад принят в программу конференции
Точка компромисса между бизнесом и производительностью АС
О чем поговорим: как нам балансировать рост бизнес-нагрузки и возможность по производительности и отказоустойчивости АС на примере комплекса розничных CRM-систем Газпромбанка.
Доклад принят в программу конференции
Опенсорс как вклад в технологическую эволюцию
* Что такое опенсорс для Яндекса?
* Почему мы выкладываем наши технологии в открытый доступ.
* Как структурировать работу с опенсорс внутри большой корпорации? Какие подходы сегодня есть, и как это делает Яндекс, разделяя проекты по разным типам?
* Open Source и Inner Source как двигатель культуры разработки внутри компании.
Доклад принят в программу конференции
Kubernetes в Мир Plat.Form
* Организация, настройка и поддержка платформы Kubernetes в Мир Plat.Form.
* Интеграция команд проектов в Kubernetes.
* Полезные инструменты управления, которые зарекомендовали себя.
Доклад принят в программу конференции
Anti-Fraud-платформа — технологии верификации
* Антифрод глазами бизнеса и СТО, ключевые темы.
* Технологическая основа антифрода в билайн.
* Как решаются проблемы масштабирования при постоянно растущей нагрузке и ее сезональности, какие процессы и технологии используются.
* Межоператорский антифрод и экосистема.
Доклад принят в программу конференции
Событийно-ориентированные микросервисы и проблемы перехода
* Что кроется за привлекательностью событийной архитектуры и риски распределённой архитектуры.
* Нюансы нагрузки при разработке событийной архитектуры.
* Инфраструктурные вопросы при переходе на событийно-ориентированную архитектуру и микросервисы.
* Возможно ли в организации бесконечное хранение событий?
* Организационные вопросы при переходе на событийную архитектуру.
Доклад принят в программу конференции
YandexGPT: как разработали и что будет дальше
Осенью Яндекс запустил уже вторую версию собственной LLM — YandexGPT 2.
Петр Ермаков, ML-бренд-директор компании, расскажет о том, как появилось решение разрабатывать собственную языковую модель нового поколения, с какими вызовами столкнулась команда и какие задачи еще предстоит решить.
В этом небольшом техтолке мы поднимем темы:
* как обучают YandexGPT,
* как Яндексу удаётся продолжать улучшать модель и обгонять другие языковые модели,
* в каких продуктах вы уже можете видеть результат работы этой нейросети.
Доклад принят в программу конференции
Не таймспентом единым: как мы делаем ранжирующую систему, которая заботится об авторах
Обсудим:
* как устроена рекомендательная система;
* зачем нужно переранжирование, если модель работает с хорошим качеством;
* как бороться с ситуацией, когда у модели есть перекос в популярных авторов;
* какие проблемы возникнут у бизнеса, если ничего не делать;
* как мы в Дзене работаем с этой проблемой.
Доклад принят в программу конференции
Все как у людей: введение современных инженерных практик в легаси-системах
* Что такое легаси-система на примере автоматизированной системы по обслуживанию кредитов в Газпромбанке.
* Инженерные практики в работе и улучшении легаси-систем.
* Методология и подводные камни миграции.
Доклад принят в программу конференции
Enterprise-системы (3)
Тернистый путь инструмента цифрового проектирования
Почему C4-модели мало и сколько слоёв архитектуры нужно большой организации.
Мы начали с попытки описания API и контрактов, поняли, что не хватает описания взаимодействий между системами, перешли к автоматизации стандартов и описанию детальной архитектуры наших АС и, наконец-то, добрались до открытия доступа по описанной архитектуре.
В дальнейших планах — связать все слои архитектуры в прозрачную модель на любом уровне.
Автор будет рассказывать о тяжёлом пути развития инструментов архитектурного проектирования в Банке.
Доклад принят в программу конференции
Total'ный контроль за сотрудниками через Telegram
Крупная федеральная сеть салонов красоты. До 20 000 сотрудников, занятых в процессе украшения мира, но дисциплина прихрамывает. Задача: собирать фотоотчеты от каждого сотрудника и проверять их за 10 минут до утренней планерки в разных часовых поясах... или о том, как Telegram боты спасают топ-менеджеров в 2023 году.
Тезисы:
* Как не напугать сотрудников и подключить их к сервису слежки и контроля.
* Куча контента для SMM как приятный бонус при реализации чат-бота.
* Какие есть реальные ограничения Telegram, и как этично их можно преодолеть. Реальные цифры требуемого железа под сервисы.
* Нейронки в проде, или Как по фото определить соблюдение корп. стандартов.
* Интеграция YClients и особенности работы API.
Доклад принят в программу конференции
Темные боги корпоративной архитектуры. Истории из недр варпа
Как так оказывается, что совершенно разные подходы к организации корпоративной архитектуры порождают одинаково отвратительных демонов реализации. Почему рожденные в идеальном порядке или искренней любви дизайн-документы все равно приводят нас в пучины отчаяния. Как приключение на один спринт обращается в падение в черную дыру техдолга.
Я расскажу разные истории о впадении разработки в ересь в разных обстоятельствах, иногда даже идеальных.
Доклад принят в программу конференции
Тестирование, нагрузочное тестирование (1)
Нагружать может каждый
Многие компании пренебрегают проведением нагрузочного тестирования, так как для организации процесса нужны узкопрофильные специалисты и специфический софт.
* Как понять, что нам нужно нагрузочное тестирование?
* Как быть, если у нас мало опыта и ресурсов?
* Как разобраться в результатах?
* Я — менеджер, и что мне может дать проведение НТ?
Доклад принят в программу конференции
Архитектуры и масштабируемость (29)
5 новых способов использовать данные в вашей Kafka
Хотите получить крутой дашборд, который меняется каждую секунду? А может, вам интересно в реальном времени определять, является ли операция мошенничеством? Или вы просто хотите быстро и надежно отобразить клиенту ленту его операций? Все это можно легко сделать, если ваши данные есть в Kafka.
В своем докладе я расскажу, как можно данные в Kafka поставить, как их можно между собой джоинить и как потом визуализировать.
На правах product owner'а стриминговой платформы в Райффайзен Банке я также покажу, как для всех этих целей мы используем нашу платформу, поделюсь реальными примерами кода и расскажу про грабли, на которые нам самим пришлось наступить.
Доклад принят в программу конференции
Петабайт в YDB over HDD в процессингах Яндекс.Метрики
В докладе вы узнаете про особенности построения хранилища YDB на HDD на примере архитектурного кейса крупнейшей системы мобильной аналитики в РФ.
* Кратко расскажем про процессинги аналитических продуктов и как устроен в них стейт.
* Нагрузки и требования.
* Как мы пришли к порядковому росту размера стейта (с 100 терабайт до петабайта).
* Как мы на этом сэкономили.
* Какие были варианты.
* Какие были трудности при записи и при чтении.
* Ложка дегтя в смысле загрузки ресурсов.
* Как мы выбираем, куда поместить данные, и как именно мы это делаем.
* Как мы управляем этим стейтом.
* Как мы справляемся с нагрузкой (12 gbit/sec).
Доклад принят в программу конференции
Внутри S3
Яндексовая инсталляция хранилища S3 хранит миллиарды файлов. Это огромные объемы данных, а также огромные объемы метаданных. Для хранения метаданных используется множество шардов postgres. Мы научились использовать умное шардирование, мы сами управляем распределением занятого места и нагрузкой между шардами.
Расскажу, как сделать так, чтобы ни один клиент, даже с самым неудобным паттерном нагрузки, не положил ваш сервис.
Доклад принят в программу конференции
Как мы построили модерацию рекламы с нуля и достигли потока 1 млрд вердиктов в сутки
Из-за роста объема рекламных объявлений Яндексу требуется модерировать более 1 миллиарда различных объектов в день с минимальными задержками автоматических проверок порядка единиц секунд, при этом добиться высокого качества модерации.
На входе у нас были две системы с неподходящими архитектурами для поставленных нами целей. Первая была написана на устаревших технологиях, что затрудняло развитие и масштабирование, а вторая батчевая система с нетипизированными данными и множеством составных компонентов, не укладывающаяся в требуемые тайминги. В этих условиях было также сложно поддерживать качество вердиктов на достаточном уровне.
Мы решили написать новую модерацию с нуля на основе стримингового фреймворка поверх YTsaurus. В результате мы полностью переехали на новую систему, по пути наткнувшись на множество проблем, которые не были видны со старта. В докладе будет рассказано, с какими проблемами нам пришлось столкнуться и как мы их решили.
Доклад принят в программу конференции
Как мы в 1С сделали с нуля веб-фреймворк и панель управления облака на нем
Всем нужны платформы для организации своей разработки, чтобы повысить управляемость зоопарком технологий, упростить поддержку своих сервисов (особенно микросервисов), стандартизировать решение одних и тех же задач при запуске каждого нового сервиса, тем самым повысить скорость и качество разработки.
Мы в 1С уже очень давно строим фреймворки для своих пользователей. И, конечно, при создании своего PaaS-облака, при разработке его слоя управления (админки и control plane) решили использовать свой веб-фреймворк, в котором решены такие вопросы, как управление пользователями и правами доступа, есть встроенный BI для очень наглядных графиков и многое другое.
Доклад принят в программу конференции
Распределенная трассировка с Jaeger и Clickhouse
МТС — это огромная экосистема продуктов, в которой каждую секунду происходят тысячи взаимодействий между компонентами. В 2019 году мы запустили внутренний сервис распределенной трассировки, чтобы помочь командам отслеживать ошибки в работе экосистемы. За это время мы прошли длинный путь, подключив 1000+ сервисов, научившись обрабатывать 150 тысяч спанов в секунду и несколько раз поменяв архитектуру решения.
В докладе я расскажу, как мы мигрировали с Elasticsearch на Clickhouse для хранения распределенной трассировки. Как на собственных ошибках нарабатывали экспертизу по Clickhouse и дорабатывали Open Source-решения под наши нагрузки. Как дали возможность выполнять аналитические запросы к Clickhouse и строить дашборды по данным трассировки.
Доклад принят в программу конференции
Масштабирование пропускной способности поиска Яндекса в 4 раза
Мир постоянно меняется, Яндекс потерял кластер в Мантсале, поставки железа усложнены. Поэтому мы озаботились подготовкой к растущим нагрузкам при меньшем объеме железа.
Мы расскажем:
* как мы увеличили пропускную способность Яндекс Поиска в 4 раза, огромного продукта с десятками внутренних сервисов;
* как мы добились этого почти без использования дополнительного железа;
* как мы наладили процесс поиска узких мест;
* как мы оптимизировали кучу железа;
* какие проблемы мы нашли и решили в процессе масштабирования;
* какие механизмы деградации мы внедрили в процессе масштабирования.
Доклад принят в программу конференции
Сам себе вендор. Внедрение EVPN в VK Cloud
Облака — это не только независимая инфраструктура где-то в интернете. Это еще и непосредственные физические сетевые стыки с крупными клиентами прямо в их ЦОДах. Чаще всего сети — это ответственность сетевых инженеров. А у них обычно все построено на вендорном железе. Но что делать в том случае, если привычных всем вендоров больше нет?
Поговорим о проблемах вендорных решений, использовании их на примере такой задачки, как организация внешних стыков облака. Расскажем о том, как сделать то, что предоставляют вендоры из подручных материалов. Представим свою реализацию EVPN VTEP из стандартных Open Source-инструментов — OpenVSwitch, gobgp, Python.
Доклад принят в программу конференции
Алиса 6 лет спустя
Алисе исполнилось 6 лет. Это надежный высоконагруженный сервис с десятками миллионов пользователей в месяц, который каждые несколько лет приходится переписывать, чтобы двигаться дальше.
Я расскажу о том, как развивалась Алиса, какие нестандартные архитектурные решения в ней применены и почему именно такие, покажу как устроен современный персональный ассистент, его разработка и масштабирование.
Доклад принят в программу конференции
Высокая нагрузка или/и низкая задержка
Поставлена задача на переработку реальной системы: требуется на имеющемся железе кратно увеличить пропускную способность и при этом уменьшить время отклика.
Метод — архитектурный редизайн.
Результат — успех.
В докладе представлено пошаговое решение с обоснованиями и демонстрацией модели производительности.
Доклад принят в программу конференции
Авито.Автозагрузка: от 4 млн до 80 млн активных объявлений. Как мы искали проблемные места для поддержки роста х20
Автозагрузка — это инструмент, позволяющий клиентам автоматизировать работу со своими объявлениями. Он состоит из множества сервисов и входит в топ-10 потребителей ресурсов в компании.
За все время существования мы привыкли к линейному росту — каждый год продукт увеличивался в 1,5-2 раза, но в 2021 году все изменилось. Для запуска важных продуктовых инициатив нам требовалось поддержать рост х20 и несмотря на то, что мы имели неплохой «запас прочности», к таким цифрам мы не были готовы.
На Saint Highload++ 2023 я уже рассказывал, как мы готовили к росту один из наших сервисов (highload.ru/spb/2023/abstracts/10416). В этот раз я поделюсь опытом поддержки роста х20 уже на уровне всей компании и расскажу:
• как мы искали узкие места и потенциальные точки отказа среди нескольких десятков сервисов, через которые проходит объявление перед тем, как попасть на Авито;
• о подходе к нагрузочному тестированию, который позволил нам за квартал справиться с задачей, которую мы изначально оценили в несколько человеко-лет
• об основных проблемных местах в нашей архитектуре и решениях, которые помогли с ними справиться;
• о концепте инструмента прогнозирования нагрузки и проактивного поиска проблемных мест, который в будущем поможет исправлять их заранее.
Доклад принят в программу конференции
Как из Python и палок собрать детектор аномалий для highload
При эксплуатации любого сервиса рано или поздно появляются сотни и тысячи графиков, за которыми надо следить, — это и RPS, и время ответа, и количество открытых сокетов, и многие другие. В каждом из них могут появляться аномалии, о которых очень хочется своевременно узнавать.
В своем докладе я расскажу о том, как на коленке написать детектор аномалий, который будет перемалывать несколько тысяч метрик в минуту и работать одновременно с данными из Zabbix, Graphite, Prometheus, Clickhouse да и вообще с любой БД или системой мониторинга.
Доклад принят в программу конференции
Эволюция и мифы CQRS
Казалось бы, про CQRS всё уже давно сказано — но мне есть что добавить!
Если спросить 10 разных разработчиков: что такое CQRS, то получишь 10 разных ответов. В докладе я обобщу свой многолетний опыт применения CQRS. Обсудим, какие варианты реализации CQRS бывают. Какие преимущества дает каждый из вариантов и какие он накладывает ограничения.
Также обсудим самые популярные вопросы и заблуждения CQRS:
* могут ли команды возвращать значения. Если нет, то почему?
* могут ли query писать логи?
* что делать, если две команды должны использовать общую логику?
* поможет ли CQRS при росте нагрузки на сервис?
Доклад принят в программу конференции
Как построить OMS с помощью Temporal: опыт от нуля до десятков тысяч заказов в день
Обработка заказов — один из самых сложных доменов в e-commerce, особенно в мире микросервисов. Большинство существующих систем реализует процессинг заказов с помощью хореографии, что довольно сложно в исполнении и обычно приводит к беспорядку. Бизнес-требования разбиты на тысячу маленьких частей, а выполнение требований отказоустойчивости, даже таких, как ретраи и фоллбеки, довольно сложно. В таких системах низкая прозрачность, поиск дефектов в них может занимать дни, а добавление новой функциональности — целые месяцы. Эту проблему можно решить с помощью Temporal — платформы для оркестрации рабочих процессов.
Мне в Uzum выпала уникальная возможность написать сервис для процессинга заказов с нуля, и я расскажу, с какими проблемами предстоит столкнуться, если вы тоже выберете Temporal для построения вашей собственной Order Management System, а также покажу, как оценить производительность подобной системы.
Доклад принят в программу конференции
Зачем делать прожорливый софт. Принципы reconciliation loop (привет, K8s!)
Мир не идеален — любая крупная система состоит из множества отдельных подсистем. Не все из них мы можем контролировать при работе над нашей задачей. А согласно закону Мёрфи, если что-нибудь может пойти не так, оно ОБЯЗАТЕЛЬНО пойдёт не так. Применительно к созданию распределённых систем это означает, что абсолютно всё вокруг когда-нибудь сломается.
И вот в таких условиях нам нужно разрабатывать софт, который не потребует постоянного внимания со стороны своего создателя.
Расскажем про практики и свой опыт создания софта с self-healing на принципах closed loop automation (что является основной причиной высокой стабильности всеми любимого K8s), сравним с привычным в индустрии event-based-подходом, и честно признаемся об увеличении накладных расходов и излишней трате денег работодателя в счёт своего спокойного сна ночью.
Доклад принят в программу конференции
Эволюция архитектуры транскодера
На докладе вы услышите:
* как мы перекодируем видео пользователей в самые популярные разрешения, считаем видеосигнатуры, генерируем субтитры;
* как учились приоритизировать живых пользователей и batch-задачи;
* как жить, если у тебя тысячи воркеров, кластер на десятки тысяч ядер, который нужно использовать эффективно;
* как мы обрабатываем в среднем сотни тысяч видео в сутки длительностью в тысячи часов;
* как значительно улучшили утилизацию железа и скорость транскодирования, изменив архитектуру;
* как обработать задачу за гарантированное время, если твой кластер полностью загружен и ты не умеешь предсказывать eta для задач.
Доклад принят в программу конференции
Как эффективно ранжировать весь товарный Рунет
Ранее наша команда рассказывала, как в товарном поиске Яндекса строится база: https://highload.ru/moscow/2022/abstracts/9515. А в этом докладе расскажем о рантайм- и ML-части нашего поиска.
Поиск по товарам Яндекса — это сервис, работающий над базой из более, чем миллиарда документов под нагрузкой свыше десяти тысяч RPS. Казалось бы, разработка архитектуры поиска такого масштаба — понятная и решенная задача, но появление приставки ecom добавляет к общей схеме несколько существенных доработок.
В этом докладе будет разобрана общая архитектура поиска и показано, что начинает меняться, как только мы начинаем думать о бизнес-специфике области: учете региональности, группировке офферов в модели, таргетах для ML-моделей и других особенностях.
Доклад принят в программу конференции
Hazelcast, который смог: как получить молниеносный ответ на сотни запросов в секунду с использованием бесплатной библиотеки. От первых восторгов до хладнокровия
Дано: распределённая сервисно-ориентированная система с сотнями пользовательских запросов в секунду.
Цель: получать молниеносный ответ на пользовательские запросы без исполнения задач в IT-инфраструктуре.
В докладе расскажем, как решали задачу с помощью бесплатной версии библиотеки Hazelcast. Почему выбор пал именно на неё, о первых восторгах, борьбе со скудной документацией, набитых шишках и выстраданных рецептах.
Внутри доклада:
* Подходы к работе с обработкой запросов в микросервисной архитектуре.
* Варианты доступных на рынке решений (Redis, Hazelcast, Apache Ignite, Memcached).
* Опции Hazelcast: критерии выбора Open Source vs Enterprise.
* Опыт использования: примеры проблем и рекомендации.
* Границы применимости бесплатной библиотеки Hazelcast.
Доклад принят в программу конференции
Firewall в облаке: способы внедрения в сетевые архитектуры
Межсетевые экраны в облаке можно внедрить разными способами и по-разному организовать маршрутизацию. В докладе расскажу, как мы постепенно, за несколько лет пришли от простых решений к сложным, какие задачи перед нами ставил бизнес. А также какие достоинства и недостатки существуют в выбранных и нереализованных решениях. Поделимся своим опытом внедрения и обсудим ваш.
Доклад принят в программу конференции
Надёжная аналитика: как мы собираем стату в мини-приложениях VK
VK Mini Apps — это открытая платформа для встраивания кроcс-платформенных приложений, расширяющих возможности ВКонтакте как на вебе, так и на iOS- и Android-клиентах. Сейчас мини-приложения глубоко проросли в инфраструктуру VK. Их используют миллионы пользователей ВКонтакте.
Я расскажу, как отследить сессию пользователя в условиях, когда у вас 4 разные независимые платформы; как не терять события статы; как спроектировать и удержать результат; и как всё-таки начать доверять своей аналитике.
Доклад принят в программу конференции
Внутренняя платежная система Яндекса: что под капотом?
Расскажу, как устроена платежная система Яндекса, которая обрабатывает платежи от всех сервисов компании. Из доклада вы узнаете, что FinOps — это:
* не бывшие Яндекс.Деньги, а отдельная система;
* высоконагруженная платежная система, обрабатывающая до 1,2 тыс. платежей в секунду;
* повышенные требования к надежности и отказоустойчивости (мы должны быть ещё более надежными, чем самый надежный сервис Яндекса). Минуты простоя — это убытки в миллионы денег;
* широкая география приема платежей — от Перу до Эмиратов;
* event sourcing-система, написанная на Golang, работающая в 3 ДЦ, использующая YDB.
И ещё много чего полезного.
Доклад принят в программу конференции
Асинхронное взаимодействие в распределенных системах
На мастер-классе мы с участниками разберем реальную задачу из жизни маркетплейсов по донесению товарных предложений от продавцов до покупателей. Обсудим возможные варианты реализации асинхронной передачи данных в распределенной системе, применимость различных паттернов, плюсы и минусы различных реализаций.
Доклад принят в программу конференции
Доклад про Цифровой Рубль
Появление негосударственных цифровых валют (криптовалют) вызвало опасение у центральных банков мира, особенно в части:
* снижения курса национальной валюты,
* востребованности платёжных систем,
* отсутствия законов, защищающих население при использовании криптовалют.
Многие ЦБ создали новую форму внутренней валюты — цифровую, и приступили тестированию. Газпромбанк является одним из первых участником пилота ЦР.
В своем докладе я расскажу, как мы внедряли ЦР, а именно:
* что такое Цифровой Рубль;
* правила обмена с Платформой ЦР. Этапы подключения к Платформе ЦР и проведение пилота;
* трудности реализации ЦР;
* особенности реализации бизнес-процессов ЦР. Отличия цифровых рублей от безнала;
* текущая архитектура ЦР в экосистеме Банка. Система взаимодействия с платформой ЦР, её интеграции, реализация требований ЦБ;
* встраивание SDK ЦБ в наш мобильный банк;
* Vertical Slice в реализации проекта;
* планы на будущее развитие ЦР.
Доклад принят в программу конференции
Слишком… много… асинхронщины… На что обращать внимание при работе с фичей из десятка сервисов, обрабатывающих 15 000 асинхронных задач в секунду
В клиент-серверной архитектуре каждый разработчик рано или поздно сталкивается с обработкой асинхронных задач. Это частая практика, но что делать, когда вы разрабатываете новую фичу, которая становится настолько прожорливой, что таких задач становится десятки тысяч в секунду.
На примере внедрения в Яндекс.Go новой технологии Live Activity от Apple поговорим про:
* сложность отладки и поиска проблем асинхронных задач;
* почему не нужно пытаться брать слишком много задач на каждую ноду;
* как быть, если асинхронность добавляется еще и на клиенте;
* почему в таких случаях не стоит пользоваться вашей основной базой данных;
* как держать ваше состояние консистентным без возможности сервисам сообщать о своем состоянии друг другу;
* зачем нужно иметь возможность конфигурировать выполнение таких задач.
Доклад принят в программу конференции
Как с помощью event sourcing мы организовали поставку данных и актуализацию структуры для более 2000 таблиц
Перед нами была поставлена задача доставки структурированных данных до хранилища, сохраняя при этом возможность изменять структуру таблиц. Одни из главных вопросов, которые перед нами стояли:
* Как управлять изменениями схемы? В какой момент применять обновления?
* Как переложить ответственность за создание описания схемы на пользователей, обеспечив при этом не только контроль и валидацию изменений, но и поддержку?
* Как гарантировать корректность обновления схемы как с технической, так и с бизнесовой точек зрения?
* Как обеспечить консистентность данных в связанных структурах для дальнейшей работы с ними?
Рассмотрев несколько подходов к решению поставленной задачи, мы пришли к решению, которое реализовали с использованием паттерна event sourcing. Данное решение позволило нам чуть больше, чем за год вырасти в объемах поставки с нескольких десятков таблиц до более двух тысяч.
В этом докладе я бы хотел рассказать о том, почему мы отдали предпочтение event sourcing вместо CDC, какие альтернативы для описания схем рассматривали, почему в итоге остановились на avro и как автоматика помогает нам контролировать все изменения.
Доклад принят в программу конференции
Построение распределенной транзакции
На мастер-классе мы с участниками разберем реальную задачу из жизни маркетплейсов по превращению корзины в заказ. Обсудим возможные варианты реализации распределенной транзакции, применимость различных паттернов, плюсы и минусы различных реализаций.
Доклад принят в программу конференции
От CRM к DataLake с K8s и микросервисами
Как только система начинает разрастаться, появляются различные внешние и внутренние сервисы, с которыми необходимо реализовывать интеграции. Появляются задачи по построению аналитики или построению предиктивных моделей, а система не позволяет это делать без нагрузки? Или необходимо масштабировать систему?
Ответом на эти вопросы будут микросервисы, которые помогут реализовать всю необходимую логику. Как в этом помогают Kafka и Airflow, и что такое ETL. Все это поможет построить хорошую архитектуру, которую можно будет масштабировать и к которой можно подключать неограниченное число интеграций и внешних сервисов.
Доклад принят в программу конференции
На творчестве Линуса Торвальдса NGFW не построишь. Почему для создания файрвола следующего поколения не подходит сетевой стек ОС Linux?
Разработка высокотехнологичного продукта для киберзащиты — сложный процесс, требующий глубокой экспертизы. Особенно, если от него напрямую зависит стабильность бизнес-процессов компании, как в случае с NGFW.
Мы поговорим про два вызова продукта класса NGFW с точки зрения разработки:
* как быстро обрабатывать большой объем трафика? Spoiler — сетевой стек Linux нам не друг.
* развеем мифы про железо. Может ли NGFW обойтись без специализированного и дорогостоящего железа? И если да, то чем за это придется заплатить?
Доклад принят в программу конференции
Шардирование: с нуля до Яндекс Диска
Рассмотрим подробности шардирования базы данных Яндекс Диска: как эволюционировала архитектура, с какими сложностями сталкивались и какие решения находили.
Доклад принят в программу конференции
Импортозамещение (2)
Миграция витрины данных с СУБД Teradata в СУБД Greenplum
Миграция СУБД с одной технологии на другую — достаточно сложный процесс, который связан не только с конвертацией кода и переливкой данных, хотя и здесь есть неочевидные нюансы.
В своем докладе я хочу рассказать об одном опыте миграции витрины данных с СУБД Teradata на СУБД GreenPlum, о задачах, которые приходилось решать в процессе этой миграции, и тех подводных камнях, на которые мы периодически натыкались.
Доклад принят в программу конференции
Веб-сервер Angie год спустя: новые возможности и планы на будущее
В июле 2022 года, собрав команду из ведущих инженеров, работавших над разработкой и поддержкой веб-сервера nginx, мы открыли свою компанию — «Веб-Сервер» и начали разработку Angie — российского веб-сервера с открытым исходным кодом.
* Какие новые крутые возможности появились в веб-сервере Angie — отечественном форке nginx.
* Коротко пройдем по инфраструктуре, которая была развернута для поддержки пользователей.
* Поговорим о будущем, наших планах, чего ждать в ближайшее и может быть не самое ближайшее время.
Информативно. По делу. Отчет за год, без лишней воды.
Доклад принят в программу конференции
Оффтоп (3)
От дощечки к компьютеру. Путь от ткачества к ЭВМ
Первые компьютеры разрабатывались не «с нуля».
В докладе спикеры расскажут о развитии ткацкого ремесла (процесс переплетения нитей и создания ткани), в результате развития и оптимизации которого был создан ткацкий станок с перфокартами… а там и до ЭВМ пара шагов: вычислительная машина Бэббиджа, язык Ады Лавлейс для программирования этой машины, калькулятор Шойца, табулятор Холлерита, аналоговый компьютер Буша и машина Тьюринга, ну а дальше семимильными шагами в 21 век и современность.
Также можно будет попробовать работать с ткацкими инструментами и за станком.
Доклад принят в программу конференции
Это всё, что останется после меня: проблемы наследования кода и передачи прав на него
Популярность «айтишки» выросла в последние годы. Писать код — прекрасно. И хорошо бы знать, как передаются права на него, чтобы подстраховать себя и своих близких.
В докладе спикер расскажет о коде как объекте интеллектуальной собственности и результате творческой деятельности, о вариантах передачи прав и нюансах наследования, поделится интересными историями из практики.
Доклад принят в программу конференции
Математический хайлоад: большие, очень большие и немыслимо большие числа
Задумывались ли вы когда-нибудь, что значит вся эта наша «биг дата» в масштабах математики? Насколько миллиарды пользователей и терабайты данных далеки от по-настоящему «биг»-величин?
Мы с вами увидим, что такое по-настоящему большие числа — числа, которые неподвластны осознанию и на которых ломается математика. Мы рассмотрим, какими нотациями они записываются, какой смысл имеют и как быстро они растут.
Мы начнём с приземлённых вещей, имеющих понятный смысл, и устремимся вверх, оттолкнёмся от числа Грэма, доберёмся до самого большого числа, имеющего название, дойдём до границы вычислимости, но пойдём дальше, по невычислимым полям до понятия бесконечности, перешагнём и её, за ординалы, за пределы применимости аксиом — до самого конца математического безумия. И только там обнаружим, что это самое начало человеческого воображения и границы наших с вами возможностей ещё бесконечно далеки.
Доклад принят в программу конференции
Хардкор (3)
Exception Handling: сквозь мультивселенные интероперабельности
Tarantool — это платформа для in-memory-вычислений, написанная на C/C++ и Lua. Миры Lua и С/C++ очень тесно связаны: у Tarantool есть модули на Lua, модули на Lua могут использовать модули, написанные на C/C++. В процессе исполнения и в Lua-коде, и в C/C+±коде могут возникать исключения, которые иногда необходимо обрабатывать в другом компоненте, может быть написанном на другом языке.
Доклад рассказывает о том, как можно реализовать интероперабельность исключений между двумя языками на примере Lua и C. Разберемся в том, какие есть способы реализации механизма исключений на разных платформах, посмотрим на специфичные для них сложности, а также рассмотрим реализацию интероперабельности на примере LuaJIT, с помощью которого исполняется весь Lua-код в Tarantool.
Доклад принят в программу конференции
Расширение возможностей отладчика GDB при помощи Python
Довольно часто при разборе проблем с проектами в контурах заказчика мы сталкиваемся с необходимостью использовать отладчик. Одним из типичных сценариев является, например, падение, при котором генерится coredump, и в дальнейшем мы используем его, чтобы разобраться с причиной падения. При этом у нас нет возможности использовать код самого Tarantool, а некоторые типовые для Тарантула действия просто неудобно делать, если использовать только базовый функционал отладчика.
К счастью, в отладчике предусмотрен механизм, с помощью которого можно расширить его возможности и упростить отладку. К тому же, зачастую по соображениям безопасности мы не имеем прямого доступа, собственно, к «корке» и вынуждены работать с ней удаленно, что также требует максимального упрощения взаимодействия с отладчиком для минимизации ошибок.
В частности, нам нужен удобный способ, для:
* работы с файберами: список, стек вызовов произвольного (не текущего) файбера;
* работы с различными списками: итерирование, просмотр/поиск элементов;
* просмотра msgpack с тарантульными расширениями;
* просмотра тапла и его формата;
* различных манипуляций с виртуальной машиной LuaJIT.
Доклад принят в программу конференции
А знаете ли вы, что вы насчитали? Автоматическая проверка точности численных расчётов
Существуют проблемы, возникающие при вычислениях со значениями с плавающей точкой: все операции имеют погрешности, которые накапливаются. При достаточно большом накоплении ошибок под сомнением могут оказаться все результаты вычислений, особенно в случаях, связанных с обработкой больших данных, с численным дифференцированием, с моделированием длительных процессов и машинным обучением, в частности, при обучении нейросетей. Особую важность оценка точности имеет в приложениях с большой ценой ошибки, таких как вычисления в медицине и биометрических системах безопасности.
Я расскажу, как сделать наличие проблем с точностью видимым, на примере реализации нашего раcширения XNumPy библиотеки NumPy на Rust и Cython, автоматически вычисляющего точность расчётов. Это почти не требует изменений в коде и снабжает те же результаты математической оценкой их точности. Я расскажу, какие математические и программистские приёмы позволили сделать расширение производительным.
Доклад принят в программу конференции
Фейл секция (1)
Fail-митап
Конференции завалены историями успеха. Но путь к успеху всегда лежит через фейлы, о которых рассказывать не принято. Потому что стыдно и потому что дорого. Но только не на нашем fail-митапе!
В своих коротких, но зажигательных выступлениях спикеры поделятся настоящими историями фейлов. Без записи, без трансляции, без комплексов.
Модератор: Екатерина Фирсова.
Доклад принят в программу конференции
Platform Engineering (7)
Как мы делаем трейсинг в условиях тысяч сервисов и миллионов спанов в секунду
Поговорим о трейсинге в Авито: какую он задачу решает, и как у нас выглядит архитектура трейсинга, обрабатывающая миллионы спанов в секунду от нескольких тысяч сервисов, объединенных в service mesh (который, как оказалось, помогает). Расскажем, как мы меняли подходы к семплированию данных и почему мы ушли от Jaeger к OpenTelemetry и собственному инструменту, объединяющему трейсинг, логи и метрики.
Рассмотрим примеры из нашего опыта, когда трейсинг ускоряет нахождение проблем и отладку в распределенной среде, и попробуем ответить на вопрос: «Зачем нужен трейсинг, и какая цена у его внедрения?».
Доклад принят в программу конференции
Высоконагруженная VDI из Open Source для платформы киберучений «CyberCamp» в облачном Kubernetes
Для проведения Cybercamp (это созданная нами платформа киберучений, где участники выполняют задания в формате CTF) необходимо было предоставить доступ к платформе (создать рабочие места, изолировать команды друг от друга, выдать необходимые сетевые доступы) 500 участникам. Эти рабочие места содержат в себе целый арсенал инструментов для отработки навыков Red и Blue Team.
Для экономии ресурсов и улучшения управляемости мы упаковали эти рабочие места в контейнеры и расположили их в Managed Kubernetes от Яндекс.Облако, а доступ из браузера организовали с помощью Guacamole. Я расскажу, как мы обеспечивали безопасность, что еще расположили в Kubernetes и почему была выбрана именно контейнеризация с использованием оркестратора, а не виртуализация.
В результате нам удалось 2 года подряд проводить киберучения без инцидентов ИБ и каких-либо простоев, затрачивая минимум усилий на поддержку мероприятия во время его проведения.
Доклад принят в программу конференции
Межсервисная авторизация в Авито.PaaS
Расскажу, как мы внедрили межсервисную авторизацию на базе Open Policy Agent для более чем 2000 сервисов, работающих на PaaS и при этом не сломали прод и сознание разработчиков от написания авторизационных политик на языке rego. Мы обеспечиваем стабильность работы описываемого решения в нашем service mesh в продакшне, даем возможность управлять доступами вплоть до каждого endpoint'а, и избегаем поломок из-за случайного некорректного закрытия доступов.
Доклад принят в программу конференции
Управление ожиданиями пользователей от вашей платформы
Итак, у вас есть платформа. Всё работает, но пользователи постоянно недовольны и хотят странного. Просто ваша платформа не такая, какой они её себе представляли. Ожидания неоправданны — пользователи недовольны.
Я расскажу о том:
* откуда берутся ожидания пользователей,
* как ими управлять,
* что такое контракты и как их писать.
Доклад принят в программу конференции
Как сделать платформу удобной, или Авито PaaS спустя 5 лет
В последние годы многие компании и команды внедрили DevOps-подход, который позволяет владеть полным жизненным циклом разработки без необходимости что-то дополнительно запрашивать у платформенных/инфраструктурных команд. В то же время уровень сервиса, удобство и возможности, которые предоставляются в продуктовые команды, очень сильно варьируется.
Мы поговорим о парадигмах и подходах, которые позволяют построить удобную и эффективную платформу, решающую потребности бизнеса. Посмотрим, какие ключевые идеи лежат в основе Авито PaaS и с помощью каких технологий их получается реализовывать.
Пройдем по самым востребованным направлениям и проблемам в рамках SDLC, посмотрим, какой уровень сервиса можно предоставлять на каждом этапе жизненного цикла. Какая архитектура и подходы позволяют масштабировать платформу по функциональности.
Доклад принят в программу конференции
Как мы управляем трафиком тысяч подов в мультикластерной среде Kubernetes с помощью Service Mesh
Спойлер — никак:) Но мы умеем обеспечивать прозрачное сетевое взаимодействие подов во множестве кластеров Kubernetes так, как будто все они размещены в одном огромном «суперкластере». Мы используем Istio, но не используем Istio Multicluster. В докладе я расскажу, как все это работает.
Доклад принят в программу конференции
Внутренняя платформа для разработки и разработчиков: за что платит бизнес?
Представим, что вы предприимчивый лидер инженерной команды, которая предоставляет зрелую платформу для разработчиков широкому кругу команд в вашей компании. Компания достаточно большая и быстро растет, затраты на платформу становятся видны на основных финансовых радарах. Продукты компании являются или претендуют на то, чтобы быть самостоятельными бизнесами, в любом случае их волнует собственный P&L. В этот самый момент вы можете столкнуться некоторыми из нижеперечисленных проблем:
* потребители не знают, во сколько им обходится платформа. Рассматривают ее как условно бесплатное образование и медицину в СССР, с соответствующим отношением — не вдумчивым потреблением;
* руководство компании не знает, как гибко контролировать траты на платформу, на каких потребителей нужно создавать давление и какое;
* потребители создают давление на платформу вида «перееду во внешнее облако, там лучше и дешевле»;
* руководитель платформы сталкивается со сложностями в обосновании роста команды платформы, каждый раз приходится искать новые аргументы;
* если потребители — самостоятельные бизнесы, то у них возникают сложности с расходными статьями в P&L.
В рамках доклада мы рассмотрим подход, который позволит перевести вашу платформу на новый уровень зрелости продукта, из состояния «всем все бесплатно» в состояние вдумчивого и экономного потребления с гибкой и прозрачной системой затрат. Рассмотрим техническую реализацию на примере Яндекса и обсудим варианты экономических моделей.
В моем докладе вы узнаете:
* что такое Yandex Infrastructure и Yandex platfrom engineering, кто ее потребители и какую задачу мы решали;
* зачем брать деньги с пользователей, за что и когда целесообразно начать это делать;
* платформа — это cost center, profit center или что-то посередине;
* модель аккаунтинга — как выявить потребителя и построить иерархию потребления;
* модель тарификации — SKU, сколько стоит железо и люди. CAPEX или OPEX?
* люди и железо — какие драйверы изменений?
Доклад принят в программу конференции
Open Source (15)
Опенсорс для компаний и разработчиков на примере Boost, C++, userver
Движение опенсорс имеет огромные масштабы, оно разношёрстное и даже выгоду от него получают по-разному!
Про выгоду и будет рассказ! Представим себя начинающим разработчиком, погрузимся в дивный мир «бесплатной работы» и поймём, зачем оно нам. Дорастём до разработчика в большой компании, приятно удивимся и осознаем, что всё базируется на опенсорс. Ну, а напоследок — уже выложим корпоративный проект в опенсорс и осознаем плюсы от такого шага.
Доклад принят в программу конференции
Опыт изучения передовых китайских СПО-решений для построения сложных IТ-инфраструктур на базе единой программной платформы OpenScaler/openEuler
В данном докладе мы рассмотрим опыт нашего сообщества в изучении передовых китайских СПО-решений, которые отсутствуют в составе широко известных Linux-дистрибутивов. Мы также представим обзор этих решений и описание их функционально-технических возможностей.
В рамках доклада мы сфокусируемся на нашем опыте и приведем примеры следующих технологий:
1. Сравнительное тестирование фирменного решения контейнерной виртуализации iSula с решениями Docker/Podman. Мы провели тестирование, включающее измерение временных затрат на ключевые операции при запуске 10, 100 и 1000 контейнеров как последовательно, так и параллельно.
2. Наш опыт использования единой кодовой базы OpenScaler/openEuler для создания специализированных дистрибутивов для Edge-устройств архитектур X86/ARM/RISC-V.
Доклад принят в программу конференции
Эволюция сервисов и средств разработки
В 1997 году в интернете сидели около 400 тысяч россиян, а сейчас среднемесячная аудитория рунета составляет более 100 миллионов пользователей. Вместе с количеством пользователей за 25+ лет выросло количество интернет-сервисов, объемы обрабатываемых и хранимых данных, сложность используемых технологий.
В открывающем докладе мы рассмотрим технологии, которые использовались для создания сервисов раньше, сравним их с технологиями, пришедшими им на замену при росте нагрузок, а также расскажем, какую роль в этом прогрессе сыграл опенсорс.
Мы вспомним, как менялись технологии разработки — от Apache и PHP на отдельных железных серверах, до текущего многообразия способов написать веб-сервис и облачных технологий. Проследим путь от проприетарных универсальных СУБД до появления специализированных опенсорсных систем обработки и хранения, от ручной проверки и выкладки по FTP до масштабных систем CI/CD и многое другое.
Также в докладе вас ждет большая новость о новой инициативе от Yandex Open Source.
Доклад принят в программу конференции
Compute/Storage separation в Greenplum
Yezzey — открытое расширение GreenplumDB, которое позволяет перенести таблицу в S3, но при этом сохранить нативный формат данных. При таком подходе производительность многих запросов оказывается сходной с производительностью запросов к таблицам на локальных SSD-дисках.
Эта технология — очередной шаг в направлении облачной аналитической СУБД для Greenplum, при этом весь код доступен в open source. В докладе я хотел бы также рассказать и о будущих шагах на этом пути.
Доклад принят в программу конференции
Один пайплайн, чтобы править всеми!
В рамках небольшого доклада я хочу показать, как с помощью одного пайплайна можно заниматься шэрингом экспертизы, ускорять команды, а также внедрять DevOps-практики в команды.
Доклад решает проблему переиспользования наработок в организации и выстраивания внутреннего inner source процесса. Но и это не всё: когда мы говорим о коллективных решениях, то большая сложность заключается в том, как построить общее решение, которое подошло бы большому количеству команд. В своем докладе я отвечу, в том числе, и на этот вопрос.
Доклад принят в программу конференции
Сообщества вокруг технологии: почему быть бесплатным недостаточно
Важные составляющие успеха опенсорс‑проекта — это сообщество пользователей и сотворчество контрибьюторов. В докладе я расскажу, как с помощью инструментов DevRel и маркетинга развивать сообщество, поддерживать совместное творчество и наращивать популярность проекта. А еще поделюсь списком метрик здоровья опенсорс-сообщества, который я составила и проверила на практике за время работы с Apache Ignite.
Доклад принят в программу конференции
Как выйти в опенсорс и не сойти с ума: опыт YTsaurus
В докладе расскажем, как пройти путь от создания технологии внутри компании до выхода в опенсорс на примере YTsaurus — платформы для работы с большими данными, одной из ключевых частей инфраструктуры Яндекса. Подробно расскажем про все подводные камни: как привести в порядок код, как сделать внешнюю документацию, как убедиться в том, что технология действительно может быть полезна пользователям вне компании, а главное — что делать дальше.
Доклад принят в программу конференции
Качество и контроль в большом Open Source-проекте
Проект вырос, окреп, популярен. Планы были амбициозные. Мы это сделали. А вот поддерживать и развивать... как?
Про то, как эффективно управляться с популярным проектом при недостатке ресурсов. Что заменить автоматикой, где нужны регламенты, где лучше работает доверие.
Всё на примере популярного PHP-фреймворка Yii.
Доклад принят в программу конференции
Open Source-экосистема Китая: история, настоящее и будущее
Компании Китая начали использовать Open Source-технологии еще в далёком 2000 году, и к 2022 году Китай стал вторым крупнейшим Open Source-контрибьютором Open Source-проектов в мире.
В 2013 году был создан репозиторий Gitee как национальная альтернатива Github. К 2023 году на Gitee было зарегистрировано более 7 миллионов активных разработчиков, более 25 миллионов репозиториев и подключено более 2000 университетов Китая. Это сделало Gitee вторым крупнейшим репозиторием Open Source-проектов в мире после Github.
В 2020 году ведущие компании Китая — Alibaba, Baidu, Huawei, Inspur, 360, Tencent и China Merchants Bank — создали национальный фонд OpenAtom для поддержки развития проектов с открытым исходным кодом в Китае. Сегодня проекты этого фонда, такие как openEuler и OpenHarmony, объединяют десятки тысяч индивидуальных разработчиков и тысячи китайских компаний, что делает их крупнейшими Open Source-сообществами в мире и основой национального IТ-суверенитета Китая.
В данном докладе мы рассмотрим историю, настоящее и попробуем сделать прогноз будущего Open Source в Китае. Мы обсудим подходы, которые позволили китайским компаниям совместно развивать Open Source-проекты, а также рассмотрим, как опыт и достижения Китая могут быть полезны для России.
Доклад принят в программу конференции
Как разрабатываются свободные проекты в команде ALT?
ALT Linux Team — это международная команда разработчиков, объединённая вокруг репозитория свободного ПО — проекта Сизиф. Ключевая особенность деятельности команды ALT заключается в открытом подходе к разработке. Все, в том числе и проприетарные продукты компании «Базальт СПО» — дистрибутивы семейства Альт — поставляются в исходном коде, а компоненты, составляющие эти продукты, доступны по свободным или открытым лицензиям (за исключением закрытых драйверов и программных решений некоторых известных компаний).
* Где и как можно встретить наработки команды ALT?
* Какие свободные проекты разрабатывает команда ALT для корпоративных задач?
* Как, вообще, работает модель разработки «бесплатных» программ с точки зрения разработчика?
Доклад принят в программу конференции
Open Source AppSec Review: как сделать приемку, внедрение и харденинг Open Source-решения
Open Source-продукты с каждым годом все сильнее входят в нашу жизнь и активно двигают индустрию вперед. Без ряда решений уже сложно представить современную индустрию — Kubernetes, OpenStack, Prometheus, Grafana и еще множество подобных продуктов различного масштаба и выполняемых задач. Вокруг многих из них существуют комьюнити. Однако далеко не весь код, хранящийся в Open Source на различных git-платформах, хорошо изучен и активно разрабатывается. Очень важно не только добавить новый компонент в свою систему, но и убедиться в том, что он не принесет в нее новых бэкдоров и уязвимостей.
В докладе мы расскажем вам:
* как сделать ревью и приемку Open Source-решения;
* как сделать его харденинг;
* какие решения можно использовать для сканирования на уязвимости;
* дадим чек-лист по приемке Open Source-компонента на «боевое дежурство».
Доклад принят в программу конференции
Как вложиться в Open Source и не прогореть?
В основе наших сервисов лежит Open Source-распределенная база данных — Apache Ignite, точнее, наш продукт, на ней основанный.
Для обеспечения гарантий быстродействия, нашим кастомерам потребовалось хранить как можно больше данных в оперативной памяти, и мы доработали наш продукт. Пошли мы по пути компромисса между донейшеном в Open Source и приватной фичей и получили плюсы от обоих подходов.
В докладе пройдем весь путь от постановки задачи до ее решения — разработки механизма сжатия данных в памяти. Разберем все варианты реализации сжатия данных в Apache Ignite, включая уже существовавшие, проанализируем подводные камни и бонусы каждого из вариантов, в том числе неожиданные.
Не обойдем стороной и тему сотрудничества Open Source и Enterprise в нашем случае и в общем, риски и выгоды обеих сторон.
Доклад принят в программу конференции
Особенности шин данных для очень больших инсталляций на примере YDB Topics
Шины передачи данных используются практически везде, но использование шин данных в очень больших инсталляциях на тысячи серверов накладывают особые требования для работы и приводят к отличиям в работе систем. Поговорим на примере YDB Topics, в чем заключаются эти отличия, как они влияют на архитектуру и эксплуатацию.
Доклад принят в программу конференции
Как создается Java
Проекты в Open Source разрабатываются так, что задаешься вопросом — почему же все это не превратилось в хаос? Как эти люди, вообще, способны выпустить завершенный, работающий продукт?
В этом докладе мы поговорим о том, как устроен проект OpenJDK. Он будет интересен тем, кто хочет разобраться в процессах крупного Open Source-проекта и унести что-то себе.
Доклад принят в программу конференции
(Не)удачный эксперимент по выращиванию культуры Open Source
Удобно, когда бизнес компании построен вокруг Open Source. Можно заниматься любимым делом и автоматически иметь преимущества при найме, материал для статей, выступлений на конференциях.
Но что, если вы обычная аутстаффинговая компания? Моя компания занимается аутстаффом: мы нанимаем разработчиков, обучаем их, и затем они работают на проектах наших клиентов, где редко можно встретить Open Source.
Несколько лет назад, смотря на успехи Open Source и на то, как мы заботимся о наших сотрудниках, я решил провести эксперимент. Что, если помогать разработчикам с их начинаниями? Оплачивать личное время работы над проектами, помогать им с дизайном, сайтами для их pet projects. Рассказывать об их Open Source силами нашей редакции. Использовать проекты для обучения разработчиков и много чего еще. Я выделил бюджет, наметил процессы, и эксперимент начался.
Прошло три года, наши проекты имеют тысячи звезд на гитхабе, но последний раз я подписывал экспенсы за участие в Open Source больше года назад.
Это доклад о том, что я хотел сделать, что получилось, а что пошло совсем не так, как ожидалось.
Доклад принят в программу конференции