HighLoad++ 2015 завершён! Ждём вас в 2016 году!

Профессиональная конференция разработчиков высоконагруженных систем

2 и 3 ноября 2015 Крокус-Экспо МОСКВА
Профессиональная конференция разработчиков высоконагруженных систем

Доклады и тезисы 2015 года

Базы данных, системы хранения

Ужимай и властвуй: алгоритмы компрессии в базах данных

Чем меньше размер данных, тем дешевле их хранить и часто быстрее обрабатывать. Разработчики баз данных издавна задумывались над тем, как обеспечить максимальную степень сжатия данных. В данном докладе мы рассмотрим, почему интерес к компрессии информации в базах данных особенно высок в последние годы. ...

Доклад принят в Программу конференции
NoSQL's biggest lie: SQL never went away

NoSQL databases threw out SQL for querying, while their authors focused on solving problems on scale, speed and availability. The trouble is the need for rich query never went away. Neither did SQL; it was only resting. ...

Доклад принят в Программу конференции
MyRocks - новый движок MySQL на основе RocksDB

Facebook использует MySQL в качестве основного хранилища данных. MySQL работает на десятках тысяч серверов в нескольких ЦОДах. В качестве дисков используются Flash-накопители. ...

Доклад принят в Программу конференции
Understanding and tuning WiredTiger, the new high performance database engine in MongoDB

MongoDB 3.0 introduced the concept of different storage engine. The new engine known as WiredTiger introduces document level MVCC locking, compression and a choice between Btree or LSM indexes. In this talk you will learn about the storage engine architecture and specifically WiredTiger, and how to tune and monitor it for best performance. ...

Доклад принят в Программу конференции
Что нового и полезного в PostgreSQL 9.5

Доклад о новинках нового релиза PostgreSQL можно сделать экстремально скучным: взять release-notes и зачитать вслух. Но 9.5 обещает быть очень интересным релизом как с точки зрения улучшения производительности, так и функциональности - было бы жалко сделать о нем плохой доклад. Поэтому я выбрал несколько важных и нужных фич и расскажу про каждую - как она устроена, на что влияет и, главное, как ей разумно воспользоваться - максимум практических аспектов, минимум маркетинга. ...

Доклад принят в Программу конференции
Практическая оптимизация MySQL: измерять, чтобы ускорять

Если вы используете MySQL, то для вас, скорее всего, важна производительность. Данный доклад посвящен теме производительности, и поэтому его стоит послушать. В рамках доклада будет рассмотрен практический метод оптимизации производительности MySQL, который большей частью применим для других баз данных тоже.

Доклад принят в Программу конференции
Движок LMDB - особенный чемпион

Lightning Memory-Mapped Database (LMDB) представляет собой интересный, во многом уникальный движок базы данных класса Berkeley DB и Level DB с ребус-подобным исходным кодом. Будучи относительно малоизвестным, LMDB показывает ЧЕМПИОНСКУЮ производительность по чтению. А наши доработки предлагают ряд компромиссов для достижения невероятной производительности по записи. ...

Доклад принят в Программу конференции
Что особенного в СУБД для данных в оперативной памяти

Оперативная память становится всё более дешёвой и производительной, что позволяет использовать её для хранения рабочего набора данных всё большего числа приложений. Хранение всех данных в оперативной памяти позволяет сделать их высоко доступными, а алгоритмы для работы с данными либо существенно упростить, либо ускорить, а иногда - и то, и другое. Что особенного в in-memory DBMS, и чем работа такой программы отличается от произвольной высоконагруженной системы, написанной на С, С++, Java? ...

Доклад принят в Программу конференции
Танцующий кластер. Практическое руководство дрессировщика PostgreSQL

Нет единого мнения о том, как должен себя вести хорошо дрессированный кластер, какие номера он должен показывать и что будет делать в случае катастрофы. Надежда обнаружить серебряную пулю в поиске лучших практик толкает разработчиков кластерных решений перебирать один стек за другим, менять компоненты в расчете на то, что искомая комбинация обнаружится сама собой. Наблюдая в разной степени успешный опыт коллег, мы почти сразу остановили свой выбор на стеке от ClusterLabs, который удовлетворяет всем минимальным требованиям синхронной хореографии прямо из коробки. ...

Доклад принят в Программу конференции
Как выбрать In-memory NoSQL базу данных с умом? Тестируем производительность

В настоящее время, когда рынок полон различных In-memory NoSQL решений, вопрос выбора особенно актуален. Часто приходится видеть ситуацию, когда базу данных выбирают по принципу "самая распиаренная", "друг посоветовал" и пр. Такой подход имеет мало общего с инженерным мышлением. ...

Доклад принят в Программу конференции
Машинное обучение в СУБД: адаптивное построение плана выполнения запроса

В СУБД для одного и того же SQL-запроса может быть построено множество различных планов выполнения. От выбора правильного плана существенно зависит скорость и эффективность выполнения запроса. Чтобы находить достаточно хороший план, СУБД-сообщество решает задачу предсказания времени выполнения запроса по плану выполнения запроса. ...

Программный комитет еще не принял решения по этому докладу
Spilo, отказоустойчивый PostgreSQL кластер

Позвольте представить Spilo - отказоустойчивый PostgreSQL кластер. Последние несколько лет в компании Zalando происходила постепенная децентрализация разработки приложений. Этот процесс затронул и базы данных: часть задач по их обслуживанию была передана командам разработчиков, многие из которых не имеют опыта администрирования СУБД. ...

