8 (800) 201 33 09
Заказать звонок
Автоматизация роботизированных процессов. Robotic process automation (RPA).
Портал про RPA 2.0
Портал про RPA
Вендоры
Интеграторы
Разработчики
Готовые роботы
Академия
  • Об Академии
  • Курс «RPA Developer»
  • Вводный инструктаж по применению RPA-роботов в процессах предприятия.
  • Курс «RPA-роботизация бухгалтерии»
  • Вебинар
  • Трудоустройство
Маркетплейс
  • PIX Robotics
    PIX Robotics
    • Лицензии PIX Robotics
  • Primo RPA
    Primo RPA
    • Лицензии Primo RPA
  • Robin
    Robin
    • Лицензии Robin
  • Sherpa RPA
    Sherpa RPA
    • Лицензии Sherpa RPA
  • ROOMY bots
    ROOMY bots
    • Лицензии ROOMY bots
  • Р.бот
    Р.бот
    • Лицензии Р.бот
  • OneRPA
    OneRPA
    • Лицензии OneRPA
  • Lexema-RPA
    Lexema-RPA
    • Лицензии Lexema-RPA
    • Обучение Lexema-RPA
  • ELMA RPA
    ELMA RPA
    • Лицензии ELMA RPA
  • Python RPA
    Python RPA
    • Лицензии Python RPA
  • Reprass RPA
    Reprass RPA
    • Лицензии Reprass RPA
  • NTT Russia
    NTT Russia
    • Лицензии Windirector
  • Roboteur
    Roboteur
    • Лицензии Roboteur
  • UiPath
    UiPath
    • Лицензии UiPath
    • Обучение UiPath
  • Blue Prism
    Blue Prism
    • Лицензии Blue Prism
  • Automation Anywhere
    Automation Anywhere
    • Лицензии Automation Anywhere
  • ElectroNeek
    ElectroNeek
    • Лицензии ElectroNeek
    • Обучение ElectroNeek
Платформы
  • RPA Платформы
  • Рейтинг RPA платформ 2023
  • Рейтинг RPA платформ 2022
Кейсы
Интеграторы
Mероприятия
  • Конференции
  • Вебинары
  • Мастер-классы
