Архитектура ИТ-решений
16K subscribers
332 photos
2 videos
34 files
1.21K links
Разговоры об архитектуре корпоративных информационных систем (архитектура предприятия, архитектура ИТ-решений).

Регистрация в перечне РКН: https://knd.gov.ru/license?id=6735f4cd97de7d1d1953c457&registryType=bloggersPermission
Download Telegram
🎄 --- Дорогие друзья!
Завершается год 2020. Мы всё ближе к Новому, 2021 году. 2021, как многие уже наверняка заметили, хоть и не простое число, но является произведением всего двух простых сомножителей 43 и 47. А значит, в Новом году нам есть на что надеяться

Поздравляю всех подписчиков с наступающим Новым годом! Желаю успеха, здоровья и отличного настроения вам и вашим семьям. Пусть самые сокровенные желания непременно сбудутся!

С Новым 2021 годом! 🍾🎄🎉
👍1
Термин Monolith, частенько используемый в качестве альтернативы микросервисов, выбран крайне неудачно. Его давно следовало бы заменить на термин Bottleneck. Причем речь идет как о разработке, так и об эксплуатации.

Представьте себе заголовки статей: выбираем между bottleneck-ом и микросервисами или почему мы решили вернуться назад к архитектуре bottleneck. По-моему, отлично звучит
Хочу напомнить, что кроме группы для обсуждения этого канала, у нас есть группа для обсуждения всех прочих вопросов, касающихся ИТ-архитектуры https://t.iss.one/itarchitect В ней намного больше участников и разнообразней представлены разные точки зрения
Архитектура ИТ-решений
Термин Monolith, частенько используемый в качестве альтернативы микросервисов, выбран крайне неудачно. Его давно следовало бы заменить на термин Bottleneck. Причем речь идет как о разработке, так и об эксплуатации. Представьте себе заголовки статей: выбираем…
В живом обсуждении этого сообщения, на мой взгляд, постоянно ускользала одна простая вещь. Сервис – это просто процесс; фоновый процесс, запущенный под управлением операционной системы и обрабатывающий передаваемые в него через REST API запросы. (Ну, или процесс, читающие запросы из очереди сообщений и обрабатывающий их). Даже в самом простом приложении нам потребуются десятки коллекций веб-ресурсов: пользователи, справочники, операции совершаемые и уже завершенные, задействованные в этих операциях вещи и многое другое. У каждого их этих ресурсов свой жизненный цикл, свои представления для разного типа запросов, более или менее сложный набор операций и уж наверняка разная скорость будущих изменений. Будь это статические веб-странички, то каждый элемент любой из коллекций лежал бы в отдельном файле. Четверть века назад CGI (common gateway interface) предусматривал свой исполняемый модуль для каждой коллекции ресурсов, ну да ладно

Сегодня же нас не особо коробит обрабатывать все запросы, не важно читаем ли мы данные GET-ом, создаем ресурсы POST-ом или заменяем PUT-ом, причем запросы для всех используемых приложением веб-ресурсов из десятков совершенно разных коллекций одним исполняемым модулем. Это и правда такая архитектура? Даже архитектурный стиль с гордым именем «монолит» :-) Да нет здесь никакой архитектуры и это обыкновенный bottleneck. Подарок, так сказать, службе эксплуатации и будущим поколениям разработчиков из нашего непростого настоящего
Специально для тех, кто считает BPMN более-менее свежим способом моделирования, напомню: в этом году мы будем отмечать столетие появления процессных диаграмм

В 1921 году Фрэнк и Лилиан Гилбрет выступили с презентацией на ежегодном собрании Американского общества инженеров-механиков. Она была озаглавлена «Диаграммы процессов: первые шаги в поисках наилучшего способа выполнения работы» Обратите внимание на условные обозначения на 8,9 и 11 страницах и разговоры про улучшение процессов https://thegilbreths.com/resources/Gilbreth-Process-Charts-1921.pdf
Что-то очень знакомое, не так ли?
К итогам прошлого года: многопользовательский редактор простых архитектурных эскизов, который я еще не успел опробовать в качестве инструментов на дистанционным обучении ИТ-архитектуре https://blog.excalidraw.com/rethinking-virtual-whiteboard/

