AXForum  
Вернуться   AXForum > Прочие обсуждения > Курилка
CRM
Забыли пароль?
Зарегистрироваться Правила Справка Пользователи Сообщения за день Поиск Все разделы прочитаны

 
 
Опции темы Поиск в этой теме Опции просмотра
Старый 03.04.2021, 19:37   #1  
Lemming is offline
Lemming
Участник
Аватар для Lemming
 
1,017 / 294 (12) ++++++
Регистрация: 20.04.2004
Адрес: Москва, Чайнатаун в Люблино
Записей в блоге: 10
? Микросервисы в ERP
Многие сегодня говорят про так называемые микросервисы и что мол надо эту концепцию использовать в ERP. Честно говоря, я с трудом представляю как это можно было бы реализовать и предлагаю поразмышлять на эту тему.

Основным вопросом остается взаимодействие модулей. Когда мы в единой БД и едином приложении, из которого доступны все бизнес-сущности, мы можем строить и управлять картиной в целом, однако если все это разделить на несколько независимых "небольших" приложений, то сразу возникает вопрос их взаимодействия и обмена данными (пример из мира 1С, когда в компании используется три конфигурации: Бухгалтерия, Кадры, Торговля и данные между ними надо как-то склеивать и держать в актуальном для всех баз виде).

Так вот, для меня остается открытым вопрос о том, как например данные из сервиса Склад будут взаимодействовать с сервисом Главная книга? Если это две разные базы данных, то как мы будем обмениваться данными между ними, REST, SOAP, что-то ещё?

Кроме того, если падает общее приложение то все как бы понятно, поднимать надо все. Если же сервис Главная книга упал, а сервис Продажи ждет от него номер бухгалтерской операции, то чем это будет принципиально отличаться от падения общей БД/приложения?

В общем, идея с микросервисами выглядит с одной стороны заманчиво, потому что помогает избежать большой связанности, но с другой стороны не окажется ли использование микросервисной архитектуры таким же проблемным, каким, в некоторых случаях, оказываются ERP приложения с монолитной архитектурой?

Мысли, идеи, мнения? Вам слово!
Старый 03.04.2021, 20:08   #2  
MikeR is offline
MikeR
MCT
Аватар для MikeR
MCBMSS
Лучший по профессии 2015
Лучший по профессии 2014
 
1,627 / 628 (24) +++++++
Регистрация: 28.11.2005
Адрес: просто землянин
По определению микросервисы - это слабосвязанные модули, причем могут быть реализованы на разных языках и платформах.
Если рассматривать ERP, конкретно DAX, то это отсутствие единого АОС под все модули и единой базы данных.
У каждого модуля должен быть свой API, через который происходит общение с этим модулем.
Идеально, если вам не нравится, как реализован, допустим склад, то вы его заменяете на модуль склад другого поставщика. Допиливаете API по своим существующим модулями и вуаля у вас ERP с другим модулем склад.
Уже не имеет смысл рассматривать интеграции с 1С или еще чем- то, так как у вас каждый модуль отделен. И вам без разницы с каким модулем у вас работает, допустим, модуль производство. API есть, оно работает, данными обменивается.
У вас в качестве модуля главной книги очень может быть 1С.
Модули обмениваются через шину данных.
Если у вас, допустим упал модуль расчеты с персоналом, то остальные модули продолжают работать.
Минусом этого, однозначно, будет сложность администрирования и управления всеми частями.
__________________
Axapta book for developer

Последний раз редактировалось MikeR; 03.04.2021 в 20:10.
За это сообщение автора поблагодарили: Lemming (5), Sancho (1).
Старый 03.04.2021, 21:37   #3  
mazzy is offline
mazzy
Участник
Аватар для mazzy
Лучший по профессии 2015
Лучший по профессии 2014
Лучший по профессии AXAWARD 2013
Лучший по профессии 2011
Лучший по профессии 2009
 
29,270 / 4111 (196) ++++++++++
Регистрация: 29.11.2001
Адрес: Москва
Записей в блоге: 10
Цитата:
Сообщение от MikeR Посмотреть сообщение
У каждого модуля должен быть свой API, через который происходит общение с этим модулем.
Согласен с MikeR.
И сейчас взаимодействие между "модулями" происходит через публичный интерфейс классов. Никто ж в здравом уме не пишет финансовые проводки вручную, а обращаются к классам LedgerVoucher*