Доклад принят в Программу конференции
HighLoad Solutions On MySQL

In Alibaba, almost all of the busiest business are builded on MySQL. It aquires MySQL can support high load. The challenge comes from sucn as complex transactions, huge number of parallel connections and press on network, cpu, memory and disk. ...

Доклад принят в Программу конференции
Tarantool: как сэкономить миллион долларов на базе данных на высоконагруженном проекте

Когда стоит дилемма, какое DBMS решение выбрать, то приходится принимать во внимание много факторов - latency, bandwidth, ACID-complience, наличие/отсутствие server-side-scripting, возможности репликации, удобство развертывания и администрирования, наличие известных багов или maintenance window и т.д. Я хочу рассказать лишь об одном из факторов, который имеет особенное значение на проектах с многомиллионными аудиториями - это Total Cost of Ownership или, по-простому, цена. Чем больше аудитория у проекта, тем больше эта аудитория создает нагрузку на базы данных, тем больше должно быть серверов с базами данных, тем больше финансовых затрат это требует. ...

Доклад принят в Программу конференции
Строим сервисы на базе Nginx и Tarantool

Слушатели этого доклада получат представление о том, как построить отказоустойчивое, быстрое, простое и легко масштабируемое решение на базе Nginx и Tarantool. Коротко о главном: * Обзор внутреннего устройства шардинга в Tarantool. * Обзор Tarantool upstream модуля для Nginx. ...

Доклад принят в Программу конференции
Реализация восстановления после аварий

Базы данных PostgreSQL занимают одно из центральных мест в Авито. Они являются разделяемой платформой, вокруг которой построено множество дополнительных сервисов. Одной из основных задач при их администрировании является задача восстановления после аварий как самих баз, так и связанной с ними инфраструктуры. ...

Доклад принят в Программу конференции
Мониторинг ожиданий в PostgreSQL

В многоядерных высоконагруженных системах с высокой конкурентностью часто бывает сложно определить, чем занят отдельный процесс PostgreSQL. Он может находится в ожидании локов высокого уровня, таких как локи таблиц, внутренних локов, используемых для синхронизации процессов, ввода-вывода и многих других. В настоящий момент среди всех событий ожидания мониторить можно только локи высокого уровня с помощью представлений PostgreSQL. ...

Доклад принят в Программу конференции
How Raft consensus algorithm will make replication even better in MongoDB 3.2

MongoDB exhibits a fairly classic leader-based replication architecture, with builtin automatic provisioning and failovers. Since it was developed, an academic paper from Stanford has introduced a distributed consensus algorithm called Raft - which happens to be rather similar to the home grown algorithm of MongoDB. This talk will give a brief overview of Raft and how we are retrofitting some of it into MongoDB 3.2 to make our replication even more robust. ...

Доклад принят в Программу конференции
TokuDB internals

TokuDB - это реализация так называемых фрактальных деревьев для MySQL. Фрактальные деревья - это те же самые B+-деревья, но с буфером сообщений в каждой ноде. Сообщения описывают изменения данных. ...

Доклад принят в Программу конференции
Запись в PostgreSQL: что у нее внутри

Знание внутреннего устройства СУБД позволяет использовать возможности базы данных по максимуму. Устройство PostgreSQL в целом достаточно подробно документировано, однако с некоторыми аспектами работы до сих пор можно ознакомиться, только изучая исходный код. Так, например, в ряде работ наглядно показано, каким образом PostgreSQL хранит записи, упаковывая их в страницы, и как страницы уложены в хранилище, но нигде не рассказано о внутреннем устройстве самих данных записи. ...

Программный комитет еще не принял решения по этому докладу
Efficient cluster resource management by using Cook and Mesos

Managing resources (cpu, memory, network io) in compute clusters is difficult. Regardless of running Hadoop, Spark or customized workloads, we face the challenge of scheduling a mixture of long running, short running workload with different resource requirements and deadlines in a compute cluster. The difficulty often comes in when we try to maximize cluster utilization and share resources properly among workloads at the same time. ...

Доклад принят в Программу конференции
Диагональное масштабирование PostgreSQL

В докладе рассказывается о результатах тестирования производительности PostgreSQL на современных Hi-End серверах компаний HP (SuperDome X) и IBM (POWER8). Основное внимание было уделено блокировкам для доступа к разделяемым данным и связанными с этим узкими местами. Целью тестирования было проверить пределы линейного read scalability при увеличении количества ядер выделяемых для PostgreSQL. ...

Программный комитет еще не принял решения по этому докладу
ToroDB: scaling PostgreSQL like MongoDB

NoSQL databases have emerged as a response to some perceived problems in the RDBMSs: agile/dynamic schemas; and transparent, horizontal scaling of the database. The former has been promptly targeted with the introduction of unstructured data types, but scaling a relational databases is still a very hard problem. As a consequence, all NoSQL databases have been built from scratch: their storage engines, replication techniques, journaling, ACID support (if any). ...

Доклад принят в Программу конференции
The Future of Postgres Sharding

Duration: 30 minutes, 45 minutes with questions Database sharding involves spreading database contents across multiple servers, with each server holding only part of the database. While it is possible to vertically scale Postgres, and to scale read-only workloads across multiple servers, only sharding allows multi-server read-write scaling. This presentation will cover the advantages of sharding and future Postgres sharding implementation requirements, including foreign data wrapper enhancements, parallelism, and global snapshot and transaction control.

Доклад принят в Программу конференции
AliExpress, Maintaining High Availability and High Performance Globally

