Впечатления от Software Architecture Conference 2019 в Берлине (part I)

Alexander Polomodov
Nov 6 · 8 min read

В середине июля я анонсировал посещение конференции OReilly по архитектуре программного обеспечения. И вот в начале ноября я посетил это мероприятие и готов поделиться впечатлениями.

Дни перед конференцией

Полет на конференцию не задался с самого начала — мы с задержкой погрузились 3 ноября в Boeing 737 в Шереметьево. Как только все расселись, нас попросили встать и выйти. Через 2 часа мы улетали на сменном самолете той же марки и с той же командой:)

Долетели до Берлина благополучно и сели. Дальше был квест, в котором мы пытались найти водителя, вызванного по Uber. Причем искали красный Hyundai, как было указано в приложении, а надо было искать черный Mercedes, который приехал в итоге:)

Заселение в отдель прошло успешно, причем нас вертикально расшардировали по разным этажам, что никак не повлияло на наше желание пойти прогуляться по городу. Правда, в Берлине сейчас темнеет рано, поэтому мы гуляли уже в темноте:) Необработанные фотографии, можно посмотреть в моих facebook постах (1, 2). Дальше мы встретили друзей, которые переехали в Берлин, и немного посидели употребив некоторое количество крафтового пива.

4 ноября я понял, что счастье — это возможность выспаться после воскресного вечера, а не бежать рано утром на тренинги от маститых бородочей в здании City Cube. А все дело в том, что мы с Антоном Костериным решили в отличие от наших коллег записаться на краткие тьюториалы, проходящие 5 ноября, а им предстояло посетить двухдневный тренинг:)

В итоге, мы с Антоном после того, как пришли в себя, отправились гулять по Берлину. Погода немного подкачала и вышли мы под надкрапывающий дождик, который приближал берлинскую погоду к питерской:)

Из самого интересного в этот день можно выделить разве что:

  • прогулку по центру Берлину
  • посещение уютного зоопарка с битвой кергуру, задумчивой гориллой и дургими животными, которые были засняты мной, но все еще не обработаны:)
  • а дальше был гастропаб Gasthaus Krombach Berlin с отличной едой и хорошим пивом — определенно рекомендую посетить
  • ну и закончилось все прогулкой домой и околорекордными 30 тысячами шагов на моих умных часах

Впереди нас ждал первый день конференции.

Мой первый день

Вообще, конференция проходила в современном конференц-центре CityCube, который выполнен в индустриальном стиле из стекла и бетона, который даже не требует дополнительной отделки.

O’Reilly Software Architecture Conference проходил в CityCube:)

В день тьюториалов было всего 2 минитренинга по 3.5 часа, разделеленных обедом. До обеда я выбрал посещение

Event storming for domain-driven design modeling

Данный тренинг был довольно странным. Меня смутили несколько моментов:

  • аудитория тренинга была 200 человек и на них приходилось всего 2 фасилитатора
  • в такой конфигурации мы пытались провести big picture event storming воркшоп на тему покупки билетов в кино онлайн
  • минимум теории и максимум практики, но без достаточного внимания помощников — это крайне сомнительный рецепт
  • отсутствие экспертов предметной области — если не считать экспертами покупателей билетов:)

В итоге, после того, как тренинг перевалил за экватор, я начал читать книгу “Event Storming” автора этого подхода Alberto Brandolini. Книга определенно хороша и гораздо точнее и полнее раскрывает подход. Автор довольно тонко описывает проблематику разработки ПО и как event storming помогает в этих ситуациих. Забавно, что книга опубликована на leanpub уже несколько лет, но до сих пор не окончена.

В общем, спасибо ведущим воркшопа, что показали как event storming работает на практике, хотя скорее в песочнице, где не было совков и формочек и куличики приходилось лепить руками:) Но основное, что я вынес отсюда — это книга, которую я в тот же вечером прочел на треть.

Дальше был обед, который не стоит особого упоминания и дальше наступило время второго тренинга, который назывался

How do I game design: Architecting games to expand your thinking

