Объясняем матрицу Захмана

Матрица Захмана, пожалуй, является наиболее ранним и наиболее показательным примером того, когда большая и сложная картинка скрывает суть вещей, которые она, по идее, должна пояснять. Помню своё первое знакомство с этим творением человеческой мысли. Если что-то и привлекает внимание при беглом взгляде на эту картинку, то это карта США в третьем верхнем квадрате, которая в более поздних версиях уступит вое место карте мира. Оторвав взгляд от тридцати разноцветных картинок, кое-где повторяющихся, можно заставить себя прочитать название столбцов и строк, приведенные, по традиции, очень мелким шрифтом. Если названия столбцов, содержащие слова «что», «где», «когда», еще пробуждают какие-то ассоциации, то названия строк: контекстуальный, концептуальный, логический, физический и уж совсем непонятно какой ассоциируются, разве что, с некоторыми уровнями абстракции. Думаю, на этом большинство зрителей этой картинки решают, что всё понятно и какого-либо более глубоко разбирательства просто не предпринимают. Но сегодня я хочу немного злоупотребить вашим вниманием и поговорить о матрице Захмана чуть подробнее. Continue reading «Объясняем матрицу Захмана»

Реклама

Микросервисная архитектура в корпоративном ИТ-ландшафте

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

Но особенно удручает корпоративных пользователей низкий уровень доступности бизнес-приложений. Плановые работы, не дающие возможность воспользоваться системой, или непредвиденные сбои случаются именно в тот момент, когда срочно необходимо выполнить важное и срочное дело: сформировать сложный заказ, оформить долгожданный договор, решить проблему крупного клиента.  ИТ-отделы организаций стараются изменить ситуацию: внедряют новые приложения, сокращают сроки доработки существующих систем, постоянно повышают уровень их доступности на очередную долю процента. Но кажется, что даже сами ИТ-отделы уже не очень верят в позитивный результат этой многолетней борьбы. Continue reading «Микросервисная архитектура в корпоративном ИТ-ландшафте»

Микросервисы в контексте корпоративной архитектуры

Обычно, чтоб убедить кого-нибудь в том, что микросервисная архитектура — это хорошо, её сравнивают с монолитом. Даже картинку специальную рисуют (см. ниже): с левой стороны база данных, сервер приложений и пользовательский интерфейс – это монолит(подразумеваем, что монолит — это плохо), а с правой стороны паутина фигурок и стрелочек между ними (типа, вот это хорошо). Не знают, убедит ли такая картинка случайного собеседника, но архитектор, будучи до конца честен сам с собой, должен сказать, что хорошо – это то что слева. И есть достаточное количество экспертов, которые критически восприняли идеи микросервисной архитектуры и постарались обратить наше внимание не только на достоинства, но и на недостатки такого подхода. Continue reading «Микросервисы в контексте корпоративной архитектуры»

Микросервисная архитектура и DevOps

В сентябре 2017-го вышла книжка Нила Форда, Ребекки Персонс и Патрика Куа Building Evolutionary Architectures. Я воспользовался ознакомительной подпиской  Safari Books чтоб полистать эту книжку и постараться разобраться с девятой, наиболее непонятной, характеристикой микросервисной архитектуры по Фаулеру и Льюису (см. Microservices a definition of this new architectural term). О том, чем занимается эта группа я писал уже в апреле прошлого года в заметке [r]evolutionary architecture, но на тот момент ознакомиться с позицией авторов можно было только видеозаписям пары выступлений, презентациям и подкастам. И вот теперь вышла книжка с системным изложением идей достаточно революционных, с одной стороны, и крайней прагматичных с другой. Но давайте обо всем по порядку. Continue reading «Микросервисная архитектура и DevOps»

Тренинг: микросервисная архитектура

UPD 6/12/2017 Ссылка на группу в telegram: https://t.me/msa_training 

Микросервисная архитектура – это новый подход к созданию, развитию и эксплуатации распределенных информационных систем, состоящих из множества независимых компонент.

Казалось бы, микросервисы это то, что решительно противоречит правилам «хорошей архитектуры». Мы привыкли, что архитектура предписывает стандартизировать программные средства, консолидировать хранилища данных, унифицировать функционал, поощряет повторное использование и сокращение технического долга за счет регулярного рефакторинга. Но каждый из микросервисов обладает своим жизненным циклом, включает собственный стек технологий, реализует самостоятельную модель данных, разрабатывается и развертывается независимо от других частей системы. Тем не менее преимущества построенных в микросервисной архитектуре систем в масштабировании, отказоустойчивости, доступности, безопасности и скорости внесения изменений, сокращении времени разработки, возможностях по контролю сложности ИТ-ландшафта, заставляют пересмотреть некоторые архитектурные принципы. Continue reading «Тренинг: микросервисная архитектура»

Микросервисная архитектура для менеджеров

Сделал для FutureBanking короткий материал в формате «микросервисная архитектура для менеджеров»:

Сейчас новые функции принято создавать, переписывая существующие приложения, что несет определенные риски и накладывает ряд ограничений. Нам нужны разработчики, обладающие определенными компетенциями и знакомые с кодом существующего приложения. Доработанное приложение нуждается в тестировании, желательно полном регрессионном, а также нагрузочном и интеграционном. При изменении структуры данных потребуется разработка процедур их миграции, а часто и тестирования такой миграции. Всё это влечет за собой затраты ресурсов и времени и несет нам соответствующие риски, главный из которых поломать что-либо при развертывании новой версии приложения в «боевой» среде.
В случае микросервисной архитектуры мы стремимся наращивать функциональность посредством создания новых модулей, не переписывая существующие приложения. Подробнее, читайте на FutureBanking.ru

Карты вашего кода

Саймон Браун сделал небольшую страницу: Модель С4 архитектуры программного обеспечения. Модель C4 была создана чтоб помочь командам разработчиков программного обеспечения описывать и обсуждать архитектуру решений. Её можно использовать как во время начальных сессий проектирования, так и при ретроспективе существующих решений. Это способ создания карт вашего кода на разных уровнях детализации.

Модель C4 рассматривает статические структуры программной системы и включает четыре типа основных диаграмм: системный контекст (пользователи и внешние приложения), контейнеры (основные подсистемы), компоненты и классы. Об использовании дополнительных диаграмм, моделировании микросервисов, отношении C4 model с другими нотациями моделирования и инструментах создания диаграмм см. оригинальную страницу C4model