Что такое - хорошая интеграция (Saint Highload-2021) — различия между версиями

Материал из MaksWiki
Перейти к: навигация, поиск
(Новая страница: « 20-21.09.2021 [https://www.highload.ru/spb/2021/schedule Saint Highload-2021] [https://www.highload.ru/spb/2021/abstracts/7944 Доклад на сайте ко…»)
 
м
Строка 6: Строка 6:
  
 
Я проектировал интеграцию в множестве проектов, как между системами и сервисами собственной разработки, так и со сторонними системами. В докладе я поделюсь наработанными за 25+ лет шаблонами проектирования взаимодействия систем и построения админки для работы с инцидентами. Что интересно, они практически не зависят от используемых технологических стеков.
 
Я проектировал интеграцию в множестве проектов, как между системами и сервисами собственной разработки, так и со сторонними системами. В докладе я поделюсь наработанными за 25+ лет шаблонами проектирования взаимодействия систем и построения админки для работы с инцидентами. Что интересно, они практически не зависят от используемых технологических стеков.
 +
 +
Основой доклада послужили мои статьи на хабре
 +
* [https://habr.com/ru/company/oleg-bunin/blog/534090/ Как сделать хорошую интеграцию? Часть 1]
 +
* [https://habr.com/ru/company/oleg-bunin/blog/538156/ Как сделать хорошую интеграцию? Часть 2. Идемпотентные операции — основа устойчивой интеграции]
 +
* [https://habr.com/ru/company/oleg-bunin/blog/543946/ Интеграция: синхронное, асинхронное и реактивное взаимодействие, консистентность и транзакции]
 +
В статьях по ряду вопросов много конкретики, но в целом материалов больше.
 +
 +
= Конспект от Филиппа Кулина =
 +
 +
Филипп Кулин в своем [https://www.facebook.com/phil.kulin/posts/4309025875817777 Посте] сделал краткий конспект доклада. За что я ему благодарен.
 +
 +
Максим Цепков. Полный зал. Что такое хорошая интеграция?
 +
* Критерий выбора  решения - не простота реализации, а простота разбора инцидентов. Хорошая админка. Разработчики должны понимать реалистичный сценарий. Поэтому они должны придумать средства решения проблем. Этот сценарий должен понимать и руководитель. Его надо выполнять в итоге. Админка не только показывает ошибку, но и позволяет с ней разобраться. Админка имеет свои средства мониторинга и настройка уведомлений.
 +
* Устойчивые шаблоны. Шаблон  UPSERT, как в Cassandra. Использовать идемпотентные операции, но их надо проектировать. Но можно работать без транзакций. Распределенные транзакции - зло. Консистентность без транзакций. Устойчивость к потерям и дублям.
 +
* Понимание межсистемных взаимодействий.  Синхронное. Асинхронное. Асинхронное реализовывать сложно. Реактивное, с коллбэком. Есть много сахара async. И потом много докладов как это не работает. Хаха. Надо рисовать взаимодействие. Ода против абстракций асинхронности.
 +
* Транспорт данных. По прежнему файловый транспорт - хоршая штука. Смешной пример про файлы почтой. Любой транспорт можно использовать для любых целей.
 +
* Устойчивость к расширению.
 +
* Любая интеграция будет работать с ошибками разных уровней. При проектировании учитывайте работу с ошибками.
  
 
= Презентация =
 
= Презентация =

Версия 11:32, 22 сентября 2021

20-21.09.2021 Saint Highload-2021
Доклад на сайте конференции
Видео ожидается

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

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

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

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

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

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

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

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

Презентация

Скачать весь pdf
Integration-HighloadSpb2021-Tsepkov.pdf Integration-HighloadSpb2021-Tsepkov.pdf Integration-HighloadSpb2021-Tsepkov.pdf Integration-HighloadSpb2021-Tsepkov.pdf Integration-HighloadSpb2021-Tsepkov.pdf Integration-HighloadSpb2021-Tsepkov.pdf Integration-HighloadSpb2021-Tsepkov.pdf Integration-HighloadSpb2021-Tsepkov.pdf Integration-HighloadSpb2021-Tsepkov.pdf Integration-HighloadSpb2021-Tsepkov.pdf Integration-HighloadSpb2021-Tsepkov.pdf