В данной статье предлагаем рассмотреть шины данных, интеграции и другие трендовые инструменты, которые используются для создания современных 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 от СофтБаланс
Мониторинг состояния информационных систем
Производительность обменов в крупных корпорациях может быть проблемой. Но существуют методики мониторинга, которые позволяют следить за тем, чтобы уровень производительности оставался нормальным. Визуализацию состояния обменов можно гибко настроить при помощи следующих инструментов:
- "Ситуационный центр" для мониторинга за ИС 1С:Корпорации
- Дашборды для администраторов баз данных: позволяют следить за тем, что происходит с системой, в режиме онлайн: Allure/Prometeus+Grafana.
- Непрерывное слежение за производительностью
- позволяет избавиться от эффекта плавного замедления
- расчет APDEX встроенными средствами в 1С:Корпорации
Сервисоориентированная архитектура и поэтапное внедрение ERP
Важный тренд, связанный с сервисориентированной архитектурой, – поэтапное внедрение ERP-системы.
Как мы знаем, модули ERP-системы не могут быть изолированы друг от друга и внедряться независимо, из-за чего результат всего проекта заказчик видит уже в самом конце.
Современные IT-архитектуры позволяют разделить большой проект на этапы. Это происходит благодаря использованию гибких обменов, в том числе временных. С их помощью учёт не нагружается дополнительными трудозатратами: поэтапность внедрения реализуется через событийную интеграцию.
Как это выглядит на практике?
1. Внедряем управление справочниками.
2. Организуем интеграции.
3. Определяем очереди для запуска подсистем.
4. На каждом этапе появляются новые обмены и отмирают уже ненужные.
Ниже представлена реальная дорожная карта одного из наших проектов. Для поэтапного внедрения системы 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С:Предприятие и мы получим колоссальный бизнес-эффект.