другое дело, что классы в аксапте слишком много знают друг о друге.

Цитата:
Сообщение от Lemming Посмотреть сообщение
Кроме того, если падает общее приложение то все как бы понятно, поднимать надо все. Если же сервис Главная книга упал, а сервис Продажи ждет от него номер бухгалтерской операции, то чем это будет принципиально отличаться от падения общей БД/приложения?
да, люди столкнулись с этой проблемой.
в результате пришли к стандартизированным менеджерам очередей для сообщений.

сейчас это RabbitMQ, Kafka и подобные (эти живут и здравствуют)
Раньше в виндах был MicrosoftMQ и BizTalk (эти умерли)

Цитата:
Сообщение от Lemming Посмотреть сообщение
В общем, идея с микросервисами выглядит с одной стороны заманчиво, потому что помогает избежать большой связанности, но с другой стороны не окажется ли использование микросервисной архитектуры таким же проблемным, каким, в некоторых случаях, оказываются ERP приложения с монолитной архитектурой?
Ну... на самом деле не очень.
История повторяется:
1. раньше были "мощные" мэйнфреймы и тупые терминалы.
2. решили что это не гибко и монстроидально, начали в персональные компьютеры
3. персональные компьютеры изначально были персональными и плохо работали в сети.
4. затем появились сетевой инструментарий для персональных компьютеров
5. теперь снова уходит "в облака", где работают мощные "мэйнфреймы", а персональные компьютеры являются тупыми терминалами по большей части

идея с микросервисами - примерно то же самое.
она привлекательна только для небольших и независимых команд разработчиков.

для совместной работы больших команд микросервисы неудобны и тяжело администрируемы.
читать "монорепа", "моно репозитарий"

если говорить в терминах аксапты,
то кажется, что главная книга, склад, производство и... та-дам... сводное планирование, например, очень хорошо выносится в микросервисы.

Майкрософт так и сделал со сводным планированием. Можно почитать отзывы, посмотреть на результат, так сказать

но когда с уровня космического архитектора спускаешься на уровень реализации, тут же выясняется, что в ERP есть много действительно общих вещей. Валюты и валютные курсы например. Особенно с учётом разных стран, кросс-курсов, управляемых курсов типа УЕ.
А также нормативные справочники типа налоговых инспеций, ИНН/КПП. В Аксапте DirInfo, не к ночи будь помянут... Даже тривиальные финансовые периоды, которые в Аксапте в модуле главной книги. И даже в существующей аксапте они не очень используются....

Стоит примерить как придется реализовать ЭТО в парадигме микросервисов. И сколько этих микросервисов придется сделать.

С другой стороны, микрсервисы - это именно такие справочники, а не сводное планирование
__________________
Полезное на axForum, GitHub, Facebook, mazzy.priot, mazzy.music, coub.
За это сообщение автора поблагодарили: Lemming (5).
Старый 03.04.2021, 22:13   #4  
skuull is offline
skuull
Участник
Most Valuable Professional
Лучший по профессии 2014
 
668 / 691 (25) +++++++
Регистрация: 08.03.2013
Адрес: ХЗ
Есть же ещё сервис для on hand https://docs.microsoft.com/en-us/dyn...ory-visibility реализованный на Dataverse и судя по слайдам это первый из многих. Далее обещают сервис для цен.
Старый 05.04.2021, 10:31   #5  
George Nordic is offline
George Nordic
Модератор
Аватар для George Nordic
Злыдни
 
4,463 / 1110 (46) ++++++++
Регистрация: 17.12.2003
Адрес: Moscow
Записей в блоге: 9
Цитата:
Сообщение от Lemming Посмотреть сообщение
Основным вопросом остается взаимодействие модулей. Когда мы в единой БД и едином приложении, из которого доступны все бизнес-сущности, мы можем строить и управлять картиной в целом, однако если все это разделить на несколько независимых "небольших" приложений, то сразу возникает вопрос их взаимодействия и обмена данными (пример из мира 1С, когда в компании используется три конфигурации: Бухгалтерия, Кадры, Торговля и данные между ними надо как-то склеивать и держать в актуальном для всех баз виде).

