FineDataLink: Краткий обзор способов развертывания платформы FineDataLink
Введение
В зависимости от потребностей клиентов, работающих в различных отраслях, существует несколько способов развертывания FineDataLink, включая независимое развертывание, кластерное развертывание и контейнерное развертывание.
В этой статье мы поговорим о различиях, преимуществах и недостатках нескольких способов развертывания данной платформы.
Кластер и машина
NB: Развертывание кластера FineDataLink возможно только при независимом развертывании.
Что такое кластер и машина?
Машина – это развернутый проект
Кластер - это совокупность нескольких одинаковых проектов, предоставляющих одну и ту же услугу. Эти отдельные проекты являются узлами кластера.
Основываясь на горизонтальной масштабируемости кластера, пользователи могут увеличить количество узлов, за счет чего конкурентность (concurrency) будет расти линейно.
В то же время несколько проектов могут быть использованы для резервного копирования, что позволяет избежать убытков (например, потери данных), вызванных остановкой системы из-за недоступности одной машины. Благодаря этому обеспечивается стабильная работа системы 24/7.
Преимущества кластеризации
Главными преимуществами кластера FineDataLink является высокая доступность, высокая производительность, простота управления, масштабируемость и безопасность:
Преимущество |
Расшифровка |
Доступность |
Система оснащена функцией аварийного восстановления и горячего резервирования
Функционирование коластера Fanruan основано на нескольких компонентов, таких как узлы кластера, балансировщики нагрузки и серверы состояния, при этом несколько узлов разделяют между собой нагрузку по обработке запросов.
При использовании продуктов FineDataLink, в случае возникновения нештатных ситуаций, которые могут привести к простою системы, сама система оснащена функцией аварийного восстановления, которая обеспечивает непрерывную и бесперебойную синхронизацию и обработку данных, а также помогает справиться с потенциальными проблемами простоя и отключения локальных узлов. |
Высокая конкурентность |
Улучшенные возможности одновременного выполнения задач
Кластер Fanruan позволяет параллельно обрабатывать несколько временных и конвейерных задач, реализует распределенную обработку задач через несколько узлов, а также рассредоточивает определенные API с более высокой частотой запросов при использовании нескольких сервисов данных.
При использовании продуктов FineDataLink, когда есть много задач обработки, возможность одновременного выполнения задач может быть улучшена путем увеличения количества узлов.
NB: Наименьшей единицей выполнения запланированного задания является узел. При выполнении задачи генерируется экземпляр задачи, который содержит несколько узлов, подлежащих выполнению.
Наименьшей единицей выполнения конвейерной задачи является экземпляр конвейерной задачи. Когда задача выполняется, генерируется экземпляр задачи, который не подлежит дальнейшему разделению.
Логика высокого параллелизма заключается в равномерном распределении узлов для запуска кластеров для выполнения задач, а порядок выполнения задач основан на проекте внутри задачи. |
Простота управления |
Кластер Fanruan предоставляет мощную платформу управления, включая функции мониторинга, настройки, развертывания и автоматического устранения неисправностей узлов кластера, что позволяет значительно снизить риски, связанные с обслуживанием и эксплуатации кластера, а также помогает предприятиям управлять и поддерживать систему наиболее оптимальным способом.
Простая визуальная настройка, 80% конфигурации может быть выполнено на платформе.
|
Масштабируемость |
Имея продуманную до мелочей архитектуру, веб-кластер обладает хорошей горизонтальной масштабируемостью. Кластер Fanruan может быстро увеличить количество узлов кластер, чтобы справиться с пиковыми значениями и колебаниями трафика, достигая высокой масштабируемости и эффективности системы. |
Функции компонента кластера
При создании кластера, Вы должны понимать, что это непростая задача.
Для того, чтобы обеспечить бесперебойное обслуживание, необходимо повысить качество услуг и создать оптимизированный парк.
Создание продуманного парка – это задача, которую должна решить архитектура кластера.
Компоненты |
Расшифровка |
Узел проекта |
Узлами кластера условно являются такси. Когда такси ломается, на его место автоматически подбираются другие такси, что обеспечивает работоспособность всего парка. Проект кластера Fanruan позволяет использует первый узел, присоединившийся к кластеру, в качестве контрольного узла. Каждый узел предоставляет услуги и выполняет операции управления в равной степени. Каждый узел - это независимо работающий проект, отвечающий за обработку запросов пользователей, выполнение задач и управление работой других компонентов. Узлы кластера взаимодействуют и сотрудничают с помощью ряда сетевых протоколов и сервисов. |
Балансировка нагрузки |
Балансировщик нагрузки можно сравнить с диспетчерским центром для таксопарка, координирующий и распределяющий работу такси.
При приеме клиентов балансировка нагрузки служит единым входом и отвечает за связь с клиентами, избавляя их от необходимости обращаться к водителям.
В кластере балансировка нагрузки используется для распределения задач между различными узлами для повышения эффективности их работы. Балансировщик нагрузки распределяет нагрузку между всеми узлами, гарантируя, что каждый узел получает достаточно задач для выполнения веб-запросов и остается занятым. |
Реестр служб |
Обеспечение высокой доступности и высокого параллелизма планирования, то есть планирования выполнения узлов в запланированных задачах и конвейерных задачах.
Когда один инженерный узел выходит из строя, задача планирования узла передается другим работающим узлам; в то же время экземпляр задачи равномерно распределяется по каждому узлу кластера, что обеспечивает нормальное выполнение нескольких задач планирования. |
Внешняя БД |
Библиотека конфигурации, то есть внешняя база данных FineDB, похожа на офис управления транспортными средствами в таксопарке. В ней хранится и поддерживается информация обо всех автомобилях и водителях, расценках, маршрутах поездок и т. д., чтобы каждый автомобиль мог обеспечить клиентам одинаковые условия поездки. В кластере библиотека конфигурации используется для хранения и поддержки информации о конфигурации и параметрах всех узлов. Чтобы узлы кластера работали согласованно, эти параметры должны быть заданы разумно. |
Сервер статуса |
Запросы пользователей равномерно распределяются на каждый узел для обеспечения параллелизма на стороне веб-сайта. Запросы могут быть следующими:
|
Файловый сервер |
Файловый сервер можно сравнить с архивом таксопарка. В нем хранятся все документы, относящиеся к автопарку, включая записи о техническом обслуживании автомобилей, страховые полисы, данные о местонахождении автомобилей и т. д. В кластере файловый сервер используется для хранения и совместного использования файлов и ресурсов данных, необходимых в кластере, чтобы каждый узел мог получить к ним доступ и использовать их. |
Архитектура кластера Fanruan очень гибкая и может быть настроена в соответствии с различными потребностями компании. Для запуска кластера соблюдение следующих условий:
- Существует более одного узла проекта
- Узел настроен на внешнюю базу данных
- Узел настроен на сервер состояния
- Если существует более 2 узлов проекта, необходимо настроить файловый сервер
- Узел настроен на центр регистрации услуг Nacos
Возможности:
- Версия FineDataLink 4.0.27 и новее поддерживают возможность разработки данных с использованием кластеров;
- Версия FineDataLink 4.0.30 и новее работают с конвейерами данных и сервисами данных с использованием кластеров;
- Поддерживает независимо развернутые проекты FineDataLink в качестве узлов проекта в кластере; не поддерживает кластеризацию с проектами FineReport и FineBI в качестве узлов.
Контейнеразация vs. традиционное развертывание
Что такое контейнерезация и традиционное развертывание?
Традиционное развертывание:
Пользователи могут подготовить пакеты развертывания самостоятельно и собрать наиболее популярную архитектуру проекта, а именно "проект FineDataLink + среда jdk + промежуточное ПО tomcat".
Контейнерезация:
Процесс "контейнеризации" приложения заключается в том, что оно запускается в контейнере Docker или аналогичной технологии, которая может заключать в себе окружение операционной системы и приложение вместе (полный образ системы).
Поскольку контейнеры могут предоставлять приложениям среду, близкую к полной системе, это дает возможность модернизировать развертывание приложений без их модификации или модифицировать приложение с минимальными усилиями. Это также является основой для того, чтобы архитектура приложений оставалась "облачной".
Преимущества контейнерезации
По сравнению с традиционным методом развертывания контейнерное развертывание позволяет значительно сократить расходы на обслуживание и используемые ресурсы.
- низкие эксплуатационные расходы
- Среда каждого проекта изолирована друг от друга, поэтому при возникновении каких-либо проблем диапазон воздействия не велик невелик.
- Удобство обновление, аварийного восстановления и отката системы.
- низкая стоимость используемых ресурсов
- Управление несколькими кластерами, поддержка нескольких пользователей, использование микросервисов, оптимизация использования ресурсов.
- Гибкое масштабирование ресурсов.
Разница между контейнерезацией и традиционным развертыванием
Основные преимущества контейнеров на протяжении всего жизненного цикла приложения: изоляция, мобильность, гибкость, масштабируемость и эффективный мониторинг.
Самое важное преимущество - это изоляция разработки от операционной деятельности.
Аспект |
Традиционное развертывание |
Контейнерезация |
Настройка JVM |
Изменение файла конфигурации Tomcat или других соответствующих файлов конфигурации контейнера осуществляется вручную
Большинство пользователей не могут настроить конфигурацию должным образом, что приводит к нежелательным последствиям и простоям |
Основные параметры JVM установлены заранее.
Ограничение памяти Xmx может быть настроено отдельно в yaml-файле |
Настройка балансировки |
Для настройки переадресации необходимо вручную установить Nginx или другое аналогичное ПО. Некоторые пользователи могут столкнуться с проблемой доступности всех необходимых настроек, что чревато сбоями в работе жизненно важных служб (при необходимости Вы можете настроить keepalived+nginx) |
При развертывании nginx автоматически устанавливается и настраивается одним щелчком мыши (другие нагрузки не поддерживаются). |
Требования, предъявляемые к аппаратному обеспечению |
Рекомендовано, но не обязательно |
Соблюдение требований к дисковому пространству и памяти на всех узлах обязательно! Крайне важно предотвратить развертывание проектов в неподходящих аппаратных средах обязательны |
Требования, предъявляемые к компонентам |
Без ограничений, можно настроить все компоненты, поддерживаемые продуктом |
Без ограничений, можно настроить все компоненты, поддерживаемые продуктом. Поддерживает возможность одновременного развертывания MySQL, Redis и Minio |
Требования, предъявляемые к ОС |
Можно использовать любую ОС |
Linux amd64 CentOS 7.3 и более ранние версии не поддерживаются Ubuntu 18 и более ранние версии не поддерживаются |
Требования, предъявляемые к Firewall |
Соответствующий сервер должен открыть используемый порт |
Порты, используемые всеми компонентами всех узлов, должны быть открыты. |
Развертывание на одном компьютере |
Можно приступить к работе, загрузив пакет развертывания без настройки внешних библиотек и других компонентов. В противном случае необходимо отдельно настроить внешние библиотеки и компоненты, а также необходимое окружение, например jdk |
Локальный пользователь root может развернуть систему одним щелчком мыши. Поддержка развертывания после конфигурирования соответствующей информации об узлах и компонентах в yaml-файлах Поддерживает настройку исходных компонентов пользователя через yaml-файлы |
Требования, предъявляемые к правам доступа |
Необходимо обеспечить права доступа к файлам |
Обычным пользователям нужно предоставить привилегии sudo (если установлен docker и пользователь входит в группу пользователей docker, привилегии не требуются). cp tar rm groupadd gpasswd группы dockerd systemctl (требуется для автоматического запуска службы docker,опционно) |
Настройка веб-контейнера |
Измените файл конфигурации в каталоге tomcat и перезапустите tomcat |
Изменения front-end части могут быть реализованы через платформу эксплуатации и технического обслуживания |
Изменение параметра jvm |
Просто измените соответствующий файл |
Модификации могут быть реализованы через платформу эксплуатации и технического обслуживания |
Влияние на среду |
Влияние на различные среды, такие как jdk, glibc, системные шрифты, системный язык, системное время и т. д. |
Приложения FineDataLink развертываются с помощью контейнеров Docker. До тех пор, пока можно поддерживать развертывание, оно не будет оказывать существенного влияния на среду. |