Распределенные системы. Паттерны проектирования (Бёрнс) - страница 8

рая работает на многих машинах и к которой получает доступ  множество пользователей по всему миру. Несмотря на их повсе-местное распространение, проектирование и реализация таких  систем — «черная магия», которой владеют лишь избранные. Но,  как и все другие технологии, мир распределенных систем разви-вается, упорядочивается и абстрагируется. В этой книге я опи-сываю набор обобщенных повторяемых паттернов (шаблонов),  14 Предисловие

которые делают разработку надежных распределенных систем  более доступной и эффективной. Внедрение паттернов проек-тирования и повторно используемых компонентов освобождает  разработчиков от необходимости повторно реализовывать одни  и те же системы. В сэкономленное время можно сосредоточить-ся на разработке ключевых частей приложения. Как ориентироваться в книге Книга разделена на четыре части следующим образом. ‰ ‰> Глава 1. Введение. > Вводит понятие распределенной системы 

и объясняет, каким образом паттерны проектирования и по-вторно  используемые  компоненты  способствуют  быстрой  разработке надежных распределенных систем.

‰ ‰> Часть I. Одноузловые паттерны проектирования. > В  гла-вах  2–4  обсуждаются  повторно  используемые  паттерны  и компоненты, имеющие место в рамках одного узла распре-деленной системы. В частности, рассматриваются паттерны  Sidecar, Adapter и Ambassador.

‰ ‰> Часть II. Паттерны проектирования обслуживающих си-стем. В главах 8–9 рассматриваются многоузловые паттер-ны, применяемые в постоянно работающих обслуживающих  системах, таких как веб-приложения. Обсуждаются паттерны  репликации, масштабирования и выбора главного узла.

‰ ‰> Часть III. Паттерны проектирования систем пакетных вы-числений. В главах 10–12 рассматриваются паттерны распре-деленных систем для широкомасштабной обработки данных,  в  том  числе  очереди  задач,  событийно-ориентированная  обработка и согласованные рабочие процессы.

Если  вы  опытный  разработчик  распределенных систем,  мо-жете  пропустить  первые  несколько  глав.  Тем  не  менее  вам  Предисловие 15

стоит  хотя  бы  пролистать  их,  чтобы  понять,  как  применять  паттерны проектирования и почему считается, что сама идея  паттернов проектирования распределенных систем настоль-ко важна.

Многие,  вероятно,  найдут  полезными  одноузловые  паттерны,  так  как  они  являются  наиболее  универсальными  и  их  проще  всего использовать повторно.

В зависимости от ваших целей и от того, какие системы вы со-бираетесь  разрабатывать,  имеет  смысл  сосредоточиться  либо  на паттернах обработки больших объемов данных, либо на пат-тернах проектирования постоянно работающих серверов (либо  и на тех и на других). Части II и III практически не зависят друг  от друга, и их можно читать в любом порядке. Если  вы  имеете  обширный  опыт  разработки  распределенных  систем, то, возможно, посчитаете некоторые паттерны из первых  глав избыточными (например, описанные в части II именование,  обнаружение, распределение нагрузки). Тогда можете их просто  пролистать,  чтобы  получить  общее  представление,  но  по  пути  не забудьте рассмотреть все иллюстрации! Условные обозначения