AliExpress is the largest cross border trading platform in the world. Every day, from over 200 countries, millions of consumers visit AliExpress to order products from global merchants. To keep AliExpress operating at high performance at all times is a significant technical challenge. ...

Программный комитет еще не принял решения по этому докладу
Сага о кластере. Все что вы хотели знать про горизонтальное масштабирование в постгресе

Популярность постгреса в мире и России растет, с каждым новым релизом появляется все новая и новая функциональность, постгрес становится реальной угрозой монополии Оракл, уже подвинул Монго на поле свободных NoSQL СУБД, однако мировое сообщество ждет решения для горизонтального масштабирования. Создание постгресового кластера является крайне трудной задачей, так как постгрес является базой данных, ориентированной на целостность данных, а используемый алгоритм обеспечения конкурентности транзакций ставит серьезные челленджи перед разработчиками алгоритмов распределенных транзакций. Оказывается, уже целых пять групп работает над этой задачей, и мы расскажем про их подходы, трудности, в том числе, и политические. ...

Доклад принят в Программу конференции
Tarantool как платформа для микросервисов

NoSQL key-value — популярное решение, но какие преимущества и какой ценой оно даёт? Скорость? Возможно, но ценой урезанного, по сравнению с реляционными базами данных, функционала. ...

Доклад принят в Программу конференции
Deep dive into PostgreSQL internal statistics

СУБД PostgreSQL - это огромный механизм, который состоит из множества подсистем, чья работа определяет производительность PostgreSQL. В процессе эксплуатации обеспечивается сбор статистики и информации о работе компонентов, что позволяет оценить эффективность PostgreSQL и принять меры для повышения производительности. Однако, этой информации очень много и представлена она в достаточно упрощенном виде. ...

Доклад принят в Программу конференции
Улучшаем NoSQL в постгресе. Индексируем подзапросы

PostgreSQL известен своей расширяемостью, которая позволяет добавлять новую функциональность без остановки сервера и своими силами, без привлечения разработчиков ядра базы данных. Однако, существующая инфраструктура имеет исторические ограничения, которые проявляются при работе с типами данных, обладающими внутренней структурой, такими как массивы и hstore. В полную силу эти ограничения проявились после появления jsonb. ...

Программный комитет еще не принял решения по этому докладу
Chronicle Map — key-value хранилище для трейдинга на Java

Сфера финансовых приложений и трейдинга выдвигает особые требования к системам обработки данных: ультракороткие задержки, конкурентные обновления (в т.ч. из разных процессов), репликация высокочастотных обновлений. Существовавшие открытые key-value хранилища не справлялись, поэтому мы сделали свое - Chronicle Map. ...

Доклад принят в Программу конференции

Аппаратное обеспечение

Leveraging SSD Capabilities for Processing Distributed Transactions

The challenge of distributed transactions has increased in the past few years due to an exponential increase in volume of data and higher throughput demands. Today, we can see that applications have the need to be both highly available and fast (near real time) with a vast amount of data. The overall trends for organizations has been to move from relational databases to NoSQL databases and leverage distributed environments. ...

Доклад принят в Программу конференции

Узкотематические секции: видео, поиск, RTB, биллинги

RTB DSP на языке Go: укрощение buzzwords

RTB и его проблематика должны быть знакомы участникам конференции - мало кто сегодня не слышал об этом способе получить много krps с жесткими ограничениями на время генерации ответа. Вот и компания Qmobi решила поучаствовать в этой гонке и отхватить свой кусок пирога под названием “рынок мобильной рекламы”. При первом подходе к снаряду задача выглядит довольно простой: вот запрос с критериями, вот база данных с ответами - выбирай по индексу и отвечай. ...

Доклад принят в Программу конференции
Как построить видеоплатформу на 200 Гбит/с

Как грамотная архитектура и правильное планирование запросов позволяет небольшим количеством серверов достичь высокой производительности при раздаче видеоконтента. В докладе будет рассказано об опыте развития проекта видеоплатформы, о проблемах, которые возникли на пути, и как нам удается раздавать 200 Гбит меньше чем 10 серверами. Планируется рассказать о следующих проблемах: - недостаточная производительность дисковой подсистемы; - странности в поведении аппаратного обеспечения; - недостаточная производительность рельсового приложения; - и опять недостаточная производительность дисковой подсистемы. ...

Доклад принят в Программу конференции

Производительность фронтенда

Modern Web App Development using ClojureScript & React.js

Today’s browsers are some of the most capable platforms around, and yet our tools are still painfully primitive. JavaScript engines are powerful, yet the language leaves a lot to be desired. Being forced to use JavaScript on the browser also fragments our code-base where we have to duplicate business logic on the server-side. ...

Доклад принят в Программу конференции
Производительность WebGL-приложений

WebGL многими воспринимается как API для "быстрого" рисования. Но на практике нередко случается, что решение на WebGL выходит медленным, иногда даже медленнее решений на других API. В этом докладе мы попробуем взглянуть на проблемы производительности, встречающиеся в работе с WebGL, и их решения на примере движка Панорам Яндекс.Карт. ...

Доклад принят в Программу конференции
Understanding Page Load

Large websites with large customer bases should have fast page loads no matter where your customers are coming from. In this day and age speed is expected. Getting there requires engineers to both have data and the ability to analyze and find problems. ...

Доклад принят в Программу конференции
From nothing to a video under 2 seconds

