19-ый онлайн митап Software Craftsmanship пройдет в необычном формате. В отличие от предыдущих встреч, эту мы проведем в формате совместного построения архитектуры сложной нагруженной распределенной системы.
Выберите одну наиболее интересующую вас тему из 5-ти указанных.
Тема, набравшая наибольшее количество голосов, будет подробно разобрана на митапе. Будет интереснее, если вы перед митапом прикинете как можно решить выбранную задачу, или посмотрите как выстраиваются подобные системы в реальности.
Решению задачи будет посвящено примерно полтора часа, мы сможем углубиться в детали настолько, насколько это будет интересно участникам и насколько хватит времени.
Темы воркшопа на выбор:
1. Высоконагруженный счетчик посещений. Требования: 100млрд хитов в сутки, отклик на запрос статистики не более 1-1.5с для диапазона дат в пределах 3 мес от текущего момента.
2. Высоконагруженный многопользовательский чат с группами (макс 100 участников группы).
Количество пользователей 500млн, количество одновременных пользователей 100 млн в пике, история чата должна храниться не менее 5 лет. Сообщения за последнюю неделю должны загружать не более чем за 0.5с.
Усложнение: встроить рекламу в чат.
3. Система мониторинга новостей:
- Краулер загружает контент из указанных сайтов.
- Контент страниц анализируется (ключевые слова, объекты, связи между объектами)
- Проанализированный контент публикуется для пользователей в виде графиков, графов связей между объектами и другой информации.
Усложнение: встроить в систему рекламу.
4. Распределенная файловая система.
Должна работать на самом разном железе в рамках одного датацентра, быть способной горизонтально масштабироваться без ухудшения latency, уметь перебалансироваться, также обеспечивать гарантированное хранение файлов. Размер файла не ограничен. Продумать принципиальную архитектурную схему.
5. Система оповещения населения о стихийных бедствиях для нескольких государств.
Выбор кого оповещать - по географии, точность до номера дома. Способ оповещения - телефон, соцсети, почта, факс, звонки и сообщения в чатах. Необходимо отслеживать доставку сообщения, передоставлять другим способом. Оповещения самого высокого уровня должны доходить до адресатов в течении 10 мин максимум.
Для каждого адресата нужно хранить историю сообщений, делать выборки по истории по разным разрезам. Статистика должна быть доступна не позже чем после 2с после инициации сообщения. Необходима развитая система прав по административному делению (несколько стран) и по ролям. Система должна работать, даже если датацентр провалился под землю или затоплен.
При регистрации вы сможете выбрать одну из пяти постановок сложной системы для обсуждения, и на воркшопе мы сможем совместными усилиями выстроить архитектуру, выбрать соответствующие базы данных, очереди сообщений, кэши и другие инструменты.
Так как SLA и требования к availability/scalability в каждом из предложенных вариантов достаточно высокие, то мы с большой выстроим именно микросервисную архитектуру.
Ведущий: Павел Вейник. Разработчик с 2003 года. Работал в таких белорусских компаниях, как EPAM, Itransition, WorkFusion, однако предпочитает небольшие стартапы. Специализации - распределенные, highload системы, очереди сообщений и микросервисы.
Опыт на менедженских и архитекторских ролях позволяет видеть проблемы с разных точек зрения. Ведет тренинги для компаний с 2011г. Сейчас выполняет архитектурные задачи в компании EPAM.