- Описание функциональных характеристик системы
- Поддержание жизненного цикла
- Установка PromUC
- Настройка сервисов
- Обновление PromUC
- Резервное копирование и восстановление базы данных Promuc FrameWork
- Рекомендации по безопасности
- Руководство по эксплуатации и администрированию
- Module GIS
- Конфигурирование правил и сценариев
- Module Framework
- Module Interface
- Технологии проекта
- Эксплуатация КТС
- Единый сервис аутентификации
- Информация о релизах
Технологии проекта¶
PromUC интегрирован с рядом решений позволяющих значительно расширить задачи применения продукта.
Автоматизированная экосистема с открытым программным обеспечением для организации гиперконвергентной инфраструктуры (отказоустойчивый общий пул вычислительных ресурсов, хранилища, виртуализации) , предназначенной для сбора, обработки, хранения данных телеметрии, включая инструментарий: Самодиагностики, Кибербезопасности, СУБД ( резидентная NoSQL, объектно-реляционная SQL), маршрутизации сообщений на основе стандарта AMQP и MQTT.
Здесь перечисленны пакеты используемые для построения платформы в целом, продакшен версии и не учитываются средства разработки, отладки, тестирования и документирования. Так же здесь не учитываются клиентские расширения они представлены в специальном разделе.
Kubernetes¶
Kubernetes Открытое программное обеспечение для оркестровки контейнеризированных приложений — автоматизации их развёртывания, масштабирования и координации в условиях кластера. Поддерживает основные технологии контейнеризации, включая Docker. Основной язык программирования системы — Go. В середине 2014 года опубликованы исходные коды проекта. 21 июля 2015 года выпущена версия 1.0; после чего Google в партнёрстве с Linux Foundation организовал специальный фонд Cloud Native Computing Foundation (CNCF), которому корпорация передала Kubernetes в качестве начального технологического вклада. Считается, что к концу 2010-х годов Kubernetes стал стандартом де-факто для использования в облачных системах и сервисах по модели PaaS, предусматривающих контейнеризацию приложений, в частности, является основой контейнеризационных сервисов ряда крупнейших публично-облачных провайдеров — Amazon (AWS Elastic Container Service), Microsoft (Microsoft Azure Containers), Google (Google Cloud Platform Kubernetes Engine). Лицензия Apache License 2.0
Docker¶
Docker Программное обеспечение для автоматизации развёртывания и управления приложениями в средах с поддержкой контейнеризации, контейнеризатор приложений. Позволяет «упаковать» приложение со всем его окружением[en] и зависимостями в контейнер, который может быть развёрнут на любой Linux-системе с поддержкой контрольных групп в ядре, а также предоставляет набор команд для управления этими контейнерами. аписан на языке Go. Разрабатывается и поддерживается одноимённой компанией-стартапом, распространяется в двух редакциях — общественной (Community Edition) по лицензии Apache 2.0 и для организаций (Enterprise Edition) по проприетарной лицензии.
Nginx¶
Nginx Веб-сервер и прокси-сервер, работающий на Unix-подобных операционных системах Лицензия 2-пунктная лицензия BSD
Apache HTTP Server¶
Apache является кроссплатформенным сервер, поддерживает операционные системы Linux, BSD, Mac OS, Microsoft Windows, Novell NetWare, BeOS. Основными достоинствами Apache считаются надёжность и гибкость конфигурации. Он позволяет подключать внешние модули для предоставления данных, использовать СУБД для аутентификации пользователей, модифицировать сообщения об ошибках и т. д. Лицензия Apache License 2.0
pgAdmin¶
pgAdmin - это ведущий инструмент управления с открытым исходным кодом для PostgreSQL, самой передовой в мире базы данных с открытым исходным кодом.
Ссылка на оригинальную документацию: https://www.pgadmin.org/docs/pgadmin4/latest/index.html
Gitea¶
Gitea — легковесная Open Source-система для управления Git-репозиториями. Это форк другой легковесной системы — Gogs. Она интересна возможностью сочетать в одном инстансе несколько организаций с довольно широким спектром настроек прав доступа и GitHub-подобным API.
Gitea очень проста как в установке и настройке, так и в бэкапе. Систему можно запустить на любом относительно современном компьютере, и она сразу предложит некоторые встроенные сервисы: wiki-страницы, задачи и проекты, т.е. todo-листы.
Gitea работает на любой операционной системе, которая может компилировать Go Windows, macOS, Linux, ARM и т. д.
Ссылка на оригинальную документацию: https://docs.gitea.io/en-us/
Portainer¶
Portainer — это проект с открытым исходным кодом представляющий собой универсальную систему управления контейнерами. Он дает возможность создавать, настраивать и отслеживать контейнеры в средах Docker, Kubernetes, Swarm и Nomad. Панель управления Portainer имеет удобный UI для работы с Docker контейнерами прямо из браузера. Панель управления Portainer умеет работать как с локально установленным докером, так и с удалёнными серверами.
Ссылка на оригинальную документацию: https://docs.portainer.io/
RabbitMQ¶
RabbitMQ – это программный брокер сообщений на основе стандарта AMQP (с помощью дополнительного модуля может работать с MQTT) — тиражируемое связующее программное обеспечение, ориентированное на обработку сообщений. RabbitMQ принимает сообщения от поставщиков и отправляет им подтверждение о приеме, а затем перенаправляет сообщения подписчикам. Получатели подтверждают, что сообщение доставлено, либо сигнализируют о неудаче. Во втором случае сообщение остается в очереди, пока не будет доставлено. А после доставки оно удалится из системы.
Основная функциональная особенность RabbitMQ — это гибкая маршрутизация сообщений между различными поставщиками и потребителями событий. Решение не ограничивается созданием простой очереди данных между двумя сторонами. В сервере реализована концепция принимающих события узлов (эксчейнджей) — они маршрутизируют данные в разные очереди сообщений RabbitMQ.
Например, одно и то же сообщение должны получить три подписчика. Оно попадет на узел, который отправит три одинаковых сообщения в три очереди для всех подписчиков, которым оно должно быть доставлено.
Ссылка на оригинальную документацию: https://www.rabbitmq.com/documentation.html
Traefik¶
Traefik Proxy— это обратный прокси-сервер с открытым исходным кодом, обеспечивающий простую работу с микросервисами и/или просто контейнерами с вашими приложениями.
Обратный прокси-сервер (reverse proxy, реверс-прокси) служит для ретрансляции запросов из внешней сети к каким-либо серверам/сервисам внутренней сети (например веб-сервера, БД или файловые хранилища) и позволяет:
обеспечить сокрытие структуры внутренней сети и подробностей о находящейся в ней сервисах;
осуществлять балансировку нагрузки (load balancing) между экземплярами одного и того же сервиса или серверами с одинаковыми задачами;
обеспечить зашифрованное (HTTPS) соединение между клиентом и любым сервисом, в таком случае SSL сессия создается между клиентом и прокси, а между прокси и сервисом во внутренней сети устанавливается незашифрованное HTTP соединение, если сервис поддерживает HTTPS то можно организовать зашифрованное соединение и во внутренней сети;
организовать контроль доступа к сервисам (аутентификацию клиента), а также установить файрвол (брандмауэр).
Одним из основных достоинств Traefik Proxy является возможность изменения его конфигурации без приостановки работы (“на лету”) при применении любого из поддерживаемых бэкэндов, называемых провайдерами. Например Docker и Kubernetes.
Ссылка на оригинальную документацию: https://doc.traefik.io/traefik/
Redis¶
Redis – Быстрое хранилище данных в памяти с открытым исходным кодом для использования в качестве базы данных, кэша, брокера сообщений или очереди.
Redis обеспечивает время отклика на уровне долей миллисекунды и позволяет приложениям, работающим в режиме реального времени, выполнять миллионы запросов в секунду. Такие приложения востребованы в сферах игр, рекламных технологий, финансовых сервисов, здравоохранения и IoT. Благодаря быстрой производительности Redis широко применяется для кэширования, управления сеансами, разработки игр, создания таблиц лидеров, аналитики в режиме реального времени, работы с геопространственными данными, чатов и сервисов обмена сообщениями, потоковой передачи мультимедиа и приложений с отправкой сообщений по модели «издатель – подписчик» (Pub/Sub).
Ссылка на оригинальную документацию: https://redis.io/docs/
Fluent Bit¶
Fluent Bit - Это процессор и переадресатор журналов с открытым исходным кодом, который позволяет собирать любые данные, такие как метрики и журналы из разных источников, фильтровать их согласно заданным правилам и отправлять в несколько пунктов назначения. Это предпочтительный выбор для контейнерных сред, таких как Kubernetes.
В качестве основных преимуществ Fluent Bit можно выделить следующие:
Сверхнизкие требования к системным ресурсам. Для нормальной работы Fluent Bit достаточно 650 Кб оперативной памяти, что дает возможность запускать его на встраиваемых (Embedded ) Linux системах. Скорость обработки при этом достигает 13 000 событий в секунду.
Использование унифицированного формата логгирования. Данные, полученные из разных источников, Fluent Bit переводит в формат JSON. Это помогает решить проблему сбора логов из различных систем и открывает широкие возможности для интеграции с другими программными решениями.
Удобная архитектура. Архитектура Fluent Bit позволяет расширять имеющийся набор функций с помощью дополнительных плагинов которых на сегодняшний день около 70. С помощью плагинов можно подключать новые источники данных и выводить данные в различных форматах.
Возможность интеграции с различными языками программирования. Fluentd может принимать логи из приложений на Python, Ruby, PHP, Perl, Node.JS, Java, Scala.
В числе пользователей Fluent Bit — такие известные компании как Cisco, Microsoft, Google Cloud, Amazon и другие.
Ссылка на оригинальную документацию: https://docs.fluentbit.io/manual
PostgreSQL¶
PostgreSQL — свободная объектно-реляционная система управления базами данных, основанная на языке SQL.
PostgreSQL отличается высокой надёжностью и хорошей производительностью. PostgreSQL поддерживает транзакции (ACID), репликация реализована встроенными механизмами. При этом система расширяемая — можно создавать свои типы данных и индексов, а также расширять поведение при помощи языков программирования.
Преимущества PostgreSQL:
поддержка БД неограниченного размера;
Нет ограничений на максимальный размер базы данных
Нет ограничений на количество записей в таблице
Нет ограничений на количество индексов в таблице
мощные и надёжные механизмы транзакций и репликации;
расширяемая система встроенных языков программирования и поддержка загрузки C-совместимых модулей;
наследование;
легкая расширяемость.
Ссылка на оригинальную документацию: https://postgrespro.ru/docs/postgresql
TimescaleDB¶
TimescaleDB это база данных временных рядов с открытым исходным кодом, разработанная Timescale Inc. Она написана на C и расширяет возможности PostgreSQL. TimescaleDB поддерживает стандартные запросы SQL и является реляционной базой данных.
Ссылка на оригинальную документацию: https://docs.timescale.com/