What does it take to achieve sub two seconds video playback latency on the 3rd largest website in the world? We will peek under the hood of the Watch page and explore what common problems are being solved by YouTube's Desktop team and what interesting solutions had to be implemented to achieve this goal. We will discuss how page loads are classified and what specific treatment is required for every type, what tools and technologies are used in the stack, how being one of the largest image serving websites affects our approach to thumbnails and how we maintain and monitor our latency goals.

Доклад принят в Программу конференции
Изоморфные React-приложения: производительность и масштабирование

Взглянем ещё раз на концепцию изоморфных приложений. На первый взгляд, всё красиво - полный порядок, высокая организованность, быстрая выдача результата. Но так ли всё оптимистично? ...

Доклад принят в Программу конференции
Эволюция клиентской разработки: от веба ко "всеобщей мобилизации” или mobile-first на примере Badoo

История развития проекта с точки зрения клиентских технологий - от веб-сайта к появлению мобильных клиентов и смещению фокуса к mobile-first разработке. Общие черты нашей архитектуры и их отличия от стандартных решений. Единый протокол общения с приложениями iOS/Android/WindowsMobile/MobileWeb/Web и особенности реализации для JavaScript платформ (десктопные и мобильные браузеры).

Доклад принят в Программу конференции
Настройка и оптимизация высоконагруженных J2EE веб-приложений

Оптимизация любого веб-приложения – это нетривиальная задача, для решения которой требуется проводить мониторинг загрузки системных ресурсов, выполнять микро-вэнчмаркинг, экспериментировать с настройками, проводить нагрузочное тестирование и т.д. В текущем году нашей команде довелось поучаствовать в нескольких проектах, в которых перед нами стояла задача оптимизации J2EE веб-приложений. Один из них – портал для ОАО «Сбербанк России» (www.sberbank.ru). ...

Доклад принят в Программу конференции
NAS, Predictions, Preloading, Presudo-Isomorphism

На примере фреймворка COD.js ( c React as View Layer ) и топовых продуктов фирмы Acronis мы увидим, каких удивительных результатов можно добиться используя: 1) NAS - неблокирующее состояние приложения; 2) Predictions - дизайн-паттерн, позволяющий предсказывать состояния системы и производить так называемую "latency conpensation" - технику, которую очень любят в Game Dev; 3) Preloading - стандартную и всем знакомую технику, у которой есть пара интересных способов применения, заслуживающих внимания; 4) Presudo-Isomorphism - очень хитрую технику, которую так активно использует Facebook. Все это будет показано на примере реальных продуктов. С простыми и понятными примерами, которые можно будет применить в любом продукте. ...

Доклад принят в Программу конференции
Javascript-фреймворки:
 должен остаться только один

Рассказ от tech-менеджера о том, как мы в Acronis выбирали фреймворк в условиях, когда любое более-менее важное технологическое решение сразу затрагивает с десяток команд, несколько сотен человек и права «случайно все сломать» нет. В докладе пойдет речь о том, что производительность фронтенда — это больше про слаженную работу команды, про понятный и масштабируемый код, чем про сухие циферки. Но циферки тоже будут. ...

Доклад принят в Программу конференции
Скорость с доставкой до пользователя

1. Многие коллективы разработчиков пытаются измерять скорость отклика сайта и пишут, например, “эта страничка сформирована за 300 ms”. 2. ...

Доклад принят в Программу конференции
От Request до DOMContentLoaded на примере Главной страницы Mail.ru

1. Быстрый сервер. - Быстрый сервер на C++ в связке с V8. ...

Доклад принят в Программу конференции

Технологии будущего

Android Cloud... точнее Cloud из Android

Вы когда-нибудь плакали, открывая Amazon EC2 калькулятор? Мучились ли вы над тем, куда поставить сервер - на балкон или в кладовку? Готовились ли вы морально платить по 100-200 тысяч рублей за самый примитивный вариант сервера? ...

Доклад принят в Программу конференции

Менеджмент

Как мы админа увольняли, или тонкости организации корпоративной безопасности в студии

Через пару недель после увольнения админа нам показалось, что пароли наших клиентов утекли. Неприятная ситуация, которая требует оперативных и слаженных действий. В этом докладе я расскажу подробности этой истории, и мы обсудим: — Как отработали с клиентами, утечка паролей к которым была установлена достоверно. ...

Доклад принят в Программу конференции
Учебный план для highload гуру

Доклад - универсальный список ключевых слов для подготовки к любой работе над любыми задачами. Программирование - штука одновременно очень узкая и очень широкая. С одной стороны, фундаментальных структур данных и алгоритмов крайне мало, а с другой, решаемых задач и специальных (для разных индустрий) техник много. ...

Доклад принят в Программу конференции
Строим 24/7 DevOps центр на высоконагруженном проекте

1. Кадровые вопросы. 1.1. ...

Доклад принят в Программу конференции
Опыт совместной работы хостера (Webzilla) и клиента (CityADS) над достижением uptime выше 99.99%

Для любого крупного проекта работа над uptime сервиса должна быть постоянной, непрерывной и многовекторной.  Каждый инцидент с доступностью проще всего “свалить” на поставщика услуг хостинга и провайдера. Однако, начиная с определенного уровня масштаба сервиса, такой подход уже начинает стоить бизнесу слишком много.  Данный доклад - это обзор работы над проблемами доступности на пути от клиента до хостера, проведенной с целью достижения доступности сервисов клиента выше 99,99% на примере интернет-компании с оборотом выше 1 млрд рублей. Ключевая особенность доклада в том, что он максимально объективен в силу того, что каждый докладчик представляет свою сторону "баррикад". ...

Доклад принят в Программу конференции