Так вот, для меня остается открытым вопрос о том, как например данные из сервиса Склад будут взаимодействовать с сервисом Главная книга? Если это две разные базы данных, то как мы будем обмениваться данными между ними, REST, SOAP, что-то ещё?

Кроме того, если падает общее приложение то все как бы понятно, поднимать надо все. Если же сервис Главная книга упал, а сервис Продажи ждет от него номер бухгалтерской операции, то чем это будет принципиально отличаться от падения общей БД/приложения?
А почему именно микросервисы? Потому что модно? Вообще-то, они в основном нужны для быстрого развертывания, например когда на сайт заходит не 5, а 50 000 человек - в обычной архитектуре сайт бы упал, но при использовании докеров просто поднимается куча готовых виртуалок с преднастроенными сервисами, которые отрабатывают запрос. Валидна ли подобная технология для ERP - вопрос открытый.

С другой стороны, можно посмотреть как работает Oracle Fusion. В ERP есть "сердце" - основные справочники (номенклатура, план счетов, валюта) и транзакционные таблицы (главная книга, перемещение номенклатуры). Данные справочники едины для всех модулей, которые являются расширением базового функционала. Т.е. все модули видят, какой товар есть в наличии на каком складе, а где именно он лежит - знает только модуль WMS. Если WMS упал - ну, чините, ничего страшного, система работает. CRM - видит список компаний и контактов, а как именно с ними ведется работа - знает только сам CRM, который, в свою очередь, может выдавать информацию о заказе или предполагаемых заказах, основанную на оценке стадии сделки и её предполагаемой сумме. И подобные модули являются расширением стандартного функционала системы, без которого она может работать, но которые дополняют и расширяют стандартную функциональность.

Таким образом, Fusion выступает как сервер приложений, который обеспечивает контроль доступа, работу с БД и шину данных.

Если и писать "микросервисы", то логичнее их писать не к БД напрямую, а к подобному серверу приложений.

Но у меня не вяжется "микроcервис" и, например, "WMS". Микросервис ближе к мобильному рабочему месту оператора, чем к модулю ERP.

С Уважением,
Георгий.
За это сообщение автора поблагодарили: mazzy (2), Lemming (5).
Старый 05.04.2021, 12:38   #6  
trud is offline
trud
Участник
Лучший по профессии 2017
 
966 / 1334 (46) ++++++++
Регистрация: 07.06.2003
Записей в блоге: 1
Цитата:
Сообщение от mazzy Посмотреть сообщение
Майкрософт так и сделал со сводным планированием. Можно почитать отзывы, посмотреть на результат, так сказать
Ну кстати по поводу сделал - если посмотреть список тех настроек стандартных сводного планирования что не поддерживается этим сервисом, он просто огромен, т.е. сделали какую-то упрощенную модель. Можно посмотреть по словам - not supported и pending
https://docs.microsoft.com/en-us/dyn...n-fit-analysis

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

Микросервисы это все же про людей, а не про техническую составляющую, вот просто отличное видео, которое раскрывает проблему
https://www.youtube.com/watch?v=gfh-VCTwMw8
За это сообщение автора поблагодарили: mazzy (2), cuba (1), Lemming (5).
Теги
erp, микросервисы

 

Похожие темы
Тема Автор Раздел Ответов Посл. сообщение
ERP как залежи говнокода mazzy Курилка 18 02.04.2011 19:21
Русский вопрос - разборки по понятиям на рынке ERP (Предпроект) Мартынов Дмитрий Курилка 28 16.02.2011 11:56
ERP-системы — мэйнстрим или тупиковая ветвь? slava09 Курилка 30 26.09.2010 18:00
О причинах неудачных внедрений ERP Poleax Курилка 4 11.09.2010 16:29
Опции темы Поиск в этой теме
Поиск в этой теме:

Расширенный поиск
Опции просмотра

Ваши права в разделе
Вы не можете создавать новые темы
Вы не можете отвечать в темах
Вы не можете прикреплять вложения
Вы не можете редактировать свои сообщения

BB коды Вкл.
Смайлы Вкл.
[IMG] код Вкл.
HTML код Выкл.
Быстрый переход

Рейтинг@Mail.ru
Часовой пояс GMT +3, время: 00:18.
Powered by vBulletin® v3.8.5. Перевод: zCarot
Контактная информация, Реклама.