Технологии проекта

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, самой передовой в мире базы данных с открытым исходным кодом.

pgAdmin предназначен для удовлетворения потребностей как начинающих, так и опытных пользователей PostgreSQL, предоставляя мощный графический интерфейс, который упрощает создание, обслуживание и использование объектов базы данных.
pgAdmin платформа написана на Python и jQuery и поддерживает все функции 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/