В данной статье предлагаем рассмотреть шины данных, интеграции и другие трендовые инструменты, которые используются для создания современных IT-архитектур.
Тренд на микросервисную архитектуру
В последние годы микросервисные IT-архитектуры активно конкурируют с монолитными, минусы которых стали очевидными с течением времени. Микросервисы же нейтрализуют свои недостатки за счёт новых технологий и подходов.
Некоторые заказчики до сих пор считают, что вести весь учёт в единой системе спокойнее и дешевле. Но рынок меняется, и мы видим, как затраты на поддержание микросервисной архитектуры становятся сравнимы с поддержанием неповоротливого монолита. Рынок IT пришёл к тому, что интеграция – это нестрашно. И самое главное – микросервисная архитектура позволяет бизнесу быстрее меняться, что крайне важно в наших реалиях.
Если есть два решения, которые хорошо выполняют свои задачи и дополняют друг друга, внедряйте оба эти решения. 20 решений? Значит внедряйте 20 решений. Обмен между системами будет осуществлён при помощи шин данных, которые и были созданы для выполнения таких задач.
Что из себя представляют шины данных – системы класса ESB
Шины данных – инструмент повышения надёжности интеграций и снижения издержек на их разработку и сопровождение.
Они выполняют следующие функции:
-
Гарантия доставки сообщений.
-
Асинхронный обмен данными.
-
Мониторинг состояния интеграций и визуализация топологии.
Обмен с использованием шин данных происходит на базе событий:
Пользователь завёл документ –> документ в режиме реального времени попал в интегрированную систему
Благодаря этому постепенно отмирает необходимость выгрузки данных.
Мы делим шины данных на две группы – монолитные и компонентные ESB-решения.
Монолитные ESB-решения
В монолитных решениях единый комплекс программ реализует все функции шины данных.
Монолитные шины данных:
-
Microsoft BizTalk
-
Oracle ESB
-
SAP ESB
-
Mule
-
Apache NIFI
ESB-монолиты отечественного производства:
-
Datareon – российское решение не на платформе "1С", но писалось в том числе и для того, чтобы работать с 1С. Само по себе довольно универсальное.
-
1C:Интеграция
-
1С:2is
Преимущества ESB-монолитов:
-
Можно внедрить силами интегратора, не привлекая свои трудовые ресурсы.
-
Как правило, имеют мощную визуализацию топологии.
-
Могут внедряться в nocode-варианте – настройка происходит в графическом интерфейсе программы.
Однако такие решения обойдутся бизнесу дороже компонентных: цена будет включать в себя стоимость самого продукта, обучение и время сотрудников, которое будет тратиться на поддержку ESB-монолита.
Компонентные ESB-решения
Компонентные шины данных состоят из отдельных модулей (компонентов), каждый из которых выполняет определённую функцию:
-
ETL/ELT-модули – трансформируют сообщения.
-
Брокеры сообщений – диспетчеризируют сообщения, обеспечивают асинхронный обмен.
-
Коннекторы к базам данных – нужны для того, чтобы транспорт сообщений и база данных могли "общаться".
-
Визуальная среда – обеспечивает наглядный мониторинг за производительностью и состоянием интеграций.
Компонентные шины данных прижились в 1С среде и нашей практике.
Преимущества компонентных шин данных:
-
Большинство из компонентов – это бесплатные open-source-решения.
-
Администрирование каждого компонента может выполнять та или иная служба, нет необходимости выделять целое подразделение под поддержание работы шины данных.
Из минусов – требуют более вдумчивого подхода. Здесь нет универсальных способов и внедрений "по шаблону": под каждый проект нужно грамотно подбирать эти инструменты.
Наша разработка – компонентная шина данных на базе RabbitMQ
RabbitMQ – транспорт сообщений. Он знает, от кого получить, что передать и в каком формате. Полностью поддерживает событийную интеграцию – большое количество небольших сообщений в момент времени.
Форматом обмена данными в нашем случае выступает популярный в 1С-среде Enterprise Data. Единый формат обмена – это удобно, потому что в таком случае не надо учить системы работать друг с другом.
У нас системы подчиняются одному формату, но это необязательно: RMQ поддерживает много форматов обмена данными, например, взаимодействие с внешними контрагентами и сервисами можно реализовывать на JSON, XML или Excel.
Помимо RMQ и универсального формата обмена данными, в нашей ESB-системе есть средства для визуализации обменов и средства для интеграционных тестов. При разработке, внедрении и дальнейшей поддержке информационной системы, например, 1С:ERP, мы непрерывно формируем сценарные тесты по интеграциям, тем самым заранее учим системы понимать, что такое успешный обмен. В нашем случае обмены тестирует Ванесса – инструмент сценарного тестирования, написанный на языке Gherkin.
Даже если документ пришёл из одной системы в другую, он мог быть неправильно трансформирован или неправильно проведён – это и проверяет Ванесса. Если возникла ошибка, администратор шины данных увидит её ещё до того, как рабочая среда информационных систем обновится. Так мы обеспечиваем высокую надёжность и бесконечную горизонтальную масштабируемость решения.
Преимущества нашего решения:
-
Нет высоких затрат на добавление новой системы
-
Поддержка небольшим количеством трудовых ресурсов
-
Низкая стоимость владения
-
Высокая производительность
Для эффективного обмена Rabbit MQ с продуктами "1С" используют специальные адаптеры. Мы работаем со следующими:
-
Адаптер от Silver Bulleters (yellow rabbit MQ)
-
БИТ.Адаптер
-
1C2RMQ от СофтБаланс
Помимо RMQ и универсального формата обмена данными, в нашей ESB-системе есть средства для визуализации обменов и средства для интеграционных тестов. При разработке, внедрении и дальнейшей поддержке информационной системы, например, 1С:ERP, мы непрерывно формируем сценарные тесты по интеграциям, тем самым заранее учим системы понимать, что такое успешный обмен. В нашем случае обмены тестирует Ванесса – инструмент сценарного тестирования, написанный на языке Gherkin.
Мониторинг состояния информационных систем
Производительность обменов в крупных корпорациях может быть проблемой. Но существуют методики мониторинга, которые позволяют следить за тем, чтобы уровень производительности оставался ннормальным. Визуализацию состояния обменов можно гибко настроить при помощи следующих инструментов:
- "Ситуационный центр" для мониторинга за ИС 1С:Корпорации
- Дашборды для администраторов баз данных: позволяют следить за тем, что происходит с системой, в режиме онлайн: Allure/Prometeus+Grafana
-
Непрерывное слежение за производительностью
- позволяет избавиться от эффекта плавного замедления
- расчет APDEX встроенными средствами в 1С:Корпорации
Визуализация производительности обменов, количества сообщений и т.д. на Rabbit MQ
Сервисоориентированная архитектура и поэтапное внедрение ERP
Важный тренд, связанный с сервисориентированной архитектурой, – поэтапное внедрение ERP-системы.
Как мы знаем, модули ERP-системы не могут быть изолированы друг от друга и внедряться независимо, из-за чего результат всего проекта заказчик видит уже в самом конце.
Современные IT-архитектуры позволяют разделить большой проект на этапы. Это происходит благодаря использованию гибких обменов, в том числе временных. С их помощью учёт не нагружается дополнительными трудозатратами: поэтапность внедрения реализуется через событийную интеграцию.
Как это выглядит на практике?
-
Внедряем управление справочниками.
-
Организуем интеграции.
-
Определяем очереди для запуска подсистем.
-
На каждом этапе появляются новые обмены и отмирают уже ненужные.
Ниже представлена реальная дорожная карта одного из наших проектов. Для поэтапного внедрения системы 1С:ERP нам потребовалось более 100 обменов, которые появлялись и упразднялись в течение трёх лет.
Такой подход позволяет реализовывать проекты на несколько тысяч пользователей, например, для перехода с 1С:УПП на 1С:ERP. Переводы "разом" теперь возможны только для микропредприятий.
Что есть кроме Rabbit MQ?
Кроме RMQ мы советуем присмотреться к следующим брокерам сообщений:
Apache – может своими встроенными средствами реализовать "откат" до любого состояния информационной системы в части обменов.
Redis – тоже быстрые и удобные обмены.
Tarantool – ещё одно отличное решение российского IT-рынка:
- NoSQL-СУБД – полноценная база данных
- In-Memory вычисления
- Использует частично компилируемый код – язык "LUA"
- Производительность на уровне самых сложных BigData-нагрузок
- 10 000 транзакций в секунду – легко!
- Можно реализовать: ETL/ELT, брокер сообщений, любую бизнес-логику
Изменения в IT, технологиях, бизнесе заставляют нас активно внедрять и использовать новые инструменты. Следите за трендами, не пренебрегайте open-source разработками, смотрите не только в сторону "1С". Правильно подобранные инструменты могут усилить нашу 1С:Предприятия и мы получим колоссальный бизнес-эффект.