Авторизация между сервисами часто воспринимает лишь как метод обеспечения безопасности. Но это не так. Авторизация так же используется как тактика ограничения путей коммуникация для снижения уровня зависимостей. Другая архитектурная тактика, направленная на недопущение появления новых зависимостей — сокрытие интерфейса в принципе, что немного сложнее и снижает обозреваемость системы в целом.
В микросервисах зависимости — большая боль, так что в ряде случаев авторизация доступа как жесткая мера против бесконтрольного роста уровня зависимостей может быть оправдана.
В микросервисах зависимости — большая боль, так что в ряде случаев авторизация доступа как жесткая мера против бесконтрольного роста уровня зависимостей может быть оправдана.
Крис Ричардсон на DDD SoCal поделился десятью принципам рефакторинга при движении в сторону микросервисов. По ссылке и преза и видео. Классное выступление, я бы сказал — обобщающее.
https://chrisrichardson.net/post/refactoring/2020/08/21/ten-principles-for-refactoring-to-microservices.html
https://chrisrichardson.net/post/refactoring/2020/08/21/ten-principles-for-refactoring-to-microservices.html
Фантастическая статья о выборе CI-платформы, куча полезных и интересных исследований для всех, кто сейчас оценивает CI и системы сборки: https://buoyant.io/2020/09/16/linkerds-ci-kubernetes-in-docker-github-actions/
buoyant.io
Rebuilding Linkerd's CI with K8s in Docker (kind) and GitHub Actions
This post is a writeup of a talk I gave last month at KubeCon EU 2020. Introduction In mid-2019, the Linkerd project’s continuous integration (CI) took 45 minutes, all tests were serialized on a single Kubernetes cluster, and multi-hour backups were common.…
На ArchDays все-таки будет выступление про LeanIX!
Сергей Лукин расскажет и покажет как документировать 150+ микросервисов в LeanIX. Я очень давно хотел посмотреть на этот инструмент вблизи, но всё как-то не было возможности, в России он не сильно распространен.
Ссылочка на описание выступления: https://archdays.ru/?speaker=430
К слову, у LeanIX очень крутые ресурсы по Enterprise-архитектуре, через ресурсы о них в свое время и узнал: https://www.leanix.net/en/resources/
Сергей Лукин расскажет и покажет как документировать 150+ микросервисов в LeanIX. Я очень давно хотел посмотреть на этот инструмент вблизи, но всё как-то не было возможности, в России он не сильно распространен.
Ссылочка на описание выступления: https://archdays.ru/?speaker=430
К слову, у LeanIX очень крутые ресурсы по Enterprise-архитектуре, через ресурсы о них в свое время и узнал: https://www.leanix.net/en/resources/
20 ноября пройдет конференция по микросервисной архитектуре ArchDays, проходить будет в онлайне, подготовка идет полным ходом. В этом году значительно меньше про переход от монолита к микросервисам и больше про сами микросервисы и архитектуру распределенных систем в целом.
Участникам этого канала скидка 30% по промокоду microservices_arch 👌
http://archdays.ru
Участникам этого канала скидка 30% по промокоду microservices_arch 👌
http://archdays.ru
archdays.ru
ArchDays 2025
Конференция по архитектуре IT-решений. 7 ноября Москва + Online
Не супер-подробная, но достаточно интересная статья про полирепо vs монорепо в микросервисах. Автор статьи больше выступает за монорепо, судя по тону статьи — по собственному опыту, так что относитесь к мыслям в статье критически и перености в свой контекст.
https://caylent.com/the-shift-from-polyrepos-to-monorepos
В обсуждениях можете поделиться своим опытом использования моно/поли репозиториев.
https://caylent.com/the-shift-from-polyrepos-to-monorepos
В обсуждениях можете поделиться своим опытом использования моно/поли репозиториев.
Последние несколько лет изучаю вопрос применения теории графов к микросервисам используя различный инструментарий. Идея в том, чтобы формализовать часть свойств микросервисов через мат аппарат графов. Что это дает на практике? Как минимум: возможность автоматизации в выявлении паттернов (циклические зависимости, сильная связанность, рассчет нагрузки и таймаутов), автоматизации соблюдения архитектруных принципов, наглядный knowledge sharing, построение моделей угроз.
Достаточно обширная практическая (с jQAssistant и Neo4j) статья на эту тему:
https://dzone.com/articles/fixing-your-microservices-architecture-using-graph
Достаточно обширная практическая (с jQAssistant и Neo4j) статья на эту тему:
https://dzone.com/articles/fixing-your-microservices-architecture-using-graph
DZone
Fixing Your Microservices Architecture Using Graph Analysis
In this talk, we’ll analyze a microservice system based on Spring Cloud, with jQAssistant and Neo4j.
Пока готовятся видео с архдейз можно посмотреть видео выступления Патрика Куа, соавтора книги Эволюционная архитектура на agiledays 2019 с переводом на русский язык :)
https://youtu.be/DwJE_nBw0Fk
https://youtu.be/DwJE_nBw0Fk
YouTube
Patrick Kua. Создание эволюционирующих архитектур (RU)
В нашей отрасли гарантированы только изменения. Многие современные инструменты, технологии и бизнес-модели скоро перестанут существовать, их заменят новые аналоги. Архитекторы сталкиваются с проблемами проектирования сегодняшних систем, ведь задачи завтрашнего…
Видео с ArchDays с мастерклассом взлома приложения в в докере от Дениса Якимова (@sec_devops и @cloud_sec) и Павла Канна
https://www.youtube.com/watch?v=0_Lb9OVxmbw
https://www.youtube.com/watch?v=0_Lb9OVxmbw
YouTube
ArchDays 2020 • Взлом в Docker и безопасный Gitlab • Денис Якимов, Павел Канн (Swordfish Security)
Денис Якимов, Павел Канн - Ломаем приложение в Docker и строим безопасный пайплайн в Gitlab (мастер-класс)
Мы рассмотрим то, как выглядят уязвимости приложения в Docker на практике. К чему может привести незакрытая дыра и как это можно избежать. Для защиты…
Мы рассмотрим то, как выглядят уязвимости приложения в Docker на практике. К чему может привести незакрытая дыра и как это можно избежать. Для защиты…
Еще одно видео с ArchDays, на этот раз с мастерклассом от Жени Пешкова (@dddevotion) по агрегатам
https://www.youtube.com/watch?v=SaTz4vS_CGE
https://www.youtube.com/watch?v=SaTz4vS_CGE
YouTube
ArchDays 2020 • Агрегаты, мои агрегаты, как приятно о вас думать! • Евгений Пешков (Dodo Eng)
Агрегаты, мои агрегаты, как приятно о вас думать! - Евгений Пешков
Агрегат выглядит простым паттерном, но разработчики не всегда полностью понимают как правильно работать с агрегатом, как находить его границы, как реализовать взаимодействие нескольких агрегатов.…
Агрегат выглядит простым паттерном, но разработчики не всегда полностью понимают как правильно работать с агрегатом, как находить его границы, как реализовать взаимодействие нескольких агрегатов.…
Видео с мастер-класса Кирилла Ветчинкина по CDC тестам в микросервисной архитектуре
https://www.youtube.com/watch?v=dqPEeWJCshk
https://www.youtube.com/watch?v=dqPEeWJCshk
YouTube
ArchDays 2020 • CDC тесты в микросервисной архитектуре • Кирилл Ветчинкин (microarch.ru)
CDC тесты в микросервисной архитектуре - Кирилл Ветчинкин
Если вы уже работаете с микросервисами, то наверняка задавались вопросом чем тестирование в микросервисной архитектуре отличается от привычного классического подхода. Так же наверняка вы сталкивались…
Если вы уже работаете с микросервисами, то наверняка задавались вопросом чем тестирование в микросервисной архитектуре отличается от привычного классического подхода. Так же наверняка вы сталкивались…
Видео обсуждения культурных и процессных особенностей, связанных с микросервисами
https://www.youtube.com/watch?v=GBrxFWamoak
https://www.youtube.com/watch?v=GBrxFWamoak
YouTube
ArchDays 2020 • Панельная дискуссия: культурные и процессные трудности работы с микросервисами
ArchDays 2020 • Панельная дискуссия: культурные и процессные трудности работы с микросервисами
Александр Поломодов, Tinkoff
Денис Якимов, Swordfish Security
Евгений Истомин, Memex.Team
Илья Волынкин, Газпром-Медиа Холдинг
Сергей Баранов, ArchDays
Ссылка…
Александр Поломодов, Tinkoff
Денис Якимов, Swordfish Security
Евгений Истомин, Memex.Team
Илья Волынкин, Газпром-Медиа Холдинг
Сергей Баранов, ArchDays
Ссылка…
Что такое распределенный монолит?
Все просто. Монолит может быть хорошим, модульным, построенным с учетом модели предметной области, где модули максимально автономны (имеют слабую связанность), имеют одну цель и при этом имеют высокое сцепление.
Возможно и обратное - тотальные зависимости всего от всего, именования сущностей как попало, любое мелкое изменение - как шрапнелью. С кучей соответствующих проблем.
И в там и там в монолите вызовы - локальные.
Если «распилить» монолит, то получим распиленный монолит, то есть по сути то же, что было, только с удаленными вызовами.
В первом случае - неплохой набор потенциальных микросервисов (с поправкой на инфраструктуру).
Во втором случае - полный фарш проблем. И вот именно этот случай в народе принято называть распределенным монолитом.
Чтобы так не произошло - сначала строим модель предметной области, получаем стратегический дизайн и начинаем двигаться в его сторону постепенно перенося код из монолита в нужные места микросервисов в соответствии со стратегическим дизайном (например в DDD). Или не микросервисов, а модулей все в том же монолите, постепенно двигаясь к первому варианту монолита - хорошему и модульному =)
Все просто. Монолит может быть хорошим, модульным, построенным с учетом модели предметной области, где модули максимально автономны (имеют слабую связанность), имеют одну цель и при этом имеют высокое сцепление.
Возможно и обратное - тотальные зависимости всего от всего, именования сущностей как попало, любое мелкое изменение - как шрапнелью. С кучей соответствующих проблем.
И в там и там в монолите вызовы - локальные.
Если «распилить» монолит, то получим распиленный монолит, то есть по сути то же, что было, только с удаленными вызовами.
В первом случае - неплохой набор потенциальных микросервисов (с поправкой на инфраструктуру).
Во втором случае - полный фарш проблем. И вот именно этот случай в народе принято называть распределенным монолитом.
Чтобы так не произошло - сначала строим модель предметной области, получаем стратегический дизайн и начинаем двигаться в его сторону постепенно перенося код из монолита в нужные места микросервисов в соответствии со стратегическим дизайном (например в DDD). Или не микросервисов, а модулей все в том же монолите, постепенно двигаясь к первому варианту монолита - хорошему и модульному =)
Микросервисы / распределенные системы
Что такое распределенный монолит? Все просто. Монолит может быть хорошим, модульным, построенным с учетом модели предметной области, где модули максимально автономны (имеют слабую связанность), имеют одну цель и при этом имеют высокое сцепление. Возможно…
Для визуалов, выглядит это примерно так.
Хочу рассказать об уровнях принятия решений в микросервисной архитектуре. То, что я использую в своей практике — это двойная петля обучения Криса Аргириса, адаптированная под архитектурный процесс. Привлекла она меня тем, что в ней выражены два уровне — «Что мы делаем?» и «Почему мы делаем то, что делаем?». Схематично роцесс показан на картинке, почитать подробнее можно, например, здесь: http://pds8.egloos.com/pds/200805/20/87/chris_argyris_learning.pdf
Красота этого подхода в том, что в нем явная петля обратной связь к управляющим значениям, как раз то самое «Почему мы делаем то, что мы делаем и делаем это именно так?». Очень похоже на вопросы, ответы на которые мы ищем в архитектуре и ответы на которые на масштабе позволяют поддерживать архитектурную целостность решения.
Красота этого подхода в том, что в нем явная петля обратной связь к управляющим значениям, как раз то самое «Почему мы делаем то, что мы делаем и делаем это именно так?». Очень похоже на вопросы, ответы на которые мы ищем в архитектуре и ответы на которые на масштабе позволяют поддерживать архитектурную целостность решения.
Адаптированный цикл выглядит так. Есть цель, а есть ASR, NFR(QA), принципы и ограничения в поддержку этой бизнес-ценности. Они ограничивают целевое решение. Без ограничений мы быстро свалимся в хаос.
Если по итогам реализации продукта мы видим отклонения от ожидаемых значений фитнес-функции, то можем либо принять корректирующее архитектурное решение (одиночная петля обучения), либо обнаружить, что в корректировке нуждаются основополагающие принципы, атрибуты качества или ограничения, в рамках которых принимаются архитектурные решения и тогда необходимо сначала пересмотреть их, обновить архитектурную базу знаний и второй петлей выйти на выбор архитектурных решений, позволяющих направить развитие архитектуры в требуемом направлении.
Если по итогам реализации продукта мы видим отклонения от ожидаемых значений фитнес-функции, то можем либо принять корректирующее архитектурное решение (одиночная петля обучения), либо обнаружить, что в корректировке нуждаются основополагающие принципы, атрибуты качества или ограничения, в рамках которых принимаются архитектурные решения и тогда необходимо сначала пересмотреть их, обновить архитектурную базу знаний и второй петлей выйти на выбор архитектурных решений, позволяющих направить развитие архитектуры в требуемом направлении.