У нас есть умеренно сложное решение, для которого нужно построить производственную среду.
Существует около дюжины компонентов (и здесь я использую определение «компонент», что означает «может выйти из строя независимо от других компонентов» - например, сервер Apache, веб-приложение Weblogic, ftp-сервер, сервер ejabberd и т. Д.) . Существует ряд веб-приложений weblogic, и нам нужно решить, в каком количестве контейнеров weblogic запускать эти веб-приложения.
Система должна быть высокодоступной, а обмен данными внутри и вне системы обычно защищен SSL.
Наша команда центра обработки данных будет заниматься такими вещами, как проектирование VLAN, установка стойки, спецификация и сборка серверов.
Таким образом, нам все еще необходимо принять следующие решения: как сопоставить компоненты с физическими серверами (и контейнерами веб-логики). Определить все пути обмена данными, убедиться, что все они устойчивы, или существует отказоустойчивый «восходящий» путь связи и отработка отказа для этого зависит от всех единичных точек отказа «ниже по течению». Решите, где отключить SSL (например, на балансировщиках нагрузки или на серверах Apache).
Мой вопрос на самом деле не в том, как принимать решения, а в том, существуют ли какие-либо стандарты для документирования (особенно в схемах) вопросов дизайна и проектных решений. Например, кажется странным, что у Visio нет шаблона для чего-то вроде этого - у него есть шаблоны для большего физического макета и для большего количества схем логической / программной архитектуры.
Итак, прямо сейчас я использую базовую диаграмму Visio для представления каждого компонента, связи между ними с планами дополнить это именами хостов, портами, устойчивостью ли каждого канала связи и т. Д. И т. Д.
Все это похоже на то, что нужно было делать много раз прежде. Есть ли стандарты для этого?
Заявление об ограничении ответственности: я являюсь одним из основателей следующего программного обеспечения.
Пожалуйста, взгляните на устройство42 как возможное решение для этого. Мы позволяем пользователям определять компоненты приложения и добавлять зависимости от других компонентов. Диаграммы влияния и зависимости создаются автоматически. Сервисы, работающие на нескольких серверах, могут быть визуально представлены с помощью кластерных устройств (и мы также работаем над добавлением сетевых путей к этому).