Кампусна Ферма — различия между версиями

Материал из Брацка Правки
Перейти к: навигация, поиск
(Архитектура)
Строка 18: Строка 18:
  
 
===Архитектура===
 
===Архитектура===
 +
:'''Для предоставления услуг''' пользователям:
 +
:#Пользовательские приложения ''Фермы'' установлены:
 +
:#*либо в контейнерах, которые уже содержат подогнанные исключительно под нужды приложения операционные системы.
 +
:#*либо на виртуальных машинах. Для взаимодействия виртуальной машины и приложения, операционные системы "из коробки" установлены в машинах перед установкой приложений.
 +
:#Контейнеры и виртуальные машины ''Фермы'' создаются в виртуальных средах.
 +
 +
:'''Для высокой доступности''' ([[high availability]] или [[HA]]) и отказоустойчивости услуг:
 +
:*Задействуются три ''Узла'', объединённые в единые сети [[#Соединители|Соединителями]]. Два из трёх ''Узлов'' являются "несущими"; их базы синхронизованы и изменение в одной базе влечёт автоматическое изменение в другой. Из двух несущих, одно является основным. Третий ''Узел'' -- это ???
 +
:*В обычном режиме, веб-просмотрщик (web browser) пользователя обращается к [[IP адрес]]у [[Contabo]], который отправляет пользователя к основному ''Узлу''.
 +
:*Если основной ''Узел'' неспособен обслуживать клиентов, виртуальная среда изолирует его и переключает клиентов на второй несущий, работающий ''Узел''.
 +
 +
:'''Отказоустойчивость требует''' пару дополнительных функций:
 +
:#Для обнаружения сбоя или другой нештатной ситуации, ''Ферма'' постоянно мониторится. Сигнал о сбое поступает в виртуальную среду, которая ограждает (fencing) ''Узел'' со сбоем и запускает процесс восстановления данных с резервной копии.
 +
:#Для восстановления данных в случае их потери из-за сбоя или другой нештатной ситуации, каждый ''Узел'' постоянно проводит резервное копирование.
 +
 
===Доступы===
 
===Доступы===
  

Версия 11:35, 23 июля 2022

Кампусна Ферма (здесь и далее -- Ферма) -- это отказоустойчивый (high availability) кластер Брацких Ферм (здесь и далее по тексту -- Ферм), который обеспечивает обеспечивает работу и высокую доступность услуг приложений Брацка Кампуса, так называемых кампусных прилад.


Общее описание

Термины

На данной вики-странице, используются следующие термины:
  • IP адрес (IP address). Адрес компьютерного устройства, соответствующий либо протоколу IPv4, либо протоколу IPv6. Доступные в сети Интернет адреса куплены у поставщика услуг размещения.
  • VPS (virtual private server или виртуальный частный сервер). Виртуальное компьютерное устройство, имитирующее компьютерный сервер, создаваемое виртуальной средой. Аналогично обычному компьютерному серверу, на VPS устанавливается операционная система, обычно, из коробки, и, на неё, -- пользовательские приложения. По сути, VPS является виртуальной машиной, созданной для работы в качестве сервера, то есть, с повышенными, чем у обычной машины, характеристиками.
  • Высокая доступность (high availability или HA; также называемая "отказоустойчивостью"). Свойство Фермы, обеспечивающее предоставление услуг Фермой при сбое её определённой части с одновременным восстановлением той самой части, которая пострадала от сбоя.
  • Контейнер. Виртуальное компьютерное устройство, имитирующее компьютер с установленной операционной системой и пользовательскими приложениями, создаваемое виртуальной средой. Как правило, контейнеры задействуют облегчённую операционную систему, заточенную исключительно под работу установленных приложений.
  • Операционная система (operating system или OS). Программное обеспечение, которое, с одной стороны, взаимодействует либо с железным, либо с виртуальным компьютерным устройством и, с другой стороны, может взаимодействовать с пользовательскими приложениями.
  • Пользовательское приложение. Одна из установленных на Ферме кампусных прилад.
  • Поставщик услуг размещения. Провайдер услуг Интернета (Internet service provider или ISP), предоставляющий свои подключённые к сети Интернет виртуальные частные сервера в аренду для размещения Фермы.
  • Соединитель. Коммутационное устройство предоставляемое поставщиком услуг размещения Фермы и описанное в Соединителях.
  • Узел (node). Комбинация одного VPS и установленного на нём программного обеспечения, представленная в сети и описанная в Узлах Фермы.
  • Ферма. Кампусна Ферма, для описания которой предназначена данная вики-страница.

Архитектура

Для предоставления услуг пользователям:
  1. Пользовательские приложения Фермы установлены:
    • либо в контейнерах, которые уже содержат подогнанные исключительно под нужды приложения операционные системы.
    • либо на виртуальных машинах. Для взаимодействия виртуальной машины и приложения, операционные системы "из коробки" установлены в машинах перед установкой приложений.
  2. Контейнеры и виртуальные машины Фермы создаются в виртуальных средах.
Для высокой доступности (high availability или HA) и отказоустойчивости услуг:
  • Задействуются три Узла, объединённые в единые сети Соединителями. Два из трёх Узлов являются "несущими"; их базы синхронизованы и изменение в одной базе влечёт автоматическое изменение в другой. Из двух несущих, одно является основным. Третий Узел -- это ???
  • В обычном режиме, веб-просмотрщик (web browser) пользователя обращается к IP адресу Contabo, который отправляет пользователя к основному Узлу.
  • Если основной Узел неспособен обслуживать клиентов, виртуальная среда изолирует его и переключает клиентов на второй несущий, работающий Узел.
Отказоустойчивость требует пару дополнительных функций:
  1. Для обнаружения сбоя или другой нештатной ситуации, Ферма постоянно мониторится. Сигнал о сбое поступает в виртуальную среду, которая ограждает (fencing) Узел со сбоем и запускает процесс восстановления данных с резервной копии.
  2. Для восстановления данных в случае их потери из-за сбоя или другой нештатной ситуации, каждый Узел постоянно проводит резервное копирование.

Доступы

Инфраструктура

Инфраструктура Фермы -- это объединённые в единую связку три VPS.

Поставщик VPS

Contabo является поставщиком услуг размещения, у которого VPS арендуется. Сотрудничество с данным поставщиком длится с 2017 года.

Оптимизация VPS

Три арендованы у Contabo; два сервера и отдельное дисковое пространство для резервных копий располагаются в Сент-Луисе, Миссури, США, один -- в Германии. Планов уезжать с Contabo нет, но есть план заменить один сервер в Сент-Луисе, Миссури на сервер в Сингапуре;

Соединители

Характеристики VPS

VPS 1

VPS M SSD (6 vCPU Cores; 16 GB RAM; 100 GB NVMe or 400 GB SSD; 2 Snapshots; 32 TB Traffic Unlimited Incoming)
  • IPv4, IPv6
  • Location: Nuremberg
  • OS: Ubuntu 18.04 (64 Bit)

VPS 2

VPS M SSD (6 vCPU Cores; 16 GB RAM; 100 GB NVMe or 400 GB SSD; 2 Snapshots; 32 TB Traffic Unlimited Incoming)
  • IPv4, IPv6
  • Location: St. Louis
  • OS: Ubuntu 18.04 (64 Bit)
1000 GB FTP Storage
  • Location: USC1 St Louis [VPS M]

VPS 3

VPS M SSD (6 vCPU Cores; 16 GB RAM; 100 GB NVMe or 400 GB SSD; 2 Snapshots; 32 TB Traffic Unlimited Incoming)
  • IPv4, IPv6
  • Location: St. Louis
  • OS: Ubuntu 18.04 (64 Bit)
Panel: LAMP
  • Location: USC1 St Louis [VPS M]

Пользовательские прилады

Правка

Учебка

  • Брацка Учебка -- это ресурс для организации учебных курсов и сертификационных программ, который построен на основе программного обеспечения Moodle.

Бачка

  • Брацка Бачка -- это средство загрузки, хранения и просмотра видео-материалов. Бачка построена на основе программного обеспечения AVideo

Объявление

В данный момент, мы используем три VPS арендованных у Contabo для размещения трёх приложений -- MediaWiki, Moodle и AVideo. Два VPS размещены в США, один -- в Германии. Базой данных выбрана MariaDB и три базы синхронизованны Galera. Основная решаемая проблема -- это высокая доступность. Дополнительная проблема -- это Geocast. После решения дополнительной проблемы, мы планируем отказаться от одного VPS в США и добавить один VPS в Сингапуре. Мы также открыты к разработке отдельного кластера под AVideo.

Принцип отбора

Нам нужен VPS кластер и мы отдадим подряд тому,
  1. кто сможет это сделать,
  2. в чьём графике завершение контракта не растянется на более, чем на ???, и
  3. чей бюджет будет наименьший. Имеется в виду весь бюджет, включая и оплату подрядчиков, и расходы на покупку и ежегодного поддержания Кластера