Что такое - хорошая интеграция (Saint Highload-2021) — различия между версиями
(Новая страница: « 20-21.09.2021 [https://www.highload.ru/spb/2021/schedule Saint Highload-2021] [https://www.highload.ru/spb/2021/abstracts/7944 Доклад на сайте ко…») |
м (Массовая правка: замена PCRE ^ на {{RightNote|Еще про архитектуру}}) |
||
(не показано 5 промежуточных версий этого же участника) | |||
Строка 1: | Строка 1: | ||
+ | {{RightNote|[[:Категория:Архитектура|Еще про архитектуру]]}} | ||
20-21.09.2021 [https://www.highload.ru/spb/2021/schedule Saint Highload-2021] | 20-21.09.2021 [https://www.highload.ru/spb/2021/schedule Saint Highload-2021] | ||
[https://www.highload.ru/spb/2021/abstracts/7944 Доклад на сайте конференции] | [https://www.highload.ru/spb/2021/abstracts/7944 Доклад на сайте конференции] | ||
− | Видео | + | Видео https://youtu.be/BJnVWjvU2hk |
Хорошая интеграция — это не та, которая использует конкретную современную технологию, а та, которая устойчиво работает даже при ошибках и падениях интегрируемых систем, а службе сопровождения позволяет быстро и технологично разбирать инциденты. | Хорошая интеграция — это не та, которая использует конкретную современную технологию, а та, которая устойчиво работает даже при ошибках и падениях интегрируемых систем, а службе сопровождения позволяет быстро и технологично разбирать инциденты. | ||
Я проектировал интеграцию в множестве проектов, как между системами и сервисами собственной разработки, так и со сторонними системами. В докладе я поделюсь наработанными за 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 Посте] сделал краткий конспект доклада ([https://www.facebook.com/mtsepkov/posts/4425669337489986 мой репост]). За что я ему благодарен. | ||
+ | |||
+ | Максим Цепков. Полный зал. Что такое хорошая интеграция? | ||
+ | * Критерий выбора решения - не простота реализации, а простота разбора инцидентов. Хорошая админка. Разработчики должны понимать реалистичный сценарий. Поэтому они должны придумать средства решения проблем. Этот сценарий должен понимать и руководитель. Его надо выполнять в итоге. Админка не только показывает ошибку, но и позволяет с ней разобраться. Админка имеет свои средства мониторинга и настройка уведомлений. | ||
+ | * Устойчивые шаблоны. Шаблон UPSERT, как в Cassandra. Использовать идемпотентные операции, но их надо проектировать. Но можно работать без транзакций. Распределенные транзакции - зло. Консистентность без транзакций. Устойчивость к потерям и дублям. | ||
+ | * Понимание межсистемных взаимодействий. Синхронное. Асинхронное. Асинхронное реализовывать сложно. Реактивное, с коллбэком. Есть много сахара async. И потом много докладов как это не работает. Хаха. Надо рисовать взаимодействие. Ода против абстракций асинхронности. | ||
+ | * Транспорт данных. По прежнему файловый транспорт - хоршая штука. Смешной пример про файлы почтой. Любой транспорт можно использовать для любых целей. | ||
+ | * Устойчивость к расширению. | ||
+ | * Любая интеграция будет работать с ошибками разных уровней. При проектировании учитывайте работу с ошибками. | ||
+ | |||
+ | = Видео = | ||
+ | |||
+ | <html><iframe width="560" height="315" src="https://www.youtube.com/embed/BJnVWjvU2hk" title="YouTube video player" frameborder="0" allow="accelerometer; autoplay; clipboard-write; encrypted-media; gyroscope; picture-in-picture; web-share" allowfullscreen></iframe></html> | ||
= Презентация = | = Презентация = |
Текущая версия на 18:21, 7 декабря 2023
20-21.09.2021 Saint Highload-2021 Доклад на сайте конференции Видео https://youtu.be/BJnVWjvU2hk
Хорошая интеграция — это не та, которая использует конкретную современную технологию, а та, которая устойчиво работает даже при ошибках и падениях интегрируемых систем, а службе сопровождения позволяет быстро и технологично разбирать инциденты.
Я проектировал интеграцию в множестве проектов, как между системами и сервисами собственной разработки, так и со сторонними системами. В докладе я поделюсь наработанными за 25+ лет шаблонами проектирования взаимодействия систем и построения админки для работы с инцидентами. Что интересно, они практически не зависят от используемых технологических стеков.
Основой доклада послужили мои статьи на хабре
- Как сделать хорошую интеграцию? Часть 1
- Как сделать хорошую интеграцию? Часть 2. Идемпотентные операции — основа устойчивой интеграции
- Интеграция: синхронное, асинхронное и реактивное взаимодействие, консистентность и транзакции
В статьях по ряду вопросов много конкретики, но обзорно контента в докладе больше.
Конспект от Филиппа Кулина
Филипп Кулин в своем Посте сделал краткий конспект доклада (мой репост). За что я ему благодарен.
Максим Цепков. Полный зал. Что такое хорошая интеграция?
- Критерий выбора решения - не простота реализации, а простота разбора инцидентов. Хорошая админка. Разработчики должны понимать реалистичный сценарий. Поэтому они должны придумать средства решения проблем. Этот сценарий должен понимать и руководитель. Его надо выполнять в итоге. Админка не только показывает ошибку, но и позволяет с ней разобраться. Админка имеет свои средства мониторинга и настройка уведомлений.
- Устойчивые шаблоны. Шаблон UPSERT, как в Cassandra. Использовать идемпотентные операции, но их надо проектировать. Но можно работать без транзакций. Распределенные транзакции - зло. Консистентность без транзакций. Устойчивость к потерям и дублям.
- Понимание межсистемных взаимодействий. Синхронное. Асинхронное. Асинхронное реализовывать сложно. Реактивное, с коллбэком. Есть много сахара async. И потом много докладов как это не работает. Хаха. Надо рисовать взаимодействие. Ода против абстракций асинхронности.
- Транспорт данных. По прежнему файловый транспорт - хоршая штука. Смешной пример про файлы почтой. Любой транспорт можно использовать для любых целей.
- Устойчивость к расширению.
- Любая интеграция будет работать с ошибками разных уровней. При проектировании учитывайте работу с ошибками.
Видео
Презентация
Скачать весь pdf