Доклады
Архитектуры и масштабируемость (15)
Полная изоляция клиентов в облаке для сервисов без изоляции на примере DNS
Кажется, что добавить изоляцию пользователей в сервис легко: запускать по копии на каждого клиента. Но цена — это ресурсы, которые большую часть времени будут простаивать.
А насколько легко добавить изоляцию в такой базовый и давно сформировавшийся сервис, как DNS? Как быть с идентичными зонами?
Расскажем о нашем опыте создания multi-tenant private DNS для использования его в SDN собственной разработки без вендорных решений, без дополнительных мощностей, без большого штата разработки. Подытожим рабочие подходы к быстрому созданию полностью изолированных мультитенантных систем для облачных решений.
Доклад принят в программу конференции
Архитектура ВКонтакте: там, где данные
ВКонтакте ежедневно обслуживает десятки миллионов пользователей, позволяет обмениваться миллиардами сообщений и хранит десятки петабайт фотографий. Мы рассмотрим подходы и архитектуру решений, с помощью которых мы храним эти данные и предоставляем к ним эффективный доступ.
Расскажу, почему не используем сторонние базы данных, а сами пишем свои движки и как обеспечиваем доступность наших сервисов. Особое внимание уделю организации нашей mesh-архитектуры, устройству RPC и тому, как мы реализуем механизмы защиты от перегрузок и балансировку запросов без использования разделяемого стейта. В том числе подробно разберу технические детали реализации защитных механик.
Доклад будет полезен как с точки зрения опыта и идей построения больших систем, так и просто для того, чтобы узнать, как под капотом устроена крупнейшая социальная сеть СНГ.
Доклад принят в программу конференции
StatsHouse: метрики ВКонтакте
ВКонтакте живет метриками. Все запуски происходят с оглядкой на метрики — в реальном времени, во время запуска. Почти все продуктовые и технические решения ВКонтакте принимаются на основе метрик. ВКонтакте пишет 200 миллионов метрик каждую секунду. И все эти метрики ВКонтакте пишет в свою внутреннюю систему, StatsHouse.
Я расскажу про технические и архитектурные решения, которые принципиально отличают StatsHouse от существующих OpenSource-решений — в том числе его уникальную Бесконечную® Масштабируемость™. И еще — сделаю пока секретный анонс.
Доклад принят в программу конференции
Хранилище для Почты
На докладе расскажу о технических сложностях, с которыми мы столкнулись при разработке своего хранилища.
Задачи, которые решали:
* эффективная утилизация больших HDD (меньше iops на терабайт хранилища);
* переезд на более cost-effective серверную платформу (сокращение количества занимаемых юнитов в ДЦ);
* обеспечение SLA 99.999% доступности данных в течение года;
* переживание отключения ДЦ (ряда/стойки/сервера) без ручного вмешательства;
Архитектура потребовала распила письма на несколько составляющих и 2 вида индексов, чтобы хранилище смогло утилизировать диски в 18 ТБ полностью. Индексы не помещаются в память, поэтому применяются разные приемы для ускорения их загрузки в кэш. Для обеспечения более линейной записи группы юзеров объединяются в шарды, внутри которых ведется один xlog на всех. Собственное BLOB-хранилище с кворумной записью.
И другие приемы.
Доклад принят в программу конференции
Как организовать поиск в стартапе, который планирует вырасти до масштабов ВКонтакте
Когда проект, в котором есть поиск, растет и развивается, растут и требования к поиску. Его нужно менять вместе с усложнением задач.
В докладе мы вместе с вами попробуем спроектировать архитектуру поисковой системы. Начнем с самой простой, которая позволит быстрее запуститься, и по шагам будем растить проект и вместе с ним модифицировать архитектуру поиска. Ближе к концу доклада дорастем до размеров ВКонтакте и подробно рассмотрим нашу текущую архитектуру поиска, ежедневно выполняющую поисковые задачи 20 млн пользователей, задающих 250 млн поисковых запросов в день.
В заключение посмотрим на то, какие есть еще варианты построения архитектуры поиска для нужд крупных проектов, их плюсы и минусы.
Доклад принят в программу конференции
Дорогая, я форкнул NGINX
Мы — команда, которая долгое время принимала участие в разработке и поддержке NGINX. Сейчас мы делаем свой fork.
В докладе мы расскажем про drop-in replacement NGINX, веб-сервер Angie, фичах, необходимость которых давно назрела, но по ряду причин они не были занесены в сервер, и покажем, что уже сделали.
Будет интересно :)
Доклад принят в программу конференции
Как вынести расчет цен для 20 тысяч магазинов из SAP, чтобы сохранить 4 девятки
Выносим сервис расчёта цен для 20 тысяч магазинов из SAP, чтобы:
* снять с SAP нагрузку (100% загрузки серверов с 21 до 3 часов) — мешает другим процессам, требует постоянной поддержки из-за частого достижения потолка ресурсов, работает на пределе возможностей SAP;
* вывести из зоны риска остановки mission critical процесс.
Доклад принят в программу конференции
Техстратегия и архитектура highload-проекта на примере ВКонтакте
Архитектура не нужна, если нет стратегии. Техстратегия обосновывает затраты на архитектуру и помогает расти, запускать новые фичи, не отставать от конкурентов. Любому высоконагруженному и динамично меняющемуся проекту нужна стратегия технологического развития.
В докладе на примере ВКонтакте — проекта с 16-летней историей, 100 млн пользователей в месяц и 8 млн строк кода бизнес-логики — рассмотрим принципы построения техстратегии и методы принятия стратегических решений.
А также разберём, как техстратегия и архитектура влияют друг на друга и что у нас получается в результате:
* как строить техстратегию на несколько лет вперед;
* портерианский и ресурсный подходы к стратегированию;
* требования, которые мы предъявляем к архитектуре, и их связь с time2market;
* как обеспечиваем отказоустойчивость и балансируем нагрузку;
* как эксплуатируем систему с более чем 20 000 серверов;
* какие решения позволяют делать 3,5 тысячи деплоев в год с winrate 97,7%;
* как устроена система сборки, которая позволяет собрать 8 млн строк кода и раскатить на 10 000 серверов за 7 минут;
* и как, собственно, сейчас выглядят техстратегия и архитектура ВКонтакте.
Доклад принят в программу конференции
H264 жив
Видео — основная часть трафика в интернете, для Дзена важно уметь контролировать его рост, ограничивать сверху.
Я расскажу про механизмы экономии трафика, которые мы реализовали.
Для этого пришлось применять такие подходы:
* подобрать набор оптимальных пресетов для видео;
* уметь быстро категоризировать видео в один из пресетов;
* не ухудшить визуальное качество.
Доклад принят в программу конференции
SSO-решение на 5 млн пользователей. Масштабирование от пилотного проекта до федерального уровня
У нас было порядка 20 клиентских мобильных и веб-приложений с локальной аутентификацией, написанных разными командами со своими процессами и уязвимостями. Переключаться между приложениями было сложно, пользователям это не нравилось. Это привело к созданию решения единого входа для клиентов (SSO).
За 2 месяца внедрили пилот на базе открытого KeyCloak и начали постепенно масштабировать его на всю страну. При 300000 сессиях получили даунтайм при обновлениях: пользователи не могли войти в систему около 15 минут. Мы снизили время простоя настройками кэширования и модификацией схемы базы данных до 3 минут, но дальше нас ждал первый миллион сессий…
Доклад принят в программу конференции
С чего начинается биллинг облачных сервисов
Сейчас биллинг Yandex Cloud обрабатывает около 4,2 миллиарда метрик от сервисов в сутки, а задержка с момента, когда что-то случилось, до того, как это отразится в детализации, составляет единицы минут.
Расскажу, как мы проектировали биллинг, какие вопросы задавали сами себе, какие архитектурные решения выдержали проверку временем, а какие нет. В частности, рассмотрим:
* как строить объектную модель;
* масштабируемость: что будет, если пользователей, продуктов или данных станет больше в 100 раз (спойлер: так и вышло);
* механизмы доставки данных о потреблении: push, pull, message queue;
* OLTP для потоковой обработки и OLAP для тяжёлой аналитики.
Доклад принят в программу конференции
Построение современных lakehouse-архитектур с помощью Presto
Lakehouse — это современная архитектура построения аналитических платформ компаний, которая совмещает лучшие качества data warehouse и data lake. Одним из популярных продуктов для построения lakehouse-систем является Presto — массивно-параллельный распределенный SQL-движок для выполнения федеративных запросов.
В данном докладе мы обсудим основные сценарии использования и построения lakehouse-архитектур, после чего посмотрим, как техническая реализация Presto помогает создавать масштабируемые корпоративные аналитические платформы:
* дезагрегация storage и compute, которая позволяет масштабировать вычислительные ресурсы без перемещения данных;
* коннекторы к большому количеству целевых систем с возможностью гибких pushdown-вычислений;
* продвинутая работа с сырыми данными с использованием современных технологий Apache Iceberg и Delta Lake;
* кэширование сырых данных на воркерах для уменьшения latency и стоимости работы с object storages;
* высокопроизводительный массивно-параллельный компилируемый SQL-движок.
Доклад принят в программу конференции
Пуш-уведомления в RuStore: как мы сделали свой транспорт на замену Google Firebase
В докладе будет рассказано об архитектуре сервиса, который позволяет отправлять пуш-уведомления на мобильные устройства с минимальной задержкой, подобно Google Firebase. Расскажем, как сделали сервис надежным (горизонтально масштабируемым на базе Redis Cluster и Scylla, устойчивым к DDoS через публичные API), как можно держать в фоне открытый Web Socket на Android, пользуясь доступными возможностями ОС. Покажем, как пользоваться нашими публичными API и SDK, поделимся опытом интеграции в "Почту Mail.Ru" на Android и бэкенде.
Доклад принят в программу конференции
Побег из Шоушенка в мире сетей
На сегодняшний день облака — объективная реальность. Кто-то их использует как потребитель, а кто-то разрабатывает их. Но и тем и другим будет полезным погружение в их устройство.
* Как достучаться до API, если сетевого доступа нет?
* Как работают изолированные виртуальные сети в облаках, и чем они отличаются от железных?
* Как можно нарушить эту изоляцию и не сделать огромную дыру в безопасности?
Расскажем о том, как вывести трафик из изолированных сетей, построенных на базе Neutron Openstack, без большого штата разработки, без заливания железом, без нагоняев от службы ИБ.
Доклад принят в программу конференции
YDB Topic Service: надёжная и масштабируемая очередь сообщений
В составе платформы YDB мы вывели в Open Source сервис очередей сообщений — Topic Service. Это решение поверх YDB, которое обладает надёжностью, масштабируемостью, даёт управляемые гарантии FIFO-порядка и семантики доставки.
В этом докладе я расскажу, как устроен YDB Topic Service, чем похож и чем отличается от других популярных продуктов, в частности Apache Kafka®. Также я расскажу про реальное применение этой технологии в инфраструктуре и сервисах Яндекса, на инсталляции масштаба тысячи хостов и десятков ГБ/с на запись.
Доклад принят в программу конференции
Базы данных и системы хранения (19)
GeeseFS: ФС из S3, или Параллелизм гусей в природе
Никогда такого не было, и вот опять! Спустя 15 лет после появления S3 пользователям всё ещё нужны кластерные ФС под сценарии использования, близкие к тому, на что обычно рассчитано S3. А именно: большую/бесконечную ёмкость, низкую стоимость хранения, крупноблочный доступ, масштабируемость.
А можно ли сделать из S3 ФС? Обычный ответ: можно, но будет очень медленно. Казалось бы, файл — это «именованная последовательность байтов» и объект в S3 — тоже. Однако ФС плохо работает как S3, а S3 обычно плохо работает как ФС. Но почему?
Наш ответ в том, что если половина этой проблемы — действительно архитектурные вопросы различий между ФС и S3 (о которых мы, кстати, тоже поговорим, например, рассмотрим вопрос «а что, вообще, такое POSIX-совместимость ФС?»), то оставшаяся половина — исключительно вопросы реализации, которые оказалось не так уж сложно решить.
И решены они в GeeseFS https://github.com/yandex-cloud/geesefs. GeeseFS — это ещё одна утилита для монтирования S3 через FUSE в виде локальной ФС, но, в отличие от всех остальных реализаций, достаточно POSIX-совместимая и достаточно быстрая, чтобы её можно было использовать без слёз. 🙂
Понятное дело, все проблемы «S3 как ФС» без расширения протокола на стороне сервера не решишь, так что в наши дальнейшие планы входит именно расширение протокола. Конечная цель — оптимизация использования S3 в сценариях, где традиционно «рулят» ФС.
Что реализовано в части нашей S3-ФС уже сейчас, что запланировано на будущее, а также как другие решают ту же задачу (скрещивания ужа и ежа) — обо всём этом мы и поговорим в докладе.
Доклад принят в программу конференции
Как мы переписывали бизнес-логику высоконагруженного приложения на PLPG/SQL
Не нужно рассказывать о том, насколько хороша СУБД Oracle и сколько задач решается с ее помощью. Однако, тема использования альтернативных СУБД сегодня становится все более актуальной.
Сотни хранимых процедур с кучей бизнес-логики, десятки терабайт данных, высокая связность с другими системами — разве могут быть варианты, кроме Oracle?
Да, конечно! Этот доклад — о проекте миграции систем промышленных масштабов с Oracle на отечественную СУБД PostgresPro.
Замена СУБД — непростая задача: нужно заменить фундамент, но так, чтобы не рухнули стены. В докладе расскажу о том, как мы переносили бизнес-логику из Oracle PL/SQL на PLPG/SQL на примере системы, которой пользуются граждане нашей страны.
Доклад принят в программу конференции
Балансировка нагрузки в мульти-эксабайтном сторадже
Сторадж — фундаментальный инфраструктурный сервис, хранящий и раздающий данные почти всех продуктовых сервисов Яндекса (Диск, Почта, Карты, Поиск, Маркет и т.д.), — критическая часть компании с высочайшими требованиями к надежности и доступности. Он обрабатывает миллион запросов в секунду, хранит эксабайты данных и раздает терабит трафика в пике. Под капотом он содержит сотни тысяч hdd в тысячах серверах, размещенных в нескольких ДЦ, и десятки тысяч фоновых процессов, нагружающих железо.
Чтобы все это эффективно работало, необходимо балансировать read- и write-нагрузку между серверами и дисками. Для этого нужно учитывать множество факторов: ломающееся железо (от отдельных дисков до ДЦ целиком), разную "горячесть" данных разных сервисов (от cold до hot), сторонние источники нагрузки в лице фоновых процессов, гетерогенность железа (от 1-гигабитных старых серверов до 50-гигабитных новых) и т.д.
В докладе расскажу, как устроена балансировка read- и write-нагрузки в системе хранения; какие подходы работают, а какие нет; какие трудности могут возникать в процессе эксплуатации и какие особенности есть в multitenancy-хранилищах.
Доклад принят в программу конференции
Аномальные случаи высокой нагрузки в PostgreSQL, и как мы с ними справились
Время выполнения SQL-запросов зависит от наличия индексов, актуальной статистики и т.п. Большинство проблем с производительностью СУБД решаются оптимизацией самых медленных запросов. Но, увы, бывают ситуации, когда классическая оптимизация запросов не приносит желаемого успеха, система продолжает себя вести неадекватно.
Мы хотим рассказать про свой опыт в решении проблем и попробуем ответить на вопросы:
* почему index scan / index only scan могут тормозить при адекватном плане запроса?
* что за странные ожидания LWLock'а SubtransControlLock или ClientRead видны в pg_stat_activity?
* высокая system-time-утилизация CPU в системе процессами PostgreSQL. Кто виноват?
Доклад принят в программу конференции
Репликация между SQL- и NoSQL-базами данных: туда и обратно
В последнее время в рабочих процессах очень часто сталкиваемся с проблемой переноса данных между базами разных типов: реляционными, NoSQL, документоориентированными, колоночными и др. Для этого существует несколько подходов. На основе некоторых из них разработаны решения.
Рассмотрим эти подходы, разработанные решения и какие решения используются у нас на примере Tarantool. Поговорим о том, как быстро и безболезненно перемещать достаточно большие объемы данных между разными базами данных.
Доклад принят в программу конференции
Высокодоступный MySQL на конвейере
Проблемы эксплуатации MySQL в облаках.
* Что нужно автоматизировать в управляемой базе данных?
* Обзор существующих решений и их фатальные недостатки.
* Архитектура и возможности новой HA-утилиты mysync.
* Плюсы и минусы синхронной репликации.
* Как пользователи пытаются выстрелить себе (и нам) в ногу и что с этим делать?
* Направления развития проекта.
Доклад принят в программу конференции
Как перейти от batch к streaming на примере рекламной контент-системы
Ключевая задача рекламной контент-системы — собрать и подготовить все данные, необходимые для отбора и ранжирования баннеров на хите, в том числе про пользователя, баннер и площадку.
В своем докладе я расскажу про наш переход из batch в streaming. Предпосылками для перехода были следующие факты:
* Быстрый учет изменений и событий продуктово важен. В том числе виден на экспериментах в ключевых метриках (отдельные ускорения могут давать до нескольких процентов денег/конверсий).
* Дальнейшее ускорение требовало экспоненциального роста потребляемого CPU (десятки тысяч ядер), либо упиралось в ограничения MapReduce-модели.
* Сложность поддержки большого количества железных машин (~1000 хостов) и самописных систем синхронизации
Сегодня наша контент-система обрабатывает миллионы событий и изменений в секунду, а суммарный размер стейтов со всеми репликами занимает несколько петабайт.
В докладе я расскажу о получившейся архитектуре обработки и хранения данных, какие проблемы нам пришлось решить в процессе.
Доклад принят в программу конференции
Наша Машина Баз Данных (это как Oracle Exadata, только для PostgreSQL) и система управления к ней
Скала^р — это производитель ПАК-ов, которые мы называем Машинами
Одна из наших Машин — МБД.П — это как Oracle Exadata, только про PostgreSQL.
Мы расскажем, как устроена наша Скала МБД.П, как мы пришли к такой конфигурации, каких показателей производительности и надежности удалось добиться.
А ещё Скалой надо управлять не только инженерам высочайшей квалификации, но и пользователям, и мы придумали систему управления для нее — Спектр (не спрашивайте, почему так;-)
Сначала мы хотели делать его как <s>Oracle Enterprise Manager только без глюков и с комьюнити-версией</s>, но потом поняли что архитектура решения не всегда получается с первого раза и без ошибок.
В целом, у нас получилось довольно симптатично, на наш взгляд, на докладе и после него постараемся это показать.
В завершение немного расскажем про наш опыт импортозамещения и постараемся заглянуть в будущее.
Доклад принят в программу конференции
SPQR: горизонтальное масштабирование PostgreSQL
Мы расскажем, как уже давно пытаемся в Yandex Cloud начать горизонтально масштабировать PostgreSQL.
Stateless Postgres Query Router — новая система для горизонтального масштабирования PostgreSQL через шардирование — роутинг запросов по диапазонам. Система работает по протоколу Postgres, предполагает управление перемещением данных между шардами. Поддерживает работу как в сессионном, так и в транзакционном режиме пуллинга запросов.
Доклад принят в программу конференции
Асинхронный транспорт Cassandra
Cassandra является основным хранилищем (мета)данных в Одноклассниках. У нас развёрнуты сотни высоконагруженных кластеров из сотен узлов и тысяч клиентов, распределённых по нескольким дата-центрам. Мы используем и активно развиваем собственный форк Cassandra 2.x. Помимо фиксов множества багов и многочисленных оптимизаций, мы реализовали глобальные индексы (которые работают), поддержали партиционированные транзакции (NewSQL), полностью автоматизировали эксплуатацию в production и многое другое. Но в этом докладе мы сконцентрируемся на подходе FatClient, который используется в наших системах повсеместно.
Подход FatClient переносит роль координатора запросов на клиента, который становится полноценным участником кластера Cassandra. Это позволяет устранить лишние сетевые задержки, разгрузить ноды Cassandra от сетевых задач координации и значительно повысить производительность и стабильность поведения всей системы. Но несмотря на все достоинства подхода, мы столкнулись с неэффективностью и ограничениями существующего транспорта Cassandra на масштабах кластеров, состоящих из тысяч участников: узлов, хранящих данные, и клиентов, работающих с этими данными.
В докладе мы подробно рассмотрим собственную реализацию асинхронного транспорта Cassandra, которая позволила нам существенно сэкономить ресурсы и упростить жизнь разработчиков. Новый транспорт основан исключительно на Java SDK и лаконичной, но эффективной реализации Actor Model. Помимо устройства нашего решения, поговорим про различные оптимизации, возникшие по пути проблемы, а также переключение на асинхронный транспорт нагруженных кластеров Cassandra в production.
Доклад принят в программу конференции
Как мы делали отказоустойчивый Redis в Yandex Cloud
Мы создали агент и назвали его rdsync по аналогии со своими другими решениями (pgsync — для PostgreSQL, mysync — для MySQL). Пропатчили Redis, чтобы можно было делать failover/switchover безопасно. Обложили это всё множеством функциональных и jepsen-тестов. Сделали отдельный демон, который может повторять протокол sentinel с точки зрения взаимодействия с клиентами (https://redis.io/docs/reference/sentinel-clients/).
В докладе подробнее расскажу, чем не устроил вариант «из коробки», как мы поддерживали обратную совместимость, как тестируем и проверяем, что решение не теряет данные.
Доклад принят в программу конференции
Повышаем живучесть Raft в реальных условиях
Алгоритм Raft стал весьма популярен в последние годы. Описание алгоритма достаточно ясно, имплементации появляются во все большем количестве проектов. Однако все выглядит хорошо на бумаге — будь то математика или рекламные статьи, а при практическом применении все оказывается сложнее.
В этом докладе мы расскажем о поддержке работоспособности кластера Tarantool в условиях частичной связности с реальным примером того, как чистый Raft не справился с задачей. В таких же условиях в какой-то момент в кластере может оказаться два лидера, от чего, казалось бы, прямо обещана защита в Raft.
Итак, на практике мы ожидали от Raft следующего.
Во-первых, кластер должен оставаться доступным и на запись и на чтение при частичной потере связности в сети. Канонический Raft не даёт таких гарантий, и это привело к инциденту в Cloudflare в 2020, когда одна из реплик не видела лидера и на протяжении 6,5 часов постоянно устраивала новые выборы, не давая лидеру поработать хоть сколько-нибудь.
Решение проблемы с доступностью кластера при частичной потере связности создает еще одну: при определенных условиях кластер будет неспособен выбрать нового лидера даже при наличии достаточного количества живых и соединенных между собой узлов, в то время, как предыдущий лидер уже не имеет достаточного количества живых соединений и более неспособен произвести запись. Чтобы это исправить, необходимо, чтобы лидер “слагал полномочия” в случае потери кворума живых соединений. Кроме этого, добровольное снятие полномочий позволяет обеспечить уникальность лидера в кластере: к моменту, когда будет выбран новый лидер, старый лидер уже сложит полномочия.
В конце концов, хочется, чтобы после смерти старого лидера кластер стал снова доступен на запись (выбрав нового лидера) максимально быстро (через 10-15 секунд).
Доклад принят в программу конференции
Как работает MVCC в In-Memory-СУБД
Один из ключевых механизмов любой СУБД — это возможность предоставить согласованное состояние данных в базе в виде "снимка" или "снапшота". Этот механизм используется в первую очередь для организации изоляции транзакций: каждая транзакция видит свою версию состояния базы данных. В сочетании с другими механизмами это порождает технологию MVCC, когда транзакции независимо и одновременно видят каждая свое собственное состояние БД и работают в нем. Помимо этого, снимок состояния базы данных (записанный в файл) можно использовать для восстановления после перезапуска, а также для инициализации реплики.
Изначально MVCC был придуман и реализован для дисковых БД, это хорошо известная и описанная технология. Последующее развитие баз данных в памяти привело к созданию специализированных подходов именно к базам данных в памяти.
В этом докладе я на примере In-Memory-СУБД Tarantool в памяти расскажу, как устроены снимки данных и MVCC, как и почему эволюционировали эти алгоритмы, во что обходится поддержание этих структур пользователю, как правильно использовать и что ожидать от этих механизмов.
Доклад принят в программу конференции
Просто о сложном: как работает драйвер распределенной базы данных YDB
Клиент-серверное взаимодействие высоконагруженных приложений и распределенных баз данных имеет ряд особенностей. Так, необходимо оперативно выяснять и отслеживать изменения топологии кластера базы данных, балансировать запросы по узлам (нодам) этого кластера, корректно обрабатывать возникающие ошибки.
Драйвер распределенной базы данных существенно отличается от драйверов традиционных (нераспределенных) баз данных. Главная отличительная особенность распределенных баз данных - необходимость работать со множеством нод СУБД. Для равномерной нагрузки на ноды БД в YDB используется как клиентская, так и серверная балансировка. Для баз данных, работающих в режиме 24/7 и допускающих различные сценарии отказа, драйвер должен быть готов к ошибкам разного рода. Это влияет на то, каков должен быть драйвер распределенной базы данных. В докладе мы расскажем про наш опыт разработки драйверов для распределеной БД на разных языках, про проблемы, с которыми сталкивались и решали или митигировали, а также про вынесенные уроки и принятые решения.
Доклад принят в программу конференции
Архитектура надёжной In-Memory-СУБД на примере Tarantool
База данных в оперативной памяти или in-memory-db — понятие не новое. На сегодняшний день сложилась довольно сильная ассоциация подобных решений со словами «кэш», «неперсистентный» и «ненадёжно».
Решения в оперативной памяти имеют гораздо более широкое применение, чем кэш. А уровень надёжности не хуже, чем у самых проверенных реляционных БД.
Я расскажу, какие архитектурные подходы позволяют базе данных в памяти быть надёжной, как швейцарские часы. Я рассмотрю устройство Tarantool от входящего запроса до работы синхронной репликации и транзакционного механизма на скорости в 1 000 000 RPS.
Цель моего доклада — показать, что in-memory-технологии уже достаточно зрелые и надёжные, чтобы быть основным хранилищем данных в вашем продукте.
Доклад принят в программу конференции
AP и CP: пытаемся усидеть на двух стульях и боремся с последствиями
Многие системы, стараясь описать свое поведение в ненадежной сети, прибегают к терминам CAP-теоремы и описывают себя либо как AP, либо как CP.
Алгоритм Raft является классическим примером CP — обеспечивает линеаризуемость в случае разделения сети, но это в определенных случаях приводит к временной потере доступности и на запись, и на чтение до восстановления связности.
Да, на бумаге всё хорошо. Берём нечётное количество узлов и наслаждаемся работоспособностью кластера и консистентностью данных до тех пор, пока большая часть узлов работает. Однако, эта схема использования идёт вразрез с самой популярной схемой установки БД: равное число узлов в двух ЦОД-ах. Для Raft это значит, что потеря одного ЦОД-а сразу приведёт к недоступности кластера на запись.
Отсюда возникает необходимость переключения между надёжностью и доступностью: если пользователь видит, что один из двух ЦОД-ов неработоспособен, он может решить продолжить обслуживать запросы в живом ЦОД-е без участия второго ЦОД-а, то есть превратить CP-систему в AP. Мы дали пользователю такую возможность в реализации Raft в Tarantool и столкнулись с условиями потери консистентности данных, с которыми бы никогда не встретился канонический Raft.
Такой режим работы не дает гарантий Raft, поскольку человеческая ошибка может привести к тому, что этот режим будет включен в двух ЦОД-ах одновременно. Это уже приведет к возникновению двух противоречащих друг другу версий наборов данных. Значит, разрешая такое понижение надежности, мы должны научиться обнаруживать различия в наборах данных и предупреждать пользователя об этих различиях, не давая репликации соединить два противоречащих набора.
Нам удалось сделать это благодаря маркерам лидерства в журнале. Во время нормальной работы маркеры лидерства выстраиваются в согласованную цепочку, позволяя проследить историю смены лидеров до самого начала журнала.
Если же во время разделения сети человеческая ошибка приводит к возникновению двух независимых наборов данных, маркеры лидерства в двух наборах, начиная с какого-то общего предка, составляют две разделившиеся цепочки.
Если мы умеем находить расхождения в цепочках маркеров лидерства, мы умеем находить противоречащие участки журналов. Это позволяет отклонять репликацию конфликтующего набора данных и эскалировать проблему до пользователя.
В этом докладе поговорим о методах, которые мы применили, чтобы обнаруживать такие расхождения и обеспечивать консистентность данных после периода работы в разделенной сети.
Доклад принят в программу конференции
Ускоряем хранимые процедуры на Postgres pl/pgSQL по гистограммам, или Жизнь после импортозамещения
Доклад посвящен особенностям настройки БД и хранимых процедур после успешного перехода с Oracle PL/SQL на Postgres pl/pgSQL, о котором я рассказывал на прошлогодней конференции.
С тех пор накопился опыт лечения детских болезней в области производительности БД, плавно перетекающий в профилактику и лечение хронических заболеваний в этой же области.
В докладе с цифрами и фактами рассматривается опыт борьбы за производительность БД и рассказывается, как в случае использования хранимых процедур управлять производительностью. Кроме того, при переходе с Oracle на Postgres обнаружены новые типы лежащих на этом пути граблей отложенного действия, о которых тоже будет с удовольствием рассказано.
Доклад принят в программу конференции
Укрощение мифического чудовища: реальный опыт промышленного использования ScyllaDB без прикрас
"Кассандра — прошлый век", — говорили они, — "Переходите на Сциллу". Написана на плюсах, быстрая, надежная, с шардированием из коробки. Как тут удержаться и не попробовать? Тем более в условиях, когда вендоры других популярных баз данных того и гляди закроют поддержку для российских пользователей. Всё-таки хочется иметь под рукой пару-тройку запасных вариантов.
Решились! Нашли время, ресурсы и провели исследование одноглазого монстрика в диких условиях кровавого энтерпрайза. Что из этого вышло — опыт, лайфхаки и выводы о целесообразности использования Сциллы — в моём докладе.
Спойлер: зверушка у нас прижилась :)
Доклад принят в программу конференции
Accord — алгоритм управления распределёнными транзакциями
В последние годы алгоритмы распределённых транзакций значительно эволюционировали — Spanner, Calvin, Ceasar, Tempo. В докладе я расскажу про ограничения, которые пытаются преодолеть авторы протоколов, и остановлюсь на протоколе Accord, который недавно был предложен в экосистеме Cassandra. Протокол работает без выделенного лидера и позволяет избежать большого числа конфликтов при обновлении "горячих" данных, что делает его пригодным для наиболее высоконагруженных сценариев.
Доклад принят в программу конференции
Менеджмент крупных проектов (5)
GraphQL: простая schema провала, или Серебряная пуля для ваших ног
"GraphQL очень простая технология: бери и делай, что там сложного?", — такую фразу я слышал от большинства senior-разработчиков, с которыми обсуждали GraphQL. С точки зрения самой технологии это действительно так (ну да, бери и делай:), однако наш многолетний опыт работы показал, что с точки зрения управления командой это не совсем так.
"А стал бы ты использовать GraphQL ещё раз в новом проекте?", — это второй по популярности вопрос, на который раньше у меня не было четкого ответа. "И да и нет", — отвечал я... Но всё-таки: да или нет?
В этом докладе я постараюсь ответить на вопрос, когда действительно стоит рассмотреть внедрение GraphQL в свой проект, сколько ресурсов на это нужно, что вас будет ждать и как минимизировать риски, если вы всё-таки решитесь на это. Помните: Highload не всегда определяется большим RPS или объемом данных. Иногда большие нагрузки ложатся на менеджмент, архитекторов и разработку.
Доклад принят в программу конференции
СберБанк Онлайн: масштабная трансформация legacy
3 года назад перед нами встала задача перехода на микросервисную платформу.
Мы мигрировали сервис за сервисом, ускорялся ТТМ. Но нагрузка на legacy не падала.
Расскажу, как не оказаться в ситуации, когда 60% проекта завершено, а нагрузка на legacy продолжает расти, какие метрики для проекта выбрать на старте и с какими сложностями мы столкнулись в проекте.
Доклад принят в программу конференции
Сколько стоит разработать собственную сборку Hadoop: история и техника, как получилось в Сбере
1. Сколько стоит входной билет в создание собственной сборки.
2. Какие потребовались перфоманс-доработки, когда у тебя несколько тысяч серверов под Hadoop.
3. Тележка сложностей, с которыми столкнулись по дороге к проду.
Доклад принят в программу конференции
Объединение DevOps, SRE, Dev, QA в единый DevOps-процесс в банке
Существует мнение, что DevOps работает только в формате небольшой компании и масштабировать очень сложно и, вообще, это неприменимо к крупным энтерпрайз-организациям или необходимо сразу создавать DevOps-отдел.
В ходе данного доклада хочется раскрыть данную тему и поделиться положительным опытом на темы:
* как мы выстроили работу DevOps, SRE, дежурной application-службы без создания DevOps-отдела;
* как в эту схему вписали Dev и QА, какую роль они играют;
* как масштабировать данную систему при количестве инженеров 50+ и 150+ команд;
* как быстро можно расти в данной схеме и не стать винтиком системы;
* как проводить онбординг, стажировку;
* как учитывать пожелания инженеров и облегчить наем.
Доклад принят в программу конференции
Круглый стол СТО: Инженерная культура
С 2018 года, когда множество компаний стартовали цифровую трансформацию и начали активно заниматься собственной разработкой, словосочетание «инженерная культура» стало таким же популярным, как и сама цифровая трансформация.
Насколько российским компаниям сегодня удалось сформировать эффективную инженерную культуру, и что в целом под ней понимается? Как оценивать, строить, находить единомышленников и справляться с препятствиями на пути ее формирования — поговорим на круглом столе.
Доклад принят в программу конференции
DevOps и эксплуатация (11)
VML — нет времени объяснять, создавай виртуалку!
VML — это инструмент для простой и прозрачной работы с виртуальными машинами qemu. VML может инициализировать образы с помощью cloud-init. Виртуальные машины с ALT, Arch Linux, Centos, Debian, Fedora, openSUSE и Ubuntu можно создать всего одной командой.
Изначально VML разрабатывался для тестирования облачных образов, но потом оказался полезен и при решении других задач. Одна из основных фич — древовидность. Практически все команды можно запустить сразу на группу виртуалок. Запустить новую виртуальную машину почти так же просто, как сказать "Я люблю Linux" — нужно всего 3 слова...
Доклад принят в программу конференции
Мониторинг черных ящиков и котов в мешке через eBPF
ПО сторонних производителей сложно мониторить из-за отсутствия удобного API, интерфейсов, а также из-за лицензионных ограничений. На помощь приходит eBPF — современная подсистема в ядре Linux, позволяющая вставлять ваши вызовы в любой пользовательский код и некоторые системные функции ядра. Теперь задачу мониторинга может решить даже менеджер, у которого лапки.
Доклад принят в программу конференции
Bare metal K8s, или Туда и обратно. История Quadcode
Как и многие другие компании, 5 лет назад мы перешли от монолитной архитектуры к микросервисной. Наши нагрузки за это время существенно выросли, а вместе с ними выросла и потребность в быстрой и масштабируемой инфраструктуре. Наш Kubernetes прошёл путь от Kubespray к своим плейбукам, а от них — к подходам, похожим на подходы облачных провайдеров. От трёх статичных кластеров до сотни, поднимаемых за 3 минуты.
В докладе мы проследим эволюцию технических аспектов и процессов вокруг наших кластеров и предпосылки тех или иных решений. Слушатели узнают, к каким факапам привёл выбор Kubespray, почему мы сталкивались со сменой подхода к управлению инфраструктурой каждые два года и как решаем эту проблему. На цифрах посмотрим, сколько в разное время занимали процессы по раскатке кластера с нуля, добавлению нод, апгрейду версий кластера. И конечно, поговорим о планах развития, а также о плюсах и минусах разных подходов по сопровождению вашей инфраструктуры под K8s.
Доклад принят в программу конференции
API management и API gateway. Что это и нужно ли оно вам?
* API management — что это такое и с чем его едят.
* Зачем это, вообще, надо.
* Публичные API.
* Обзор решений для API management.
* Наш опыт с Gravitee GW — чего оно умеет, и какие проблемы помогло решить.
Доклад принят в программу конференции
Строим отказоустойчивую инфраструктуру приложения в Kubernetes. Принципы, паттерны, приёмы
Задача обеспечения стабильности и отказоустойчивости приложений остаётся актуальной во все времена. Задача эта комплексная и лежит в нескольких плоскостях:
* отказоустойчивой должна быть инфраструктура, в которой мы эксплуатируем приложение;
* архитектура приложения должна быть построена с учетом требований по отказоустойчивости.
С появлением Kubernetes у нас появилось гораздо больше возможностей создавать отказоустойчивые приложения, вынося и реализуя паттерны отказоустойчивости в плоскости инфраструктуры.
Давайте разберём эти возможности и рассмотрим паттерны создания отказоустойчивой инфраструктуры для приложений в Kubernetes.
Доклад принят в программу конференции
Кролик по-СДЭКовски: RabbitMQ как основной центр обмена данными в модульной среде с очередями больше 2000
В СДЭК вместе с Кроликом мы прошли тернистый путь от 1 ноды до крупного кластера. Мы поделимся нашим опытом использования инструмента и расскажем:
* как мы живем с хайлоад-кластером из 8 нод;
* почему мы отказались от HA-cluster;
* почему мы не используем Kafka?
* какие опасности вас могут ждать, если вы хотите делать распределенный кластер между ЦОД-ами;
* отказоустойчивость или скорость — а можно все вместе?
* почему в Exchange мы отказываемся от Topic и уходим на Fanout?
* история наших факапов, и как PHP сжег кролика;
* что нового появилось в RabbitMQ за последний год.
Доклад принят в программу конференции
PaaS cookbook
Цель инфраструктурной команды — улучшить надежность и отказоустойчивость, уменьшить time to market, снизить когнитивную нагрузку. Для этого многие компании реализуют свою домашнюю платформу (PaaS).
В рамках доклада рассмотрим набор рецептов от более простых до сложных, которые можно применить у себя в компании для реализации собственной платформы (PaaS). С примерами и граблями из нашего опыта и опыта других компаний. Поговорим о цене своего решения и альтернативах.
Доклад принят в программу конференции
Root cause analysis monitoring
Базы данных, очереди, приложения на Spring и много чего еще, и все это в тысячах экземпляров — чем сложнее инфраструктура, тем выше вероятность возникновения ошибок. Своевременно исправлять ошибки (а ещё лучше — предсказывать их возникновение и своевременно реагировать) — одна из главных задач провайдера облачных сервисов или владельца собственной крупной инфраструктуры.
Поделимся тем, как мы используем графы в задачах мониторинга и observability и как Root Cause Analysis в мониторинге помогает командам эксплуатации.
Как и многие другие вендоры ПО, 1С давно предлагает свои продукты в облачном варианте. Это, в первую очередь, наши облачные сервисы 1С:ГРМ (Готовое Рабочее Место) и 1cFresh. Предоставление облачных сервисов требует наличия соответствующей инфраструктуры — прежде всего серверов, на которых размещаются виртуальные машины с приложениями, и софта, управляющего физическими и виртуальными машинами.
Доклад принят в программу конференции
Решение проблемы ресурсов у команд-участников цикла разработки
Представим, что команда DevOps делает не только всё, что связанно с CI/CD, но и сильно выходит за эти рамки.
Представим, что коллеги из тестирования и разработки имеют ограниченные права везде и по любому чиху дёргают инженеров. А как быть с фокусом на развитие и внедрение новых технологий и систем, при этом успевая всё?
Сказ пойдёт о том, как решить проблему перераспределения ресурсов в командах-участниках цикла разработки. Казалось бы, зачем это делать? Для того чтобы высвободить ресурсы одних команд, повысить компетенции других команд со сменой фокуса на целевые активности.
Мы поделимся тем, с какими преградами столкнулись на пути внедрения и изменения процессов, какими доводами договаривались с противниками внедрения, какой профит получили на выходе.
Доклад принят в программу конференции
Экодиктант 2021: highload-проект с нуля за 2 месяца
Как мы собрали сервис онлайн-тестирования за 2 месяца и провели "Экологический диктант" для 72 стран мира.
Доклад принят в программу конференции
Как устроена разработка Kubernetes-платформы Deckhouse
В 2021 году состоялся публичный OpenSource-релиз платформы для автоматизации обслуживания Kubernetes-кластеров — Deckhouse. До этого платформа более трех лет развивалась исключительно как внутренний DevOps-инструмент «Фланта». Deckhouse аккумулировала технологический опыт и лучшие практики, полученные нами в многочисленных и разнообразных highload-проектах. Сейчас Deckhouse — это платформа Enterprise-уровня, которая сертифицирована в CNCF и входит в единый реестр российского ПО.
В докладе расскажу, как устроен процесс разработки Deckhouse, основанный на сложившихся в OpenSource-сообществе и на GitHub практиках, учитывающий потребности инженеров, бизнеса, специалистов информационной безопасности и других пользователей, которые так или иначе взаимодействуют с платформой.
Какие вопросы рассмотрим в ходе доклада:
* процессы разработки, тестирования и управления релизами Deckhouse;
* интеграция со сторонними решениями для мониторинга, работы сети, безопасности и с другими необходимыми компонентами;
* как мы приносим исправления и доработки в код сторонних решений вроде Cilium и KubeVirt;
* наш вклад в развитие «ванильного» Kubernetes;
* как организована техническая поддержка;
* как мы сопровождаем пользователей — команды клиентов и внутренние DevOps-команды «Фланта»;
* планы по развитию платформы.
Доклад принят в программу конференции
Тестирование, нагрузочное тестирование (1)
О чём я говорю, когда говорю о тестировании корректности работы компилятора
Любая программа, запущенная на компьютере, была создана компилятором и, так как компиляторы являются важной частью инфраструктуры для создания программного обеспечения, их корректность имеет первостепенное значение. Чтобы проверить и повысить правильность поведения компиляторов, значительные усилия во время разработки направлены на тестирование компиляторов.
В Tarantool за поддержку языка Lua отвечает LuaJIT, который включает в себя как среду исполнения языка, так и трассирующий JIT-компилятор. Мы решили использовать фаззинг-тестирование для LuaJIT, потому что стандартное тестирование не позволяет выявить все проблемы во время разработки. Несмотря на популярность рандомизированного тестирования и множество доступных инструментов для фаззинга, нам пришлось изучить методы, показавшие эффективность при тестировании других компиляторов, и разработать собственные инструменты. Мы попробовали фаззинг без грамматики, фаззинг с грамматикой на основе LibFuzzer и LibProtobufMutator, собственный мутатор для Lua-программ и проверку оптимизаций с помощью SMT-решателя.
В докладе я расскажу про различные аспекты проблемы тестирования корректности компилятора, в том числе то, как генерировать случайные программы, какие тестовые оракулы использовать для определения того, правильно ли ведет себя компилятор, как эффективно выполнять тесты компилятора и эффективных методах тестированиях компиляторов на основе нашего опыта тестирования LuaJIT.
Доклад принят в программу конференции
Узкотематические секции (3)
VK Звонки: все про звук, или Как добиться эталонного качества передачи голоса через интернет
Почему, если кто-то участвует в “созвоне” из автомобиля, то его плохо слышно? В чем особенность использования динамиков вместо наушников, когда вы находитесь на звонке? Что происходит со звуком участника звонка, если у него плохой интернет? Можно ли измерить качество звука в цифрах?
На эти и другие вопросы я постараюсь ответить в своем докладе на примере нашего сервиса.
Через VK Звонки ежедневно общаются миллионы людей, одновременно идут десятки тысяч разговоров и рабочих совещаний. Расскажу, как нам удается обеспечить качество звука, способное конкурировать с мировыми лидерами рынка, с какими сложностями мы сталкиваемся и как оцениваем эффективность наших доработок и улучшений.
Доклад принят в программу конференции
СМЭВ. Сильно проще, чем кажется. Полезные советы, как стартовать интеграцию через СМЭВ3 и СМЭВ4
Мы делаем СМЭВ. СМЭВ — это платформа, которая обеспечивает надежную передачу различных данных между примерно ~5к систем участников обмена по ~2к прикладных протоколов с интенсивностью 10к обменов в секунду. СМЭВ — это единственный способ взаимодействия систем государства для целей госуслуг и госфункций.
В докладе расскажем про то, сколько бывает СМЭВ-ов и чем они отличаются. Для каких обменов какой СМЭВ полезнее. Расскажем про базовые понятия, которые нужно знать, чтобы чувствовать себя увереннее в мире СМЭВ: виды сведений, витрины, рег. запросы и т.д.
Дадим описание других систем экосистемы СМЭВ. Личный кабинет участника СМЭВ — все околосмэвовское можно делать в нем. Боты телеграм. ЕСНСИ — облачная платформа для распространения условно постоянной информации. Клиентское ПО — Адаптеры СМЭВ, Витрина данных.
Расскажем про то, какие мы в СМЭВ все открытые и готовые помочь, подсказать. Про нашу базу знаний info.gosulugi.ru, про телеграм-канал. Про то, как призвать нас на помощь, если что-то непонятно.
Доклад принят в программу конференции
Клиентоцентричный подход к управлению данными
Управление клиентскими данными — сложная задача для любой большой компании. В масштабах Сбера — с сотнями различных процессов и автоматизированных систем, числом клиентов более 100 млн — эта задача многократно усложняется. Разным потребителям данных требуется получать актуальную информацию о клиенте в определенном разрезе и режиме с высоким уровнем сервиса и качества.
В докладе расскажу о клиентоцентричной архитектуре Сбера, как на ее основе развивается система по управлению профилем клиента и каким образом клиентоцентричный подход помогает минимизировать число проблем, связанных с рассинхроном клиентских данных. Бонусом подсветим текущий «джентльменский набор» функциональных АС, которые позволяют эффективно управлять клиентскими данными.
Также поговорим о:
* проблемах и потребностях, которые возникают на пути развития архитектуры по управлению клиентскими данными, и способах их решения;
* почему искать клиента в системах банка по ФИО-ДУЛ-ДР — неправильно, и как с этим бороться;
* какие паттерны обмена клиентскими данными между АС используют в Сбере и почему не всегда работает классический pub-sub;
* как побороть ошибки «исторического наследия» в управлении клиентскими данными за счет внедрения архитектурных стандартов.
Доклад принят в программу конференции
Безопасность (8)
K8s Security на разных уровнях абстракции
* Рассмотрим подходы к выстраиванию безопасности K8s с использованием OpenSource в высоконагруженных кластерах.
* Поговорим про обеспечение безопасности K8s в облачных средах.
* Расскажу, как безопасно развернуть платежную инфраструктуру в кластере.
* Коснемся вопросов 0-trust внутри K8s.
* Погрузимся в IaaC и GitOps с точки зрения обеспечения безопасности K8s.
* Оценим 0-touch prod с позитивных и негативных сторон.
* Разберем применение OpenSource Runtime Security.
Доклад принят в программу конференции
Построение архитектуры с использованием формальных моделей безопасности
Как упростить жизнь программистам, DevOps и security-инженерам, не зная об этом?
А находить уязвимости в системе, ничего не зная о безопасности?
В конце концов, как уничтожить звезду смерти Netflix?
Все это мы узнаем на встрече, а также увидим Left от ShiftLeft, поговорим о построении архитектуры современного продукта с помощью нотации DFD, обсудим формальные модели безопасности и научимся их применять к нашему продукту.
Доклад принят в программу конференции
Сочетание несочетаемого в Kubernetes: удобство, производительность, безопасность
В данном докладе хочется развенчать миф, что из 3-х качеств (удобство, производительность, безопасность) одновременно можно выбрать только 2. И все это благодаря новым решениям, подходам, инструментам, которые дружно уживаются и дополняют друг друга в Kubernetes!
Поговорим об immutable infrastructure, специализированных Container-Optimized OS, минималистичных образах для микросервисов и многом другом!
Доклад принят в программу конференции
Безопасность ядра Linux: в теории и на практике
Безопасность ядра Linux — очень сложная предметная область. Она включает большое количество взаимосвязанных понятий: классы уязвимостей, техники их эксплуатации для проведения атак, механизмы выявления ошибок, технологии защиты ядра.
Александр Попов разработал карту средств защиты ядра Linux, которая отражает взаимосвязи между этими понятиями. В докладе он даст обзор текущего состояния безопасности Linux, используя данную карту, и расскажет о своем инструменте kconfig-hardened-check, который помогает управлять ядерными опциями безопасности.
Доклад принят в программу конференции
Продвинутые подходы построения AppSec
В докладе рассмотрим набор техник, про которые редко говорят на конференциях. Мы не будем заострять внимание на SAST, DAST, DevSecOps, а обсудим другие вопросы: security-амбассадоров, бюджет ошибок безопасности, построение адекватного процесса взаимодействия ИТ и ИБ, постоянную оценку рисков.
В рамках встречи поделюсь готовыми практическими наработками для улучшения процессов ревью архитектуры ИБ и оценки угроз. Обсудим, как сделать эту скучную работу модно и эффективно
Доклад принят в программу конференции
Крах компаний: и при чем тут кибербезопасность, спрашивается?
За последние несколько лет с рынка исчезло некоторое количество компаний (ну, или они перестали быть активными). Например, SolarWinds — разработчик ПО для IT-подразделений. В ряде случае причиной исчезновения стало не что иное, как компьютерный инцидент. При этом мало кто понимает причины возникновения таких инцидентов, какова в них роль программистов и могли ли именно они в данном случае спаси свои компании.
Рассмотрим пять самых известных кейсов, выясним, в каком конкретно месте роль программиста оказалась роковой и как ему стоило организовать свою работу, чтоб не забивать мячи в свои ворота.
Доклад принят в программу конференции
Хакнуть K8s: разбор пэйлоадов и способов защиты
В современном быстро меняющемся мире главной ценностью является информация. С развитием и усложнением программных продуктов, а также переходом на микросервисную архитектуру зачастую вопросы безопасности инфраструктуры отходят на второй план. А между тем, ошибки, допускаемые при проектировании информационной системы и некачественной настройке ее компонентов, могут привести к фатальным проблемам: захвату серверов, майнингу на ваших мощностях, краже конфиденциальной информации. При этом огромное количество DevOps-специалистов зачастую относятся к требованиям сотрудников кибербезопасности как к мешающим их работе и закрывают замечания иногда либо только на бумаге, либо подгоняя под различные тест-кейсы.
Особую роль в построении современной высоконагруженной системы играет Kubernetes, позволяя вам легко управлять тысячами контейнеров при помощи конфигурационных файлов. Но высокий уровень абстракции притупляет наше внимание, а ведь под красивым названием оркестратора скрываются Linux, сети, Go и containerd. При этом кажется, что K8s из коробки обеспечивает приемлемый уровень безопасности для вашего приложения. Но это утверждение верно лишь отчасти.
В докладе будут рассмотрены следующие темы:
* Reverse-shell, или Как заставить сервер подключиться к вашему ПК и предоставить вам оболочку.
* Docker Escape на практике: опасность привилегированных контейнеров и практическая демонстрация побега при помощи добавления самописного модуля в ядро.
* RBAC, права в K8s и к чему приводит выдача слишком широких полномочий Pod'ам.
* Практический захват кластера из Pod'а и запуск криптомайнеров.
* Основные ошибки при написании манифестов для сервисов.
Доклад будет интересен как DevOps- и DevSecOps-специалистам, так и всем увлекающимся пентестами и машинками на HackTheBox, бывшим и действующим игрокам в CTF.
Доклад принят в программу конференции
Омерзительная восьмёрка: техники, тактики и процедуры (TTPs) группировок шифровальщиков
Мы в «Лаборатории Касперского» провели анализ самых популярных тактик, техник и процедур (TTPs) восьми самых активных групп шифровальщиков: Conti/Ryuk, Pysa, Clop (TA 505), Hive, Lockbit 2.0, RagnarLocker, BlackByte и BlackCat. Эти группы ведут свою деятельность по всему миру, в том числе в США, Великобритании, Германии. За исследованный нами период — с марта 2021 по март 2022 года — операторы этих групп пытались атаковать более 500 организаций в разных отраслях, среди которых промышленность, разработка ПО, строительство. Оказалось, что различные семейства этого вида ПО совпадают более чем наполовину в своих TTPs на протяжении всех этапов цепочки атак.
Расскажу обо всех этапах атаки, излюбленных TTPs злоумышленников и преследуемых ими целях, чтобы помочь понять, как действуют данные группы и как защититься от целенаправленных атак вымогателей.
Доклад принят в программу конференции
BigData и машинное обучение (4)
Приемы повышения точности геолокации телефонов на сети мобильного оператора
Данные о перемещении абонентских устройств с точностью до нескольких метров позволяют отслеживать перемещения транспортных потоков и искать места притяжения. Но что, если таких данных нет, а максимум точности, которую ты можешь получить — это квадрат 1х1 километр?
Мы восстанавливаем треки пользователей по вспышкам на БС (их координатам и свечениям) с целью планирования транспортной инфраструктуры, прогнозирования нагрузки, поиска трендов и спасения людей в случае беды. И в этом докладе мы расскажем как.
Доклад принят в программу конференции
Как достать всё что угодно со всего интернета
Недавно Яндекс запустил поиск по товарам (https://yandex.ru/products), который позволяет находить актуальные предложения во всех интернет-магазинах. Он ищет товары и в крупных маркетплейсах (Ozon, Wildberries, Яндекс Маркет), и в маленьких с десятком-сотней товаров, которые невозможно найти без поиска.
Ключевая задача поиска по товарам — подготовить самую полную базу товаров всего интернета. Эта база формируется на основе данных партнёрских фидов и самостоятельного парсинга товаров в интернете, причём парсинг поставляет значительную часть товаров. Без парсинга поиск по товарам превратился бы в поиск по списку сайтов, а не по всему интернету. На практике решение этой технической задачи оказалось настолько интересным, что нам захотелось им поделиться.
В докладе опишу практический кейс запуска поиска по товарам, но все представленные идеи и подходы мы применяли и на других задачах по извлечению данных. В процессе расскажу, какие подходы к парсингу мы использовали, как оптимизировали код похостовым кэшированием, как поддерживаем актуальность цен, как устроено машинное обучение и с какими подзадачами мы справились недостаточно хорошо.
Доклад принят в программу конференции
Как ML помогает предотвращать финансовые мошенничества в СБП
За время пандемии удаленные платежи стали неотъемлемой частью нашей повседневной жизни. Каждый из нас с вами хотя бы раз пользовался системой быстрых платежей.
Мы поговорим о том, как обеспечивается безопасность переводов в системе быстрых платежей, о том, какие угрозы не теряют актуальность со временем и как машинное обучение может помочь нам обеспечить безопасность наших денежных средств.
Доклад затронет вопросы недоступности чувствительных данных или какой-то их части для обучения и возможные решения, которые могут помочь преодолеть эти проблемы. Отдельно посмотрим, выгодно ли развивать такие решения для бизнеса.
Доклад принят в программу конференции
Как собрать огромный датасет и не потратить годовой бюджет маленькой страны
Летом мы опубликовали самый большой жестовый набор данных HaGRID и сегодня расскажем, как собирать и размечать огромные датасеты.
В нашем докладе мы:
* поговорим про основные лайфхаки при работе с краудсорсинг-платформами,
* расскажем о том, как существенно снизить стоимость проекта и повысить качество разметки,
* научим работать с непослушными разметчиками, от которых зависит будущее датасета,
* пройдем полный путь от идеи до создания автоматизированного пайплайна, с помощью которого можно одной кнопкой собрать много данных.
Датасет, код обучения моделей и сами модели доступны в OpenSource! 💪
Доклад принят в программу конференции
Нейронные сети, искусственный интеллект (5)
Высокопроизводительный промышленный сервис для компьютерного зрения на Python
Хорошо известны проблемы применения Python в промышленных сервисах, особенно, если подразумевается высокая нагрузка и определены высокие требования к задержке. Ещё сложнее всё обстоит в задачах компьютерного зрения, где добавляется специфическая работа с GPU, огромные объемы входных данных и тяжёлые алгоритмы, такие как кодирование/декодирование изображений, их обработка или инференс нейросетей.
Мы расскажем о том, как мы решали такие проблемы, почему выбрали самописное решение и как удалось добиться хороших результатов.
* Основные проблемы в Python с точки зрения промышленного сервиса с компьютерным зрением.
* Обзор существующих решений: DALI & Triton, Cython, Julia, С++, Numba, etc.
* Батчинг.
* Разрешение критических боттлнеков в проде и случайное ускорение тренировок.
* Результаты.
Доклад принят в программу конференции
AI в AR для завода: как не улететь в космос и решить задачу
Постараюсь сломать стереотип о том, что для разработки работающих AI-систем нужна большая команда и много-много времени. Поделюсь нашим опытом разработки системы с Computer Vision-алгоритмами вместе с AR-очками, решающей проблемы на заводах по контролю за выполнением действий электрика.
Забегая вперёд, мы смогли собрать работающий прототип и опробовать его на заводе командой менее пяти человек без долгих исследований и опыта в задаче распознавания действий.
Обсудим, всегда ли так можно, какие ограничения есть у подобных решений, и как внедрять AI-системы без космических бюджетов.
Доклад принят в программу конференции
Глубокое обучение в продуктовом ритейле: сложности, риски, допущения
Прогнозирование спроса — одно из направлений в предсказательной аналитике, критически важное для процессов планирования и пополнения в ритейле. В магазинах сети «Магнит» ежедневно совершают миллионы покупок, а спрос по структуре настолько разнородный, насколько обширны география, форматы и ассортимент в компании. Очередной подход и логичный шаг к решению данной задачи — методы DL.
Поделимся собственным опытом и встречающимися трудностями:
* сложности применения нейронных сетей в прогнозировании спроса, или Как мы подружили нейросети с временными рядами;
* как мы выстроили пайплайн в условиях ограниченных ресурсов;
* ожидаемый и реальный эффект: стоит ли бежать за gpu.
Доклад принят в программу конференции
Нужно прокачать NER-модель, но как?
Расскажу о том, как прокачали основную NER-модель виртуального ассистента Салют и получили значительный прирост метрик. Весь путь от исправления простых проблем с датасетом, до разработки специального инструмента анализа ошибок модели. Раскрою тему организации процесса разметки и контроля качества. Покажу, как и где модель NER используется в Салюте.
Доклад принят в программу конференции
ML в металлургии — простые вещи в сложных условиях
Как и в любой промышленной сфере, в металлургии имеет место ML — оно помогает лучше понимать процессы, добиваться качества, производительности и безопасности. Однако условия внедрения ML сложно назвать простыми по причине наличия запутанных пайплайнов доставки данных и кода, экстремальных условий в продакшне и особого отношения к цифровым сервисам.
Я расскажу о нетривиальных производственных задачах, в которых ML позволил получить реальную пользу, и о трудностях, с которыми мы столкнулись и успешно преодолели.
Доклад принят в программу конференции
Enterprise-системы (3)
Трансформация подхода к хранению и синхронизации писем
Компания МойОфис разрабатывает сразу несколько почтовых решений и хорошо знакома с особенностями российского рынка. Я отвечаю за внедрение продуктов компании и хочу поделиться опытом, накопленным за последние 5 лет.
На примере продуктов МойОфис я расскажу об эволюции почтовых решений в компании. В частности, проиллюстрирую, как менялись, развивались наши подходы к хранению и синхронизации данных. Путь от Dovecot dsync, OpenStack Swift до GlusterFS и DOS, собственного объектного хранилища. Также не оставим без внимания проблемы, с которыми мы сталкиваемся, и пути их решения.
Доклад принят в программу конференции
Highload и Lowcode — единство и борьба противоположностей
Статьи в интернете описывают low-code- и no-code-технологии как инструменты для решения небольших локальных задач, прототипирования, привлечения citizen-разработчиков. Однако, есть и другое направление в low-code — платформы для создания серьёзных, масштабных, комплексных приложений.
Почему это интересно? В крупных компаниях часто возникает идея разработки собственного фреймворка, ORM, генератора отчётов и других инструментов унификации разработки. По сути, начинается внедрение элементов low-code.
Цели вполне понятны: ускорение разработки, облегчение сопровождения и уход от уникальных знаний, возможность передачи сопровождения между специалистами и командами.
На примере успешной low-code-платформы объясним:
• как выстраивать стратегию low-code;
• как использовать преимущества low-code-подхода при движении к highload;
• как не растерять преимущества low-code по пути к highload.
Доклад принят в программу конференции
Распределённая обработка платежей с помощью Apache Ignite
Архитектура системы распределённой обработки платежей.
Процесс ввода системы в промышленную эксплуатацию — как сделать это незаметным для пользователей, без остановок бизнес-процессов по обслуживанию запросов клиентов.
Неочевидные на старте проблемы, с которыми можно столкнуться при запуске своего проекта:
1. Множество платежей от одного клиента, фактически останавливающие обработку других транзакций — ситуация, с которой реально столкнуться на практике при разработке подобного рода систем.
2. Split-brain: как бороться с последствиями и как избежать подобных проблем в будущем.
Стандарты, стандарты, стандарты! О важности следования практикам, принятым в организации.
Доклад принят в программу конференции
Бэкенд, теория программирования (2)
Почему видеостриминг через 15 лет возвращается с TCP на UDP
Проникновение флеш-плеера вместе с H264 почти 15 лет назад, а потом и появление HLS привели к тому, что массовая доставка видео в интернете перешла на TCP-протоколы: RTMP, HLS, DASH (и даже HDS).
Последние годы мы видим обратную тенденцию с возвращением на UDP-протоколы: WebRTC, SRT и эксперименты с WebTransport over HTTP/3.
Почему это происходит, во что это выливается, как это конфликтует с другими трендами в индустрии интернет-разработки? Почему приходится переизобретать заново TCP-стек 40-летней давности?
Доклад принят в программу конференции
Алгоритм сетевого планирования как способ повышения производительности сервисов
У Почтатеха есть микросервисное приложение для бизнеса otpravka.pochta.ru, которое изначально не было спроектировано под высокую нагрузку. Со временем оно стало популярным и обросло дополнительными функциями. Это вызвало кратный рост нагрузки, особенно перед новогодними праздниками. Радикально изменить архитектуру приложения мы не готовы — опасаемся утратить стабильность. Поэтому занимаемся локальной оптимизацией.
В докладе я расскажу, как оптимизировать обработку сложных запросов с помощью алгоритма решения задачи сетевого планирования.
Доклад принят в программу конференции
TechTalk (12)
Зачем МТС вкладывается в Open Source для Data Science
Из моего выступления вы узнаете о том, как и зачем МТС Digital участвует в Open Source. Я расскажу о нашем взаимодействии с сообществом, о ключевых проектах и разработках. Также я поделюсь, с какими сложностями мы сталкиваемся, когда выкладываем решения в открытый доступ.
Доклад принят в программу конференции
Как управлять изменениями при рефакторинге legacy-систем
Часто случается так, что мы вынуждены работать с продуктом или системой, устаревшей во всех возможных планах, но при этом имеющей серьезную ценность для внутренних или внешних потребителей.
В докладе пойдет речь о том, как решиться на такие изменения, нужны ли они вообще, и если да, с чем придется столкнуться на этом пути.
Доклад принят в программу конференции
FlowSchema и PriorityLevelConfiguration: как не "задушить" api-server K8s
Техтолк о том, как API-сервер K8s ложится под запросами prometheus, который пытается собрать 40 миллионов метрик. И про опыт СберМаркета по этому поводу.
Доклад принят в программу конференции
Как адаптировать легаси-приложение в условиях кратного роста нагрузки
1. Что такое СберМаркет.
- Что делает приложение СберМаркета.
- Как повысилась нагрузка и её профиль.
2. Способы удержания нагрузки.
- Тюнинг базы.
- Адаптация базы с последующим разделением на слоевые реплики.
- Разделение базы на Master/Slave и адаптация приложения под такую архитектуру.
3. Планы на будущее.
Доклад принят в программу конференции
Большие данные в МТС: стратегия импортозамещения
Расскажу о том, что мы делаем в связи с уходом вендоров: как переносим и меняем процессы, в каких случаях разрабатываем свое.
Доклад принят в программу конференции
ДБО как основной инструмент взаимодействия пользователей с Банком
1. Что такое ДБО?
2. Тюнинг системы и этапы ее развития.
3. Предоставление качественного сервиса.
4. Потенциальные проблемы блокировки приложения ДБО в зарубежных маркетах.
Доклад принят в программу конференции
“Тайные” практики для ускорения разработки от Мир Plat.Form
В рамках данного техтолка вы узнаете, какими “секретными практиками” пользуются команды в Мир Plat.Form, чтобы поддерживать качество и скорость разработки на высоком уровне.
Я расскажу, что делать, когда “инженерка” хромает, а скорость поставки оставляет желать лучшего. Речь пойдёт не только об общепринятых практиках CI/CD, виртуализации и управления конфигурациями, но и о практиках, которые каждая команда может попробовать уже завтра независимо от своего размера или стека.
Доклад принят в программу конференции
Почему классические продуктовые команды неэффективны в enterprise
Диалог о том, почему классические продуктовые команды неэффективны в enterprise. Основные причины в том, что в энтерпрайзе множество систем, большое количество данных и связей. И команда в одиночку не может учитывать все связи. Это приводит к необходимости выстраивания дополнительных контролирующих образований, которые определяют правила и рамки игры.
Исходя из неэффективности продуктовых команд, напрашивается вывод о том, что и классические архитекторы в энтерпрайзе становятся не нужны, т.к. команд много, подходы к разработке разные, технологий много — соответственно, подход к архитектуре прикладной идет от команды. Плюсом, архитектура пришла к сервисной/микросервисной — отвечать за все сразу и каждый компонент в отдельности архитектор не может физически.
Как с этим живем и эффективно справляемся в Газпромбанке — подробнее в техтолке.
Доклад принят в программу конференции
Работа в больших корпорациях. Особенности, вызовы, решения
Работа в компаниях уровня энтерпрайз имеет свои особенности. Газпромбанк — классический энтерпрайз, большой и очень сложный. Работа в подобного рода организациях имеет свою специфику. Специалисту в Газпромбанке нужно быть готовым к большим масштабам и организационной сложности корпорации, к работе по правилам. Давайте обсудим причины, особенности и преимущества такого подхода.
Доклад принят в программу конференции
Подводные камни в автоматизации тестирования
1. Зачем и когда автоматизировать?
2. Подводные камни:
* слишком ранняя автоматизация;
* несфокусированная автоматизация;
* поддержка и эксплуатация;
* недостаточная коммуникация;
* имитация ручного тестирования.
Доклад принят в программу конференции
Почему в IТ происходят аварии, и кто их устраняет, или Вы пробовали выключить и включить снова?
* Почему происходят аварии/проблемы.
* Что происходит во время аварии, как и что чувствует инженер.
* Почему люди идут в инженеры.
* Какие требуются компетенции для инженеров.
* Что стоит изучить (книги, инструменты).
* Рост специалиста от новичка до эксперта.
Доклад принят в программу конференции
DevOps-труба между подрядчиком и заказчиком для легаси-приложения
Расскажу о том, как мы из полностью ручной процедуры передачи дистрибутива software в банк сделали процесс автоматизированным.
Поделюсь нашим процессом, как он выглядел в самом начале, а также решением, как мы ускорили его в несколько раз.
Доклад принят в программу конференции
Импортозамещение (4)
Axiom JDK Pro: новые вызовы российской Java-разработки
С начала этого года разработка в России столкнулась с рядом вызовов, на которые нужно ответить прямо сейчас. Например, у нас ушли прежние большие вендоры Java-серверов.
На чём мне запускать приложения, если WebLogic и WebSphere более недоступны? Если взять случайный образ с DockerHub, кто, вообще, гарантирует, что нас не сломает первый встречный? Что делать со стоимостью миграции на российские облака (вы видели чек?).
Это хорошие вопросы, на которые имеются хорошие ответы и проверенные решения. Мы поговорим о том, на чем именно запускать Java-приложения, кто это будет поддерживать, как строится процесс безопасной разработки (SDL). В конце обсудим всё про безопасность, включая животрепещущую тему "отмены" России в интернете.
Доклад принят в программу конференции
Как с помощью BPMS (jBPM) заместить продукты SAS
В феврале 2022 года компания SAS покинула российский рынок. В итоге Сбер, как и многие другие компании, лишился поставщика основных компонентов для кампейнинга в x-sell-бизнесе, целью которого является формирование персонализированных предложений для клиентов.
Основные компоненты, которые мы использовали в legacy-системах — SAS RTDM, Viya, ID, MA, MO, EG. Каждый из перечисленных компонентов покрывает ту или иную потребность системы, например:
1. исполнение ML-моделей (MA);
2. ETL (DI, EG);
3. оптимизация x-sell-предложений (MO);
4. low-code-инструменты настройки бизнес-логики (RTDM, Viya, ID).
В докладе расскажу об импортозамещении компонентов RTDM, Viya, ID. На вышеперечисленных движках в промышленной эксплуатации работают highload-процессы под нагрузкой ~50 000 TPS и c доступностью 99,99% (53 минуты простоя в год). Максимально схожими движками по функционалу являются системы класса BPMS: Camunda, jBPM, Kogito и другие. Взяв за основу наши функциональные и нефункциональные требования, покажу, почему мы выбрали jBPM, погрузимся в архитектуру решения, а также разберем баги, с которыми мы столкнулись, и методы их исправления.
Доклад принят в программу конференции
Круглый стол СТО: Buy or build?
Вопрос импортозамещения технологий на повестке не первый год, но никогда ранее он не был таким массовым.
Обсудим главную дилемму российских СТО в 2022: искать замену решениям ушедших вендоров или разрабатывать самим? Какие успешные кейсы перехода на российском ПО уже получилось реализовать? Какие велосипеды удалось уже построить, а какие задачи до сих пор не решены?
Доклад принят в программу конференции
IT-инфраструктура после февраля 2022
"ХХХ вышел из чата" — какие вендоры ушли, какие остались, как с этим дальше жить.
Дата-центры, серверное и сетевое оборудование, офисное IT-оборудование, программное обеспечение. Изменения в IT-инфраструктуре после февраля 2022.
Доклад принят в программу конференции
Геймдев (1)
Хитрости устройства офферной системы в многомиллионном игровом шутере
В этом докладе я расскажу, как устроить офферную систему в многомиллионном игровом проекте:
* как нам в этом мешает и помогает Cassandra;
* про домен, ивенты и как на них работает офферная система;
* простые трюки, которые мы используем для оптимизации офферов;
* как мы интегрировали офферы с платежами, и зачем мы постоянно прикапываем стейт.
Доклад принят в программу конференции
Информационная безопасность (5)
Защита от вредоносной автоматизации сегодня. Сложно о простом
Сейчас каждый третий стартап рассказывает о создании автоматизации %сервис_или_продукт%. Но некоторые все еще готовы бороться за право работать только с людьми, если боты наносят ущерб бизнесу. Мы — воины, которые следят, чтобы три закона робототехники не были нарушены. Ну, и EULA на сайте.
Ботов можно классифицировать по типу поведения, используемым средствам (скрипт или полноценный браузер). Одни вроде бы и не мешают вовсе, а другие выкачивают миллионы своим присутствием.
Как работают решения защиты от ботов, почему они выходят на поле битвы уже проигравшими, и какое нас ждет будущее.
Доклад принят в программу конференции
Поиск XSS через наложение парсеров
В этом докладе подробно описывается новая техника, эксплуатирующая логику парсеров, используемых для написания красивых сообщений в мессенджерах, блогах, форумах и т.д. Эта область тестирования приложений является зрелой, она развивалась в течение последних десяти лет и включает установленные стандарты безопасности. В результате трудно найти новые методы атаки.
Доклад принят в программу конференции
Как разобрать сетевой протокол и найти уязвимости в устройстве без использования прошивки — показываем на примере ПЛК Mitsubishi
Миллионы умных устройств участвуют в нашей жизни: телефоны, компьютеры, принтеры, устройства IoT, промышленные ПЛК и др. Внутри каждого из них есть микросхемы и программный код в виде прошивок устройств, который может содержать уязвимости. Когда в руки исследователя безопасности попадает устройство с недокументированным сетевым протоколом, возникают следующие задачи: разобрать протокол и получить его описание, научиться общаться с устройством по сети, например, с помощью самописных скриптов, выявить уязвимости в устройстве.
Для исследования хорошо бы иметь прошивку. Но что делать, когда она зашифрована или ее невозможно достать из микросхем? Казалось бы, можно сложить руки и оставить устройство пылиться на полке. Но! Мы не отступили, когда такая ситуация встретилась нам в процессе исследования ПЛК FX5U от компании Mitsubishi. Мы прошли долгий путь, полный открытий, переоткрытий, использования передовых техник и в итоге получили описание протокола, набор скриптов для работы с ним и даже пачку CVE.
В докладе мы поделимся опытом, как по крупицам собрать информацию и восстановить протокол, используя документацию от других протоколов, утилиты от производителя, симулятор ПЛК, коды ошибок, полный перебор и другие методы. Покажем, как анализ протокола помог выявить целый набор уязвимостей: CVE-2022-25161, CVE-2022-25162, CVE-2022-25155 и др. Мы расскажем о них и покажем, как их вызвать, в многочисленных демонстрациях.
Доклад принят в программу конференции
Лицензии: взлом, защита и снова взлом
Мы сталкиваемся с лицензированием ПО постоянно, но не всегда погружаемся в то, как это работает.
В рамках доклада разберем с вами:
* какими способами лицензируется софт?
* какие плюсы и минусы у того или иного подхода?
* как ломают лицензии? [Основано на реальных событиях]
* и как, в конце концов, написать невзламываемую лицензию? И не "поломать" при этом пользователей...
Доклад принят в программу конференции
Актуальные угрозы ML-алгоритмов с точки зрения ИБ
Давайте в ходе доклада рассмотрим популярные применения ML в нашем мире и их уязвимости как с точки зрения реализуемости, так и с точки зрения импакта на ИБ. Обсудим последние и интересные инциденты. Попробуем поговорить о том, что стоит делать разработчикам таких систем, чтобы предусмотреть для себя такие риски. В докладе расскажем о примерах из собственной практики и мировой.
Доклад принят в программу конференции
Экспертная зона (22)
Обеспечение безопасности высоконагруженных сервисов банка
Мы поделимся опытом обеспечения безопасности высоконагруженных сервисов в банке и построения процессов информационной безопасности в Agile организации. Обсудим с вами вопросы создания безопасных систем через стадии жизненного цикла продукта, расскажем об инструментах и лучших практиках их применения. Ждем у нашего стенда всех, перед кем стоят проблемы создания безопасных высокопроизводительных систем: архитекторов, аналитиков, разработчиков и инженеров.
Вопросы:
- каким образом можно оценить будущую нагрузку до начала разработки
- как избежать ошибок в архитектуре и в использовании фреймворков
- как конфигурировать кластера K8s с точки зрения безопасности
- как настроить run-time мониторинг кластеров K8s
- как обеспечить требования стандарта PCI DSS в кластерах K8s
- какие угрозы информационной безопасности являются наиболее актуальными
- какие инструменты и практики безопасной разработки мы используем
Доклад принят в программу конференции
DevOps и эксплуатация / Системное администрирование
Системное администрирование на максималках. Грозный энтерпрайз облачного провайдера проверяет на прочность команду системных администраторов, которые вместо горения испытывают экстаз.
* Превращаем теорию в практику.
* Избавляемся от легаси.
* Пробуем новые инструменты и решения.
Без СМС и регистрации, просто приходите к нам на стенд.
Доклад принят в программу конференции
Машинное обучение для высоконагруженных задач
В экспертной зоне Cloud в формате Q&A можно будет получить ответы на вопросы о машинном обучении для решения высоконагруженных Data Science-задач. Ведущие эксперты поделятся опытом внедрения ML на базе любой инфраструктуры — в облаке и on-premises, а также расскажут, как механизм очередей и правильная организация совместной работы DS-команд помогают сократить time-to-market сложных AI-сервисов.
Доклад принят в программу конференции
Data platform: databases, storage and pipelines
В Yandex Cloud полноценно с нуля разработано более пяти десятков сервисов, созданных для закрытия потребностей в полном цикле разработки и поддержания интернет-сервисов с высокой нагрузкой. Наши специалисты глубоко понимают задачи, с которыми может столкнуться инженер, реализующий отказоустойчивые сервисы в облаке.
Мы проконсультируем по вопросам разработки отказоустойчивых высоконагруженных сервисов, реализованных с использованием контейнерного стека и serverless-технологий. Поможем разработать гибридные архитектуры для размещения в облаках.
Приглашаем разработчиков интернет-сервисов, планирующих получить большую нагрузку в ближайшее время. Инженеров, думающих об адаптации своих архитектур в облаках. DevOps-инженеров — для получения консультаций об особенностях работы с контейнерным стеком в облаках.
Доклад принят в программу конференции
Sec и Ops под нагрузкой. Делаем, чтобы работало
«Инфосистемы Джет» — команда, которая делает проекты в энтерпрайзе. Более половины из 100 крупнейших компаний России — наши клиенты. Мы расскажем, как сделать так, чтобы все работало (Ops) и было защищено (Sec). Например, как спроектировать отказоустойчивую инфраструктуру для крупного банка на 3 распределенных ЦОД-а, накатить на нее контейнеризацию, сделать магию доступности, защитить данные, настроить интегрированный мониторинг. Как встроить безопасность в DevOps. Все это — на опыте десятков проектов.
Доклад принят в программу конференции
Распределенные высоконагруженные системы хранения и обработки данных. YDB
Мы занимаемся системами передачи, хранения и обработки данных. Разработали с нуля и запустили YDB — платформу с открытым исходным кодом. Наши специалисты — эксперты в том, что касается архитектуры и внутреннего устройства отказоустойчивых, масштабируемых, высоконагруженных баз данных, платформ и сервисов.
Готовы проконсультировать:
* по разработке и эксплуатации отказоустойчивых высоконагруженных сервисов, реализованных с использованием платформы YDB;
* по распределенным высоконагруженным системам хранения и обработки данных.
Наибольшая экспертиза:
* Распределенные высоконагруженные системы хранения и обработки данных.
* Yandex Database.
Кому стоит посетить экспертную зону? Разработчикам интернет-сервисов, которые:
* планируют рост нагрузок;
* испытывают проблемы с отказоустойчивостью сервисов;
* предпочитают перенести решение этих проблем на сторону БД.
Доклад принят в программу конференции
Строим высоконагруженную платформу из любви к «тонкому» клиенту
Обмен опытом по реализации решений в работе с профилем клиента и адаптивному управлению структурой экранов через server-side.
Q&A-сессия со спикерами.
Доклад принят в программу конференции
Автоматизация со скоростью Звука или как запустить автотесты на всех платформах за 3 месяца
Тестирование в Звуке в цифрах:
- Ноль питона
- много алгоритмов
- 30 дней на запуск автоматизации с нуля
- 1.5 года от джуна до лида.
Как мы это делаем? Не берем на работу тестировщиков без опыта программирования и учим их со скоростью Звука по авторской программе. А еще мы забанили питон в тестировании. Все это позволило нам развернуть с нуля систему автотестов для всех платформ меньше, чем за квартал. Приходите пообщаться с нашими экспертами Сашей Петровым, Сашей Качиной и Димой Лапенко, они поделятся лайфхаками, планами и подводными камнями на этом пути самурая.
Доклад принят в программу конференции
Платформа In-Memory-вычислений: ускоряем легаси, строим отказоустойчивые сервисы
Участники конференции могут узнать от наших экспертов, как ускорить устаревшие core-системы и построить отказоустойчивые сервисы, которые выдерживают высокие нагрузки в миллионы пользователей, как построить умный кэш, витрины данных, золотой профиль клиента и при этом экономить серверные мощности.
Доклад принят в программу конференции
DevOps и эксплуатация / Архитектуры, масштабируемость
Поделимся нашим многолетним опытом эксплуатации высоконагруженных проектов. Расскажем о ключевых этапах миграции в Kubernetes — от проектирования инфраструктуры до выстраивания CI/CD и комфортной среды разработки. Объясним, как подготовить архитектуру приложений к эксплуатации в Kubernetes с учетом 12+7 факторов. В контексте Ops-задач особое внимание уделим мониторингу и управлению инцидентами, а также выбору правильных стратегий VPA и HPA.
Доклад принят в программу конференции
Импортозамещение аналитических платформ данных
Коллеги из Axenix поделятся опытом миграции с Teradata, Oracle Exadata, SAP BW на доступные продукты, основанные на Open Source-технологиях (Greenplum, Clickhouse, Postgres, S3 и другие). На примере высоконагруженных хранилищ данных расскажут о подходах к миграции, особенностях различных программных продуктов, потенциальных подводных камнях, с которыми вы можете столкнуться.
Доклад принят в программу конференции
Построение ML-инфраструктуры (MLOps)
ML в продакшне уже не роскошь, а необходимость. Поэтому инструменты MLOps так важны для бизнеса.
Поговорим про:
* подготовку широких датасетов на потоке из миллиардов примеров;
* continual learning в рекомендательных системах;
* построение model storage и feature store;
* применение CatBoost в рантайме, тюнинг качества бустинга и использование GPU для его обучения.
Доклад принят в программу конференции
Как построить IT-бренд не IT-компаниям: комплексный подход
Зона консультаций по IT-бренд для не it компаний. Ответим на вопросы как создать it бренд банкам, гос компаниям, промышленным компаниям. Поделимся кейсами
Расскажем, как вовлекать разработчиков в IT-бренд, мотивировать писать статьи на Хабр.
Последние три года мы проводим Всероссийское исследование по IT-бренду работодателя, исследуя факторы привлекательности и барьеры it специалистов. Приглашаем на нашу зону эйчаров, деврелом, технических директоров, перед которыми стоят задачи привлечения и удержания IT-специалистов.
Готовы поделиться экспертизой по коммуникации на IT-аудиторию:
* Что такое IT-бренд и почему это важно сейчас
* О конкуренции за IT-специалистов
* Конкуренция за IT-специалистов усилилась, что делать, где искать
* Полярность мнений у крупной компании
* Как работать с негативом, хейтерами
* Как масштабировать работу с поклонниками
* Как наладить работу с авторами внутри компании
* Как строить бренд в IT банку
* Как строить бренд в IT гос. компании
* Как строить IT-бренд промышленным компаниям
* Как подобрать деврела и стартовать работу команды IT-бренда
* Зачем нужна контент-стратегия
* Ошибки рекламных кампаний
И про то как их оценить:
* Как замерить свой бренд работодателя
* Какими метриками эффективности управлять брендом работодателя
* Как определить своих конкурентов
* Как сформировать EVP
Доклад принят в программу конференции
Битва за качество в условиях разработки высоконагруженных систем.
На примере высоконагруженной системы обмена данных между ведомствами (примерно ~5к систем участников обмена по ~2к прикладных протоколов с интенсивностью 10к обменов в секунду) эксперты команды Госуслуг поделятся опытом в организации производства уже эксплуатируемой и развивающейся многопользовательской платформы взаимодействия и обмена данными между информационными системами.
Поговорим о:
- разработке при высоких требованиях к промышленной платформе - федеральной государственной системе на всю страну;
- автотестировании в условиях высоконагруженной системы;
- внедрении сервисов, если пользователи - другие информационные системы.
Доклад принят в программу конференции
Инженерная инфраструктура ЦОД и серверных. Построение бесперебойной инфраструктуры ЦОД/серверных
* Импортозамещение инженерного оборудования (ИБП, батареи, кондиционеры, АВР и пр.);
* схемы построения инженерной инфраструктуры серверных/ЦОД с учетом требования по бесперебойной работе;
* этапы строительства и проектирования ЦОД;
* подбор помещений/участков для строительства серверных/ЦОД;
* основные ошибки при проектировании и строительстве серверных/ЦОД, на которые стоит обратить внимание;
* виды дата-центров: модульные/классические, отличия и преимущества.
Доклад принят в программу конференции
Безопасность приложений: Позитивные практики
Positive-эксперты обсудят практики обеспечения безопасности на каждом из этапов жизненного цикла разработки ПО: от проектирования архитектуры продукта и написания кода до эксплуатации под высокой нагрузкой. SSDLC, DevSecOps, SOC: всё, что мы с вами любим.
Доклад принят в программу конференции
Singularity: one framework to rule them all
Pixonic регулярно запускает в разработку новые проекты. Так как специфика нашей студии — это многопользовательские игры, всем проектам требуется серверная инфраструктура, позволяющая оперировать профилями, авторизацией, социальными фичами и т.п.
Функциональные требования у всех игр довольно схожи, и для ускорения производства лучше иметь единую настраиваемую платформу, которая будет решать технические задачи, позволяя разработчикам полностью погрузиться в процесс разработки игры.
Существуют готовые решения, вроде GameSparks или PlayFab, но они являются облачными, закрытыми и не реализуют всю необходимую нам функциональность. Нам критична возможность оперативной доработки, так как новые проекты часто экспериментируют.
Кроме того, настолько универсальные решения сами по себе нуждаются в предварительной кастомизации, а требовалось минимизировать количество инфраструктурных задач, которые нужно решать в процессе разработки. Поэтому мы выбрали средний вариант и начали делать свой фреймворк.
Расскажем, как он устроен, какие функции реализует "из коробки", а что остается дорабатывать каждому проекту.
Взглянем на платформу со стороны клиента, обсудим сложности, вытекающие из универсальности решения.
Будет полезно тем, кто интересуется как устройством серверов высоконагруженных игр, так и клиент-серверным взаимодействием в таких играх.
Доклад принят в программу конференции
Потоковая обработка данных: разбираем архитектуры и предлагаем реализации
Наши команды создают инфру для потоковой обработки данных и с помощью этих систем решают продуктовые задачи в Яндексе. Поток, с которым они работают — гигабайты в секунду, размер стейта — петабайты данных.
Наши эксперты расскажут:
* почему стриминг-подготовка данных — ключевое направление развития процессинга в ближайшие годы;
* чем может помочь стриминг-парадигма;
* как перейти в парадигму стриминга из MapReduce;
* как спроектировать архитектуру стриминга.
Доклад принят в программу конференции
Архитектура облачных решений
На стенде наши эксперты ответят на вопросы по построению архитектур для высоконагруженных систем, облачной инфраструктуре, построению Cloud-Native приложений, работе Kubernetes, а также построению приложений для полного цикла работы с данными.
Доклад принят в программу конференции
Высоконагруженные микросервисы на фреймворке userver
Мы пишем серверные приложения, очень много серверных приложений. Они интенсивно работают с вводом-выводом, многие из них активно используют CPU, могут требовать много памяти и должны быть высокодоступными.
К сожалению, существующие решения не отвечали нашим потребностям, поэтому мы сделали собственный фреймворк с сопрограммами и динамическими конфигами — 🐙 userver. На нём ежедневно работают сотни сервисов Яндекса, а теперь стали появляться и внешние пользователи.
Расскажем и покажем, как совместить C++ и простоту использования, высокую скорость разработки, эффективность и безопасность.
Доклад принят в программу конференции
Автоматизируем enterprise-разработку: общие библиотеки, особенности core-разработки
Поговорим о том, как облегчить рутину enterprise-разработчика. Расскажем, как мы у себя запустили процесс стандартизации общего поведения систем. Сейчас все разработчики получают описание процесса разработки, структуру приложений, набор базовых зависимостей и набор базового поведения (логи, конфиги, метрики) и на выходе создают работающую бизнес-логику.
Используем Swagger-контракты для связи кода и аналитики, Spring, Gradle, k8s, Docker, Java, Kotlin, Groovy.
Полезно будет большим командам и зрелому бизнесу, которые хотят повысить уровень автоматизации и производительности при создании своих продуктов.
Как заняться выделением общих решений? Кто будет этим владеть и отвечать за процесс реализации, выпуска и поддержки? Какие есть варианты и особенности в организации такого процесса? Есть ли, вообще, в этом необходимость?
Приходите, обсудим, поделимся своим опытом и набитыми шишками :)
Доклад принят в программу конференции
Devops: предиктивный мониторинг, отказоустойчивый мониторинг
На стенде наши эксперты ответят на все ваши вопросы про предиктивный мониторинг и отказоустойчивый мониторинг.
Как это работает в СберМаркете: у нас есть ML-сервис, который мы заопенсорсили, где настраиваются метрики, по которым требуется предиктивная оценка, ML-сервис на Python. Сервис работает на основе метрик Prometheus, учитывает сезонность, выходные и т.д., а под капотом библиотека prophet.
О чем расскажем:
- Предсказание того, что будет: нагрузка, кол-во заказов
- Как в условиях нестатических нагрузок мониторить атаки
- Как мониторить не причины, а следствия
- Как принимать 50 млн рядов и не умереть
- Как сделать, чтобы 50 млн рядов не разлетелись
- Как можно обезопасить себя от бесконтрольного разрастания метрик
Доклад принят в программу конференции
DevOps в Enterprise (4)
RedHat OpenShift ушел. Что делать энтерпрайзу и не только ему?
До событий основным инструментом создания платформ управления контейнерами являлся продукт Red Hat OpenShift Container Platfrom. Теперь продажи этого, как и любых других западных решений, невозможны, и стоит вопрос выбора замены либо альтернативы. В этом докладе мы поговорим, какие пути и возможности есть с т.з. компаний сегмента Enterprise, для которых характерны высокие требования к функциональности и стабильности продукта, а также надежности поддержки решения.
Основные тезисы доклада:
1. Для кого эта тема актуальна, кто и почему раньше выбирал OCP при наличии бесплатного kubernetes.
2. Какие возможны варианты замены OCP, в принципе. Два основных пути — OKD и ванильный kubernetes.
3. Что вас ждет в варианте OKD:
* чем отличается OKD от OCP не по слайдам вендора, а на практике;
* как правильно мигрировать с OCP на OKD, какие подводные камни ждут на пути.
Рассматриваем на примере проекта, раскрываем тезисы на примере практических проектных кейсов.
4. Зачем это нужно, если есть ванильный kubernetes?
На примере того же проекта поговорим, почему это было важно в нашем случае и что, возможно, следует учесть слушателям при таком кейсе:
* платформа контейнеризации и операционная система как одно целое (immutable CoreOs);
* наличие специфичных разработок для платформы (таких, как инфраструктура мониторинга STF), которые были важны Заказчику и которые существуют в адаптированном виде под OCP/OKD.
5. Поговорим на эту тему чуть шире — для enterprise в настоящий момент актуальна не только замена OCP, но также и замена подлежащей под ней платформы виртуализации. Если ранее 90% всех внедрений было поверх VMware, то теперь актуален переход на KVM-подобные гипервизоры. Здесь поговорим про наш опыт развертывания OKD на подобных решениях. Цель: дать информацию о том, что для компаний можно предоставить единый программный стек инфраструктуры, начиная от уровня гипервизора до уровня контейнерной оркестрации, на свободных opensource-технологиях, но при этом с достаточным уровнем надежности. Обсудим вопросы совместимости.
6. А что есть из отечественного, и что оно умеет по сравнению с OpenShift? Обзор решений, экспертное мнение.
Доклад принят в программу конференции
DevOps как инструмент QA
Секрет промышленности:
Как можно добиться противоположного: скорости и качества.
В докладе я не дам готового рецепта счастья и не расскажу, как делать быстро и качественно.
Рассмотрим понятия QA в промышленной компании, где одновременно запускаются десятки проектов, и на инженера приходится от 7 до 10 проектов в месяц, и как рост требований к качеству, увеличивает производительность команды.
Основные вопросы:
* Что такое QA?
* Что такое качество?
* Как и зачем измерять качество?
* Как масштабировать качество и принципы работы на десятки и сотни проектов.
* Инструменты достижения качества.
Почему DevOps — это один из ИНСТРУМЕНТОВ QA?
Доклад принят в программу конференции
Service Mesh Big Survey
Итак, вы решили идти в ногу со временем и добавить в свой кластер Kubernetes первый Service Mesh. От друзей вы слышали, что Istio требует много памяти, прокси в Linkerd очень быстрые, но никто не проверял. А еще все почему-то говорят про Cillium, хотя это CNI-плагин. Настало время все это обсудить!
В докладе мы разберем:
1. что такое паттерн Service Mesh и зачем, в принципе, он может понадобиться;
2. все существующие архитектурные подходы к реализации Service Mesh;
3. самые популярные OpenSource-реализации Service Mesh: Istio, Linkerd, Cillium, NGINX Service Mesh и др. Проверим Control&Data planes, познакомимся с User API, узнаем все про возможности расширения и кастомизации;
4. опыт эксплуатации и типовые проблемы Service Mesh в большом и нагруженном продакшне.
Доклад принят в программу конференции
Внутренняя энтерпрайз-платформа для контейнерной разработки как технологическая основа для бизнеса
Создание цифровых продуктов — это новая грань развития бизнеса. Новые продажи, другой пользовательский опыт, работа с различными целевыми аудиториями, смена производственных процессов по принципу “все в цифре” для кардинального повышения эффективности — это эффекты, которые можно получить при применении цифровых продуктов.
В текущей ситуации в нашей стране применение таких подходов — это один из возможных путей быстрой смены экономических связей и цепочек поставок.
Для построения цифровых продуктов компании необходимо обладать технологической компетенцией, которая дает качественные процессы разработки, тестирования, эксплуатации, работающие на базе принципов Cloud Native, API first, CI/CD, Infrastructure as Code.
Компетенции можно получить в компании через наем, а можно через построение своей внутренней платформы, которая задаст технологический стандарт контейнерной разработки цифровых продуктов.
В докладе я расскажу про то, какие компетенции нужны для контейнерной разработки продуктов, как эти компетенции реализовать через свою платформу разработки и поставки цифровых продуктов, какие решения, типы компаний, сервисы есть на российском рынке для переиспользования внутри компании и почему это поможет сэкономить на найме людей и ускорить время вывода продуктов на рынок.
Поговорим про:
* Kubernetes как основу автоматизированной оркестрации ресурсов и приложений;
* CI/CD-стандарты разработки, которые снимают сложности и барьеры с разработчиков, создают изолированные пространства разработки и позволяют быстро включать разработчиков разного уровня компетенции в процесс;
* ключевые стандарты и подходы, которые делают разработку качественной, быстрой и безопасной;
* как эти стандарты имплементируются на опыте Экспресс 42 и могут быть имплементированы у вас.
Доклад принят в программу конференции
Агротех (4)
Облачная платформа "Виртуальный Агроном" для управления всеми процессами на вертикальных фермах
Рынок высокотехнологичного сельского хозяйства переходит в стадию зрелости. Это выражается в разделении на операционные и технологические компании. Операционные компании нацелены на производство и реализацию сельскохозяйственной продукции. Им в первую очередь интересно, сколько продукции они смогут производить и какие будут затраты на ее производство, включая затраты на персонал требуемой квалификации. Технологические компании сфокусированы на устойчивом R&D и предоставляют непрерывно совершенствующиеся технологии операционным компаниям.
На рынке существует много решений для автоматизации сельского хозяйства. В основном они решают локальные задачи: управление светом, питанием растений и различными аспектами климата. Операционным компаниям сложно интегрировать множество разнородных решений в единую работающую систему. К примеру, синхронизировать расписание работы существующих климатических систем, расписание подачи питательного раствора, управление светом и фазы роста растений.
В докладе я расскажу об архитектуре успешно применяемой облачной платформы "Виртуальный Агроном". Вертикальные фермы, подключенные к платформе, обеспечивают полностью контролируемую среду выращивания с контролем действий персонала и возможностью дальнейшего перехода к роботизированным фермам.
Синергия данных с множества ферм, подключенных к единой облачной платформе, и экспертных знаний, полученных в результате многолетних исследований, позволяет контролировать и оптимизировать процессы на фермах в реальном времени.
Модульность архитектуры позволяет собирать фермы с разной проектной производительностью для различных сельскохозяйственных культур из стандартных блоков.
Формализация процессов на фермах обеспечивает высокую точность прогнозирования продуктивности, что не может себе позволить традиционное сельское хозяйство. Также это дает возможность автоматически проектировать фермы с заданными показателями.
Доклад принят в программу конференции
Программирование дронов — современная цифровая агрономия
Сельское хозяйство стало отраслью с интенсивным потоком данных. Информация формируется из потоков от различных устройств, работающих в полях, теплицах, от датчиков инженерных систем, агротехники, метеорологических станций, дронов, спутников, внешних систем, партнерских платформ, поставщиков. Обработанные данные от различных участников производственной цепочки, собранные в одном месте, позволяют получать информацию нового качества, находить закономерности, создавать добавочную стоимость для всех вовлеченных участников, применять современные научные методы обработки (data science) и на их основе принимать оптимальные решения, минимизирующие риски, улучшающие бизнес производителей и клиентский опыт.
Использование дронов в агрономии уже стало неотъемлемой частью работы сельскохозяйственных предприятий. Понимая устройство сельскохозяйственных дронов и общие принципы их работы, можно лучше понять существующий уровень цифровизации отрасли. Рассмотрим виды дронов, принципы их работы и управления.
Рассмотрим фреймворки для создания программного обеспечения дронов и системы имитационного моделирования. Познакомимся с автопилотами и применяемыми датчиками дронов.
Доклад принят в программу конференции
Самый большой в РФ проект в области птицеводства по сбору информации с датчиков интернета вещей и другие интересные кейсы для сельского хозяйства
* Краткий обзор беспроводных технологий передачи информации, их место и задачи в мире IoT;
* особенности технологий LPWAN беспроводной передачи данных;
* почему так сложно сделать умные вещи и подключить их к интернету;
* зачем мы написали свою платформу интернета вещей и чем нам не угодили готовые платформы;
* как профили устройств упрощают сопровождение;
* как мы внедряли IoT в 52 регионах России для мониторинга птичников;
* зачем мониторить показатели температуры и влажности воздуха в птичниках и на складах;
* использование датчиков сухих контактов для мониторинга работы автоматики;
* датчики температуры и влажности почвы — почему их так мало применяют?
* как датчики интернета вещей позволяют снизить себестоимость продукции и сэкономить на поддержке.
Доклад принят в программу конференции
Агротех: долго, дорого и очень сложно. Как создавать продукты для агроотрасли
Агротех — одно из самых перспективных направлений в РФ и мире.
Создавать продукты для агротеха долго и сложно.
Поделимся нашим опытом создания прорывного решения с CV и беспилотниками для агротеха.
Доклад принят в программу конференции
Lightning talk (2)
Импортозамещение BI своими руками
Рынок систем отчётности и BI огромен. Часто даже в рамках одной компании одновременно эксплуатируется несколько таких систем, и «Магнит» — не исключение. Но рано или поздно появляется потребность в единой платформе отчётности, которая охватит львиную долю ваших задач и пользователей. Специфика компании диктует свои правила: появляются нестандартные запросы, ограничения и краеугольные камни. Это может быть эффективная работа с несколькими базами данных, информационная безопасность, управляемость, скорость разработки, обработка больших объёмов данных, ориентированность на конкретные пользовательские сценарии. Часто компании заходят в тупик — готового решения, в точности соответствующего критически важным требованиям, не существует.
Можно ли в этом случае построить свою систему отчётности, внедрить её в очень крупной компании и при этом не изобретать тысяча первый велосипед? У нас есть ответ, и мы готовы поделиться своей историей.
Доклад принят в программу конференции
Как "добиться" времени записи 200 мс на NVMe-дисках
Короткий блиц-антидоклад о том, как правильными и дозволенными действиями добиться "потрясающей производительности" на хорошем железе.
Т.е. рассказ будет о том, как делать не надо.
Доклад принят в программу конференции
Резерв (5)
Миграция в облачный "Modern Data Stack": выбирай, страдай, люби
Data Lakehouse, Cloud Data Platform, Data Mesh, Data Fabric — громко звучащие слова, которые у всех на слуху и профессионально интересны каждому специалисту в области работы с данными. Но что, если желание "пощупать и внедрить", которое обычно разбивается о будни поддержки текущих решений, вдруг воплощается в рабочую реальность? Бойтесь своих желаний, ведь именно так произошло в toloka.ai — перед командой платформы данных была поставлена задача: "Azure. Modern Data Stack. Завтра".
В рамках нашего доклада мы пройдем все стадии нашей работы с Modern Data Stack — выбирай, страдай, люби — и затронем следующие вопросы:
* что такое современная платформа данных и на каких китах она держится?
* как не утонуть в мире Modern Data Stack-решений?
* какие подводные камни интеграции разных систем вас ожидают?
* какие инструменты (из тех, что мы попробовали) “must have”, а что можно пробовать заменить?
* как изменилась (и изменилась ли) работа аналитиков?
* что стоит, а что не стоит повторять, если вы пойдете по той же дорожке?
Доклад принят в программу конференции
От MVP к реальности. Проблемы перехода и лекарства для решения
Мир создания IТ-продуктов довольно динамичен и сложен. На этот мир можно посмотреть как на конструктивную борьбу между бизнесом, технологиями, маркетингом и другими участниками процесса. Запуская MVP, обычно мы жертвуем качеством ради быстрой проверки гипотезы. А что же дальше?
Как жить и что делать после успешного тестирования гипотезы? С какими техническими вызовами нам придется столкнуться и как их решать? А вдруг можно уже на этапе MVP построить архитектуру, которая нам облегчит жизнь в дальнейшем?
Этими вопросами мы и задались, поэтому хотим поделиться нашим опытом технического развития быстрорастущих продуктов:
* как сохранять баланс развития и техдолга при масштабировании в 10 раз? С какими проблемами мы столкнулись и как их решали;
* о чем можно было подумать в начале разработки, чтобы сделать переход от MVP к реальности проще.
Доклад принят в программу конференции
Octree, или Сказ о поиске пути в 3D
Поиск пути в трехмерном пространстве — настоящий вызов для приложения, особенно если к скорости вычисления предъявлены жесткие требования.
На примере игры "Пираты: штурм небес" мы покажем проблемы, возникающие при использовании традиционных алгоритмов. Одним из способов увеличения скорости поиска является использование октодерева, которое позволяет экономно хранить информацию о коллизиях в мире и грамотно выбирать гранулярность сетки. В рамках доклада мы пройдем путь от идеи использования до конечной реализации в "Пиратах", а на десерт нас ждет несколько оптимизаций, позволяющих еще сильнее ускорить поиск пути.
Доклад принят в программу конференции
Зачем и как мы написали MapReduce-движок над Clickhouse
Аналитика ВКонтакте очень активно использует ClickHouse. Не будет преувеличением сказать, что эта СУБД выступает в качестве ключевого компонента нашего DWH: бэкенд пишет риалтайм click stream, сотни дэшбордов читают данные, десятки аналитиков пишут запросы. Благодаря развитому сервисному слою, все это работает параллельно на одних и тех же серверах.
В докладе мы коснемся части этого слоя, а именно инструментов для работы с данными поверх ClickHouse. Проследим эволюцию этих инструментов от ETL-утилиты до MapReduce-фреймворка, доступного всем коллегам. С помощью этого фреймворка аналитики решают задачи, требующие batch-обработки больших объемов данных, без написания ТЗ на подготовку датасетов и без привлечения дата-инженеров. Это значительно уменьшает time-to-market в аналитике и в конечном счете упрощает DWH-инфраструктуру, что особенно актуально для быстрорастущих компаний среднего размера. Попутно коснемся устройства пайплайна АБ-экспериментов, способного работать с самыми тяжелыми логами в масштабах сотен одновременно запущенных экспериментов.
Доклад принят в программу конференции
Менеджер транзакций в GoLang
Я объясню, как обычно устроен менеджер транзакций и почему его нельзя скопировать "в лоб" в Go из других языков.
Покажу, как сохранить транзакционность при работе с вложенными сценариями и несколькими репозиториями, не привязываясь к конкретной СУБД и не передавая транзакции как аргумент.
Расскажу, как в реалиях GoLang реализовать "идеальный" паттерн-репозиторий из книжек посредством менеджера транзакций.
https://github.com/avito-tech/go-transaction-manager/
Доклад принят в программу конференции