Основная программа

Высоконагруженная отправка push-уведомлений

Одобрено комиссией. ...

Доклад принят в Программу конференции

Архитектуры

Tempesta FW: challenges, internals, use cases

Tempesta FW - это Open Source гибрид Web-акселератора и файервола, специально разработанный для высокопроизводительной доставки контента вне зависимости от DDoS или наплыва посетителей. В докладе будет рассказано про задачи, которые ставились при разработке проекта и пути их решения. Рассмотрим проблемы современных операционных систем в приложении к Web-стеку (система фильтрации, Web-сервер, application слой, БД), и как они решаются в Tempesta - некоторые уже решены, некоторые еще в процессе работы.

Доклад принят в Программу конференции
Как строить архитектуру для отказоустойчивой службы такси

Такси - это популярная тема для обсуждений, после того, как появились стартапы в виде Uber, GetTaxi, GrabTaxi и тому подобные. Ведущий разработчик службы Namba Taxi расскажет про то, как строилась текущая отказоустойчивая архитектура в Namba Taxi, с какими проблемами и неудачами мы сталкивались и как решали. Мы обсудим: - какие ошибки проектирования были допущены; - как именно эти ошибки нам мешали в эксплуатации и поддержке; - что такое сервисная архитектура. ...

Доклад принят в Программу конференции
Stack Overflow - It's all about performance!

Stack Overflow, and its Q&A network Stack Exchange, have been growing exponentially for the last five years. They now encompass ~150 Q&A sites ~9 million users ~13 million questions ~22 million answers In this talk, I will describe: * The physical architecture of Stack Overflow. How many servers are there? ...

Доклад принят в Программу конференции
Как мы сделали ровную балансировку нагрузки на фронтенд-кластере

В докладе я расскажу о том, как мы добились идеально ровной балансировки нагрузки по кластеру из 200+ серверов, реализовали автоматический подбор весов и получили разброс CPU usage в 2,5% в пике трафика. Это позволило сэкономить нам около 40-50 серверов и улучшить время отклика мобильного сайта в пике нагрузки. Реализацию приведенного алгоритма мы выложим в open-sourсe. ...

Доклад принят в Программу конференции
"Cекретные" технологии инвестиционных банков

Как правило, такое базовое ПО, как языки программирования, системы управления базами данных, брокеры сообщений, используется в разных индустриях и не имеет ярко выраженной бизнес-специализации. Java, Python, MySQL и не только находят применение повсюду, начиная с больших корпораций, заканчивая стратапами и видеоиграми. Тем не менее, встречаются исключения. ...

Доклад принят в Программу конференции
Ускорение показа превью изображений в Яндекс.Диске

В сутки Яндекс.Диск отдает более 40 миллионов сгенерированных превью изображений для просмотра в веб-интерфейсе Диска и в мобильных приложениях. В докладе будет рассказано о поиске узких мест в цепочке от запроса пользователя до показа ему картинки, создания мониторингов скорости показа картинок, мерах по оптимизации: какие варианты рассматривали, какие реализовали, и какие были итоги. ...

Доклад принят в Программу конференции
NodeJS в HighLoad проекте

NodeJS - достаточно молодой фреймворк, и пока не каждый решается использовать его в продакшене, а тем более в highload. В течение последнего года мы разрабатывали проект DMP (Data Management Platform), используя NodeJS для прототипирования. На данный момент проект в большей степени все еще остался на JS и без труда справляется с текущими нагрузками в 10 000 запросов в секунду. ...

Доклад принят в Программу конференции
Путь от монолита на PHP к микросервисам на Scala

В своём проекте мы решали следующие задачи: — Скорость разработки задачи; — Стоимость поддержки задачи; — Возможность распараллеливать вычисления и задачи; — Возможность максимально просто масштабировать приложение; — CI/CD с минимальными усилиями. Я расскажу о том, как мы решали эти задачи, на какие грабли мы наступали, что из этого всего получилось, и что делать дальше. Что получили в итоге: — Мощь JVM под капотом Scala; — 15 минут от нажатия на кнопку "Merge request" до продакшена в 3 датацентра и 6 серверов с прохождением тестов (юнит + функциональные + интеграционные + нагрузочные); — 6 нод с приложениями вместо 18 (по 2 в каждом датацентре для отказоустойчивости) с запасом прочности в 60%; — Независимые пофичные релизы без даунтайма всех компонентов приложения; — Масштабирование только того функционала и в том количестве, которое необходимо данному сервису. ...

Доклад принят в Программу конференции
Object-oriented Network Function Virtualization

В нашей организации разрабатывается облачная платформа – Self-Organized Cloud (SOC). Проект направлен на реализацию собственной уникальной технологии управления (оркестрации) виртуальными облачными сетями (тенантами), состоящими из виртуальных серверов, сетевых устройств и хранилищ данных, с возможностью задания различной сетевой топологии. При описании виртуальной сети пользователь может использовать различную элементную базу. ...

Доклад принят в Программу конференции
Система ведения государственных данных в Правительстве Москвы

В Правительстве Москвы более 200 органов исполнительной власти и более 3000 подведомственных учреждений, каждое из которых ежедневно оперирует большим массивом различных данных, раскрывает часть из них для внешних пользователей, а также использует данные для межведомственного взаимодействия. Как эффективно управлять таким массивом данных? В ходе доклада расскажем об опыте управления и использования большого массива государственных данных в Правительстве Москвы. ...

Доклад принят в Программу конференции
В поисках идеальной сети, или зачем нужна еще одна SDN

