Визуальное проектирование масштабируемых приложений Мы пилили монолит
Кажется, что задачи масштабирования в микросервисной архитектуре решаются просто: поднимаем нужное количество сервисов, и оно работает, что тут проектировать. На самом деле есть много подводных камней, связанных с возможными блокировками, сбалансированностью нагрузки между разными сервисами для быстрой обработки сообщений, устойчивостью работы при падении экземпляров сервисов. А еще надо обеспечить приемлемую скорость ответа для пользователя, который, быть может, именно сейчас с нетерпением ждет, когда, наконец, можно будет оплатить заказ и думает, не пойти ли ему за заказом на соседний сайт, раз уж тут так все медленно.
Классические диаграммы, UML и другие, придуманные в эпоху монолитов, не слишком хорошо позволяют обсуждать архитектуру работы множества сервисов с асинхронным взаимодействием. Я расскажу о модели, которая позволяет рисовать схемы современных приложений и обсуждать их масштабирование и устойчивость работы при отказах. И проиллюстрирую ее использование конкретными примерами. Визуализация сильно помогает в проектировании и коммуникации, а также в объяснении работы приложения.
IT-архитектор и бизнес-аналитик. Работает над IT-проектами в enterprise-разработке, и параллельно ведет консультации по миру современного менеджмента — Agile, бирюзовых организаций и Спиральной динамике. Подробнее — на сайте http://mtsepkov.org