Работаем с заданием из курса Системной инженерии, требуется описать практику работы с использованием архитектурного паттерна.
Беру знакомый для себя домен: локальная сеть предприятия, паттерн: рекомендация при дизайне новой сети оставлять резерв физических портов под будущие расширения (known unknowns) в размере 20%.
Сверяться буду с текстом курса, а также рекомендованной литературой: книгой "Fundamentals of Software Architecture. An Engineering Approach" by Mark Richards and Neal Ford, глава 19 "Architecture Decisions".
- Имя паттерна: "Резерв портов под будущие расширения"
- Статус: RFC
- Тип: Архитектурный паттерн для телекоммуникационных сетей
- Контекст: Расчет общего количества физических портов при проектировании LAN
- Проблема: Необходимо предусмотреть гибкость и расширяемость сети в процессе эксплуатации, предусмотрев возможность добавлять новые устройства, неизвестные в момент проектирования. В то же время не увеличивать чрезмерно стоимость сети.
- Расклады:
- Масштабируемость: Резерв портов улучшит масштабируемость системы. Благодаря резерву портов устройства могут быть подключены к существующим коммутаторам, не требуется покупка новых коммутаторов.
- Гибкость: Резерв портов также может улучшить развиваемость сети, так как он дает возможность добавлять быстро новые устройства в сеть без необходимости модификации существующей топологии.
- Стоимость. Решение увеличит расходы на покупку коммутаторов. Потребуется или выбор модели с большим количеством портов (например, 16>24>48), или увеличение количества коммутаторов. Если предложение подается заказчику на конкурсной основе, это решение может отдать преимущство другим конкурсантам.
- Испольование ресурсов. Также, могут потребоваться дополнительные места (юниты) для установки резервных коммутаторов в телекоммуникационные стойки, избыточные порты в блоках распределения питания PDU, увеличится энергопотребление.
- Решение: В своих проектах мы будем закладывать 20% избыточную емкость портов, свыше выявленных потребностей Заказчика.
- Последствия: мы строим более масштабируемую и гибкую систему, проигрывая в стомости первоначального развертывания (доставки).
- Известные использования: Резерв портов часто используется в различных типах сетей, в том числе в локальных сетях, рекомендовано в solution reference design guides вендоров и внутренних политиках крупных заказчиков.
Тут можно подняться на ситемный уровень выше - типовая развилка, trade-off, о том, какое решение предлагать заказчику на конкурсе - то, что заказчик запрашивает в документах конкурса, или то решение, которое описывает успешную систему? Прямой коммуникации с заказчиком нет, передоговариться невозможно. Есть одно известное изречение Джона Гленна, астронавта NASA. Когда его спросили, что он чувствовал, слушая обратный отсчет в капсуле, он ответил: "В точности то же самое, что вы почувствовали бы, если бы готовились к вылету, зная, что летите на корабле из двух миллионов деталей, каждую из которых изготовил тот, кто предложил правительству наименьшую цену".
Будет над чем подумать с каждой создаваемой системой. Как пишут авторы "Fundamentals of Software Architecture...": "Архитектура — это то, что вы не можете найти в Google".