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

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

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

Inner Source и микросервисы

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

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

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

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

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

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

Контрактные тесты — что это, и почему они вам очень нужны

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

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

От монолита до микросервисов: эволюция архитектуры вслед за бизнесом

Практические кейсы внедрения микросервисной архитектуры

Эволюция корпоративной интеграции

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

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

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

Как списать технический долг

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

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

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

Итоги

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

Get the Medium app

A button that says 'Download on the App Store', and if clicked it will lead you to the iOS App store
A button that says 'Get it on, Google Play', and if clicked it will lead you to the Google Play store