button-top-arrow
8 495 128 99 39
email help@agora.ru
Основа ИТ продукта Enterprise уровня

10 октября 2023 г.

9 мин 693

10 октября 2023 г.

Основа Enterprise web-продукта: микросервисная архитектура, масштабирование системы и конвейерная обработка. Часть №1

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

Создание проекта уровня Enterprise – разработка программного обеспечения под потребности конкретной компании-заказчика, в которой учитываются все особенности бизнес-логики предприятия. В данном вопросе бизнес-логика – это совокупность правил, регламентов и принципов поведения разных объектов в деятельности организации. Если говорить простым языком, разработка проекта идет по приоритетным задачам бизнеса и никак иначе. Развитие Enterprise проекта такого уровня будет индивидуальным под каждого заказчика в зависимости от бизнес-логики, количества сотрудников, необходимого корпоративного функционала и многого другого. Основной задачей таких систем является эффективное управление и контроль над ресурсами, а также данными об этих ресурсах.

А значит, разбирая вопрос разработки Enterprise web-продукта, необходимо начать с самых фундаментальных составляющих такого решения.

Микросервисная архитектура

У заказчиков уровня СМБ (Средний и малый бизнес) учет всей деятельности предприятия может происходить в одной или нескольких программах, в то время как у клиентов уровня Enterprise целая экосистема продуктов. Каждая из них существует самостоятельно, и друг с другом они обмениваются данными. Например, SAP ERP – отдельное программное обеспечение для планирования ресурсов предприятия, которое обменивается информацией с другими системами через шину данных. Либо для примера, система SAP MDG, которая отвечает за актуальность данных и проверку контрагентов предприятия, может являться также отдельным сервисом в экосистеме Enterprise клиента.

Все эти программы взаимодействуют по модели микросервисов.

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

Сравнение микросервисной и монолитной архитектур

Если рассматривать возрастание нагрузки у ERP системы, то здесь нагрузка будет линейной: сначала добавление 5 сотрудников, далее 10 и так далее, то есть нагрузка на систему растет постепенно. Если говорить про web-продукт, то, например, у компании может быть 10 тысяч клиентов, которые пришли на площадку в один день, и в данном случае загрузка такого большого объема данных потребует соответствующей мощности. В связи с этим горизонтально увеличивать мощности отдельного микросервиса легче, чем в рамках единой монолитной системы. Хочется отметить, что для проектов уровня Enterprise характерна микросервисная архитектура или комбинированная.

Масштабирование системы, контейнеризация и оркестрация

Большинство Enterprise проектов разработаны по модели микросервисной архитектуры. И когда встает вопрос об увеличении мощностей, то в такой системе это сделать намного проще, чем при монолитной архитектуре.

Масштабирование бывает вертикальное и горизонтальное. Например, если сервер заменяется на более мощный, то это вертикальное масштабирование. А в ситуации, когда увеличивают количество серверов, происходит уже горизонтальное масштабирование. Один сервер будет считаться master-сервер, а второй – slave-сервер. Все запросы направляются в master-сервер, и когда он перегружен, то запросы перенаправляются на slave-сервер. В случае с микросервисной архитектурой, когда каждая подсистема выделена в отдельный микросервис, по каждому блоку всей экосистемы проекта можно наращивать мощности отдельно.

Вертикальное и горизонтальное масштабирование

Для управления и контроля этих процессов необходимы инструменты контейнеризации и оркестрации.

Одна из самых популярных платформ для управления контейнерами – Docker. Контейнеры представляют собой отдельные, но воспроизводимые среды приложений, которые работают одинаково в любой среде. Контейнеры изолированы друг от друга, однако система позволяет соединить все эти контейнеры в единую сеть.

