Андрей Трушкин - Архитектура цифрового мира
- Название:Архитектура цифрового мира
- Автор:
- Жанр:
- Издательство:неизвестно
- Год:неизвестен
- ISBN:9785005608437
- Рейтинг:
- Избранное:Добавить в избранное
-
Отзывы:
-
Ваша оценка:
Андрей Трушкин - Архитектура цифрового мира краткое содержание
Архитектура цифрового мира - читать онлайн бесплатно ознакомительный отрывок
Интервал:
Закладка:
Первым этапом нового революционного перехода стала концепция микросервисной архитектуры, в соответствии с которой приложения представлялись в виде набора минимально зависимых (в идеальной ситуации независимых) модулей (микросервисов), каждый из которых представлял собой полноценную единицу развертывания с самостоятельным жизненным циклом. При этом взаимодействие микросервисов предполагалось осуществлять исключительно посредством API, что исключало необходимость владения информацией об особенностях исполнения контрагентов. Данная концепция соответствовала практикам гибкой разработки и DevOps. Пример предлагавшейся концепции представлен на Рисунке 8.

Рисунок 8. Пример концепции микросервисной архитектуры
Показанные на Рисунке 8 микросервисы и межсервисные взаимодействия представлены в качестве примера.
При проектировании решений на основе микросервисной архитектуры учитывались следующие характеристики и качества микросервисов:
• Трудоемкость. Разработку микросервиса должна вести одна команда, сформированная в соответствии с гибкими практиками разработки.
• Независимость. Локальные задачи решаются средствами микросервиса. Команда, реализующая микросервис, не должна ожидать исполнения подзадач (в составе данного микросервиса) другой командой. Возникновение ситуаций ожидания являлось признаком ошибок проектирования.
• Бизнес-ориентированность. Микросервисы должны решать конкретные прикладные задачи заказчиков.
• Простота интеграции. Для реализации взаимодействия микросервисов не требуется использования отдельных программных компонентов (по примеру рассмотренного выше ESB решения).
• Учет возможных ошибок. Принимая во внимание возможность возникновения ошибок при выполнении жизненного цикла информационной системы, при проектировании последней в парадигме микросервисной архитектуры следует учитывать потенциальную недоступность каждого микросервиса. При этом система должна реагировать таким образом, чтобы минимизировать вероятность общесистемного сбоя.
• Децентрализация данных. Отдельные микросервисы работают с независимыми источниками данных в рамках собственных моделей данных. Модели данных разных микросервисов развиваются независимо друг от друга.
На первый взгляд переход к практикам микросервисной архитектуры вносил существенные упрощения в разработку информационных систем, а также повышал наглядность их проектирования, принося следующие результаты:
• Возможность гибкого выбора технологий. При независимом исполнении и развитии микросервисов, их автономности от особенностей реализации контрагентов, каждый микросервис может разрабатываться с использованием собственных технологий, выбор которых диктуется потребностями заказчика, наличием в компании соответствующих компетенций и т. д. Необходимо поддерживать лишь исключительно API-совместимость с контрагентами.
• Независимость данных. Наличие собственных источников данных, а также использование собственных моделей данных исключает необходимость затрачивать существенные финансовые, временные и трудовые ресурсы на поддержание тяжеловесных шаблонов, таких, как каноническая модель данных.
• Отказоустойчивость. При проектировании системы с учетом минимизации влияния каждого микросервиса на стабильность работы системы в целом, показатели отказоустойчивости последней возрастают.
• Упрощение замены блоков функционала. В случае, когда бизнес-функции реализуются минимально зависимыми компонентами – микросервисами – их замена оказывает минимальное влияние на другие компоненты системы.
• Удобство и дешевизна масштабирования. При увеличении нагрузки на систему отсутствует необходимость в масштабировании всего программного комплекса (в отличие от эпох монолитных приложений и SOA), а возможно масштабировать только те микросервисы, на которые оказывается дополнительная нагрузка, что снижает технологические и финансовые риски.
• Соответствие создаваемой архитектуры организационной структуре предприятия. Возможным становится создание микросервисов, реализующих автоматизацию функционала, напрямую соответствующего должностным обязанностям подразделений предприятия. Таким образом уже на уровне концепции для микросервисной архитектуры реализуется закон Конвея.
• Снижение издержек при тестировании. При проектировании и разработке крупных промышленных информационных систем серьезным препятствием динамичному развитию являются потенциальные объемы регрессионного тестирования. В случае распределенной системы, построенной на основе минимально зависимых компонентов (микросервисов), объем потенциального регрессионного тестирования при развитии существенно снижается, что в свою очередь снижает финансовые и технологические риски для заказчика.
• Удобство развертывания. При обновлении отдельного микросервиса отсутствует необходимость обеспечивать развертывание всей информационной системы.
Указанный перечь характеристик и потенциальных преимуществ перехода к микросервисной архитектуре обеспечили повышенный интерес к данной архитектурной концепции в 2010-е годы. Ряд технологических гигантов уже в начале десятилетия начали перевод своих технологических платформ на микросервисную архитектуру. В качестве примера можно привести Uber.
Следует отметить, что компании, осуществлявшие переход к микросервисной архитектуре, столкнулись с рядом сложностей. Компания Uber посредством своих Интернет-ресурсов ( https://eng.uber.com/microservice-architecture/, 23.07.2020) достаточно подробно рассматривала проблемы, с которыми ей пришлось столкнуться. По ходу решения выявленных проблем ИТ-ландшафт компании неоднократно претерпевал серьезные изменения, иногда включавшие в себя полный пересмотр достаточно крупных элементов данного ландшафта, а также деталей проектирования. На ряде популярных Интернет-ресурсов профессиональной направленности размещались статьи многих компаний, содержавшие выражения яркого эмоционального характера по адресу микросервисной архитектуры. Основной претензией, высказанной в отношении архитектурной концепции, были резко возросшая сложность ИТ-решений, запутанность интеграций, трудности в организации управления бизнес-процессами, сложности с сопровождением созданного решения, невозможность выработать эффективную релизную модель. Анализируя проблемы, с которыми столкнулись участники рынка при переходе к микросервисной архитектуре, можно отметить следующие основные примеры неудачной реализации новых архитектурных концепций, которые и привели к упомянутым проблемам:
Читать дальшеИнтервал:
Закладка: