Топ 6 докладов с конференции ArchDays 2019

В конце ноября 2019 года прошла первая конференция ArchDays, посвященная архитектуре программного обеспечения в общем и более конкретно микросервисной архитектуре. Доклады доступны в следующем плейлисте. Конференция получилась интересной и познавательной, причем я помимо выступления еще входил в программный комитет конференции. Это позволило мне взглянуть из-за кулис на то, как происходит подготовка докладов и помочь спикерам сделать еще лучше и полезнее для аудитории.

В этой статье я решил составить топ 6 докладов, причем свой доклад “Эволюция web’а tinkoff.ru за последние 3 года” я убрал из ранжирования ввиду конфликта интересов. А теперь перейдем к разбору докладов, которые я считаю самыми полезными и/или интересными.

Александр Бындю в своем докладе рассказал про такой интересный подход как InnerSource, который в теории позволяет настроить совместную работу внутри компаний над общими библиотеками и сервисами в стиле похожем на разработку open source решений.

Суть в том, чтобы решить стандартную проблему когда для решения задач конкретной команды требуется изменения в библиотеках и сервисах соседних команд, которые уже имеют какие-то планы и не горят желаниям менять их, чтобы решить проблему какой-то внешней команды. Помочь с этим может inner source, для которого должны быть выполнены следующие условия

  • исходники всех проектов доступны для всех сотрудников
  • любой может контрибьютить в проекты, делая pull request’ы
  • у сервисов есть core team, которая принимает изменения извне и следит за целостностью

Чтобы это все работало нужно решить вопросы, указанные ниже. Причем правильно реализованный подход к микросервисной архитектуре закрывает часть из указанных вопросов из коробки:)

В итоге, остаются основные сложности Inner Source, которые на самом деле расположены в организационной и культурной области. Но эти сложности стоит попробовать решить, т.к. Inner Source позволяет:

  • команде продукта вместо написания всего своими силами, заниматься только продуктом, а внешние запросы принимать в виде готового кода
  • потребителям продукта вместо ожидания в очереди, можно послать pull request

Напоследок Александр рассказал про чеклист запуска Inner Source

Евгений Горбачев в своем выступлении рассказал про контрактные тесты, которые в более привычной терминологии называются Consumer-Driven Contracts и являются паттерном для эволюции взаимосвязанных сервисов.

Эволюция сервисов активно происходит в любой активно развивающейся системе, основанной на микросервисной архитектуре. Собственно, эти сервисы активно общаются друг с другом при помощи API, а внезапные изменения API в одном из сервисов могут легко привести к проблемам у всех зависимых серсвисов. Конечно, все хорошие разработчики покрывают свое API тестами, но … они проверяют обычно часть контракта и не знают как их API используется потребителями. В итоге, автотестов provider’а может и не хватать для того, чтобы гарантировать, что новая версия сервиса не вызовет проблемы у его многочисленных consumer’ов. Один из разумных выходов — это написание consumer’ами тестов на ту часть API provider’а, которую они используют в своей работе.

Чуть ниже я нарисовал как может выглядеть API Provider’а, у которого много Consumer’ов. Каждый из потребителей использует только часть API поставщика и эту часть он покрывает своими контрактными тестами.

В своем выступлении Илья Волынкин интересно рассказал про эволюцию IT в Максиме Телеком, которая реализовала проект WiFi в метро. Мне нравится это выступление своей цельностью:) По факту, мы вместе с Ильей проходим по всем этапам развития проекта и видим, что он всегда следовал за целями бизнеса. В общем, это интересная и поучительная история, прямо как я люблю рассказывать сам:)

Маликов Алексей огненно рассказал о попытках компании Biglion распилить legacy монолит на составные части:) В докладе рассматриваются три неуспешные попытки и одна частично успешная. Доклад рассказывает о граблях, которые можно встретить на своем пути к правильной архитектуре. В общем и целом, классный и поучительный рассказ, который я рекомендую посмотреть целиком.

Андрей Шиллинг рассказал про опыт банка Ак Барс относительно улучшения корпоративной интеграции. Тема очень серьезная и тяжелая, а выступление достаточно хорошо её раскрывает.

Мне понравилась концепция интеграционной среды, включающая

  • термины — общий язык для общения
  • принципы — правила и понятия, которые позволяют провалидировать решения на соответствие им
  • политики — кто и за что отвечает

Ну а дальше Андрей рассказывает как эта концепция работает для онлайн инеграций различных систем в Ак Барс Банке.

В последнем из включенных в этот список докладов Максим Смирнов рассказывает про то, как работать с техническим долгом, который я часто для усиления драматизма называю технической ипотекой:)

Помимо теоретической составляющей доклад Максима интересно послушать еще и из-за интересных примеров, расказанных не без доли юмора и иронии:) Также мне понравилась классификация технического долга, приведенная Максимом по Филиппу Кратчену:

И отсылка к статье про software design Кента Бека, в которой упоминается про изменения двух видов: поведенческие и структурные, причем необработанные вторые и имеют свойство создавать технический долг.

Ну и целиком весь доклад можно обобщить до последнего слайда вида

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

Director of digital ecosystem development department at Tinkoff. Bachelor at applied math, Master at system analysis, Postgraduate studies at economics.

Director of digital ecosystem development department at Tinkoff. Bachelor at applied math, Master at system analysis, Postgraduate studies at economics.