Сегодня термин "программно-определяемые сети" используется во множестве случаев - начиная с демонстрационных стендов с OpenVSwitch и заканчивая внедрениями распределенной программно-аппаратной оркестровки от профильных вендоров. Разработка собственной модели сетевого транспорта и написание SDN обычно целесообразно и посильно лишь крупнейшим компаниям, но в нашем случае это также оказалось возможным, более того, SDN упростила взаимодействие с аппаратной начинкой кластеров и привела к снижению ее общей стоимости. Мы хотим рассказать о практическом опыте разработки и использования полностью программной сети для клиентов публичного облака - от определения требований к функциональности такого решения до нюансов работы крупного отказоустойчивого SDN-кластера. ...

Доклад принят в Программу конференции
Developing Software for Persistent Memory

NVDIMMs provide applications the ability to access in-memory data that will survive reboots. This is a huge paradigm shift happening in the industry. Intel has announced new instructions to support persistence. ...

Доклад принят в Программу конференции
How to run Real Time processing on Big Data

Одобрено комиссией. ...

Доклад принят в Программу конференции
Защита данных и датацентров от катастроф. Подход Nutanix

• Защита данных — это не "одна кнопка", нет годного любому единого решения. Задача всегда диктует выбор средств и решений. • RTO — Recovery Time Objective — максимальное время, за которое все ваши бизнес-задачи должны полностью быть восстановлены в работоспособное состояние после полной катастрофы ДЦ. ...

Доклад принят в Программу конференции
101 способ приготовления RabbitMQ и немного о pipeline архитектуре

Архитектурный шаблон проектирования конвейер (pipeline) хорошо зарекомендовал себя при проектировании высоконагруженных (highload) систем. Использование шины сообщений (message bus) при реализации каналов взаимодействия позволяет достигать хороших показателей масштабируемости (scalability), но при этом появляются дополнительные накладные расходы, которые сказываются на показателях производительности (performance). В докладе обсуждаются варианты использования системы обмена сообщениями RabbitMQ в качестве связующего программного обеспечения (middleware) для построения конвейерной архитектуры. ...

Доклад принят в Программу конференции
Snabb Switch: simple and fast packet networking

Snabb Switch is a new open source toolkit for using Linux/x86 servers to solve high-end networking problems. Snabb Switch is used by network operators who need to process up to 100 Gbps of network traffic per server and its application areas include load generation, line-rate packet capture, firewalling, VPN, and Network Functions Virtualization (NFV) for OpenStack. I will explain the architecture of Snabb Switch, how it is able to process over 100 Gbps of traffic on an ordinary x86 server, and how LuaJIT makes it possible for a grassroots community to build Snabb Switch with only around 10,000 lines of code.

Доклад принят в Программу конференции
Где живут Ваши объявления?

Авито с 2010 года - с момента запуска на широкую аудиторию - прошел уже немалый путь, успев собрать более 600 миллионов объявлений со всех уголков страны, и став при этом крупнейшим классифайдом в Европе. В докладе будет дан обзор архитектуры ядра системы с ретроспективой, перечислены основные компоненты обработки объявлений, приведены оценки параметров функционирования от "продуктовых" "количество объявлений за единицу времени" до количества запросов на разные уровни стека (веб, базы, поиск, очереди) и степени утилизации железа. Будут также продемонстрированы примеры реализаций классических паттернов веба: кэш, прокси, денормализация и репликация, шардинг, очереди и удаленный вызов процедур - подходы, уже более 5 лет лежащие в основе нашей архитектуры. ...

Доклад принят в Программу конференции
Распределенный blockchain процессинг

Проблема race condition в распределенных системах и существующие способы решения. Какие системы требуют строгой консистентности и почему? Что такое blockchain, как сделать процесс его создания распределенным и как на базе него построить масштабируемую систему учета.

Доклад принят в Программу конференции
nginx.CHANGES.2015

Что появилось нового в nginx в 2015? Thread pools, HTTP/2, SO_REUSEPORT, nginScript Примечание от Программного комитета: только Игорю Сысоеву можно писать настолько краткие тезисы :) ...

Доклад принят в Программу конференции

Системное администрирование

Zabbix и миллионы метрик: наилучший опыт масштабного мониторинга

Управление миллионами метрик таит в себе множество сложностей. Это вопросы автоматизации, масштабируемости, интеграции с другими системами и многое другое. Хочется максимально всё автоматизировать - один раз настроил и забыл. ...

Доклад принят в Программу конференции
DNS в условиях хостинг-провайдера

DNS - это одна из основополагающих служб и протоколов современного интернета, сервис, который должен всегда работать. Каждый раз, когда конечный пользователь обращается к какому-либо ресурсу глобальной паутины, он использует DNS, и чтобы этот самый первый шаг к проектам у наших клиентов не занимал много времени, мы построили свой DNS-хостинг с использованием Anycast-балансировки. Чуть позже мы применили этот метод для балансировки и повышения доступности рекурсивных серверов внутри наших дата-центров.

Доклад принят в Программу конференции
Слон желтого цвета и его друзья (эксплуатация Hadoop-стека в федеральном проекте)

Налог на добавленную стоимость - важнейшее средство пополнения бюджета страны, а проверка корректности налоговых деклараций - важнейшая задача Федеральной Налоговой Службы. Естественно, в наше время эти задачи не выполняются вручную. На помощь приходит автоматизированная система, работающая на основе стека технологий Hadoop. ...

Доклад принят в Программу конференции
Мониторинг всех слоев web проекта