Этот тренинг мне показлся интересным, т.к. мне всегда нравилась теория игр в общем и конкретные игры в частности. Что тут говорить, если я порядка 7 лет занимался шахматами (сложно назвать частые походы в спортивную школу на тренировки игрой). Состав спикеров был качественным и состоял из сотрудников Secret Lab, университета Тасмании, и фрилансера. Ребята анонсировали рассмотрение вопросов:

  • почему игры работают, а также как их анализировать, проектировать и создавать завораживающий опыт
  • фреймворк “mechanics-dynamics-aesthetics framework”: почему он хорош и для чего его использовать
  • как понять что происходит в игре и как ее модифицировать
  • как применять все эти знания вне игр, а именно в командной работе, работе над проектами или архитектурой

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

В общем, этот тренинг для меня завершился предварительно, но он не оставил ощущение провально потраченного времени:) И я решил, что почитаю книги авторов на досуге.

Дальше была прогулка по вечернему Берлину и отход ко сну, чтобы свежим прийти на второй день.

Второй день

Второй день для меня начался как обычно с завтрака в отеле Novum Hotel Kronprinz Berlin, отель довольно старый, но уютный и заполненный в основном аборигенами, а не туристами:) Дальше 20 минут прогулки и мы снова в CityCube, который встретил нас толпой людей, для которых конференция началась именно со среды.

В любом случае я отправился на доклад про автономные API

Autonomous APIs: Navigation in complex landscapes

Пожалуй рассказ про этот доклад надо начать с разбора название, а оно достаточно хайповое. Кто не слышал про autonomous cars? Вот собственно эту тематику и обыграл автор, указав, что люди на каждом шагу говорят про самодвижущиеся повозки, а сопряжением разных api’шек до сих пор занимаются люди:)

В итоге, Zdenek рассказал про сдвиг парадигмы, который включал следующие шаги:

  • customer Spacific API с интеграциями типа one-to-one
  • generic APIs с интеграциями one-to-many, где один провайдер обеспечивает много consumer’ов
  • harmonized APIs — здесь у нас появляется uber-like посредник, который гармонизирует API провайдеров и предоставляет cosumer’ам единое окн
  • autunomy API — автономные API, в которых люди нужны для того, чтобы задать семантику предметной области, а дальше машины разберутся сами

Дальше автор вводит 5 уровней автономности API (как он говорит, что 5 уровней автономности получилось безотносительно того, что есть 5 уровней автономности self driving cars). И эти уровни:

  1. brittle system
  2. documented brittle system
  3. automated system
  4. decoupled automated system
  5. autonomous system

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

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

После кофе брейка, в котором я употреблял сок, а не кофе, я отправился на следующий доклад про то, как добиться успеха в качестве лидера архитектурной команды

Beyond the technical: Succeed at leading a software architecture team

Неплохой доклад от Maggie Carroll на тему того, как жить главному архитектору. Основная мысль о том, что нам нужны ренновации и интеграция работы остальных. Чтобы все это сделать надо как-то интегрировать интересы всех стейкхолдеров. Для этого стоит начинать имея в уме конечную цель. Мегги приводит свой способ работы со стейкхолдерами, который начинается с составления контактного листа, а дальше он постепенно наполняется содержимым, где появляются позиции стейкхолдеров, список встреч с ними (с каждым по отдельности или в группах), периодичность встреч и их агенда.

Мегги советует определить руководящие принципы enterprise architecture и использовать их в своей повседневной работе, а также во время встреч. Интересно замечание, что влияние можно получить только с ownership. Поэтому Мегги старается расширять свою зону ответственности, чтобы быть полезной, а не просто архитектором в высоком замке:)

Дальше наступил обед, котрый принес с собой очереди и довольно качественную еду:) После обеда пришло время трех keynote докладов. Кстати, меня повеселило, что ведущие keynote сессии: Christopher Guzikowski, Neal Ford не знают слайдов и читают с суфлер экрана, находящегося перед сценой. Причем читают настолько топорно, что, сидя в первом ряду, легко заметить это:) Первым аннонсировали выступление Brian Sletten из Bosatsu Consulting, посвященное современным ml архитектурам

Modern machine learning architectures: Data and hardware and platform, oh my