Плюс появившаяся в конце декабря библиотечка для архитекторов https://libraries.excalidraw.com/
Forwarded from Dmytro Golodiuk
https://kroki.io с версии 4.0 поддерживает Excalidraw. Я писал обзор этой утилитки. Кому интересно, пост на моем сайте https://www.golodiuk.com/news/it-architecture-diagrams-from-text/
Сегодня немного про стратегию. Стандарт O-AA возвращает нас к понимаю стратегии, сформулированному Портером.
Michael Porter recommends distinguishing operational effectiveness from strategy. Strategy is about developing sustainable differentiation based upon strategic positioning.
“Strategic positioning means performing different activities from rivals' or performing similar activities in different ways.” — Porter 1996
https://pubs.opengroup.org/architecture/o-aa-standard/#strategy

Для последующего выстраивания архитектуры данный подход крайне удобен. Если мы изначально договорились об отличиях нашей организации от конкурентов, то ответ на вопрос: как именно это использовать, не представляет труда.

Проблема в том, что организации формулируют свои стратегии прямо противоположным образом – методом copy-paste из разных авторитетных источников и стратегий своих конкурентов. Поэтому, определение дифференциаторов часто выпадает на долю корпоративных архитекторов
Всё более вероятным мне представляется развитие событий, при котором нотации моделирования будут вытеснены палитрами элементов архитектурного представления (view) и отношений между ними. Это уже сейчас происходит у облачных провайдеров, выпускающих наборы иконок и руководства по архитектурным диаграммам (см., например, https://cloud.google.com/icons). Их легко расширять, адаптировать под конкретные задачи, версионировать и т.д. Если в подобных наборах чего и не хватает, так это наличия у каждой иконки гиперссылки, на страницу с описанием визуализируемого понятия

Сложнее ситуация с описанием отношений. Вообще говоря, N-арные отношения описываются фреймами, а визуализируются в виде canvas (вот здесь https://masterfacilitator.com/canvas-collection/ полсотни примеров). Но пока они слишком громоздкие, а потому никто не рискует включать несколько фреймов в одну диаграмму. Но рано или поздно это произойдет
Поделюсь кратким обзором https://t.iss.one/theworldisnoteasy/1208 вот этой статьи https://medium.com/@EthanZ/beyond-facebook-logic-help-us-map-alternative-social-media-889b874b7aee про альтернативны современным социальным сетям
The Open Group опубликовал new Snapshot IT4IT Reference Architecture, Version 3.0: Managing Digital Excerpt opengroup.org/library/s210
Программа Практики Архитектуры Предприятия

Есть у меня задумка превратить учебный курс https://itexpert.ru/eap-online/ в программу из нескольких модулей. Напомню, что в сентябре прошлого года The Open Group выпустила новый архитектурный стандарт Open Agile Architecture (O-AA), расширив тем самым практики и задачи архитектора предприятия.

Что из этого будет больше востребовано, а что меньше, пока не очень понятно. Набор коротких курсов это быстро покажет. Одним словом, если кто-то хочет присоединиться ко мне в качестве преподавателя или готов обозначить потребность в той или иной теме практик архитектуры предприятия, то буду рад вашим комментариям к этому сообщению
Как-то много вокруг поднялось разговоров о двадцатилетии agile-манифеста, появившегося 11-13 февраля 2001 года. Ну, помните: Люди и взаимодействие важнее процессов и инструментов…

Кстати, будь я культурологом, то услышал бы в этой фразе переход от эпохи модерна – процессы и инструменты, к типичному постмодерну (почитайте в википедии про хаос концепций, отрицание глобального дискурса и сближение скорее с искусством, чем с наукой)

Интересно то, что за двадцать лет существования манифеста, существенных изменений в рабочей культуре так и не произошло (Она прочно застряла в модерне). Ну и все мы, ежедневно приходя на работу или учебу, покидаем наш текущий социально-культурный контекст и переносимся на сотню другую лет назад. В мир единственно верных решений, абсолютных истин, априорных установок и четких иерархий. А вечером, возвращаемся в современность

Так что корпоративная культура не только съедает на завтрак стратегию, что подмечено было еще Питером Друкером, но и закусывает информационными технологиями. Что уж тут праздновать?
Архитектура ИТ-решений
Как-то много вокруг поднялось разговоров о двадцатилетии agile-манифеста, появившегося 11-13 февраля 2001 года. Ну, помните: Люди и взаимодействие важнее процессов и инструментов… Кстати, будь я культурологом, то услышал бы в этой фразе переход от эпохи…
А вот к ИТ-архитекторам это относится в минимальной степени. Эти парни хорошо устроились, буквально растворяясь в своей работе и не чувствуя ни малейшего дискомфорта. Типичные агенты постмодерна: система одна, а представлений (views) у неё несколько; вместо наилучшего решения - анализ компромиссов. А эволюционная архитектура - это вообще шедевр псевдологики.

Следите за руками:
"Architecture represents the significant design decisions that shape a system, where significant is measured by cost of change." -- Grady Booch
Но потом Кент Бек предлагает нам обратимость для обуздания сложности https://www.facebook.com/notes/kent-beck/taming-complexity-with-reversibility/1000330413333156/
А Фаулер говорит: a good architect reduces architecture
https://twitter.com/martinfowler/status/1285581525380202496
В общем в идеальной архитектуре вообще нет каких-либо significant decisions. А значит и самой её тоже нет
Похоже, что разговоры про культуру заходят у нас не очень. Потому сегодня вернемся к технологиям. Поделюсь ссылкой на рассуждения архитектора из MuleSoft Антонио Гарроте, об описании асинхронных взаимодействий https://engineering.salesforce.com/asyncapi-and-openapi-an-api-modeling-approach-db9873695910

Для REST есть спецификация Open API. А для обмена сообщениями AsyncAPI как-бы есть, но мало кто ей пользуется.

На самом деле, я думаю, что проблема глубже и стандартизировать надо не обмен сообщениями, а обработку потоков сообщений. Но, тем не менее
Evolutionary Architecture - аn architecture that supports guided, incremental change across multiple dimensions – не самое понятно определение, сформулированное Нилом Фордом. Intentional Architecture – еще один новый термин из Open Agile Architecture и так далее и тому подобное

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

Кто-то уже шагнул в такое пакетное изменение, но для многих компаний главными словами остаются проекты и системы. Что делает в этом случае? Нужно ли здесь изменение архитектурных подходов и возможно ли оно. Думаю, что да. Но выглядит всё непросто. Уж точно надо все такие вещи чётко предварительно проговаривать
В разговорах о том, что роль ИТ-архитектора всё больше смещается в область внутреннего консультанта по технологиям (и не только по технологиям) мы часто упускаем один момент

Поделюсь ссылкой на сообщение в канале ИТ-АС (ИТ-Архитектура, ИТ-Стратегия, ИТ-менеджмент в корпорациях), архитектура, стратегия, менеджмент (это не реклама :) и вставлю в рекомендацию как разговаривать с ночальнегами свои пять копеек

Мы все ищем универсальные рецепты для разных людей и ситуаций. Но лучше, что можно сделать - подходить к каждому человеку индивидуально. Выстроить у себя в голове, пусть поначалу не очень правильную гипотезу о том, какой он. Как этому конкретному руководителю удобно обсуждать решения, вникает ли он быстро или медленно, лезет в детали или скользит по верхам, принимает решения сразу или уходит подумать. Спросить у коллег, что они знают о нашем собеседнике, какие картинки тот воспринимает, как выстраивает разговор. Узнать результаты других обсуждений. И идти разговаривать с конкретным человеком.

Я долго не мог понять, насколько люди ценят такое вот индивидуальное отношение.
С ситуациями похожая история. Их просто намного больше, чем людей. Но придать ситуации уникальность – мега-инструмент в рассмотрении архитектуры решений
Какой шаблон описания микросервисов выбрать?

Несмотря на то, что microservice canvas придумано уже не мало, все они похожи довольно похожи. По крайнем мере, в каждом шаблоне взаимодействие сервиса с внешним миром описывается по схеме Queries-Commands-Events. Так какой выбрать?

Наиболее простой вариант взять готовый файл у LaunchAny В принципе, он повторяет шаблон Matt McLarty просто переставив ячейки. Если взаимодействий у сервиса чуть больше, то лучше переключиться на шаблон от Криса Ричардсона в нем строчки вставлять удобней. Ну или задуматься об инструментальной поддержке, как в этой штуке MDC Editor, визуализирующей описание сервиса на лету