Если самым популярным вопросом о работе архитекторов является «Кто такие архитекторы и чем они занимаются?», то второй по популярности причиной провала архитектурной практики после «Не сошлись в видении с руководством» является отсутствие нормального инструмента. Под этим инструментом подразумеваются Enterprise Architecture Tool, которых на рынке представлено огромное множество, примерно такое же, как и различных framework и методологий архитектуры.
Кстати говоря о framework»ах, если выбор такого стоит остро и кроме TOGAF ничего не попадается, рекомендую книгу «The Practice of Enterprise Architecture» Святослава Котусева, которую я упоминал в публикации на тему навыков архитекторов.
Я уже много лет пользуюсь различными инструментами и какое‑то время даже занимался продажей одного из таких инструментов (на мой взгляд очень удачного, за парой исключений) и в этой публикации решил поделиться ранее накопленным опытом.
Первое и золотое правило в выборе инструмента, и EA Tool в частности:
Fools with tools are still fools.
Без понимания своей работы, потребностей и её целей, никакие инструменты вам не помогут. А даже скорее навредят, так как покупка любого инструмента приведёт к дополнительным затратам, а значит и увеличит градус ожиданий от работы архитектора. И если вместо существенного (а по-другому как правило такие инструменты не продаются) увеличения ценности от деятельности архитектора, руководство получит плохо автоматизированную бюрократию, которая только замедлила процесс развития компании — последствия могут быть самые печальные.
Инструмент не волшебная палочка, которая одним взмахом решит все ваши проблемы в скорости разработки, повышения производительности, созданию единой точки правды и так далее.
Любой инструмент, который мы используем, будь то хранилище исходных кодов, сборщик мусора, конвейер сборки исходного кода и так далее, — это автоматизация рутины. За счёт которой мы можем освобождать время команды на более полезную работу.
Второй принцип выбора любого инструмента — если он не освобождает время, а создаёт дополнительные трудности, это плохой инструмент.
Когда вам продают EA Tool, то, как правило, называют его инструментом управления архитектурой предприятия. Звучит круто, и наличие слова «управление» сразу привлекает внимание менеджмента, ключевой компетенцией которого является управление. Но инструмент сам по себе ничем не управляет, тем более предприятием, в котором архитекторы выполняют поддерживающую функцию, безусловно важную, но всё-таки деньги это не приносит. А основа любой коммерческой организации (для которых эти инструменты и предлагаются) — это зарабатывание денег. Более честно будет называть такие продукты архитектурным репозиторием. То есть местом хранения объектов и артефактов, которые архитекторы используют в работе.
1. Inventory
Пожалуй, самой важной функцией EA Tool является возможность паспортизировать важнейшие элементы архитектуры, которые подвергаются изменениям в результате работы с ними архитектора.
Какие элементы нужно паспортизировать, сильно зависит от каждого конкретного случая. От предприятия к предприятию зоны ответственности архитекторов могут сильно разниться. Например, если инфраструктура предоставляется как сервис, вряд ли вы хотите знать имя каждой машины, её кластер или IP доступа в админку. А вот если вы используете собственную инфраструктуру или её арендуете, вопросы учёта инфраструктуры будут для вас не праздными.
Потому при выборе EA Tool в первую очередь стоит задуматься о метамодели:
Какие объекты вы хотите учитывать?
Что вы хотите о них знать (состав атрибутов)?
Как они связаны с другими объектами?
Как часто требуется менять метамодель?
Какие способы наполнения репозитория вам доступы? (ручные и/или автоматические)
Вот небольшой перечень вопросов, которые стоит задавать себе в начале пути выбора EA Tool.
Из этих требований ключевым должно стать — гибкость настройки метамодели.
Пример метамодели, которую я с командой строил для своей архитектурной практики:
Многие инструменты поставляются с жёстко настроенной метамоделью (например, Archimate) или её изменение требует постоянных работ на стороне поставщика, что означает постоянные расходы.
Жёсткость не равно плохо, но выбирая готовую метамодель, нужно быть готовым подстроить и архитектурную практику под заложенную логику, что, по моему опыту, не всегда возможно, и такой выбор приводит к появлению различных bypass, что в свою очередь противоречит логике выбора инструмента с защитой метамоделью.
2. Методология
Следующий важный аспект выбора EA Tool — это методология, принятая в каждой конкретной организации, ведь методология будет определять и правила обновления информации, устанавливать сроки и предъявлять требования к финальной документации.
Архитекторы не просто работают с репозиторием объектов отдельно от всей организации. Репозиторий служит местом хранения объектов, которые извлекаются архитектором для явлению их миру в том или ином виде.
Наиболее типовое представление — это диаграмма решения, которая демонстрирует связанные между собой объекты архитектурного учёта и отражает суть предлагаемых изменений, в редких случаях демонстрирует существующую проблему.
Но иногда требуются выгрузки списка объектов с их атрибутами или даже построение отдельных представлений прямо в репозитории.
Например, построение деревовидных иерархий или узловых графов, которые отражают декомпозицию сложной системы на составные части или показывают протекание информации по ИТ-ландшафту.
В вопросах методологии следует задуматься:
Какие артефакты (документы) мы используем?
Создание каких артефактов мы автоматизируем?
Какие архитектурные представления нам требуются?
Нужен ли обратный импорт из артефактов в репозиторий?
Насколько сложно адаптировать инструмент под наши артефакты?
Эти вопросы помогут вам определить, насколько выбранный инструмент соответствует вашим методологическим требованиям и сможет ли он эффективно поддерживать вашу архитектурную практику.
Неправильный выбор инструмента может оказать вам медвежью услугу, когда порождаемые артефакты с помощью EA Tool будут дорабатываться вручную, а затем утилизироваться за ненадобностью. За такой инструмент спасибо вам точно не скажут, да и сами вы не будете рады такой автоматизации.
Наиболее яркими примерами такой автоматизации являются госорганы, когда заполнение заявки происходит сначала в электронном виде, предъявление в бумажном, а исправление ошибок требуется делать в электронном виде, на основании того, что вам обозначат на бумажном носителе.
3. Процесс
В любой организации человеческой деятельности процесс существует сам по себе, вне зависимости от того, описали его аналитики или нет. Этот факт всегда нужно учитывать в работе, особенно когда речь идёт об автоматизации деятельности, для которой, как я и писал выше,
При выборе EA Tool нужно очень глубоко задуматься, как работа в новом инструменте впишется в ваш текущий процесс проектирования.
Какие шаги из этого процесса вы автоматизируете? какие оставите за бортом? а какие будете внедрять вместе с инструментом?
Например, в моей практике был случай, что вместе с внедрением инструмента все ИТ-активы получили уникальный ID из репозитория. Все запросы на согласование бюджета на доработки должны были содержать ID актива. Это позволяло членам бюджетного комитета обратиться к репозиторию и посмотреть, что это за актив. Если актив отсутствовал в репозитории или информация о нём была недостаточна — запрос на доработку отклонялся.
Крайне наивно и опасно полагать, что с внедрением EA Tool вы сможете выстроить процесс проектирования, которого ранее не существовало. С большой долей вероятности в великий рандом принятия решения вы внесёте пару таких же случайных шагов — как внести информацию в репозиторий, получить информацию из репозитория.
С процессной точки зрения стоит задуматься над вопросами:
Как выглядит текущий процесс проектирования?
Какие есть проблемы, требующие автоматизации?
Как инструмент поможет в решению проблем?
Как изменится процесс с внедрением инструмента?
Кто помимо архитекторов будет использовать инструмент?
Если после ответа на эти вопросы появляются новые, а ясности не добавляется — не стоит подходить к вопросу выбора инструмента. Описание нужно сделать хотя бы на уровне крупных блоков или списка типовых проблем в виде use cases.
Одной из задач, которую нам недавно довелось решать, — это огромные трудозатраты на поиск информации об инфраструктуре, на которой развёрнута та или иная система. Каждый раз это приходилось делать вручную, с помощью выгрузок с нескольких сред виртуализации, а потом сводить воедино через головы нескольких специалистов.
В процессе создания единого реестра инфраструктуры и попытки связать это с системами автоматически обнаружился целый ряд проблем в смежных с архитектурой процессах. А для решения задачи инвентаризации потребовалось даже изменение внутреннего регламента службы эксплуатации.
***
Публикация охватила только основные аспекты выбора инструмента, и всё равно получилась достаточно объёмной. Выбор подходящего инструмента может потянуть на полноценную главу книги или диссертации, но основные моменты я постарался изложить тут.
Комментарии (7)
Marcus_Agrippa Автор
30.10.2024 13:50Выбрать то, что подходит под требования. В том числе бюджет, требования ИБ, импортозамещения и так далее. У всех организаций свои требования. У меня есть сравнения разных инструментов, но не хочу их показывать. Потому как это вызывает холивар - почему их так много, не возможно выбрать? или так мало, где вот те или те. А у вас критерии не те, что нам нужны и так по-кругу.
Если букв много и нужна ссылка, вам не нужен тул. Пользуйтесь бесплатными и доступными решениями.
itGuevara
30.10.2024 13:50Расскажите про примеры Enterprise Architecture LD-Tool (Linked Data), т.е. semantic EA. Или хотя бы что-то из semantic CMDB, типа RDF-based IT Configuration Management Database
Marcus_Agrippa Автор
30.10.2024 13:50Честно говоря готовых, рабочих продуктов, которые бы работали не синтетических данных не видел. На демо все умеют показать продукт с лучшей стороны, сам часто тоже готовил такие демо. На практике делали такие кейсы сами и в итоге уперлись в ограничения, чтобы чтобы работала магия с "автодискавери" 2.0, модель интерпретации превосходит стоимостью и сам интрумент и вообще команду архитектуры.
Пара последних задач:Привязывать виртуальные машины к ИТ системам, которые их используют. Скажем система называется Обработчик документов, она работает на каких-то ВМ, как получив список ВМ из среды виртуализации, автоматически их связать с этой системой. В итоге анализировать семантику названия машины типа doc-hand-worker-prod-01. Если машины все именуются одинаково, значит для них заданы правила и когда люди машины выделяют, они эту семантику соблюдают. Если они от неё отойдут и назовут типа main-db-03, сопоставить автоматом не получится. В итоге просто договорились, о что при выделение ресурса, команда будет делать связку в репозитории вручную.
Формировать реестр технологиий, которые используют решения через анализ пакетов. Заметили, что документы на системы порой расходятся с тем, что реально развернуто. От версий ПО, до прям принципиально других технологий. Т.е. стэк обновили, а документы нет. В итоге собрали через анализ все технологии по документам и хотели провести анализ по данным сканера. Даже научились парсить логи сканера, но дальше чтобы вытаскивать конкретные технологии нужна была табличка маппинга - тех же пакетов кафки, на технологию Кафка, это уже большая работа по сопоставлению одного с другим. А если добавить версии, то матрица становится просто гигантской. И её надо поддерживать вручную, через чью-то голову. У нас такой одной головы не было, было несколько и головы это дорогие, переложить на дешевый ресурс не получилось, в виду отсутствия знаний. В итоге поняли, что сама семантическая модель потребует колоссальных усилий на создание и поддержание и от идеи отказались. Перешли в режим выборочного аудита.
itGuevara
30.10.2024 13:50В итоге поняли, что сама семантическая модель потребует колоссальных усилий на создание и поддержание и от идеи отказались.
Что представляла собой "сама семантическая модель"?
Marcus_Agrippa Автор
30.10.2024 13:50не знаю насколько это поможет в ваших поисках. У нас была конкретная задача - найти все opensource/пропроитеарные решения которые были развернуты на боевых машинах и составить из них реестр.
У нас был условный верхний класс решений:
Брокеры
Операционные системы
Реляционные СУБД
Балансировщики и т.д.
Из документов мы уже знали заявляемый список продуктов, которые должны быть на машинах - kafka, pulsar, Ubuntu и так далее.
Потому задача свелась к тому, чтобы проверить на соответствие заявленного, установленному. На верхнем уровне были конкретные продукты, например kafka и была попытка вытащить название пакетов, которые бы явно указывали на kafka. Но и модель выглядела как соотнесение kafka - названиям пакетов, которые бы явно указывали на эту технологию-продукт. Но дальше модель начала усложняться - как вытащить версию? А с продуктами типа Postgres еще и проблема разделения где opensource, а где лицензионный продукт типа PG Pro. В итоге начинала вырисовываться сложная матрица, которую надо было наполнить и эту задачу мы поставили на паузу, т.к. было чем заняться по-мимо этого
itGuevara
30.10.2024 13:50Расскажите про примеры Enterprise Architecture LD-Tool (Linked Data), т.е. semantic EA. Или хотя бы что-то из semantic CMDB, типа RDF-based IT Configuration Management Database
Полагаю, что мы говорим о разных вещах.
Я про такой "Семантический EA Tool для ИТ-Архитектора":
https://www.topquadrant.com/enterprise-semantic-layer/
и более узкие tools, например, RDF-based CMDB
atues
Так что выбрать-то? Букв много, но где обзор, сравнение, рекомендации или хотя бы толковые ссылки?