CreatikSoft

ArchDays 2023. Что было интересного и что поменялось с 2019 года

В конце октября 2023 года я посетил конференцию по архитектуре IT-решений ArchDays в Москве. Я привез доклад, где рассказал о двух практических кейсах из области баз данных, с которыми столкнулся в наших проектах. И это был мой второй приезд на эту конференцию. Первый раз я был здесь в 2019 году, тоже в качестве спикера — рассказывал о контрактных тестах для микросервисов. Как выяснилось, эта была вообще самая первая конференция ArchDays.

Так что для самого мероприятия позади остался большой путь в 5 лет, а у меня есть счастливая возможность сравнить обе конференции и поделиться впечатлениями в виде вопросов и ответов.

Для чего проводятся ArchDays?

Как заявляют сами организаторы:

Мы определяем цель конференции как «распространение имеющихся и создание новых знаний об архитектуре  программных решений».

Мы решили пойти дальше принятого формата и в дополнение к докладам, преследующим своей целью распространение знаний, попытаться найти решения еще не решенных проблем в архитектуре.

И они действительно последовательны в достижении этой цели. А еще, о чем ребята не сказали, но добавлю уже от себя я — это позволяет целиком, на один день, что называется, «повариться» среди архитекторов, сеньоров и крутых разработчиков, пообщаться запросто, как водится в IT-индустрии, поймать какие-то инсайды, идеи, взглянуть на проекты и архитектуру свежим взглядом, увидеть, где сейчас бьётся архитектурная мысль. Другими словами, перезагрузить и сформировать правильный mindset. А ещё (что замечаю не только я), благожелательность и драйв, которые царят весь этот насыщенный день, дают максимально позитивный настрой и невероятно заряжают.

В заключение ответа на первый вопрос даю слово организаторам и участникам: Хроники ArchDays’23

Вообще, все видео с докладами обязательно выкладываются спустя несколько месяцев, ловить их можно на канале www.youtube.com/@archdays и в Rutube, а слайды уже доступны.

Что изменилось с 2019 года?

Популярность конференции растет с каждым годом. Если в 2019 году было 300 участников и 15 докладов, то в году уходящем — уже 900 участников и 30 докладов. Но что поменялось еще, кроме статистики?

В 2019 году цель конференции формулировалась чуть иначе:

Распространение имеющихся и создание новых знаний о микросервисах и эволюционной архитектуре.

Как вспоминал во вступительном слове организатор конференции из компании Scrumtrek Сергей Баранов, в 2019 году был «хайп вокруг микросервисов». Сейчас этого уже нет, микросервисная архитектура прочно заняла свое место и стала стандартом отрасли. Так что сегодня фокус переместился непосредственно на архитектуру, стандартизацию архитектурных решений и даже их автоматизацию. И я тоже при выборе докладов для посещения делал акцент именно на архитектурные решения.

Что еще отметил — красной нитью везде проходила мысль, что всё является кодом. Было несколько крайне интересных выступлений, с конкретными практиками по использованию этого подхода применительно к архитектуре и даже… как её тестировать, настоящий космос. Но об этом ниже.

Что унёс и что было интересного в докладах?

Обобщая, можно выделить несколько основных идей, прозвучавших в разных выступлениях.

  • Архитектура как код.
  • Это — ключевой принцип, из которого вытекает всё нижеследующее.
  • Стандартизация описания архитектурных решений. Для достижения этого надо использовать единый глоссарий, хранение в репозитории, а также применять общий инструментарий во всех разрабатываемых продуктах. Например:
    • Формат MARKDOWN для описательной части (что позволяет одновременно иметь и код, с историей изменений, и форматированный текст),
    • PLANTUML для схем и диаграмм(что также позволяет иметь и код, и изображение одновременно),
    • Модель C4 (Context, Containers, Components, and Code) для визуализации архитектуры.
  • Тестирование архитектуры. Если описание архитектуры стандартизовано, её можно тестировать, о чем было много докладов.
  • Автоматизация архитектурного и сервисного контроля. Тоже самое — стандартизация позволяет выйти на ещё более высокий уровень и автоматизировать даже сам контроль принятых архитектурных и сервисных решений, экономя буквально человеко-месяцы.

