High level IT Design

Главное, о чем бы мне следовало написать в блоге об архитектуре информационных систем это High level IT Design (HLD). Мы придумали этот документ в 2006 году. Придумали потому, что осознали необходимость наличия краткого высокоуровневого технического описания продукта, проекта или комплексного изменения информационных систем. Сначала это был документ в вордовом формате. Несколько лет назад мы развернули MediaWiki и стали разрабатывать HLD в виде web-страниц, но сути это не меняет.

Что бы понять, что же такое HLD, надо посмотреть, как устроены процессы развития в современной организации. С одной стороны, у вас есть некоторое количество проектов, программ и инициатив, влияющих на корпоративный ИТ ландшафт. С другой стороны, сам этот ландшафт состоит из большого количества довольно изолированных информационных систем. Процессы развития систем, что не удивительно, привязаны к самим этим системам. Т.е. у каждой системы есть свои внутренние или внешние разработчики, которые вносят в неё изменения, исправляют дефекты, поддерживают документацию и т.д. Потому и ИТ-услуги обычно привязаны к конкретным системам. Однако предоставляемые компанией услуги поддерживаются совокупностью нескольких информационных систем и потому требования обычно пишутся не на какую-то конкретную информационную систему, а на продукт в целом. Собственно, задача HLD и заключается в том, чтоб провести декомпозицию таких требований на некоторое число информационных систем.

Задача эта, на самом деле, достаточно нетривиальная, т.к. большинство требований не может быть реализовано одним приложением, а требует согласованной работы нескольких систем. (Кстати, именно поэтому интеграция приложений является основным инструментом корпоративной ИТ архитектуры). Обычно HLD имеет следующий формат:

Сначала идет большая картинка, включающая задействованные в проекте информационные системы и взаимодействия между ними. Большинство бизнес-пользователей считает, что этой картинкой HLD и исчерпывается.

Для более погруженных в тему экспертов во втором разделе HLD приводятся сценарии взаимодействия между приложениями. Для их описания мы используем use-case-ы в стиле Алистера Коберна. Эти сценарии не документируют внутреннее поведение систем, а ограничиваются описанием взаимодействия: абонент отправляет SMS-сообщение, приложение по протоколу SMPP получает сообщение с SMS центра и вызывает по протоколу HTTP метод подключения услуги в системе X… Не смотря на свою лаконичность такое описание может занять больше страницы, а в одном сценарии могут оказаться задействованными с десяток систем.

Но все это нужно для того, чтоб в HLD появился следующий раздел, называемый «Влияние на ИТ системы». Влияние на ИТ системы – это таблица, описывающая какие из систем потребуют доработки или настройки для реализации проекта. Это любимый раздел проектного менеджера, по сути – готовая структура работ или чек-лист, рассказывающий к кому надо бежать и чего надо хотеть, чтоб проект запустился.

Следующий небольшой, но не менее важный раздел – влияние на ИТ-инфраструктуру. Это тоже таблица, полученная в результате анализа сценариев и нефункциональных требований, описывающая для какой системы и сколько оборудования надо приобрести, чтоб поддержать требуемую нагрузку. Один пользовательский запрос может породить десятки взаимодействий между системами и без проработанных сценариев взаимодействия этого не понять.

В принципе в HLD разделов может быть еще очень много. Каждое функциональное подразделение может прийти к нам и сказать: мы хотим включить в ваш документ раздел «Влияние на [нужное вписать]» и архитекторы пойдут им на встречу. Главное правило – каждый эксперт отвечает за свой раздел и не лезет с «добрыми советами» к другим соразработчикам HLD, требуя от них отразить в документе что-либо.

Это если говорить о HLD вкратце. На самом деле, за семь лет мы написали несколько сотен HLD, поделились этой техникой с другими операторами связи и просто хорошими компаниями. И каждый новый High Level Design привносит некоторую свою толику понимания того, что же должен делать корпоративный ИТ архитектор.

High level IT Design: 7 комментариев

Добавить комментарий

Ваш адрес email не будет опубликован. Обязательные поля помечены *