Трудоустройство
Контакты
Ещё
    Портал про RPA 2.0
    Меню  
    • Академия
      • Об Академии
      • Курс «RPA Developer»
      • Вводный инструктаж по применению RPA-роботов в процессах предприятия.
      • Курс «RPA-роботизация бухгалтерии»
      • Вебинар
      • Трудоустройство
    • Маркетплейс
      • PIX Robotics  
        • Лицензии PIX Robotics
      • Primo RPA  
        • Лицензии Primo RPA
      • Robin  
        • Лицензии Robin
      • Sherpa RPA  
        • Лицензии Sherpa RPA
      • ROOMY bots  
        • Лицензии ROOMY bots
      • Р.бот  
        • Лицензии Р.бот
      • OneRPA  
        • Лицензии OneRPA
      • Lexema-RPA  
        • Лицензии Lexema-RPA
        • Обучение Lexema-RPA
      • ELMA RPA  
        • Лицензии ELMA RPA
      • Python RPA  
        • Лицензии Python RPA
      • Reprass RPA  
        • Лицензии Reprass RPA
      • NTT Russia  
        • Лицензии Windirector
      • Roboteur  
        • Лицензии Roboteur
      • UiPath  
        • Лицензии UiPath
        • Обучение UiPath
      • Blue Prism  
        • Лицензии Blue Prism
      • Automation Anywhere  
        • Лицензии Automation Anywhere
      • ElectroNeek  
        • Лицензии ElectroNeek
        • Обучение ElectroNeek
    • Платформы
      • RPA Платформы
      • Рейтинг RPA платформ 2023
      • Рейтинг RPA платформ 2022
    • Кейсы
    • Интеграторы
    • Mероприятия
      • Конференции
      • Вебинары
      • Мастер-классы
    • Трудоустройство
    • Контакты
    Заказать звонок
    8 (800) 201 33 09
    Портал про RPA 2.0
    Телефоны
    8 (800) 201 33 09
    Заказать звонок
    • Главная
    • Академия
      • Назад
      • Академия
      • Об Академии
      • Курс «RPA Developer»
      • Вводный инструктаж по применению RPA-роботов в процессах предприятия.
      • Курс «RPA-роботизация бухгалтерии»
      • Вебинар
      • Трудоустройство
    • Маркетплейс
      • Назад
      • Маркетплейс
      • PIX Robotics
        • Назад
        • PIX Robotics
        • Лицензии PIX Robotics
      • Primo RPA
        • Назад
        • Primo RPA
        • Лицензии Primo RPA
      • Robin
        • Назад
        • Robin
        • Лицензии Robin
      • Sherpa RPA
        • Назад
        • Sherpa RPA
        • Лицензии Sherpa RPA
      • ROOMY bots
        • Назад
        • ROOMY bots
        • Лицензии ROOMY bots
      • Р.бот
        • Назад
        • Р.бот
        • Лицензии Р.бот
      • OneRPA
        • Назад
        • OneRPA
        • Лицензии OneRPA
      • Lexema-RPA
        • Назад
        • Lexema-RPA
        • Лицензии Lexema-RPA
        • Обучение Lexema-RPA
      • ELMA RPA
        • Назад
        • ELMA RPA
        • Лицензии ELMA RPA
      • Python RPA
        • Назад
        • Python RPA
        • Лицензии Python RPA
      • Reprass RPA
        • Назад
        • Reprass RPA
        • Лицензии Reprass RPA
      • NTT Russia
        • Назад
        • NTT Russia
        • Лицензии Windirector
      • Roboteur
        • Назад
        • Roboteur
        • Лицензии Roboteur
      • UiPath
        • Назад
        • UiPath
        • Лицензии UiPath
        • Обучение UiPath
      • Blue Prism
        • Назад
        • Blue Prism
        • Лицензии Blue Prism
      • Automation Anywhere
        • Назад
        • Automation Anywhere
        • Лицензии Automation Anywhere
      • ElectroNeek
        • Назад
        • ElectroNeek
        • Лицензии ElectroNeek
        • Обучение ElectroNeek
    • Платформы
      • Назад
      • Платформы
      • RPA Платформы
      • Рейтинг RPA платформ 2023
      • Рейтинг RPA платформ 2022
    • Кейсы
    • Интеграторы
    • Mероприятия
      • Назад
      • Mероприятия
      • Конференции
      • Вебинары
      • Мастер-классы
    • Трудоустройство
    • Контакты
    • 8 (800) 201 33 09
    Контактная информация
    Автоматизация роботизированных процессов. Robotic process automation (RPA).
    info@rpa2.ru
    • Вконтакте
    • Telegram
    • YouTube
    • Viber
    • WhatsApp

    От простых роботов к «микроботам» (роботы как микросервисы)

    Главная
    -
    Блог
    -От простых роботов к «микроботам» (роботы как микросервисы)
    Поделиться

    19 апреля 2023 13:30
    // RPA технологии

    Простота RPA подкупает своей нетребовательностью к познаниям глубоких деталей, которыми обычно озабочены продвинутые программисты, использующие самые сложные технологии. Однако, применение роботов на большом объеме постоянно поступающих документов или запросов периодически приводит к нестабильной работе, что порождает миф о том, что роботизация – это временная заглушка для маленьких несерьезных задач. В этой статье мы пройдем путь от замкнутого на себе ненадежного робота до современной микросервисной архитектуры, готовой к высоконагруженным задачам, тем самым разрушив этот миф.


    Роботы завоевывают все больше места на ИТ-ландшафте компаний разного масштаба из разных секторов экономики благодаря своей простоте: создавать скрипты в визуальных интерфейсах могут специалисты, прошедшие 2-4 недельные курсы на том же уровне, что и программисты с многолетним стажем. Это возможно, так как современные RPA-платформы дают готовые технические и технологические решения «из коробки».
    Такая простота часто приводит к тому, что роботов начинают использовать не только на маленьких рутинных операциях, но и на масштабных процессах, где требуется построить взаимодействие между разными системами, которые работают на отличающихся технологических стеках и не имеют готовой интеграции друг с другом.
    В итоге не редко получается такая ситуация, что единожды запущенный робот действует много часов (в некоторых случаях – сутками). Но чем дольше выполняет операции робот, тем быстрее растет вероятность неожиданной ошибки, порой даже независящей от разработчиков решения: банальное падение сети, перезапуск серверов целевых приложений, высокая загрузка сети из-за массовых звонков по ВКС – в результате робот просто может остановить свою работу из-за «непредвиденной ошибки».
     
    непредвиденной ошибки

    Самым неприятным в такой момент становится то, что мы не можем точно понять:
    • На каком по счету документе или заявке он прекратил свою работу?
    • В какие системы он уже успел внести информацию, а в какие нет?
    • Сколько итераций не отработал робот – на сколько это критично для бизнеса?
    Конечно, проведя расследование можно найти истину по всем вопросам, но время – деньги, которые тратит компания, а хотелось бы избежать таких ситуаций (или хотя бы сократить до минимума).

    Реестр обработанных документов / заявок
    Самым простым и очевидным решением является формирование реестра "задач" в виде какого-нибудь CSV или Excel-файла, в который будут записываться строчки с заданиями для робота (одна строчка = один документ или заявка). При запуске робота этот реестр должен пополняться новыми заданиями со статусом "Новая", после чего должны браться все задачи «от самой старой к самой новой», при этом обрабатываемая задача должна помечаться, например, статусом «В обработке». По мере обработки заданий будет проставляться статус "Выполнено" (или «Ошибка»). Таким образом в случае непредвиденной остановки робота будет гораздо легче понять – на какой итерации робот прекратил работу.

    Формирование такого реестра не является сложной задачей, ведь операции по работе с теми же CSV и Excel-файлами – стандартные для любого адекватного RPA-решения, даже новичок сделает это меньше чем за час.
     
    Формирование такого реестра не является сложной задачей
    Здесь, наверное, можно было бы написать «Happy end» и закончить статью... Но нет, мы только начинаем постигать на сколько глубока кроличья нора этой проблемы!

    С реестром в виде файла возникают новые проблемы:
    • Он растет на диске машины с роботом. Иногда слишком быстро! Со временем это приведет к полному заполнению ограниченного в объеме диска, а разработчику придется придумывать схему хранения архивов, так как некоторые реестры удалять нельзя по требованиям безопасности или аналитиков, которые хотят иногда выполнять анализ выполненных ранее задач;
    • Бывает так, что файлы на локальных дисках блокируются, и это может так же привести к полной остановке робота, при этом без пометки о том на каком моменте произошла проблема;
    • При желании масштабировать робота, чтобы часть задач выполнялась на одной машине, а часть на другой, потребуется небольшая исследовательская работа, чтобы грамотно распределить документы и заявки между разными роботами.
    Решение проблемы реестра
    Отталкиваясь от последней проблемы довольно быстро приходит понимание, что необходимо вести такой реестр не на машине с роботом, а где-то на сервере, куда будет доступ у всех роботов. Кроме того, необходимо придумать механизм, который станет «узким горлышком» и не будет подпускать к реестру в одну единицу времени больше одного робота (чтобы два и более роботов не взяли одну задачу).  

    Так как важное качество разработчика – это лень, первое решение принято находить в Интернете. Довольно быстро можно найти такую методологию, как «брокеры сообщений», которые позволяют создавать очереди, куда можно добавлять произвольное количество сообщений с данными, а также получать со множества «клиентов» эти сообщения в порядке очереди (FIFO - первый вошел первый вышел). Примеры брокеров: RabbitMQ, Kafka.

    На первый взгляд кажется, что это то, что нам нужно:

    Happy end

    Теперь можно, наверное, написать «Happy end»? К сожалению, нет!

    С брокерами сообщений есть проблема – не все они хранят передаваемые данные длительное время. То есть, если в данный момент к брокеру не подключен ни один получатель - брокер может просто «забыть» это сообщение, а робот, который подключится через несколько минут – уже ничего не получит.

    Но даже если мы уверены в том, что хотя бы один робот всегда будет доступен или мы настроим хранение данных в очереди брокера до востребования – нужно учитывать, что установка и обслуживание брокера сообщений потребует дополнительных ресурсов (как аппаратных, так и человеческих) и компетенций.
    А можно без сторонних решений?
    Отличная новость – похожий на брокеры сообщений механизм уже встроен в продвинутые RPA-платформы на стороне серверной компоненты, обычно он называется «Очередь данных», либо «Очередь транзакций». Помимо того, что его не нужно отдельно устанавливать, настраивать и обслуживать, этот механизм обеспечивает хранение всех данных как до использования роботами, так и после, благодаря чему наши коллеги из отдела информационной безопасности и аналитики будут спокойны.

    Создание произвольного количества очередей не требует особых компетенций, а интерфейсы обычно построены так, что делать это могут даже не разработчики RPA-решений:
     
    Задачи в очереди

    Для отправки задач в очередь, их получения и отметки статусов есть специальные активности, которые обычно так же доступны в студии разработки роботизированных процессов, пример из платформы PIX:

    Для отправки задач в очередь

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

    Похоже, мы приблизились к тому моменту, когда напишем с вами «Happy end»… Но это еще не так…
    Микросервисный подход и в чем его проблема
    Использование механизма очередей открывает нам дорогу к переходу от монолитной архитектуры робота (когда весь процесс обрабатывается от начала до конца на одной машине) к микросервисной когда весь процесс разделен на логические части, каждая из которой может обрабатываться как на этой же, так и на других машинах:

    обрабатываться как на этой же, так и на других машинах

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

    Скорее, даже наоборот – такой подход позволяет сделать более контролируемой разработку процессов по типу «Единого окна», когда требуется получить исходную заявку из единого массива, а далее в зависимости от ее типа выполнить определенный набор действий – в этом случае будет достаточно всего лишь поместить заявку в нужную очередь, которая будет подхвачена другим роботом с соответствующим скриптом.

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

    Но кажущаяся простота перехода скрывает за собой новые проблемы, связанные с вопросами обслуживания такой схемы:
    • Сколько всего есть очередей для одного микросервисного процесса?
    • Как можно контролировать нагрузку на конкретный участок процесса?
    • Где посмотреть схему взаимосвязей роботов через очереди?
    • Как сформировать информацию о "сквозном" прохождении (времени запуска первого и завершения последнего роботов)?
    Все эти вопросы можно решить с помощью ведения технической документации, описывающей ваше решение целиком. Но на сколько вам удобно постоянно сверяться с документацией? Не стоит так же забывать, что мы живем в реальной жизни, а не в учебнике: в большинстве случаев документация составляется один раз при вводе системы в эксплуатацию и не обновляется по мере «небольших незначительных правок» системы (вот только через полгода-год эти «незначительные правки» приводят к тому, что большая часть документации не соответствует действительности).

    Таким образом мы приходим к выводу: нам необходим какой-то такой инструмент, который позволил бы нам визуализировать все связи, причем в «живом» режиме (не отличался от действительности в любой момент времени).
    Создание «процессов-диспетчеров»
    Одним из самых популярных решений данной проблемы является создание так называемых «Процессов-диспетчеров» (на английском dispatcher). Суть их проста – выделить отдельный скрипт робота, который будет управлять передачей данных между другими роботами «исполнителями» (на английском performer).

    Данный подход в целом делает историю более контролируемой, но несет в себе новые недостатки:
    • Если схем много и между ними надо сверяться, придется открывать много экземпляров студии разработки, что может сильно нагрузить процессор и оперативную память;
    • Исполнение каждого «диспетчера» требует свою лицензию робота. То есть чем больше у вас процессов, которыми надо «рулить сверху», тем больше лицензий необходимо докупить.
    Как можно решить эту проблему? Можно использовать сторонние инструменты контроля, в которых будут выполняться аналогичные операции через API сервера RPA-решения, но без потребности в закупке дополнительных лицензий. Однако, как и в случае с брокерами сообщений – это еще одна технология, которую нужно устанавливать и обслуживать.

    Интересное решение данной проблемы предлагает Российский вендор PIX – инструмент диспетчеризации сложных процессов встроен непосредственно в мастер. Он обладает понятным визуальным интерфейсом, работе с которым можно научить далекого от программирования человека. Кроме банальных операций вызова роботов, этот инструмент позволяет:
    • Строить цепочки исполнения задач на роботах
    • Запускать несколько задач параллельно (с ожиданием завершения)
    • Ожидать появления элементов в очередях
    • Получать данные из сторонних брокеров сообщений (RabbitMQ, Kafka)
    • Отправлять HTTP-запросы, письма, уведомления
    • Учитывать выполнение условий, тем самым обеспечивая нелинейность исполнения
    PLAY

    За каждым синим прямоугольником с иконкой «PLAY» на картинке выше – кроется вызов задач. При этом для каждой задачи можно настроить произвольное количество резервных роботов, которые будут ее исполнять:

    Самый приятный бонус
     
    Самый приятный бонус – все это работает без необходимости закупать дополнительные лицензии на роботов. Сколько вам нужно «процессов-диспетчеров» – столько и запускайте, вы ограничены только техническими ресурсами вашего сервера (если что – можно перейти в кластерный режим, но об этом расскажем в другой раз).
    Заключение
    С переходом на микросервисную архитектуру мы можем обеспечить гибкое управление ресурсами при выполнении большого процесса. Например, если несколько задач выполняются быстро – для них будет достаточно выделить единого робота на всех, а вот для других задач, которые выполняются долгое время – можно выделить сразу нескольких роботов, которые будут вести обработку параллельно, независимо друг от друга.

    Чтобы не потерять контроль – у современных RPA-разработчиков есть все необходимые инструменты, ими лишь нужно научиться правильно пользоваться. Для этого есть как официальная база знаний вендора, так и курсы профессиональной подготовки, например, от академии RPA2.

    Совершенствуйте свои навыки и переводите своих роботов на современные рельсы, тогда точно у всех будет Happy end!

    Автор статьи: Драздов Валентин Сергеевич, менеджер продукта PIX RPA
    Подписывайтесь на канал Валентина в Telegram, где он делится технической информацией об RPA и рассказывает о разных интересных мероприятиях: https://t.me/vdsdblog


    Теги
    RPA Микроботы Микросервисы
    Поделиться

    Назад к списку
    • Комментарии
    Загрузка комментариев...
    Категории
    • Видео кейсы39
    • RPA Обучение1
    • Видеоблог28
    • RPA технологии 30
    • Ваш бизнес и карьера4
    Это интересно
    • Как сделать старт в RPA эффективным и что для этого требуется.
      Как сделать старт в RPA эффективным и что для этого требуется.
      16 мая 2023
    • Роботизированная автоматизация процессов (RPA), искусственный интеллект (ИИ), объединение двух технологий
      Роботизированная автоматизация процессов (RPA), искусственный интеллект (ИИ), объединение двух технологий
      15 мая 2023
    • Используем ChatGPT и Puzzle RPA для классификации бухгалтерских проводок
      Используем ChatGPT и Puzzle RPA для классификации бухгалтерских проводок
      24 марта 2023
    • Сотрудничеству быть: в РАЭК прошла совместная встреча Кластеров «РАЭК / Искусственный интеллект» и «РАЭК / RPA»
      Сотрудничеству быть: в РАЭК прошла совместная встреча Кластеров «РАЭК / Искусственный интеллект» и «РАЭК / RPA»
      17 января 2023
    • Robotic process automation (далее RPA) - технология автоматизации бизнес-процессов, основанная на программном обеспечении роботов (ботов) и/или работников искусственного интеллекта.
      Robotic process automation (далее RPA) - технология автоматизации бизнес-процессов, основанная на программном обеспечении роботов (ботов) и/или работников искусственного интеллекта.
      17 января 2023
    Облако тегов
    ABBYY abbyy AI automation bitrix24 Center of Excellence CoE ElectroNeek electroneek flexicapture HyperAutomation IPO lueprism machine learning natural language Natural Language Processing Next RPA pix rpa pixrobotics Primo RPA PRO Роботов processing pейтинг rpa R.BOT rif2022 robin Robotic Process Automation Center of Excellence roboticprocessautomation roomybots rpa RPA RPA CoE rpa2 rpa2021 rpaacademy rpaconference rpatutorial rpaакадемия rpaобучение rpaразработчик Sber RPA Sherpa RPA UiPath uipath аutomationаnywhere академия RPA академия rpa атом.рита БМкорпорации гринатом документооборот Импортозамещение RPA импортозамещение RPA Искусственный интеллект кластер rpa Конференция RPA курс RPA курс rpa мастеркласс Машинное обучение миграция RPA Микроботы Микросервисы обработка документов обучение RPA РАЭК рейтинг rpa роботизации бизнес-процессов Роботы росатом Румыния Сколково чтотакоеrpa
    Узнайте размер зарплаты RPA developer/analist.
    Центр компетенций
    PRO РОБОТОВ - портал робототехники и маркетплейс роботов
    Онлайн консультации
    CoE
    Портал про RPA
    Академия
    Кейсы
    Новости
    Блог
    Политика
    Мероприятия
    Конференции
    Вебинары
    Мастер-классы
    Контакты
    Консалтинг
    Будьте всегда в курсе!
    Узнавайте о новостях и акциях в RPA2 первым
    Оставайтесь на связи
    • Вконтакте
    • Telegram
    • YouTube
    • Viber
    • Viber
    • WhatsApp
    Наши контакты
    8 (800) 201 33 09
    info@rpa2.ru
    Автоматизация роботизированных процессов. Robotic process automation (RPA).
    2023 © Портал про RPA. Академия RPA Разработчиков