Когда вы узнаете, что ваш сервис не работает, вы идете в мониторинг, видите много алертов про CPU/load average/diskIO/и т.д., пускаете слезу и идете читать логи. Сначала на фронтенды, потом дальше по стеку. У многих уже есть grafana и подобные дашборды, но почти всегда там есть только метрики про приложение и пользователей, но нет ничего про сеть, базу и другие подсистемы, от которых зависит работа сервиса. ...

Доклад принят в Программу конференции
Тюним память и сетевой стек в Linux: история перевода высоконагруженных серверов на свежий дистрибутив

В процессе обновления высоконагруженных серверов раздачи видео (40Gbit/s с каждого сервера) со старого OpenSuSE 10.2 на новый CentOS 7 (время между релизами - 7 лет) мы столкнулись с рядом проблем - необъяснимый свопинг и запуски OOM killer, неравномерное распределение нагрузки по ядрам, обрывы соединений, скачки системной нагрузки на CPU. В докладе будет рассказано о том, как мы боролись с этими проблемами и какие технологии для этого использовали. ...

Доклад принят в Программу конференции
Rspamd - высокопроизводительная система фильтрации спама

Rspamd - это система фильтрации спама с открытым кодом, выполняющая оценку e-mail сообщений по множеству критериев, который возник как попытка адаптировать фильтрацию спама к современным реалиям и постоянно растущему потоку электронных писем, нуждающихся в обработке. В данном докладе я хотел бы продемонстрировать результаты сравнения rspamd с аналогами, рассказать про архитектурные особенности и применяемые алгоритмы, позволяющие повысить производительность, а также затронуть вопросы безопасности при обработке сообщений клиентов. Из доклада вы узнаете: - как неблокирующая модель ввода/вывода помогает улучшить общую производительность системы и какие проблемы она привносит; - как использовать алгоритм шинглов для поиска похожих писем и организации "черных" списков; - про использование цепей Маркова в Bayes статистике; - про оптимизацию правил в абстрактном синтаксическом дереве; - как обрабатывать 10 тысяч шифрованных запросов в секунду на одном ядре, или что делать, пока нет TLS 1.3; - про то, почему стандартное API языка С плохо подходит для высоконагруженных систем, или зачем нужны велосипеды, когда есть костыли; - почему удобная система конфигурации является "лицом" для проекта.

Доклад принят в Программу конференции
Flashcache в mamba.ru

Некоторое время назад, когда в очередной раз встал вопрос о производительности большого парка mysql sharding серверов, мы не захотели покупать новые сервера и производить resharding. Мы обнаружили, что компания facebook выпустила в opensource большое количество своих разработок, в том числе и модуль ядра flashcache. Flashcache - модуль для кэширования блоков блочного устройства, предоставляющий 4 разных режима кэширования. ...

Доклад принят в Программу конференции

DevOps

Docker в работе: взгляд на его использование в Badoo через год

Мы в Badoo используем Docker больше года и на нашем примере попробуем поговорить о возможных моделях его применения. - 85% наших сервисов работают в контейнерах: для чего и почему мы перенесли свои сервисы в контейнеры. - Как мы подходим к сборке образов? ...

Доклад принят в Программу конференции
Управление производительностью на базе HP Performance Center. Опыт Альфа-банка

Альфа-Банк основан в 1990 году, является универсальным банком, осуществляющим все основные виды банковских операций, включая обслуживание частных и корпоративных клиентов, инвестиционный банковский бизнес. По итогам первого полугодия 2015 года согласно данным финансовой отчетности МСФО совокупные активы банковской группы Альфа-Банк составили 36,5 млрд долларов США, чистая прибыль 32 млн долларов США. В Альфа-Банке обслуживается 194 тыс корпоративных клиентов и 13,9 млн клиентов физических лиц. ...

Доклад принят в Программу конференции
Управление релизами, как оно есть

Процесс доставки разрабатываемого функционала всегда строится на компромиссах между тем, чтобы доставлять быстро, и тем, чтобы не потерять качество. Причем, чем больше времени тратится на деплой, тем меньше времени остается на качество. Проблема становится все более актуальной с каждым этапом роста объемов производства. ...

Доклад принят в Программу конференции

Тестирование

Тестирование аварий

В 2013 году случилась самая большая авария в истории Одноклассников: в течение трёх дней проект был целиком, а потом частично, неработоспособен. После того, как мы устранили последствия аварии, к нам пришел бизнес со следующим вопросом: какие проблемы видит технический отдел компании и какие варианты защиты может предложить. Сходу мы выделили три основных — взлом хакерами, DDoS-атаки и аварии. ...

Доклад принят в Программу конференции
Функциональное тестирование высоконагруженных проектов

В докладе я расскажу о следующем: — почему тема доклада не оговорка, а абсолютно реальная вещь; — что можно извлечь из результатов теста помимо «да/нет»; — в каких случаях «количество» = «качество»; — когда «один в поле не воин»; — немного о том, зачем тестировщику нужна матстатистика; — как избежать случайностей в результатах; — «буря в стакане» или масштабируем highload в docker/openvz; — почему фиксация запросов в тестах приводит к фиксации сервиса на продакшене; — а также всё вышеперечисленное на примерах наших проектов. ...

Доклад принят в Программу конференции
Проблемы измерения производительности Erlang-приложения