Из всех докладов, где я был (а они все были интересные и полезные), отмечу особо некоторые архитектурно-обобщающие.

  • “Расширяемая Архитектура: универсальность продукта, эффективность разработки” Дмитрия Мамонова из компании Wrike
    Wrike это платформа для оптимизации и организации всех рабочих процессов и проектов.
    Интересны грабли, с которым столкнулся Wrike при изначально неправильном проектировании архитектуры, что не позволило осуществлять линейную расширяемость с течением времени. Этого можно было избежать с самого начала проектирования системы. Рецепты вкратце: плагины, метаданные и связанный конкест (bounded context).
  • “Governance as Code / Технология автоматизации архитектурного контроля” Ярослава Панасюка из Agoda (Booking Holdings)
  • Хотя, на самом деле, он обобщал опыт Сбера. Этот доклад и последующие ниже, о которых упомяну, были примерно об одном — практическое использование подхода “архитектура как код”. Описанная в докладе технология — один из ключевых компонентов системы архитектурного проектирования в Сбере под названием МЕТА. Система позволяет делать архитектурный контроль и учет полностью автоматически, неважно на каком языке написан сервис, на каком стеке и с какой технологией, причем используя любые настраиваемые правила и критерии, и даже — обратный инжиниринг. Космос.
  • “Архитектура Шредингера и способы борьбы с ней” Сергея Кучина из компании Lad
    Своеобразный доклад, связанный с предыдущими по части использования архитектуры как кода, но с элементами философии.
    Что такое “Архитектура Шредингера” по автору? Это отсутствие системного подхода к архитектуре, который бы придал ей осознанную форму. От себя добавлю, если мы рассматриваем знаменитый мысленный эксперимент Шредингера, кот одновременно жив и мертв. Так что IT-хаос можно описать и с помощью физики. Автор рассматривает жизненные циклы по Адизесу в природе, перенося их на разработку, показывает способы борьбы с энтропией в проекте, что делать на эндгейме продукта, когда развитие остановилось.
  • “Раз архитектура — «as Code», почему бы её не покрыть тестами?!” Руслана Сафина из Byndyusoft
  • Следующий уровень в использовании архитектуры как кода. Руслан заострил внимание на проблемах описания архитектур:
        1. Неактуальность;
        2. Декларативность;
        3. Отсутствие контроля.
    Рассказал как с этим можно бороться и, более того, тестировать и выявлять проблемы архитектуры и ее реализации, мертвые конфигурации, зависимости, эндпоинты, несанкционированные исходящие и входящие запросы и все, что угодно, — в зависимости от написанных тестов. Другими словами, он разработал совершенно уникальную технологию тестирования архитектуры, поддерживающую различные типы тестирования.
    Например:
    • Актуальна ли архитектура реальному положению дел на проде?
    • Соблюдает ли архитектура выбранные принципам проектирования и договоренностям команды?
  • Разработка тестов продолжается. Ребята из Byndyusoft любезно выложили текущее решение в гитхабе. Я спросил: нет ли желания сделать его опенсорсным и организовать коммьюнити вокруг технологии? Руслан ответил, что руководство думает, и такие планы есть. Будем наблюдать.

Отдельно упомяну реактивные манифесты, о которых упоминал Андрей Василевский из Lamoda Tech в своем докладе “Проектируем распределенные системы без боли и слез. Миф или реальность?”. Они помогут создавать эффективные распределенные системы и преодолевать связанные с этим вызовы.

  • The Reactive Manifesto
  • Этот документ обобщает подходы к проектированию систем, способных справиться с сегодняшними вызовами: минимальная задержка, постоянная доступность и обработка огромного количества данных. Цель документа — собрать вместе и обобщить принципы и практики в проектировании реактивных систем, которые  открывали для себя IT-компании, прошедшие этот путь, а кроме того, начать думать в парадигме реактивных систем. Манифест поможет избежать ошибок, если:
    • Пользоваться им в архитектурных процессах;
    • Составить гайдлайны для разработки, с конкретными решениями, опираясь на документ.
  • The Reactive Principles
  • Это — набор принципов проектирования реактивных систем, практическое дополнение к реактивному манифесту.

Конференция. Это всё?

Нет. Не довольствуясь одной только конференций, ребята пытаются консолидировать архитектурное сообщество и наладить обмен знаниями, для чего организовали:

  • Специальное коммюнити «Архитектурные этюды«
  • Это стало следующим этапом развития ассоциации IT-архитекторов. Источником вдохновения послужила книга Нила Форда, Майкла Найгарда и Билла де Ора «97 этюдов для архитекторов программных систем» (97 Things Every Software Architect Should Know. Collective Wisdom from the Experts). В коммюнити совместно решают архитектурные проблемы. С момента запуска в марте 2023 года было разобрано 25 кейса, и сейчас разбирается 26-й.
ArchDays2023-arch-meetups
  • Русский перевод книги Влада Хононова «Изучаем DDD – предметно-ориентированное проектирование»
  • Книга произвела мировой фурор, так как была первой, где сжато, чётко и ясно была изложена суть DDD для всех, кто практикует его или пытается начать. Автор книги Влад Хононов много лет занимается внедрением DDD для решения задач в самых разных предметных областях. Его идеи – постоянный источник вдохновения, подпитывающий всё сообщество DDD. Организаторы специально отложили выпуск книги на год, чтобы успеть всё вычитать и исправить — прямой русский перевод был плохим и неточным. В итоге, книга пошла в печать и стала доступна как раз к открытию конференции.
Изучаем DDD

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

Автор
1705009115476 1
Yevgeny Gorbachev,

Advanced Java Developer at Setronica

Экспресс-консультация

1. Наш специалист свяжется с вами в ближайшее время.

2. В рамках консультации уточним необходимую информацию для анализа вашего проекта.

3. Команда аналитиков и разработчиков подготовят оценку по вашему проекту.

Экспресс-консультация