Ложные предположения, которые делают программисты, впервые столкнувшиеся с распределенными вычислениями
Заблуждения распределенных вычислений — это ряд утверждений, сделанных Л. Питером Дойчем и другими сотрудниками Sun Microsystems, в которых описываются ложные предположения, которые неизменно делают программисты, впервые работающие с распределенными приложениями .
Заблуждения
Первоначально перечисленные заблуждения следующие: [1]
- Сеть надежна ;
- Задержка равна нулю;
- Пропускная способность бесконечна;
- Сеть безопасна ;
- Топология не меняется;
- Есть один администратор ;
- Стоимость транспортировки равна нулю;
- Сеть однородна;
Последствия заблуждений
- Приложения программного обеспечения пишутся с минимальной обработкой сетевых ошибок. Во время сбоя сети такие приложения могут останавливаться или бесконечно ждать ответного пакета, постоянно потребляя память или другие ресурсы. Когда отказавшая сеть становится доступной, эти приложения также могут не попытаться повторить любые остановленные операции или потребовать (ручного) перезапуска.
- Незнание сетевой задержки и потери пакетов , которую она может вызвать, побуждает разработчиков прикладного и транспортного уровня разрешать неограниченный трафик, что значительно увеличивает количество потерянных пакетов и тратит полосу пропускания.
- Незнание ограничений пропускной способности со стороны отправителей трафика может привести к возникновению узких мест.
- Беспечность в вопросах сетевой безопасности приводит к тому, что злоумышленники и программы постоянно адаптируются к новым мерам безопасности.
- Изменения в топологии сети могут влиять как на пропускную способность, так и на задержку, и, следовательно, приводить к схожим проблемам.
- Несколько администраторов, как и в случае с подсетями конкурирующих компаний, могут устанавливать противоречивые политики, о которых отправители сетевого трафика должны знать, чтобы завершить желаемые ими пути.
- «Скрытые» затраты на создание и поддержание сети или подсети не являются незначительными и, следовательно, должны быть учтены в бюджетах, чтобы избежать значительного дефицита.
- Если система предполагает наличие однородной сети, то это может привести к тем же проблемам, которые возникают в результате первых трех заблуждений.
История
Список заблуждений был создан в Sun Microsystems . Л. Питер Дойч , один из первых « Fellows » Sun, первым создал список из семи заблуждений в 1994 году; включив четыре заблуждения, которые Билл Джой и Дэйв Лион уже определили в «The Fallacies of Networked Computing». [2] Около 1997 года Джеймс Гослинг , другой сотрудник Sun и изобретатель Java , добавил восьмое заблуждение. [2]
В эпизоде «Software Engineering Radio» [3] Питер Дойч добавил девятое заблуждение: «Это на самом деле расширение пункта 4. Он выходит за рамки физической сети. ... Сторона, с которой вы общаетесь, заслуживает доверия».
Позднее в 2020 году Марк Ричардс и Нил Форд расширили первоначальные «Заблуждения распределенных вычислений», введя три дополнительных заблуждения для решения современных проблем в распределенных системах: [4]
- Управление версиями — это просто
- Компенсирующие обновления всегда работают
- Наблюдаемость необязательна
Смотрите также
Ссылки
- ^ Уилсон, Гарет (2015-02-06). "Восемь заблуждений распределенных вычислений - Tech Talk". Архивировано из оригинала 2017-11-07 . Получено 2017-06-18 .
Восемь заблуждений - это то, о чем я услышал на конференции Java One давным-давно от парня по имени Джеймс Гослинг. Он приписал их кому-то по имени Питер Дойч, и, по сути, группа парней из Sun составила список этих заблуждений.
- ^ ab Van Den Hoogen, Ingrid (2004-01-08). "Deutsch's Fallacies, 10 Years After". Архивировано из оригинала 2007-08-11 . Получено 2005-12-03 .
- ^ Л. Питер Дойч о заблуждениях распределенных вычислений. 2021-07-27. Событие происходит в 57:10.
- ^ Ричардс, Марк. Основы архитектуры программного обеспечения: инженерный подход . O'Reilly Media. ISBN 978-1492043454.
Внешние ссылки
- Дойч, Питер. «Восемь заблуждений распределенных вычислений». nighthacks.com . Получено 24.07.2024 .
- Ротем-Гал-Оз, Арнон (январь 2008 г.). «Объяснение заблуждений распределенных вычислений» . Получено 24 июля 2024 г. – через ResearchGate .