При измерении производительности легко получить какие-нибудь данные, но эти данные далеко не всегда отражают реальность, причиной тому может быть как новый эффект, так и неправильная обработка информации в реальном времени. В докладе рассматриваются основные проблемы существующих решений + примеры и цифры на основе опыта одного open source проекта. Основное внимание уделяется измерению latency и быстрым счётчикам, также рассмотрены сэмплирование, генерация случайных чисел и распределённая обработка измеряемых данных. ...

Доклад принят в Программу конференции
Compile Time Code Weaving in Go, Large Systems Debugging/Profiling

How do you go about instrumenting or debugging a large Go codebase that you've never seen before? Unlike the JVM or a language like ruby it's not so easy to extend third party software in Go. Как вы поступаете, когда инструментируете или дебагите большую кодбазу от Go, которую вы видите впервые?

Доклад принят в Программу конференции

BigData и машинное обучение

Архитектура HAWQ

HAWQ - один из лучших на рынке движков SQL-on-Hadoop, который не раз доказывал свою лидирующую позицию в открытых тестированиях. Что еще более интересно, в конце сентября этого года Pivotal открыл его исходный код под лицензией Apache, а также разместил сам проект в инкубаторе Apache (http://hawq.incubator.apache.org), что делает этот инструмент доступным большому кругу пользователей и намного более привлекательным для компаний - лидеров интернет-индустрии. Работая в Pivotal, я участвовал в развитии и внедрении этого продукта с первого дня его существования. ...

Доклад принят в Программу конференции
Бигдата - как добывать золото из данных

Расскажем о самых распространенных технологиях и алгоритмах добычи критичной для бизнеса информации из больших массивов данных. Отдельно коснемся темы рекомендательных сервисов и их эффективного применения. План: 1) Откуда брать данные, тренды и концепции. ...

Доклад принят в Программу конференции
Key trends in Big Data and new reference architecture from Hewlett Packard Enterprise (Тренды в Big Data и новая архитектура от Hewlett Packard Enterprise)

Доклад будет читаться на английском языке. Описание доклада на русском: Динамичное развитие инструментов для обработки Больших Данных порождает новые подходы к повышению производительности. Ключевые новые технологии в Hadoop 2.0, такие как Yarn labeling и Storage Tiering, уже используются компаниями Yahoo и Ebay. ...

Доклад принят в Программу конференции
Ускоряем исследования с помощью конкурсов: как их готовить и выигрывать

Задачи машинного обучения (ML) имеют несколько другую специфику, нежели инженерные задачи построения высоконагруженных систем. Многие из ML-задач можно решить быстро и "на коленке". Хрестоматийный пример - хотим построить спам-фильтр и берем наивного байеса. ...

Доклад принят в Программу конференции
Как подготовиться к гигабитной DDoS-атаке при помощи машинного обучения

Обеспечение доступности — это сложная задача, которая требует совместной работы специалистов по проектированию и администрированию сетей, разработчиков приложений, тестировщиков и специалистов по IT-безопасности. В этом докладе мы поговорим о том, какие области науки о данных применимы при защите от DDoS, взглянем на машинное обучение с позиций злоумышленников, специалистов по обеспечению доступности и по защите информации. Рассмотрим в этом контексте обучение с обратной связью: • от окружающей среды (теория управления/control theory), • от данных (кластеризация, unsupervised learning), • от внешнего источника (обучение с учителем/supervised learning — классификация и регрессия). ...

Доклад принят в Программу конференции
От больших к очень большим данным - зачем нужна нормализация в Big Data?

Спроектировать хранилище данных, казалось бы, не сложно. Собрать требования -> построить модель данных -> реализовать ETL. Но проходит год-два, и рост объема данных, и, главное, рост сложности данных приводит хранилище на грань работоспособности. ...

Доклад принят в Программу конференции
Потоковые алгоритмы в задачах обработки больших данных

Для того чтобы таргетировать рекламу по поведению интернет-пользователей, DMP ежедневно оценивает терабайты данных. В докладе расскажу, как при помощи алгоритмов потоковой обработки данных можно быстро оценить большой объем статистики и формы распределения различных характеристик. - Что будем оценивать? ...

Доклад принят в Программу конференции
Frontera: распределенный робот для обхода веба в больших объемах

В этом докладе я собираюсь поделиться нашим опытом обхода испанского интернета. Мы поставили перед собой задачу обойти около 600 тысяч веб-сайтов в зоне .es с целью сбора статистики об узлах и их размерах. Я расскажу об архитектуре робота, хранилища, проблемах, с которыми мы столкнулись при обходе, и их решении. ...

Доклад принят в Программу конференции
Near-realtime аналитика событий в высоконагруженном проекте

Типовой задачей аналитики для любого проекта является получение ответов на вопросы: "сколько у нас регистраций за последний день?", "сколько сообщений было отправлено (товаров добавлено в корзину и пр.) в стране N, мужчинами/женщинами из приложения/сайта?". Поиском ответов на эти вопросы в компании обычно занимается отдел BI. Инструментарием могут служить различные технологии: файлы Excel, старые-добрые РСУБД (MySQL, PosgtreSQL, MS SQL, Oracle etc.), специализированные аналитические базы данных (Vertica, Exasol, etc.), вычисления на Hadoop-кластере. ...

Доклад принят в Программу конференции
Эффективные алгоритмы поиска подобных объектов для терабайтов данных

Segmento DMP хранит сотни миллионов анонимных профилей пользователей интернета. Часть из задач отдела Data Science связана с их кластеризацией и поиском нечетких дубликатов. Для успешного решения этих задач необходимо вычислить метрики сходства между профилями. ...

Доклад принят в Программу конференции
Rambler's Top100