Software craftsmanship фиксит проблемы AgilePavel Veinik
На 6м митапе мы подойдем к проблеме говна со стороны команды и процессов, а не со стороны технологий и архитектуры, и рассмотрим поближе, чем и как нам могут помочь принципы Software Craftsmanship. Мы увидим, что суть всех процессов - это коммуникации, а суть коммуникации - это настроенные каналы передачи информации. Мы рассмотрим, как настраивать эти каналы передачи информации, и увидим, что процессы - это отношения между людьми, прописанные на бумаге.
На десятом митапе Software Craftsmanship мы рассмотрим такую сложную тему, как распределенные транзакции. Мы увидим, почему возникает необходимость в распределенных транзакциях и какие бывают протоколы для реализации распределенных транзакций.
Микросервисная архитектура часто влечет за собой распределенные транзакции, и поэтому мы поговорим о том, как можно делать отдельные микросервисы максимально независимыми между собой.
Распределенные транзакции сложны эксплуатации, поэтому мы рассмотрим также и подходы, которые позволяют минимизировать или обойти необходимость в них, в то же время сохраняя необходимые бизнесу свойства приложения.
Software craftsmanship 16: online building ml pipelinePavel Veinik
16й митап Software Craftsmanship пройдет онлайн и будет посвящен построению ML pipeline с точки зрения инженера-разработчика.
В последние год-два все чаще появляются вакансии, в которых инженеру необходимо выстроить ML pipeline. Такие вакансии получают название ML Ops.
В ML pipeline входят такие вещи, как построение моделей, хранение, сравнение качества моделей, поддержание версионность моделей, работа с feature storage, и само собой разумеется, применение модели в prod.
Модель обычно оформляется как микросервис, который можно просто разворачивать, масштабировать и поддерживать.
При этом, как правило, другими членами команды оказываются data scientists или ML engineers, которые сильны в своих областях, но не могут сделать простой масштабируемый REST API для своей модели. В рамках совместной работы с ними и приходится реализовывать ML pipeline.
На митапе мы коснемся того, для чего необходим ML pipeline, из каких шагов он состоит, и каким образом организована работа инженера в ML команде.
Software craftsmanship фиксит проблемы AgilePavel Veinik
На 6м митапе мы подойдем к проблеме говна со стороны команды и процессов, а не со стороны технологий и архитектуры, и рассмотрим поближе, чем и как нам могут помочь принципы Software Craftsmanship. Мы увидим, что суть всех процессов - это коммуникации, а суть коммуникации - это настроенные каналы передачи информации. Мы рассмотрим, как настраивать эти каналы передачи информации, и увидим, что процессы - это отношения между людьми, прописанные на бумаге.
На десятом митапе Software Craftsmanship мы рассмотрим такую сложную тему, как распределенные транзакции. Мы увидим, почему возникает необходимость в распределенных транзакциях и какие бывают протоколы для реализации распределенных транзакций.
Микросервисная архитектура часто влечет за собой распределенные транзакции, и поэтому мы поговорим о том, как можно делать отдельные микросервисы максимально независимыми между собой.
Распределенные транзакции сложны эксплуатации, поэтому мы рассмотрим также и подходы, которые позволяют минимизировать или обойти необходимость в них, в то же время сохраняя необходимые бизнесу свойства приложения.
Software craftsmanship 16: online building ml pipelinePavel Veinik
16й митап Software Craftsmanship пройдет онлайн и будет посвящен построению ML pipeline с точки зрения инженера-разработчика.
В последние год-два все чаще появляются вакансии, в которых инженеру необходимо выстроить ML pipeline. Такие вакансии получают название ML Ops.
В ML pipeline входят такие вещи, как построение моделей, хранение, сравнение качества моделей, поддержание версионность моделей, работа с feature storage, и само собой разумеется, применение модели в prod.
Модель обычно оформляется как микросервис, который можно просто разворачивать, масштабировать и поддерживать.
При этом, как правило, другими членами команды оказываются data scientists или ML engineers, которые сильны в своих областях, но не могут сделать простой масштабируемый REST API для своей модели. В рамках совместной работы с ними и приходится реализовывать ML pipeline.
На митапе мы коснемся того, для чего необходим ML pipeline, из каких шагов он состоит, и каким образом организована работа инженера в ML команде.
SECON'2016 Евтухович Иван, Эксплуатация завтрашнего дня: от DevOps к NoOpsSECON
За последние годы у ИТ-сообщества накопился опыт использования систем управления конфигурацией и работой в организации по методологии DevOps. Но растущие вызовы показывают, что и этот подход имеет свои недостатки. Доклад расскажет о том, какие контейнеры бывают и почему они победят, что придет на смену облакам, и какие практики стоит начать внедрять сегодня, чтобы завтра не остаться без работы.
DevOps Fest 2020. Максим Безуглый. DevOps - как архитектура в процессе. Две к...DevOps_Fest
Сотни вопросов о структуре и процессах, которые ставят и решают архитекторы и практики DevOps на примере решений в своем проекте.
Взаимоопределяющие вопросы архитектуры, DevOps, бизнеса и разработки.
Взрыв сложности - представьте, что вместо простого gmail подобного почтового SPA вам нужно построить и развивать новый sendmail на сервере + thunderbird для клиентов (desktop, мобильную и веб версию) по SAAS multi tenant модели.
Реальный DevOps в энтерпрайзе / Александр Тараторин (Райффайзенбанк)Ontico
РИТ++ 2017, Web-scale IT Сonference
Зал Владивосток, 5 июня, 18:00
Тезисы:
http://webscaleconf.ru/2017/abstracts/2828.html
Что такое DevOps? Очередной модный термин? Методология? Набор инструментов? Культурные практики?
Для Райффайзенбанка DevOps - микс из всего перечисленного (смешать, но не взбалтывать!), применяемый чтобы:
- ускорить разработку и внедрение новых решений не в ущерб качеству;
- вовлечь админов в работу девелопмента;
- заинтересовать разработчиков жизнеспособностью их творений в реальной жизни.
...
Прошло время, когда DevOps не был еще модным, началось время карго-культов и безбашенных внедрений. В докладе я расскажу про основные ошибки перехода компании к DevOps из моей практики, покажу как не надо использовать инструменты и как не надо организовывать команды, а также многое другое.
«DevOps — это о передаче смысла» — Александр Титов, Express 42DevDay
Текущим определением DevOps является аббревиатура CAMS:
— культура;
— автоматизация;
— измерения;
— распространение знаний.
Для меня это недостаточно понятно, я дополнил эти пункты тем, что DevOps это впервую очередь о передаче смысла без искажений. Я расскажу, как эти мысли соотносятся с методиками прошлого (ITIL, etc), как, используя такой подход, создать набор правил для работы и почему автоматизация — это не всегда хорошо.
Мы посмотрим как инструменты автоматизации помогают передавать смысл изменений между окружениями на примере реальных компонентов и кукбуков и рассмотрим на практике почему bash скрипты более слабый инструмент, чем Opscode Chef.
Совместно разберемся к требованиям к системе мониторинга. Что в системах мониторинга вредит передаче смысла, а что, наоборот, помогает. Какую систему мониторинга выбрать для вашего проекта?
Важность честности и открытости в команде для передачи смысла. Честные публичные пост-мортемы — это не проявление слабости, а проявление уважения к своим пользователям. Как научится делиться информацией друг с другом и не скрывать важного.
Про качество и красоту кода говорят и пишут очень многие, хотя при этом довольно часто забывают, для чего существует это качество и эта красота.
Двадцать второй онлайн митап Software Craftsmanship будет посвящен Engineering Excellence. мы рассмотрим что такое Engineering Excellence, кому и для чего оно нужно на проекте, из каких частей состоит и как определить что нужно конкретному проекту.
На митапе мы рассмотрим взаимосвязь разработчиков, тестировщиков, девопсов, разберем метрики, практики и процессы необходимы для постоянного улучшения проекта.
Константин Бажин, ТОП 10 не могу или что нужно сделать, чтобы жить по AgileScrumTrek
"Наступать на грабли - это не про нас!" - думали мы, когда ушли в разработку программного обеспечения с головой. И вроде бы все умные и прекрасно понимают как нужно делать правильно. Но! В ситуации, когда количество работы превышает количество ресурсов, а договорные обязательства никто не отменял, в какой-то момент - ЧТО-ТО ПОШЛО НЕ ТАК.
В своем докладе я расскажу как это все произошло и какие выводы мы сделали. А также опишу конкретные шаги, которые предприняли, чтобы этого избежать в дальнейшем.
Дмитрий Грибов, Трава и грибы как средства управления разработкойScrumTrek
Управление разработкой в ЛитРес: Игровые грибы на службе управления проектами Холакратия, настоенная на травах Деревянный Agile Спринты длинною в час и ежедневный релиз Рыночная игра как альтернатива микроменеджменту KPI для разработчиков, основанный на реальных результатах (сдельная оплата программистам в штате) История о том, как команда из 27-и человек эффективно поддерживает и развивать сервис с миллиардной выручкой
Software craftsmanship meetup 21: CQRS что такое и для чего Pavel Veinik
Мы рассмотрим что такое CQRS, какие проблемы он может решить и какие проблемы создать, а также сопутствующие подходы и приемы, такие как event sourcing, предагрегация данных для чтения, использование in memory баз данных. Также разберем ситуации, в которых выгодно использовать CQRS, и назовем несколько систем, в которых он используется.
Также разберем вопросы data consistency в CQRS-архитектурах, и другие возникающие проблемы.
Александр Курдюков. Внедрение continuous delivery для гетерогенных поставок.ScrumTrek
Современный бизнес хочет как можно более быстрых поставок. Но в сложной системе полный цикл проверки и установки может занимать значительное время и требовать ручного труда. Проблем становится больше, если система гетерогенна, т.е. используется как привычный Linux, так и Windows. Мы прошли некоторый путь от полностью ручных выкаток и проверок сред к автоматизации, которая минимизирует время поставки пользователям. При этом удалось сохранить единство подхода как для Linux, так и для Windows выкаток. Доклад о том, что мы пробовали, что получилось, а что не очень. И куда можно развить полученный успех.
SECON'2016 Евтухович Иван, Эксплуатация завтрашнего дня: от DevOps к NoOpsSECON
За последние годы у ИТ-сообщества накопился опыт использования систем управления конфигурацией и работой в организации по методологии DevOps. Но растущие вызовы показывают, что и этот подход имеет свои недостатки. Доклад расскажет о том, какие контейнеры бывают и почему они победят, что придет на смену облакам, и какие практики стоит начать внедрять сегодня, чтобы завтра не остаться без работы.
DevOps Fest 2020. Максим Безуглый. DevOps - как архитектура в процессе. Две к...DevOps_Fest
Сотни вопросов о структуре и процессах, которые ставят и решают архитекторы и практики DevOps на примере решений в своем проекте.
Взаимоопределяющие вопросы архитектуры, DevOps, бизнеса и разработки.
Взрыв сложности - представьте, что вместо простого gmail подобного почтового SPA вам нужно построить и развивать новый sendmail на сервере + thunderbird для клиентов (desktop, мобильную и веб версию) по SAAS multi tenant модели.
Реальный DevOps в энтерпрайзе / Александр Тараторин (Райффайзенбанк)Ontico
РИТ++ 2017, Web-scale IT Сonference
Зал Владивосток, 5 июня, 18:00
Тезисы:
http://webscaleconf.ru/2017/abstracts/2828.html
Что такое DevOps? Очередной модный термин? Методология? Набор инструментов? Культурные практики?
Для Райффайзенбанка DevOps - микс из всего перечисленного (смешать, но не взбалтывать!), применяемый чтобы:
- ускорить разработку и внедрение новых решений не в ущерб качеству;
- вовлечь админов в работу девелопмента;
- заинтересовать разработчиков жизнеспособностью их творений в реальной жизни.
...
Прошло время, когда DevOps не был еще модным, началось время карго-культов и безбашенных внедрений. В докладе я расскажу про основные ошибки перехода компании к DevOps из моей практики, покажу как не надо использовать инструменты и как не надо организовывать команды, а также многое другое.
«DevOps — это о передаче смысла» — Александр Титов, Express 42DevDay
Текущим определением DevOps является аббревиатура CAMS:
— культура;
— автоматизация;
— измерения;
— распространение знаний.
Для меня это недостаточно понятно, я дополнил эти пункты тем, что DevOps это впервую очередь о передаче смысла без искажений. Я расскажу, как эти мысли соотносятся с методиками прошлого (ITIL, etc), как, используя такой подход, создать набор правил для работы и почему автоматизация — это не всегда хорошо.
Мы посмотрим как инструменты автоматизации помогают передавать смысл изменений между окружениями на примере реальных компонентов и кукбуков и рассмотрим на практике почему bash скрипты более слабый инструмент, чем Opscode Chef.
Совместно разберемся к требованиям к системе мониторинга. Что в системах мониторинга вредит передаче смысла, а что, наоборот, помогает. Какую систему мониторинга выбрать для вашего проекта?
Важность честности и открытости в команде для передачи смысла. Честные публичные пост-мортемы — это не проявление слабости, а проявление уважения к своим пользователям. Как научится делиться информацией друг с другом и не скрывать важного.
Про качество и красоту кода говорят и пишут очень многие, хотя при этом довольно часто забывают, для чего существует это качество и эта красота.
Двадцать второй онлайн митап Software Craftsmanship будет посвящен Engineering Excellence. мы рассмотрим что такое Engineering Excellence, кому и для чего оно нужно на проекте, из каких частей состоит и как определить что нужно конкретному проекту.
На митапе мы рассмотрим взаимосвязь разработчиков, тестировщиков, девопсов, разберем метрики, практики и процессы необходимы для постоянного улучшения проекта.
Константин Бажин, ТОП 10 не могу или что нужно сделать, чтобы жить по AgileScrumTrek
"Наступать на грабли - это не про нас!" - думали мы, когда ушли в разработку программного обеспечения с головой. И вроде бы все умные и прекрасно понимают как нужно делать правильно. Но! В ситуации, когда количество работы превышает количество ресурсов, а договорные обязательства никто не отменял, в какой-то момент - ЧТО-ТО ПОШЛО НЕ ТАК.
В своем докладе я расскажу как это все произошло и какие выводы мы сделали. А также опишу конкретные шаги, которые предприняли, чтобы этого избежать в дальнейшем.
Дмитрий Грибов, Трава и грибы как средства управления разработкойScrumTrek
Управление разработкой в ЛитРес: Игровые грибы на службе управления проектами Холакратия, настоенная на травах Деревянный Agile Спринты длинною в час и ежедневный релиз Рыночная игра как альтернатива микроменеджменту KPI для разработчиков, основанный на реальных результатах (сдельная оплата программистам в штате) История о том, как команда из 27-и человек эффективно поддерживает и развивать сервис с миллиардной выручкой
Software craftsmanship meetup 21: CQRS что такое и для чего Pavel Veinik
Мы рассмотрим что такое CQRS, какие проблемы он может решить и какие проблемы создать, а также сопутствующие подходы и приемы, такие как event sourcing, предагрегация данных для чтения, использование in memory баз данных. Также разберем ситуации, в которых выгодно использовать CQRS, и назовем несколько систем, в которых он используется.
Также разберем вопросы data consistency в CQRS-архитектурах, и другие возникающие проблемы.
Александр Курдюков. Внедрение continuous delivery для гетерогенных поставок.ScrumTrek
Современный бизнес хочет как можно более быстрых поставок. Но в сложной системе полный цикл проверки и установки может занимать значительное время и требовать ручного труда. Проблем становится больше, если система гетерогенна, т.е. используется как привычный Linux, так и Windows. Мы прошли некоторый путь от полностью ручных выкаток и проверок сред к автоматизации, которая минимизирует время поставки пользователям. При этом удалось сохранить единство подхода как для Linux, так и для Windows выкаток. Доклад о том, что мы пробовали, что получилось, а что не очень. И куда можно развить полученный успех.
Проблемы и пути их решения при командной разработке проектовАгентство AlterEGO
– Кому нужна командная разработка?
– Что делать в команде?
– Решение реальных задач, распределение ответственности
– Командная разработка на 1С-Битрикс
– Миграции БД
– Проблемы и пути их решения
www.cmcons.com. Практика и технология внедрения процесса конфигурационного управления и управления изменениями с применением IBM Rational ClearCase и ClearQuest
How to assess the company's readiness to intelligent automation of office pro...Alexandre Prozoroff
How to assess the company's readiness to intelligent automation of office processes?
Как оценить готовность компании к роботизации офисных процессов?
http://cybersyn.ch/office
LanDocs Business Suite - СЭД, PM, CRM для малого и среднего бизнеса. Электронный документооборот, архив документов, контроль исполнения поручений, управление проектами, клиентская база, история взаимоотношений, управление бизнес процессами, отчетность, BI
Software craftsmanship meetup 20. транзакции и data constistency в микросерви...Pavel Veinik
Рассмотрим обеспечение транзакционности в микросервисах, от “транзакционной” отправки сообщений до “транзакционного” обновления данных в нескольких микросервисах. Рассмотрим и соответствующие типовые решения - шаблон Transactional outbox, двухфазные транзакции, а также шаблон Saga вместе с компенсирующими транзакциями.
СИ — это способ построить успешную систему и объединить всех людей на проекте в одно целое для продуктивного решения задачи любой сложности. Это неотъемлемая часть грамотного руководства проектом, именно поэтому по статистике зарплаты системных инженеров самые высокие в любой отрасли и IT не является исключением.
какие бывают типы микросервисных архитектур (распределенный монолит, слои микросервисов, feature-based микросервисы) и как именно микросервисы взаимодействуют друг с другом в рамках того или иного типа.
Software craftsmanship 15 online: Reliability and ResiliencyPavel Veinik
Мы возобновляем после перерыва митапы Software Craftsmanship, и наш пятнадцатый митап будет посвящен надежности и устойчивости систем. Мы разберем stability, reliability, fault-tolerance, availability, resilience, узнаем как они связаны друг с другом и как можно их измерять, а также как разрабатывать устойчивые и надежные программы.
Также мы сформулируем принципы создания надежных систем, паттерны и антипаттерны надежности и устойчивости, отдельное внимание уделим устойчивости микросервисов в облаке.
План митапа:
Stability, reliability, fault-tolerance, availability, resilience, их связь и отличия
Архитектура и шаблоны availability
Шаблоны resilience
Техники fault tolerance
Устойчивости и надежность в облаке
Software craftsmanship 14 online Splitting the MonolithPavel Veinik
Каждый развивающий бизнес на определенном этапе своего жизненного цикла сталкивается с задачей масштабирования. Для монолитного приложения эта задача может оказаться сложнее, чем написать с нуля масштабируемую систему - потому что нужно учитывать миграцию данных и пользователей, а также недостаточные ресурсы.
Мы попытаемся понять, в каких случаях монолит распиливать стоит, а когда можно применить более простые подходы. Рассмотрим преимущества и недостатки монолитной архитектуры и микросервисной. Разберем несколько стратегий распиливания монолита, а также аспекты, которые необходимо учесть во время этого процесса.
Двенадцатый митап Software Craftsmanship пройдет онлайн и будет посвящен высоконагруженным системам. Мы систематизирует инструменты, применяемые для разработки архитектуры высоконагруженных приложений, опишем базовый алгоритм из 6 шагов проектирования нагруженной системы.
Также мы рассмотрим 3 примера нагруженных приложений - клиент для участия в Real Time Bidding аукционах, поисковик вместе с краулером для него, чат.
Мы коснемся опасностей, которые подстерегают новичков и опытных архитекторов.
Кроме того, рассмотрим подходы к построению высоконагруженных систем в стартапе и в сервисной компании.
Software craftsmanship 11 online: мотивация и эффектисность разработчикаPavel Veinik
Мы рассмотрим вопросы продуктивности, как командная работа и менеджеры влияют на продуктивность, как связаны оценки и эффективность решений разработчика, почему работа программиста является творческой, и как грамотно использовать инструменты тайм-менеджмента.
Программирование и лингвистика: как понять язык и извлечь знания из текстовPavel Veinik
Knowledge extraction с помощью open source java технологий - что это такое, как, и для чего? На примере реального проекта докладчик расскажет о том, как создать систему извлечения знаний и как с ее помощью получать полный и минимальный обзор событий в интересующих областях.
Человеческий фактор в разработке, или ORM на noSql через JPA.Pavel Veinik
Зачем переводить работающий проект с RDBMS на noSql? Как это сделать, и как это нельзя делать? Что важнее для успеха пректа - технологическое преимущество или доверительные отношения в команде? Какова роль процесса в успехе проекта и что бывает, когда каждый член команды действует в соответствии со своими локальными интересами.
2. Зачем митапы?
Поделиться с разработчиками Splitmetrics
Поделиться со всеми разработчиками
Обкатать новый курс для техлидов
Пообщаться
3. Для кого митапы?
Для разработчиков
Для тестировщиков
Для сочувствующих и интересующихся
4. Мы на новом месте
Зарегистрировались 89 человек
И на этот раз есть место для всех
5. Кто проводит митапы
Компания Splitmetrics
35 человек, все в офисе в Минске
2 продукта в области рекламы, 5 лет
Продажи SaaS из РБ на запад
Python, pg, Kafka, RabbitMq, Celery…
7. План митапов
1. Software Craftsmanship & Agile.
Как не делать говно?
2. Принципы хранения данных
3. Обзор баз данных
4. Очереди сообщений
5. Кэши и файловые хранилища
8. Software Craftsmanship
Working software over
comprehensive documentation
Responding to change over
following a plan
Individuals and interactions
over processes and tools
Customer collaboration over
contract negotiation
Not only working software, but
also well-crafted software
Not only responding to change,
but also steadily adding value
Not only individuals and
interactions, but also a
community of professionals
Not only customer collaboration,
but also productive
partnerships
9. Давай практику!
Запросы на «практические задачи»
Заканчиваются повторением ошибок, которые
пройдены уже лет 30-50 назад
И развитие останавливается
Знание одного принципа освобождает от
знания тысячи фактов
10. План этого митапа
1. Интеграция систем
2. Очереди сообщений
3. Производительность и детали
4. Задачки на архитектуру
18. Недостатки синхронных подходов
Отдельное управление мощностью каждого сервиса
Возможны каскадные падения, эффект домино
Сложнее балансировать
Сложнее service discovery
Высокая связность
Каждый знает API каждого
Трудно с версиями
20. Асинхронные choreographed события
Каждый компонент в ответ шлет новое событие, которое
принимает следующий компонент
Все еще сильная связность компонентов
Хорошо для явных действий, таких как индексирование,
оповещения, обработка ошибок
Хорошо масштабируется
Трудно управлять потоком обработки
Удобно для highload записи
25. Недостатки асихронных архитектур
Оптимизация или только для чтения, или
только для записи для систем среднего
размера
Одна точка отказа
Eventual consistency – можем прочитать не
последние данные
26. Service Oriented Architecture SOA
Основана на сервисах, отражающих бизнес-задачи
Использует оркестрацию
Высокие требования к инфраструктуре
Реализация сервисов зависит от инфраструктуры, сервисы без
контекста не имеют смысла
Требуют строгости при реализации
27. Message Oriented Middleware MOM
Шлем сообщения между распределенными системами
Системы могут быть на разных технологиях, платформах
Уменьшает сложность разработки
Позволяют независимую разработку систем-участниц
29. Преимущества MOM – асинхронность
Если получатель или отправитель оффлайн –
все остальное работает
Бэкап сообщений
Падение одного не влияет на остальных
Получается низкая связность
30. Преимущества MOM – перенаправление
сообщений
Послать сообщение всем клиентам broadcast
Некоторым клиентам – multicast
И более сложные схемы направления
сообщений в зависимости от их содержания
или других параметров
31. Преимущества MOM – преобразование
сообщений
Возможно преобразование сообщения в
процессе передачи
Можно работать с разными форматами
данных, не меняя компоненты, преобразуя на
лету
Ниже связность между компонентами
32. Недостатки MOM
+1 компонент
Нужен дополнительный агент, которые
получает, передает, хранит, преобразовывает
сообщения
Компоненту нужна инфраструктура,
поддержка, конфигурирование, мониторинг
Система в целом сложнее
33. Недостатки MOM – проблемы с
синхронностью
Нельзя прямо реализовать синхронный вызов
Есть эмуляция синхронности
Между отправкой сообщения и его обработкой
может пройти много времени
34. Другие подходы к интеграции
Передача файлов
Разделяемая бд
RPC
35. Шаблоны проектирования
Шаблоны – экстернализованный опыт других умных людей
Наша задача – освоить опыт, о котором говорится в шаблоне
Перевести опыт в интуицию
Нельзя выбирать шаблоны людям с небольшим опытом
Проще думать о том, чего нельзя делать в проектировании, чем помнить
все возможные варианты шаблонов
Нет хуже подхода, чем «сделать – страдать – переделать»
Желательно сначала подумать
36. Как выбирать шаблон проектирования?
Интуитивно
Рассмотреть несколько вариантов
Формального критерия нет
Есть корреляция между опытом архитектора и
качеством системы
Нет корреляции между формальными признаками и
качеством
37. Шаблон Message Bus
Какая архитектура позволяет системам работать
вместе, но так чтобы систему можно было добавить и
удалить, не влияя на другие системы?
По мере роста всего решения, как можно снизить
расходы на добавление или удаление систем?
38. Требования к интеграции систем
Зависимости между системами должны быть минимальны
Количество связей между системами (n*(n-1)/2 связей в
полном графе) должно быть небольшим
Объем изменений в каждой системе должен быть небольшим
Легкость добавления еще одной системы
40. Шаблон Message Bus – решение
Шина передает сообщения между приложениями
Ключевые элементы:
Набор схем данных для сообщений
Набор сообщений
Общая инфраструктура для отправки и получения
сообщений