Select language:
+7 (499) 500-14-94
Проекты

Кластерные вычисления и масштабирование нагрузки

 
1 августа 2008

Компания занимается разработкой ПО для кластеризации компьютеров. Машины в кластере функционируют как монолитный суперкомпьютер и используются в качестве серверных узлов, управляемых единым диспетчером. В отдельных случаях операционная система (прошивка) находится на отдельном оборудовании и загружается перед запуском и обнаружением узла. Группы узлов настраиваются с учетом конфигураций. Применение кластера увеличивает работоспособность, отказоустойчивость программного обеспечения и предел нагрузки. Снижаются затраты на обслуживание в сравнении с эквивалентным количеством несвязанных машин.

 

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

 

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

 

Кластер серверов для видеоконференций

  
Заказчик: Инженерная компания
Описание:

Разработка серверного кластера в качестве ключевого компонента системы видеоконференции с одновременным общением группы участников. В начале сессии присваивается код. Участники получают доступ через ссылку с идентификатором, либо через сайт видеоконференции после введения пароля. Присоединиться к совещанию можно с помощью VoIP телефона, введя код, номер пользователя или порта. Функция адресной книги отсутствует из-за нецелесообразности при быстром, разовом общении по деловым вопросам или со службой техподдержки. В личном кабинете, доступном через браузер, сохраняется информация о предыдущих сессиях. Серверный кластер отвечает за автоматическое обновление клиентской части зарегистрированных пользователей, интеграцию с платежными системами, хранение профилей и данных сервера (в режиме офлайн включительно). Управляет виртуальными серверами через поддержку сервиса, реализует обмен файлами с помощью облачных технологий DropBox, Google Drive.

 

Группа виртуальных машин работает в режиме пониженной производительности, обслуживая неактивные инстанции ПО. Серверный backend стартует через cron. За десять минут до сеанса состояние выбранной виртуальной переговорной изменяется согласно параметрам предстоящей видеосессии. Объем доступного дискового пространства для конференции установлен, задается в настройках. Обмен данными через директорию. За 1 минуту до запуска конференции узел монтирует каталог в собственное дисковое пространство, используя smb-клиента. Переговорная комната находится одном из трех состояний:

  • ожидание начала сессии;
  • ведение конференции;
  • выгрузка видеозаписи и остановка.

Статус восстанавливается при подтверждении успешной обработки файла.

Технологии: Linux, Python, Django, Nginx, uWSGI.

 

Кластер серверов для растеризации изображений

 

Кластер серверов для растеризации изображений

  
Заказчик: Инженерная компания.
Описание: Разработка кластера серверов для распределения нагрузки на центральный сервер хранилища документов. Распределяющий узел получает запрос от клиентских приложений и передает его на наименее загруженный рабочий сервер. Каждый сервер исполняют функции, требующие значительных затрат вычислительной мощности: обработка изображений, растеризация, запросы к базе данных. Готовые растры передаются клиенту. При запуске задействованные серверы автоматически регистрируются на распределителе задач. Для определения коэффициента загрузки рабочего узла отслеживается количество активных сессий и использование процессора. Экземпляры серверов могут иметь разную версию протокола, которая сопоставляется с версией клиента. Запросы направляются только на совместимый сервер.
Технологии: C++, Linux, Qt, SQL, TCP/IP, Windows.