Что такое - хорошая интеграция (Saint Highload-2021)

20-21.09.2021 Saint Highload-2021
Доклад на сайте конференции
Видео https://youtu.be/BJnVWjvU2hk 

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

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

Основой доклада послужили мои статьи на хабре

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

Do you want to try some new features? By joining the beta, you will get access to experimental features, at the risk of encountering bugs and issues.

Ок Нет, спасибо

Конспект от Филиппа Кулина

Филипп Кулин в своем Посте сделал краткий конспект доклада (мой репост). За что я ему благодарен.

Максим Цепков. Полный зал. Что такое хорошая интеграция?

  • Критерий выбора решения - не простота реализации, а простота разбора инцидентов. Хорошая админка. Разработчики должны понимать реалистичный сценарий. Поэтому они должны придумать средства решения проблем. Этот сценарий должен понимать и руководитель. Его надо выполнять в итоге. Админка не только показывает ошибку, но и позволяет с ней разобраться. Админка имеет свои средства мониторинга и настройка уведомлений.
  • Устойчивые шаблоны. Шаблон UPSERT, как в Cassandra. Использовать идемпотентные операции, но их надо проектировать. Но можно работать без транзакций. Распределенные транзакции - зло. Консистентность без транзакций. Устойчивость к потерям и дублям.
  • Понимание межсистемных взаимодействий. Синхронное. Асинхронное. Асинхронное реализовывать сложно. Реактивное, с коллбэком. Есть много сахара async. И потом много докладов как это не работает. Хаха. Надо рисовать взаимодействие. Ода против абстракций асинхронности.
  • Транспорт данных. По прежнему файловый транспорт - хоршая штука. Смешной пример про файлы почтой. Любой транспорт можно использовать для любых целей.
  • Устойчивость к расширению.
  • Любая интеграция будет работать с ошибками разных уровней. При проектировании учитывайте работу с ошибками.

Видео

Презентация