Ключевая секция конференции разработчиков высоконагруженных систем HighLoad++, которая пройдет уже через месяц в Москве, это, конечно, Архитектуры. Доклады в этой секции меняются — если три-четыре года назад мы слушали общие слова о том, сколько серверов в Фейсбуке и где хранятся файлы во Вконтакте, то сейчас в Программу такие доклады уже не проходят. Сейчас время деталей, микросервисов, подробных разборов того или иного архитектурного патттерна.
На этой конференции подробно разберем пару из них и первый это, конечно, микросервисы :)
Единое приложение строится как набор небольших микросервисов, каждый из которых работает в собственном процессе, максимально независим от других микросервисов, реализует, как правило, одну бизнес-функцию и коммуницирует с остальными, используя легковесные механизмы, тот же HTTP.
Антон Резников и Владимир Перепелица расскажут не только о микросервисной архитектуре Облака@mail.ru, но и конкретной реализации патттерна на NoSQL-базе данных Tarantool. Да, Tarantool — это еще одна NoSQL база данных, но еще это полноценный сервер приложений. Приложений, расположенных рядом с данными!
Денис Иванов (2Gis) продолжит тему в докладе "Путь от монолита на PHP к микросервисам на Scala". Так и хочется воскликнуть — "Денис, остановись, что ты делаешь, зачем?!". И Денис отвечает на этот вопрос просто — "6 нод с приложениями вместо 18". Ответ достойный, надеемся услышать на конференции детали.
Еще один паттерн, часто используемый в высоконагруженных проектах — это очереди. Тему раскрывает Павел Филонов (Positive Technologies) в докладе "101 способ приготовления RabbitMQ и немного о pipeline архитектуре".
В докладе обсуждаются варианты использования системы обмена сообщениями RabbitMQ в качестве связующего программного обеспечения (middleware) для построения конвейерной архитектуры. Рассматриваются вопросы производительности и масштабирования как stateless так и statefull фильтров.
Доклад похож на учебный, но тема то уж больно хороша!
Следующий доклад о балансировке от Юрия Насретдинова из компании Badoo — серьезная заявка на победу.
В докладе я расскажу о том, как мы добились идеально ровной балансировки нагрузки по кластеру из 200+ серверов, реализовали автоматический подбор весов и получили разброс CPU usage в 2,5% в пике трафика. Это позволило сэкономить нам около 40-50 серверов и улучшить время отклика мобильного сайта в пике нагрузки. Реализацию приведенного алгоритма мы выложим в open-sourсe.
Немудрено, что балансировке этого потока уделяется столько внимания. Детали на конференции, приходите!
И, напоследок, классический доклад об архитектуре крупного проекта, правда очень крупного, самого крупного сервиса объявлений в Рунете — Avito.ru. Михаил Тюрин, главный системный архитектор Avito расскажет о том, "Где живут ваши объявления?"
Одинаковых высоконагруженных проектов не бывает, дьявол кроется в мелочах, в нюансах работы той или иной функции, хранения и использования того или иного блока данных. Именно поэтому свой курс лекций о высоконагруженных системах в МФТИ я начинаю с рассказа и демонстрации важности аналитической части работы над высоконагруженных проектом. И именно поэтому я рекомендую сходить на доклад Михаила — крупнейший классифайд в Европе, 600 миллионов объявлений — как это все работает?
В следующих письмах мы продолжим рассказ о наших иностранных гостях. У нас фуллхаус :) Среди докладчиков Google, YouTube, Facebook и Alibaba.