Pull to refresh

Comments 11

Я. И. Перельман, "Занимательная механика", о совместной работе нескольких лошадей


Спойлер

Слоник: Слушай, а как ты думаешь, вот если много людей, скажем, тысяча… без подручных средств…
Колезев: Чувствую, сейчас будет очень тупой вопрос. Даже боюсь представить.
Слоник: Смогут ли они отмудохать бегемота?

https://bash.im/quote/323216
Уменьшения бутылочных горлышек процессов всегда является приоритетом в любых системах, тут главное соблюдать баланс

Получается, что создание современных суперкомпьютеров с тысячами процессоров лишено практического смысла — только померятлся количеством флопсов с конкурентами. Ведь загрузить этого монстра на 100% вряд ли получится, кроме как на синтетических тестах.

Обывательское мнение: Есть задачи, которые реально распараллеливаются. Скажем, поиск каких-то паттернов в накопленных массивах данных (астрономия). Есть задачи, которые с точки зрения бизнеса — одна задача, а на самом деле — куча однотипных почти не связанных процессов (возможно банковские процессы какие-то). Первые ЭВМ, к примеру, рассчитывали баллистические, кажется (или навигационные?) таблицы — однотипные несвязанные действия над каждым элементом из огромного исходного массива данных.


Но лучше, конечно, спросить тех, кто реально это эксплуатирует: что они там запускают?

вычисления погоды, расчет квантово-химических процессов, квантово-физических процессов, моделирование сложных газодинамических систем (ракеты)
Сначала делают такие прототипы, а потом выдумывают задачи. Обычно так)
Помимо уже сказаного про задачи, которые хорошо параллелятся, стоит заметить, что эти монстры нужны, чтобы там много людей одновременно могло запускать задачи поменьше (используя систему очередей для задач).
Дай Бог, чтобы до руководителей дошло, что 50% процессов невозможно распараллелить, потому что они линейные! Каждый должен делать свою работу и не делать чужую.
Еще один момент, что необходимо проводить работу над ошибками. Ошибаются и косячат все, а вот исправляются далеко не многие. Исправляйтесь и совершенствуйтесь!
По-моему, USL объясняет интерес к микросервисам. Разделяя большую систему на всё более мелкие части, развёртываемые независимо друг от друга, вы уменьшаете последовательную часть работы. В большой системе с большим количеством участников последовательная часть зависит от объёма усилий на интеграцию, тестирование и развёртывание. Преимущество микросервисов в том, что они не нуждаются в интеграционной работе, интеграционном тестировании или задержке на синхронизированное развёртывания.


USL не объясняет интерес, а это и есть ответ, почему микросервисы для бизнеса интереснее, чем монолит (в общем случае).
Если сформулировать человеческим языком:
Когда у вас трудится 200 человек в монолите, то количество внутреннего трения сотрудников между собой таково, что любой здравый менеджер хватается за голову.
Если поделить 200 человек на 10 независимых команд, которые свои сервисы будут пилить относительно независимо, то внутреннее трение существенно уменьшается (в общем случае). Но возрастают затраты на получение согласованного состояния всех сервисов.
Если основная идея статьи — про нарастание накладных расходов при увеличении вовлеченных в проект участников — то выкладки USL, возможно, сложноваты для такого достаточно очевидного факта.

Сравнение этих двух вещей ИМХО некорректно. Это как офисный стул и маршрутка — вроде в обоих можно сидеть и с колесами. Но детали, задачи и природа процессов — кардинально отличаются.
Sign up to leave a comment.

Articles