Честно говоря, в этом докладе нам рассказали много общих слов и мало практической сути. Это стандартный keynote доклад, который без изменения можно было прочитать как год назад, так и в следующем году. В общем, Браян говорил правильные вещи, но ему стоило выйти не в прикиде разработчика (черная футболка и сандали на босу ногу), а в костюме КО.

Next data platform architecture: Distributed data mesh

Дальше на сцену вышла Zhamak Dehghani и рассказала про Data Mesh, которая по мнению экспертов из ThoughtWorks придет на смену озёрам данных:) Доклад был интересным и полезным, но лучше прочитать референсную статью от Zhamak на сайте Мартина Фаулера.

И закрывала keynote сессию Cheryl Hung из CNCF, которая рассказала то, что она обычно расскаывает, а именно про cloud native

The New Norms of Cloud Native

Этот keynote доклад был очень похож на keynote доклад, который я видел в Барселоне на Kubecon EU 2019. Вот ссылка на версию из Барсы

После этого наступил 40-минутный брейк, 5 минут которого потребовалось на то, чтобы выйти из самого большого зала, где проходила keynote сессия.

How do we take architectural decisions in eBay Classifieds Group

Engin Yöyen интересно рассказал о том, как принимаются архитектурные решения. Конечно, он рассказывал с позиции архитектора, который тянет команду к знаниям, но ключевые принципы и практики в eBay Classified Group направлены на самооргонизацию команд. Вот основные ключевые моменты доклада:

  • engineers are empowered to lead
  • group of architects working across teams, ensuring a scalable platform
  • architects are playing supportive role and solving conflicts between different parties
  • high level architectural decision requires consensus among teams
  • delegation levels
  • ADRs to record as well as collaborate on decisions

Ну и напоследок привычное утверждение насчет культуры: “Culture is a reflection of how an organization thinks and acts”. А дальше как от культуры перейти к конкретным людям “Therefore, any improvement starts with empowering each individual”.

Конечно, я не смог в паре абзацев изложить весь этот доклад, но он определенно хорош и стоит того, чтобы я его внимательно пересмотрел.

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

7 years of domain-driven design: Tackling complexity in large-scale marketing systems

Vladik Khononov интересно рассказал про то, как компания, изначально работавшая по DDD, запускала 5 разных систем. И главное какие они баги словили в каждой из них, а также какие выводы сделали. В общем, это рассказ с позиции выжившего профессионала, который обладает изрядной долей юмора и готов смеяться над собой. Определенно стоит более внимательно пересмотреть этот доклад, т.к. сходу запомнить расположение граблей не получилось.

После окончания доклада Владика я отправился слушать про опыт финтех компании N26 относительно открытия бизнеса в другой стране

On launching a distributed system to global markets

Это был довольно интересный доклад от Kat Liu, которая раньше работала в N26 и рассказывала про опыт принятия архитектурных решений при запуске бизнеса N26 в США, когда бизнес в Европе уже был отлажен. В принципе, доклад интересн деталями относительно того, как принимались решения переиспользовать ли наработки или делать независимые приложения (мобильные и бекенд). Довольно неплохо описывается как принимать решение (правда, никакого rocket science здесь нет). Но сама вынесенная проблема кажется излишне простой —как настроить аутентификацию пользователей, если у нас два инстанса приложения и мы не должны ходить для каждого пользователя в оба, а ходить за его данными только в тот бекенд, где они лежат. Итоговая общая табличка для хранения хешированных ключей и номеров шардов, где они расположены очень проста, это по сложности даже не consistent hashing и вот это все:)

The end of second day

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

To be continued …

P.S.

Продолжение здесь

Alexander Polomodov

Written by

Chief technology officer at acquisition department of Tinkoff. Bachelor at applied math, Master at system analysis, postgraduate studies at economics.

Welcome to a place where words matter. On Medium, smart voices and original ideas take center stage - with no ads in sight. Watch
Follow all the topics you care about, and we’ll deliver the best stories for you to your homepage and inbox. Explore
Get unlimited access to the best stories on Medium — and support writers while you’re at it. Just $5/month. Upgrade