[ Митап 19 ]
[ WORKSHOP по архитектуре распределенных систем ]
19-ый онлайн митап Software Craftsmanship прошел в необычном формате.
В отличие от предыдущих встреч, эту мы провели в формате совместного построения архитектуры сложной нагруженной распределенной системы.
Решению задачи было посвящено 2 часа, где мы смогли углубиться в детали настолько, насколько это могло быть интересно участникам и насколько хватило времени.
При регистрации каждый смог выбрать одну из пяти постановок сложной системы для обсуждения, и на воркшопе мы совместными усилиями попытались выстроить архитектуру, выбрать соответствующие базы данных, очереди сообщений, кэши и другие инструменты. Так как SLA и требования к availability/scalability в каждом из предложенных вариантов достаточно высокие, то мы с большой вероятностью выстроим именно микросервисную архитектуру.
[ Темы воркшопа, которы были на выбор ]
тема 1
Высоконагруженный счетчик посещений. Требования: 100млрд хитов в сутки, отклик на запрос статистики не более 1-1.5с для диапазона дат в пределах 3 мес от текущего момента.
тема 2
Высоконагруженный многопользовательский чат с группами (макс 100 участников группы).
Количество пользователей 500млн, количество одновременных пользователей 100 млн в пике, история чата должна храниться не менее 5 лет. Сообщения за последнюю неделю должны загружать не более чем за 0.5с.

Усложнение: встроить рекламу в чат.


тема 3
Система мониторинга новостей:

  1. Краулер загружает контент из указанных сайтов.
  2. Контент страниц анализируется (ключевые слова, объекты, связи между объектами)
  3. Проанализированный контент публикуется для пользователей в виде графиков, графов связей между объектами и другой информации.
Усложнение: встроить в систему рекламу.
тема 4
Распределенная файловая система.
Должна работать на самом разном железе в рамках одного датацентра, быть способной горизонтально масштабироваться без ухудшения latency, уметь перебалансироваться, также обеспечивать гарантированное хранение файлов. Размер файла не ограничен. Продумать принципиальную архитектурную схему.
тема 5
Система оповещения населения о стихийных бедствиях для нескольких государств.
Выбор кого оповещать - по географии, точность до номера дома. Способ оповещения - телефон, соцсети, почта, факс, звонки и сообщения в чатах. Необходимо отслеживать доставку сообщения, передоставлять другим способом. Оповещения самого высокого уровня должны доходить до адресатов в течении 10 мин максимум. Для каждого адресата нужно хранить историю сообщений, делать выборки по истории по разным разрезам. Статистика должна быть доступна не позже чем после 2с после инициации сообщения. Необходима развитая система прав по административному делению (несколько стран) и по ролям. Система должна работать, даже если датацентр провалился под землю или затоплен.
Участники выбрали одну наиболее интересующую тему из 5-ти указанных.
Тема, набравшая наибольшее количество голосов - тема 2, была подробно разобрана на митапе. Перед митапом участники прикинули, как можно решить выбранную задачу, и посмотрели как выстраиваются подобные системы в реальности.
[ Ведущий воркшопа ]
Павел Вейник
CEO в Hard & Soft Skills
Разработчик с 2003 г. Работал в таких белорусских компаниях, как EPAM, Itransition, WorkFusion, однако предпочитает небольшие стартапы. Специализации - распределенные, highload системы, очереди сообщений и микросервисы.
Опыт на менедженских и архитекторских ролях позволяет видеть проблемы с разных точек зрения. Ведет тренинги для компаний с 2011г.
Сейчас выполняет архитектурные задачи в компании EPAM.
19-й Митап проводился при поддержке компании SaM Solutions
[ Инфопартнеры ]