Для чего нужна контейнеризация? Enterprise продукт состоит из множества компонентов, и у каждого из них есть потребность в ресурсах, а также каждый из них представляет собой отдельный сервис со своими настройками. Например, PostgreSQL – система для управления базами данных. Ее config-файл состоит из большого количества строк. И когда разработчик проинсталлировал сервис, он оборачивает этот сервис в контейнер Docker. И при следующем использовании разработчик может скачать Docker контейнер, инсталлировать его в новом проекте, при этом использовать ранее сохраненные настройки сервиса.

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

  • мониторинг сервисов и распределение трафика на контейнеры;
  • оркестрацию хранилища;
  • автоматическое восстановление в случае аварии (при соответствующей настройке);
  • распределение нагрузки между контейнерами;
  • контроль запуска контейнеров, самостоятельный контроль ресурсов контейнеров;
  • управление конфиденциальной информацией и многое другое.

Использование Kubernetes

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

Преимущества оркестраторов:

  • Формирование и развертывание масштабируемой инфраструктуры;
  • Настройка процессов автоматического масштабирования;
  • Распределение и планирование ресурсов позволяет установить порог мощности системы;
  • Безопасное управление трафиком между нодами.

Преимущества оркестраторов

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

Шина данных, конвейерная обработка данных

Шина данных – это отдельный сервис внутри платформы, предназначенный для передачи данных между различными элементами всего Enterprise проекта. Позволяет настроить асинхронный обмен данными, то есть данные поступают в систему не последовательно, а параллельно друг другу. Можно настроить обработку данных в несколько очередей, а также выделить приоритеты обработки в зависимости от поступающих данных. Например, при интеграции с внешней системой ERP или CRM в обработке на стороне платформы стоят товары поставщика, но чуть позже появились новые заказы, которые необходимо пропустить вперед.

Шину обработки данных можно настроить между платформой AGORA и любой другой сторонней системой, все зависит от потребности конкретной компании-заказчика: 1С, SAP и любые другие ERP системы. На платформе может работать сразу несколько интеграций с внешними ERP и другими системами, по каждой из которой будут свои очереди.

Шина данных AGORA

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

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

Для контроля и управления данными процессами AGORA использует:

  • Celery – брокер задач для управления очередями;
  • RabbitMQ, Redis – брокеры сообщений или транспорт сообщений. Система отслеживает, от кого получены данные, что передать и в каком формате;
  • Apache Kafka — гибрид распределенной базы данных и брокера сообщений с возможностью горизонтального масштабирования.

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

AGORA соответствует всем потребностям больших Enterprise предприятий

Создание сложных сайтов высокого уровня проектов Enterprise — это многоэтапный процесс, где могут параллельно развиваться и масштабироваться одновременно несколько микросервисов. Но в текущих реалиях оптимизировать задачи для достижения целей крупных предприятий могут только ИТ-продукты E-commerce и Sourcing.

Выгоды, которые открываются перед заказчиком ПО для цифровизации продаж и закупок на базе платформы AGORA:

  • возможность размещения системы по подписке SaaS или On-premise на серверных мощностях заказчика;
  • мощная и гибкая система, которую легко масштабировать;
  • разработка по модели low-code, архитектура приложения по типу отдельных «модулей» и устойчивый к нагрузкам технологический стек с направленностью для проектов Enterprise;
  • интеграция готовых системных продуктов с ERP (SAP, 1С и др.) и CRM-системами, логистическими операторами, платежными шлюзами, а также прочим важным для бизнеса ПО;
  • комплексный консалтинг и сервис: помощь при формировании функциональных требований по продукту, ускоренная разработка с дальнейшим внедрением системы, адаптацией пользователей и оказанием услуг по технической поддержке.

Узнать подробнее о разработке Enterprise web-проектов можно, оставив заявку на сайте или связавшись с менеджером.

Читайте также

agora-white-logo
Заполните форму либо позвоните по телефонам
8 (800) 200-53-20 , 8 (495) 128-99-39 или отправьте письмо на наш e-mail: info@agora.ru
Заполните форму либо позвоните по
телефонам 8 (800) 200-53-20,
8 (495) 128-99-39 или отправьте письмо на наш e-mail: info@agora.ru
agora-logo
Заполните форму либо позвоните по
телефонам 8 (800) 200-53-20,
8 (495) 128-99-39 или отправьте письмо на
наш e-mail: info@agora.ru