Брацко Облако — различия между версиями

Материал из Брацка Правки
Перейти к: навигация, поиск
(Базы данных)
(Развитие)
 
(не показаны 273 промежуточные версии 3 участников)
Строка 1: Строка 1:
[[Брацко Облако]] (CNM Cloud; далее то тексту -- ''Облако'') -- это технологические ресурсы [[Брацка Школа|Брацкой Школы]] (здесь и далее то тексту -- ''Школы''). ''Облако'' представляет собой совокупность программного обеспечения и поддерживающей его материальной части.
+
[[Брацко Облако]] (CNM Cloud; иногда кодируемое как "[[bo]]", далее то тексту -- ''Облако'') -- это технологические ресурсы обслуживающие онлайн операции [[Брацка Школа|Брацкой Школы]] (здесь и далее то тексту -- ''Школы''). ''Облако'' представляет собой совокупность программного обеспечения и поддерживающей его материальной части.
  
  
==Цели==
+
==Цели и задачи==
===Основные===
+
===Цели===
:Технологические ресурсы призваны поддерживать людей, которые:
+
:''Облако'' предоставляет автоматически или поддерживает технологически тех людей, которые предоставляют услуги, имеющие целью:
:*либо определяются с профессией (помогая организовывать обзорные семинары, практики и исследования для них),
+
:#'''Профессионально сориентировать''', поддерживая организацию обзорных семинаров, практик и консультаций для тех, кто определяется с профессией.
:*либо нарабатывают профессиональные квалификации (обеспечивая учебный процесс, обучение на рабочем месте или сертификацию навыков для них),
+
:#'''Подготовить к профессиональной деятельности''', обеспечивая учебный процесс, обучение на рабочем месте или сертификацию профессиональных компетенций для тех, кто нарабатывает профессиональные квалификации.
:*либо ищут конкретную работу (предоставляя знания, инструменты, сертификации, доступ к контактам и маркетинговым каналам).
+
:#'''Трудоустроить''', предоставляя знания, инструменты, сертификации, доступ к контактам и маркетинговым каналам тем, кто:
 +
:#*Уже готов к профессиональной деятельности и ищет конкретную работу.
 +
:#*Нанимают найденные, подготовленные и/или сертифицированные с использованием ''Облака'' кадры.
 +
:#'''Поддержать трудоустроенных''', оказывая административные услуги и консультации, а также финансируя предприятия тех выпускников, которые решили организовать или продвинуть свои собственные бизнесы.
  
===Дополнительные===
+
===Задачи===
:Кроме того, ''Облако'' может быть полезно:
+
:''Облако'' решает задачи обеспечения потенциальных и существующих учеников [[Брацкой Школы]] и вовлечённых в проект [[Bskol]] площадкой для учёбы и работы, в частности, ''Облако'' обеспечивает:
:*тем выпускникам, которые решат организовать или продвинуть свои собственные предприятия,
+
:*'''Всех пользователей''' [[Всемирная Паутина|Всемирной Паутины]] -- гостевым доступом к общественным ресурсам ''Облака'', включая [[Брацка Правка|Правку]],  [[Брацка Вебка|Вебку]], [[Брацка Бачка|Бачку]],  [[Брацки Жици]], [[Брацка Крынка|Крынку]]
:*тем предприятиям, которые нанимают кадры найденные, подготовленные и/или сертифицированные с использованием ''Облака''.
+
:*'''Зарегистрированных''' в [[Оплёт]]е пользователей -- пользовательским доступом к [[Оплётна Кабина|Кабине]]
 +
:*'''Учеников''' -- пользовательским доступом к [[Брацка Учебка|Учебке]], [[Брацка Правка|Правке]], [[Брацка Вебка|Вебке]],  [[Брацка Бачка|Бачке]],  [[Брацка Жици|Жици]], [[Брацка Сетка|Сетке]] и административным доступом к тем [[Курсовы Прилады|Курсовым Приладам]], которые они изучают.
 +
:*'''Координаторов и подрядчиков''' -- пользовательским доступом к [[Брацка Крынка|Крынке]] и административным доступом к тем [[Опытны Прилады|Опытным Приладам]], над которыми они работают.
 +
:*'''Подмастерьев, мастеров и сотрудников''' -- пользовательским доступом к [[Брацка Связка|Связке]], [[Брацка Пошта|Поште]], [[Брацка Справа|Справе]]  и административным доступом к тем [[Полны Прилады|Полным Приладам]], которые они обслуживают.
 +
:*'''Участников коротких тренингов''' -- доступом к тем виртуальным ресурсам, которые созданы специально для этого тренинга. Школа будет устраивать тренинги и планирует выдавать ресурсы для практических занятий. После регистрации на тренинг, участник должен получать имэйл со ссылкой на ресурс с логином и паролем. Ресурс должен быть либо виртуальной машиной, либо контейнером. Специалист считает, что так как контейнер создаётся одной строкой, можно сделать скрипт под Линукс, который будет создавать контейнер из образа и добавлять к нему логин и пароль.
  
 
==Общие положения==
 
==Общие положения==
 
''Облако'' имеет в наличии сотни приложений и множество систем, точное число которых постоянно изменяется. В этом разделе упомянуты только основные из большого разнообразия тех приложений и систем.
 
''Облако'' имеет в наличии сотни приложений и множество систем, точное число которых постоянно изменяется. В этом разделе упомянуты только основные из большого разнообразия тех приложений и систем.
  
===Географическая доступность===
+
===Технологические ярусы===
:''Облако'' распределено по нескольким континентам с тем, чтобы пользователь работал с тем приложением, которое более доступно для этого пользователя. Для этого будут планироваться [[DNS Anycast]], [[DNS Geocast]] и аналогичные распределительные системы. Есть план отправлять пользователя на тот сервер, который наиболее доступен конкретному пользователю.
+
:''Облако'' включает в себя три яруса программного обеспечения:
 +
:#[[Брацки Фермы|Инфраструктуру]] называемую [[Брацки Фермы]],
 +
:#[[Оплёт|Связующее обеспечение]] или федерационную службу называемую [[Оплёт]]ом, и
 +
:#[[#Пользовательские приложения|Пользовательские приложения]].
  
===Доменные имена===
+
===Поддержка программных языков===
:Хотя планируется использование десайтков доменных имён, речь пока идёт о четырёх основных:
+
:''Облако'' поддерживает следующие языки:
:#cnmcyber.com -- некоммерческий сайт для англоязычных пользователей;
+
:*[[PHP]]. Поддерживаются версии 7.4. и 8.0.9. [[Apache HTTP server]] определяет, какой язык будет использоваться через скрипты типа:<blockquote><nowiki><FilesMatch \.php$># From the Apache version 2.4.10 and above, use the SetHandler to run PHP as a fastCGI process server
:#vit4all.com -- коммерческий сайт для англоязычных пользователей;
+
SetHandler "proxy:unix:/run/php/php7.4-fpm.sock|fcgi://localhost"</FilesMatch></nowiki></blockquote>
:#bskol.com -- некоммерческий сайт для русскоязычных пользователей;
+
:*[[Python]].
:#vsemka.com -- коммерческий сайт для русскоязычных пользователей;
 
:Доменные имена зарегистрированы на [[GoDaddy]]; [[nameserver]]s расположены там. Записи делались спонтанно  не подвергались ревизии. Планируется:
 
:*Проверить существующие и создать нехватающие [[DNS]].
 
:*Рассмотреть добавку новых [[DNSSEC]] записей. [[DNSSEC]] не является критичной -- может быть отлажено только для какой-то части зон [[DNS]]. Проект ''Школы'' -- учебный, нам важно иметь разные вещи для того, чтобы показывать ученикам.
 
:*Изучить возможность [[Dynamic DNS]] ([[DDNS]]) или виртуальных [[DNS]].
 
  
===Нахождение в Паутине===
+
==Брацки Фермы (инфраструктура)==
:Говоря об IP адресах, в данный момент используется [[IPv4]], но есть план разобраться с более новым протоколом. Судя по некоторым публикациям, [[IPv6]] решит проблему отказоустойчивости в части перенаправления трафика.
+
:''Основная вики-страница: [[Брацки Фермы]]''
  
:В дополнение, есть план разобраться с виртуальными адресами ([[virtual IP address]]). [[Digitalocean]] предлагает [[floating IP address]], который можно устанавливать на те дроплеты ([[VPS]]), которые расположены в одном датацентре. То есть, мы этой возможностью не воспользуемся. [[Hetzner|Hetzner.de]] предлагает [[failover IP]], хотя с ними надо разобраться. Не похоже, что [[Contabo]] предлагает что-то вроде этого.
+
===Делова Ферма===
 +
:''Основная вики-страница: [[Делова Ферма]]''
  
===Основное обеспечение===
+
===Опытна Ферма===
 +
:''Основная вики-страница: [[Опытна Ферма]]''
 +
 
 +
===Кампусна Ферма===
 +
:''Основная вики-страница: [[Кампусна Ферма]]''
 +
 
 +
===Обеспечение Ферм (сводка)===
 
:{|class="wikitable" width=100%
 
:{|class="wikitable" width=100%
|style="text-align:center;"|Ярус
+
|+[[Брацки Фермы|Инфраструктура]] ([[Брацки Фермы|Фермы]])
 +
|style="text-align:center;"|Компоненты
 
!Название!!Предназначение!!Технология!![[Веб-адрес|Веб&#8209;адрес]]
 
!Название!!Предназначение!!Технология!![[Веб-адрес|Веб&#8209;адрес]]
 
|-
 
|-
![[Брацки Фермы|Инфраструктура]]
+
!rowspan="6"|Делова
|[[Брацки Фермы|Фермы]]||Поддержка [[Оплёт|Связующего обеспечения]] и [[#Пользовательские приложения|Пользовательских приложений]]||[[OpenStack]]||colspan="2"|Спрятан
+
|Частное облако||Поддержка [[#Пользовательские приложения|Пользовательских приложений]] и [[Оплёт|Связующего обеспечения]]||[[OpenStack]]||rowspan="7"|Спрятан
|-
 
!rowspan="2"|[[Оплёт|Связующее обеспечение]]
 
|[[Оплёт]] (ядро)||Управление регистрацией, идентификацией и авторизацией доступов пользователей||[[Yii]]&nbsp;(custom&nbsp;code)
 
|[https://kabina.bskol.com '''kabina'''.bskol.com]
 
|-
 
|Идентификация||Получение данных от ядра и взаимосвязь с пользовательскими приложениями||[[WSO2 IS]]||Спрятан
 
|-
 
!rowspan="10"|[[#Пользовательские приложения|Пользовательские приложения]]
 
|[[Брацка Бачка|Бачка]]||Размещение видео файлов||[[AVideo]]
 
|[https://backa.bskol.com '''backa'''.bskol.com]
 
|-
 
|[[Брацка Вебка|Вебка]]||Администрация вэб-сайтов||[[WordPress]]
 
|[https://vebka.bskol.com '''vebka'''.bskol.com]
 
|-
 
|[[Брацки Жици|Жици]]||Организация видео- и аудио-конференций|||[[Jitsi]]
 
|[https://jitsi.bskol.com '''jitsi'''.bskol.com]
 
|-
 
|[[Брацка Крынка|Крынка]]||Работа разработчиков над проектами с установленным service desk приложением для сбора информации по проблемам и хранение исходных кодов уникального программного обеспечения||[[GitLab]]
 
|[https://krynka.bskol.com '''krynka'''.bskol.com]
 
|-
 
|[[Брацка Пошта|Пошта]]||Электронная почта||[[Roundcube]]
 
|[https://posta.bskol.com '''posta'''.bskol.com]
 
|-
 
|[[Брацка Правка|Правка]]||Открытый источник знаний и, одновременно, работа для новичков||[[MediaWiki]]
 
|[https://pravka.bskol.com '''pravka'''.bskol.com]
 
 
|-
 
|-
|[[Брацка Связка|Связка]]||Полезные контакты||[[SuiteCRM]]
+
|Виртуальная среда||Управление виртуальными машинами для [[Опытно Облако|Опытна Облака]]||[[ProxmoxVE]]
|[https://svazka.bskol.com '''svazka'''.bskol.com]
 
 
|-
 
|-
|[[Брацка Сетка|Сетка]]||Социальная сеть||[[HumHub]]
+
|Мониторинг||Слежение за работой вычислительных серверов и сообщения о неполадках||[[Nagios Core]]
|[https://setka.bskol.com '''setka'''.bskol.com]
 
 
|-
 
|-
|[[Брацка Справа|Справа]]||Административный учёт, электронная коммерция ([[Careerprise Shop]]) и работа персонала над проектами||[[Odoo]]
+
|Установщик||Инструмент для установки, конфигурации и удаления пакетов программного обеспечения||[[APT]]
|[https://sprava.bskol.com '''sprava'''.bskol.com]
 
 
|-
 
|-
|[[Брацка Учебка|Учебка]]||Бесплатные учебные курсы||[[Moodle]]
+
|rowspan="2"|Веб-сервер||Первичное управление запросами поступающими по [[HTTP]]||[[NGINX]]
|[https://ucebka.bskol.com '''ucebka'''.bskol.com]
 
 
|-
 
|-
|&nbsp;
+
|Вторичное управление запросами поступающими по [[HTTP]]||[[Apache HTTP server|Apache]]
!colspan="4"|Арендованное обеспечение
 
 
|-
 
|-
!rowspan="4"|[[#Эксперементальные приложения|Эксперементальные приложения]]
+
!Опытна
|Campus||Учебные курсы [[VIT]]||[[OpenEdX]]
 
|[https://campus.vit4all.com campus.vit4all.com]
 
|-
 
|Agile||Практика для [[VIT]] курсов по Agile software||[[Taiga software|Taiga]]
 
|[https://agile.vit4all.com agile.vit4all.com]
 
 
|-
 
|-
|Project||Практика для [[VIT]] курсов по project management software||[[ProjecQtOr]]
+
!Кампусна
|[https://project.vit4all.com project.vit4all.com]
 
 
|-
 
|-
|Redmine||Практика в Redmine для [[VIT]] курсов по project management software||[[Redmine]]
+
!Оплётна
|[https://redmine.bskol.com redmine.bskol.com]
 
 
|}
 
|}
  
===Пользовательские приложения===
+
==Оплёт (федерационная служба)==
:Пользовательские приложения -- это приложения для конечных пользователей. ''Облако'' предоставляет три типа приложений:
+
:''Основная вики-страница: [[Оплёт]]''
:#Полные приложения, то есть те, которые используются по тому основному назначению, для которого они были созданы,
 
:#Тренировочные приложения, то есть те, которые используются для отработки практических навыков работы с ними, и
 
:#Эксперементальные приложения, то есть те, которые используются
 
  
===Технологические ярусы===
+
[[Оплёт]] -- это то служебное программное обеспечение, которое собирает и [[Брацки Фермы|Инфраструктуру]] ''Облака'', и его [[#Пользовательские приложения|Пользовательские приложения]] в единую систему. ''Оплёт'' представляет собой связующее программное обеспечение, которое может обеспечивать все  вне зависимости от их расположения в системе, прежде всего, услугами по идентификации всех пользователей ''Облака'', регистрации новых пользователей, определение ролей пользователей, авторизации их доступов и так далее.
:''Облако'' включает в себя три яруса программного обеспечения:
 
:#[[Брацки Фермы|Инфраструктуру]],
 
:#[[Оплёт|Связующее обеспечение]] и
 
:#[[#Пользовательские приложения|Пользовательские приложения]].
 
  
===Требования к приложениям===
+
===Запись на курсы===
:''Основная вики-страница: [[Требования к приложениям Брацкого Облака]]''
+
:В настоящее время запись на курсы производится через [[Брацка Учебка|Брацку Учебку]], обычно, через самозапись. Самозапись создаёт неудобства для некоторых учеников -- перед записью, они должны найти необходимый им курс. Предлагается создать модуль ''Оплёта'', который будет автоматически записывать учеников, причём не только в [[Брацка Учебка|Брацкой Учебке]], но и на кампусе [[VIT]].
  
:Требования к приложениям описаны на вики-странице [[Требования к приложениям Брацкого Облака]].
+
===Защита от ботов===
 +
:Для защиты от "ботов", то есть веб-роботов, вначале была установлена Google-овская ReCAPTCHA, однако она не работала для пользователей в Китае, где услуги Google заблокированы, и потому была отключена. Планируется добавить простую, не-Google-овскую [[Friendly Captcha]] на регистрацию (https://friendlycaptcha.com/; https://github.com/FriendlyCaptcha).
  
==Брацки Фермы (инфраструктура)==
+
:В то же время, любая CAPTCHA ухудшает пользовательский опыт. Говорят, что лучшая CAPTCHA -- это её отсутствие. CAPTCHA не будет нужна, когда в [[#Управление пользователями|Управление пользователями]] будет добавлена функция автоматического удаления учётных записей. [[Negative Captcha]] (https://github.com/subwindow/negative-captcha) -- ещё один интересный проект для опробования.
:''Основная вики-страница: [[Брацки Фермы]]''
 
  
Архитектура облачной инфраструктуры не определена. Ранее использовался [[OpenStack]]. Скорее всего, когда работа ''Школы'' войдёт в привычный режим, инфраструктура должна состоять из некой комбинации частного и общественных облаков.
+
===Идентификационные самоуслуги===
 +
:Из-за проблем с [[#Почтовый сервер|почтовым сервером]], в настоящее время не работает восстановление пароля, которое необходимо воссоздать и протестировать после решения проблем с почтой.
  
===Аварийное восстановление===
+
===Интерфейс===
:Инструкция по восстановлению инфраструктуры после аварии должна позволить восстановить отдельные:
+
:''Оплёт'' нуждается в новом пользовательском интерфейсе, включая приёмную и регистрационную страницы, а также кабинет пользователя.
:*Кластеры, включая [[Кластер Жици]], [[Кластер MariaDB]], [[Кластер Оплёта]] и [[Кластер PostgreSQL]];
 
:*Вычислительныe сервера целиком.
 
  
===Виртуализация===
+
===Компоненты===
:Есть план добавить железо на [[Hetzner|hetzner.de]] с установкой [[proxmox]].
+
:''Оплёт'' состоит из:
 +
:#Ядра, который представляет собою систему управления пользователями, написанную на [[Yii]],
 +
:#Идентификационного сервера, который предоставляет данные ядра всем пользовательским приложениям,
 +
:#Дополнительных модулей, обслуживающих [[#Запись на курсы|запись на курсы]] и [[#Организация мероприятий|организацию мероприятий]], а также предоставляющих [[#Экзаменационные вопросы|экзаменационные вопросы]].
  
===Вычислительные сервера===
+
===Определение ролей===
:В настоящее время, используется пять виртуальных частных серверов ([[virtual private server; VPS]]):
+
:По завершению определённых курсов [[Брацка Учебка]] должна отдавать информацию [[Оплёт]]у, тот должен назначать новую роль и отдавать эту роль в [[WSO2 Identity Server]], а [[WSO2 Identity Server]] -- распространять по всем приложениям. Ранее эту проблему пытались решать с [[OpenLDAP]]. Всё решалось пока не сломались на проблеме изменения ролей -- [[OpenLDAP]] принимал только одну роль и далее не менял её.
:#Три арендованы у [[Contabo]]; два сервера и отдельное дисковое пространство для резервных копий располагаются в Сент-Луисе, Миссури, США, один -- в Германии. Планов уезжать с [[Contabo]] нет, но есть план заменить один сервер в Сент-Луисе, Миссури на сервер в Сингапуре;
 
:#Два [[VPS]] (они зовут их "дроплетами") арендованы у [[DigitalOcean]]; один располагается в Нью-Йорке, США, один -- во Франции. Планов уезжать с [[DigitalOcean]] нет.
 
  
:Для [[#Виртуализация|создания собственных виртуальных серверов]], скорее всео, будет арендован физический сервер ([[bare metal]]) у [[hetzner.de]] в Германии.
+
===Организация мероприятий===
 +
:Несколько приложений имеют свои функционалы по организации мероприятий (event) -- [[Брацка Учебка]] имеет календарь упражнений и экзаменов, [[Брацка Сетка]] предоставляет возможность организации мероприятий группы, [[Брацка Крынка]] организует календарь необходимых к выполнению работ и так далее. Некоторые мероприятия также должны публиковаться за пределами ''Облака'', на страницах социальных сетей типа [[Фейсбук]]а. Для централизации нескольких календарей, планировалось создание специального модуля ''Оплёта'', где можно бы было отслеживать информацию из разных источников и размещать её в личном кабинете пользователя.
  
===Мониторинг===
+
===Почтовые ящики===
:Мониторинг систм включает мониторинг работы как вычислительных серверов, так и приложений. Планируется использовать внутренние функции установленных приложений и рассмотреть отдельные приложения, такие как [[Zabbix]] и [[Nagios]].
+
:Почтовые ящики работают на основе [[#Почтовый сервер|Почтового сервера]]. Две проблемы требуют решений:
 +
:#В профиль пользователя необходимо добавить поля для корпоративных имейлов. Сейчас почту автоматически может получить только тот, кто не указал своего электронного адреса при создании почты.
 +
:#Доступ к персональному ящику должны получать только пользователи с правами [[CertFellow]] и выше.
  
===Почтовый сервер===
+
===Управление пользователями===
:Команда планирует поднять highload мультидоменный почтовый сервер. Компетенций существующей команды хватает для настроек поддоменов и веб-серверов, но не для выбора и подготовки к эксплуатации. Количество пользователей не определено -- все, кто имеет право на почту, должен её иметь. Проблемы с дисковыми пространствами будут решаться отдельно.
+
:Заведение новых учётных записей и удаление тех записей, которые в течение 6-ти месяцев не завершили ни одного курса.
:Требуется:
 
:#Выбрать, установить, настроить, провести нагрузочное тестирование, отмониторить продакшн и откоректировать параметры такого решение для почты, которое бы дружило с нашим [[WSO2 IS]], через который идёт управление пользователями. Будет установлен пакет [[iRedMail]], который включает в себя [[Postfix]], [[Dovecot]], [[Roundcube]]. Когда ''Облако'' строилось на [[OpenLDAP]], был найден подрядчик, требования которого были: 1. Что бы у всех пользователей было заполнено поле mail 2. Новый пользователь vmail (пароль скажут после установки пакета iRedmail) 3. Поле для квоты. Также обсуждался безопасный тунель между сервером почты и сервером [[OpenLDAP]]. Найденный подрайдчик считал, что лучшее решение -- это использование [[VPN]], чтобы и [[OpenLDAP]], и [[Dovecot]] виртуально были бы в одной сети. Авторизация почтового сервера идёт через [[Dovecot]]. Другой специалист называл такое решение идиотским. После решения о переходе с [[OpenLDAP]] на [[WSO2 IS]] подрячиков не искали.
 
:#Задокументировать решения и настройки.
 
  
===Резервное копирование===
+
===Федерационная идентификация===
:В ''Облаке'', к резервному копированию применяется несколько подходов. Копируются приложения и сервера; сохраняются базы и делаются снимки.
+
:Пользовательская федерация налаживается на базе [[WSO2 Identity Server]]. До лета 2021, она строилась на [[OpenLDAP]], а до 2018 года -- на [[SimpleSAMLphp]]. Планируется:
:*Изначально использовался [[rsync]] для копирования файлов, еженедельно полный бэкап и ежедневно incremental бэкап заливались на backup space на [[Contabo]]. Была идея использовать [[rsnapshot]] для снимков, но эту идею пока не получилось реализовать.
+
:#Перевести основную идентификацию и авторизацию с [[OpenLDAP]] на [[WSO2 Identity Server]] в рамках проекта [[Перевод Оплёта на WSO2 IS]].
:*Весной-летом 2021 года, начались эксперименты с [[Veeam Agent for Linux]], для которого был установлен [[VNC® Viewer]]. Это обеспечение позволило копировать полный сервер.
+
:#В тех приложениях, которые работают с [[OpenLDAP]], на регистрационных страницах оставить кнопку "[[LDAP login]]". Альтернативно, эту кнопку можно разместить на регистрационной странице [[WSO2 IS]].
:Надо создать:
+
:#Проверка [[SSO]]. Более 3х десятков пользовательских приложений включено в "Облако" и, заходя в каждое из них, сейчас пользователь не должен логиниться отдельно. Теоретически, [[SSO]] -- это родная функция [[WSO2 Identity Server]], но, после перехода с [[OpenLDAP]] на [[WSO2 Identity Server]], каждое приложение должно проверяться.
:#Подробное описание существующей системы.
 
:#Процедуру проверки надёжности бэкапов.
 
  
==Данные в Облаке==
+
===Экзаменационные вопросы===
 +
:В настоящее время, [[Брацка Учебка]] позволяет загрузить экзаменационные вопросы в корневую директорию, откуда их могут задействовать отдельные курсы. Однако централизованная статистика по этим вопросам отсутствует. Например, ученик может получать один и тот же вопрос в разных курсах. Кроме того, требуется использование отдельных вопросов в других приложениях, таких как [[Брацка Вебка]], и этот функционал также отсутствует.
  
===Базы данных===
+
:Далее, [[Брацка Учебка]] активно использует элемент "Лекция", но не похоже, что этот элемент не сохраняет ответы учеников. Однако некоторые из ответов в лекциях необходимы для сохранения в качестве полей профиля. [[Moodle]] содержит пару плагинов для лекций, но не ясно решают ли эти плагины проблему сохранения ответов.  
:''Облако'' задействует большой спектр систем управления базами данных, некоторые из которых структурированы, а некоторые ориентированы на документы.
 
:#Наибольшая часть пользовательских приложений использует базы управления данными на основе [[MariaDB Server]]. Администраторское приложение [[PhpMyAdmin]] используется для администрирования каждого из них.
 
:#Отдельные приложения, например, [[Брацка Крынка]] и [[Брацка Справа]], задействуют базы управления данными на основе [[PostgreSQL]].
 
:#Обособленная установка [[MariaDB Server]], отличная от той, что поддерживает большую часть пользовательских приложений,  также вовлечена в управление пользователями [[Оплёт]]а.
 
:#Идентификационный сервер [[Оплёт]]а, то есть та его часть, которая работает с другими приложениями, построен на базе сервера [[WSO2 IS]] и задействует три базы [[H2 DBMS]].
 
:#[[NoSQL]] и структурированные распределённые базы будут задействованы в работу будущей интеграционной платформы [[Оплёт]]а.
 
  
===Интеграция данных===
+
:Планируется унифицировать тесты по всей платформе с помощью нового модуля ''Оплёта''.
:#Сейчас, база каждого пользовательского приложения установлена на трёх нодах и синхронизована через [[#Кластерное копирование|Кластерное копирование]]. Есть план сделать одну распределённую базу и интегрировать её в Оплёт с тем, чтобы базы приложений забирали данные оттуда. В качестве интеграционного решения серъёзно рассматривается [[WSO2 Enterprise Integrator]]. Этот интегратор работает и как [[ESB]], и платформа для микросервисов. В качестве распределонной базы один специалист рекоммендовал [[NoSQL]] -- [[Apache Cassandra]]. Другой вариант -- распределённую [[SQL]] типа [[CockroachDB]].
 
:#Наиболее приоритетная задача -- создать архитектуру базы клиентов. Сейчас клиенты учитываются в нескольких независимых приложениях. Они имеют [[CRM]] модули, которые призваны учитывать работу с клиентами, которые могут является, но скорее всего не являются пользователями. Надо создать базу, в которую каждое приложение заливало новые данные и брало старые. Предложение заключалось в общей master базе, информация в которую может вбиваться с любого приложения, но отображаться в зависимости от её публичности.
 
:#Есть также предложение создать собирать данные с различных приложений и хранить их в [[NoSQL]] базе. Ранее обсуждалась единая неосновная база данных для всей системы. Разговор шёл о комбинации [[Hadoop]], [[ESB Mule]] и [[MongoDB]]. Идея была в сборе данных с разных приложений через [[ESB Mule]], причёсывание их [[Hadoop]]'ом и размещение в [[MongoDB]] как дополнительной базе данных, откуда они могут браться для для личного кабинета ([[dashboard]]) пользователя. То есть, заходя в кабинет, пользователь мог бы в идеале видеть свою активность в разных приложениях и искать по всем системам сразу.
 
:#Надо стабилизировать загрузку, хранение и использование картинок на [[MediaWiki]]. Сейчас они спорадически не загружаются или не отображаются. Например, 7 декабря картинки выбились, перестав отображаться. После клика на редактирование и сохранение, картинки появлялись -- этот сценарий повторялся на нескольких страницах. Затем всё само восстановилось. Аналогичные сбои происходили и раньше. Сама Википедия использует другую схему. Мы рассматриваем перенос картинок в хранилище.
 
  
===Обслуживающие кластеры===
+
===Обеспечение Оплёта (сводка)===
:{|class="wikitable" width=100% style="text-align:center;"
+
:{|class="wikitable" width=100%
|Ярус
+
|style="text-align:center;"|Ярус
!Название!!Основное ПО!!ПО базы данных!!Кластер
+
!Название!!Предназначение!!Технология!![[Веб-адрес|Веб&#8209;адрес]]
 
|-
 
|-
![[Брацки Фермы|Инфраструктура]]
+
!rowspan="2"|[[Оплёт|Связующее обеспечение]] ([[Оплёт]])
|[[Брацки Фермы|Фермы]]||[[OpenStack]]||colspan="2"|Все остальные
+
|Идентификация||Получение данных от ядра и взаимосвязь с пользовательскими приложениями||[[WSO2 IS]]
 
|-
 
|-
!rowspan="2"|[[Оплёт|Связующее обеспечение]]
+
|Ядро и пользовательский интерфейс||Управление регистрацией, идентификацией и авторизацией доступов пользователей||[[Yii]]&nbsp;(custom&nbsp;code)
|[[Оплёт]] (ядро)||[[Yii]]||[[MariaDB Server]]||rowspan="2"|[[Кластер Оплёта]]
+
|[https://kabina.bskol.com '''kabina'''.bskol.com]
|-
+
|}
|Идентификация||[[WSO2 IS]]||[[H2 DBMS]]
+
 
 +
==Пользовательские приложения==
 +
:Пользовательские приложения -- это приложения для конечных пользователей.
 +
 
 +
===Типы приложений===
 +
:''Облако'' предоставляет три типа приложений:
 +
:#Полные приложения, то есть те, которые используются по тому основному назначению, для которого они были созданы,
 +
:#Тренировочные приложения, то есть те, которые используются для отработки практических навыков работы с ними, и
 +
:#Эксперементальные приложения, то есть те, которые используются
 +
 
 +
===Требования к приложениям===
 +
:''Основная вики-страница: [[Требования к приложениям Брацкого Облака]]''
 +
 
 +
:Требования к приложениям описаны на вики-странице [[Требования к приложениям Брацкого Облака]].
 +
 
 +
===Обеспечение прилад (сводка)===
 +
:{|class="wikitable" width=100%
 +
|style="text-align:center;"|Ярус
 +
!Название!!Предназначение!!Технология!![[Веб-адрес|Веб&#8209;адрес]]
 
|-
 
|-
 
!rowspan="10"|[[#Пользовательские приложения|Пользовательские приложения]]
 
!rowspan="10"|[[#Пользовательские приложения|Пользовательские приложения]]
|[[Брацка Бачка|Бачка]]||[[AVideo]]||rowspan="2"|[[MariaDB Server]]||rowspan="2"|[[Кластер MariaDB]]
+
|[[Брацка Бачка|Бачка]]||Размещение видео файлов||[[AVideo]]
 +
|[https://backa.bskol.com '''backa'''.bskol.com]
 
|-
 
|-
|[[Брацка Вебка|Вебка]]||[[WordPress]]
+
|[[Брацка Вебка|Вебка]]||Администрация веб-страниц||[[WordPress]]
 +
|[https://vebka.bskol.com '''vebka'''.bskol.com]
 
|-
 
|-
|[[Брацки Жици|Жици]]|||[[Jitsi]]||Отсутствует||[[Кластер Жици]]
+
|[[Брацки Жици|Жици]]||Организация видео- и аудио-конференций|||[[Jitsi]]
 +
|[https://jitsi.bskol.com '''jitsi'''.bskol.com]
 
|-
 
|-
|[[Брацка Крынка|Крынка]]||[[GitLab]]||[[PostgreSQL]]||[[Кластер PostgreSQL]]
+
|[[Брацка Крынка|Крынка]]||Работа разработчиков над проектами с установленным service desk приложением для сбора информации по проблемам и хранение исходных кодов уникального программного обеспечения||[[GitLab]]
 +
|[https://krynka.bskol.com '''krynka'''.bskol.com]
 
|-
 
|-
|[[Брацка Пошта|Пошта]]||[[Roundcube]]
+
|[[Брацка Пошта|Пошта]]||Электронная почта||[[Roundcube]]
 +
|[https://posta.bskol.com '''posta'''.bskol.com]
 
|-
 
|-
|[[Брацка Правка|Правка]]||[[MediaWiki]]||rowspan="3"|[[MariaDB Server]]||rowspan="3"|[[Кластер MariaDB]]
+
|[[Брацка Правка|Правка]]||Открытый источник знаний и, одновременно, место первоначальной работы подмастерьев||[[MediaWiki]]
 +
|[https://pravka.bskol.com '''pravka'''.bskol.com]
 
|-
 
|-
|[[Брацка Связка|Связка]]||[[SuiteCRM]]
+
|[[Брацка Связка|Связка]]||Полезные контакты||[[SuiteCRM]]
 +
|[https://svazka.bskol.com '''svazka'''.bskol.com]
 
|-
 
|-
|[[Брацка Сетка|Сетка]]||[[HumHub]]
+
|[[Брацка Сетка|Сетка]]||Социальная сеть||[[HumHub]]
 +
|[https://setka.bskol.com '''setka'''.bskol.com]
 
|-
 
|-
|[[Брацка Справа|Справа]]||[[Odoo]]||[[PostgreSQL]]||[[Кластер PostgreSQL]]
+
|[[Брацка Справа|Справа]]||Административный учёт, электронная коммерция ([[Careerprise Shop]]) и работа персонала над проектами||[[Odoo]]
 +
|[https://sprava.bskol.com '''sprava'''.bskol.com]
 
|-
 
|-
|[[Брацка Учебка|Учебка]]||[[Moodle]]||[[MariaDB Server]]||[[Кластер MariaDB]]
+
|[[Брацка Учебка|Учебка]]||Бесплатные учебные курсы||[[Moodle]]
 +
|[https://ucebka.bskol.com '''ucebka'''.bskol.com]
 
|-
 
|-
 
|&nbsp;
 
|&nbsp;
Строка 206: Строка 192:
 
|-
 
|-
 
!rowspan="4"|[[#Эксперементальные приложения|Эксперементальные приложения]]
 
!rowspan="4"|[[#Эксперементальные приложения|Эксперементальные приложения]]
|Campus||[[OpenEdX]]
+
|Campus||Учебные курсы [[Вирджинский Технологический Институт|VIT]]||[[OpenEdX]]
 +
|[https://campus.vit4all.com campus.vit4all.com]
 
|-
 
|-
|Agile||[[Taiga software]]
+
|Agile||Практика для [[Вирджинский Технологический Институт|VIT]] курсов по Agile software||[[Taiga software|Taiga]]
 +
|[https://agile.vit4all.com agile.vit4all.com]
 
|-
 
|-
|Project||[[ProjecQtOr]]
+
|Project||Практика для [[Вирджинский Технологический Институт|VIT]] курсов по project management software||[[ProjecQtOr]]
 +
|[https://project.vit4all.com project.vit4all.com]
 +
|-
 +
|Redmine||Практика в Redmine для [[Вирджинский Технологический Институт|VIT]] курсов по project management software||[[Redmine]]
 +
|[https://redmine.bskol.com redmine.bskol.com]
 
|}
 
|}
 
===Стойкость баз===
 
:Следующая архитектура используется для обеспечения отказоустойчивости (high availability) ''Облака'':
 
:*Все пользовательские приложения дублируются -- копии каждого из них установлены как минимум на трёх вычислительных серверах в разных центрах.
 
:*Базы данных разных установок одного и того же приложения синхранизуются. Таким образом, обращаясь к любому из них, пользователь получает аналогичные данные и результаты вычислений.
 
:*Когда пользователь хочет обратиться к приложению, пользователь направляется на распределитель нагрузки (load balancer). Распределитель нагрузки постоянно связывается со всеми установками приложений, чтобы знать, какие из них находятся в наличии. От распределителя нагрузки, пользователь перенаправляется к той установке, которая работоспособна и доступнее для конкретного пользователя. Если какая-то из установок выходит из строя, пользователь этого не должен заметить. Как только распределитель нагрузки замечает отсутствие какого-либо ресурса, он запускает механизм отладки.
 
:''Облако'' состоит из нескольких кластеров и его стойкость складывается из стойкости отдельных кластеров. Все они должны быть переделаны в отказоустойчивые ([[high-availability cluster]]). Для тех пользовательских приложений, которые используют [[MariaDB]], строится кластер на основе [[MariaDB MaxScale]]. Для других, скорее всего, решения будут строиться на основе [[HAProxy]]. Также рассматриваются решения для кластеров типа [[Linux-HA]] на основе [[heartbeat]].
 
 
==Кластеры==
 
Связка баз данных приложений с распределителем нагрузки называется кластером. ''Облако'' задействует четыре кластера. Каждый кластер поддерживает свойства [[#Географическая доступность|географической доступности]].
 
 
===Кластер Жици===
 
:''Основная вики-страница: [[Кластер Жици]]''
 
 
===Кластер MariaDB===
 
:''Основная вики-страница: [[Кластер MariaDB]]''
 
 
:[[Кластер MariaDB]] связывает те [[MariaDB Server]] сервера, которые входят в ''Облако'', но не обслуживают [[Оплёт]]. Этот кластер построен на основе трёх [[MariaDB Galera Cluster]] в качестве взаимо-синхранизуемых баз данных, [[MariaDB MaxScale]] в качестве распределителя нагрузки, а также [[MariaDB Backup]] для резервного копирования и [[MariaDB Replication]] для поддержки приложений [[Опытно Облако|Опытна Облака]].
 
 
===Кластер Оплёта===
 
:''Основная вики-страница: [[Кластер Оплёта]]''
 
 
:[[Кластер Оплёта]] построен на [[HAProxy]] и, кроме [[Оплёт]]а, обеспечивает устойчивость распределителей нагрузки остальных кластеров
 
 
===Кластер PostgreSQL===
 
:''Основная вики-страница: [[Кластер PostgreSQL]]''
 
 
==Оплёт (федеративная служба)==
 
:''Основная вики-страница: [[Оплёт]]''
 
 
[[Оплёт]] -- это то служебное программное обеспечение, которое собирает и [[Брацки Фермы|Инфраструктуру]] ''Облака'', и его [[#Пользовательские приложения|Пользовательские приложения]] в единую систему. ''Оплёт'' представляет собой связующее программное обеспечение, которое может обеспечивать все  вне зависимости от их расположения в системе, прежде всего, услугами по идентификации всех пользователей ''Облака'', регистрации новых пользователей, определение ролей пользователей, авторизации их доступов и так далее.
 
 
===Запись на курсы===
 
:В настоящее время запись на курсы производится через [[Брацка Учебка|Брацку Учебку]], обычно, через самозапись. Самозапись создаёт неудобства для некоторых учеников -- перед записью, они должны найти необходимый им курс. Предлагается создать модуль ''Оплёта'', который будет автоматически записывать учеников, причём не только в [[Брацка Учебка|Брацкой Учебке]], но и на кампусе [[VIT]].
 
 
===Защита от роботов===
 
:В данный момент защиты от роботов не существует. Ранее была установлена Google-овская ReCAPTCHA, однако она не работала для пользователей в Китае, где услуги Google заблокированы, и потому была отключена. Есть смысл добавить простую, не-Google-овскую CAPTCHA на регистрацию.
 
 
===Идентификационные самоуслуги===
 
:Из-за проблем с [[#Почтовый сервер|почтовым сервом]], в настоящее время не работает восстановление пароля, которое необходимо восстановить после решения проблем с почтой.
 
 
===Интерфейс===
 
кабинет
 
:Подготовиться к смене морды, когда её новый дизайн будет готов,
 
 
===Компоненты===
 
:''Оплёт'' состоит из:
 
:#Ядра, который представляет собою систему управления пользователями, написанную на [[Yii]],
 
:#Идентификационного сервера, который предоставляет данные ядра всем пользовательским приложениям,
 
:#Дополнительных модулей, обслуживающих [[#Запись на курсы|запись на курсы]] и [[#Организация мероприятий|организацию мероприятий]], а также предоставляющих [[#Экзаменационные вопросы|экзаменационные вопросы]].
 
 
===Определение ролей===
 
:Добиться изменения ролей по завершению курсов Учебки. Данные о завершении определённых курсов Учебки должны отдаваться в Оплёт, тот должен назначать новую роль в зависимости от завершённых курсов и отдавать сведения в [[WSO2 IS]].
 
 
===Организация мероприятий===
 
===Экзаменационные вопросы===
 
:#Унифицировать тесты по всей платформе.
 
:#В Учебке (Moodle) активно используется элемент "Лекция", но не похоже, что этот элемент не сохраняет ответы учеников. Например, элемент "Тест" сохраняет абсолютно все ответы. Однако некоторые из ответов в лекциях необходимы для сохранения в качестве полей профиля. Мудл содержит пару плагинов для лекций, но не ясно решают ли эти плагины проблему сохранения ответов. Если существующие плагины не могут решить проблему, необходимо модернизировать родной плагин.
 
 
===Федерационная идентификация===
 
:Пользовательская федерация налаживается на базе [[WSO2 Identity Server]]. До лета 2021, она строилась на [[OpenLDAP]], а до 2018 года -- на [[SimpleSAMLphp]].
 
:#Перевести основную идентификацию и авторизацию с [[OpenLDAP]] на [[WSO2 Identity Server]] в рамках проекта [[Перевод Оплёта на WSO2 IS]].
 
:#В тех приложениях, которые работают с [[OpenLDAP]], на регистрационных страницах оставить кнопку "[[LDAP login]]". Альтернативно, эту кнопку можно разместить на регистрационной странице [[WSO2 IS]].
 
:#Разрешить проблему ролей. По окончании курса Учебка ([[Moodle]]) должна отдавать информацию Оплёту, тот должен назначать новую роль и отдавать эту роль в [[WSO2 Identity Server]], а [[WSO2 Identity Server]] -- распространять по всем приложениям. Ранее эту проблему пытались решать с [[OpenLDAP]]. Всё решалось пока не сломались на проблеме изменения ролей -- [[OpenLDAP]] принимал только одну роль и далее не менял её.
 
:#Проверка [[SSO]]. Более 3х десятков пользовательских приложений включено в "Облако" и, заходя в каждое из них, сейчас пользователь не должен логиниться отдельно. Теоретически, [[SSO]] -- это родная функция [[WSO2 Identity Server]], но, после перехода с [[OpenLDAP]] на [[WSO2 Identity Server]], каждое приложение должно проверяться.
 
  
 
==Полные приложения==
 
==Полные приложения==
 
В сети Интернет, полные приложения для пользователей размещены на различных [[URL]] при том, что на каждом из [[URL]] различные сервисы планируется сделать доступными под различными поддоменами по принципу [поддомен].[домен].[расширение].
 
В сети Интернет, полные приложения для пользователей размещены на различных [[URL]] при том, что на каждом из [[URL]] различные сервисы планируется сделать доступными под различными поддоменами по принципу [поддомен].[домен].[расширение].
===Бачка===
+
===Бачка (AVideo)===
::''Основная вики-страница: [[Брацка Бачка]]''
+
:''Основная вики-страница: [[Брацка Бачка]]''
 +
 
 +
:[[Брацка Бачка]] -- это средство загрузки, хранения и просмотра видео-материалов. ''Видео'' построено на основе программного обеспечения [[AVideo]] (установлена версия 11.3). Часть курсов ''Бачки'', например, видео-материалы курса [[Брацки Техобзор]], может быть доступна без оплаты всем посетителям сети Интернет. Доступ к некоторым материалам может предоставляться на коммерческой основе.
  
:[[Брацка Бачка]] -- это средство загрузки, хранения и просмотра видео-материалов. ''Видео'' построено на основе программного обеспечения [[AVideo]]. Часть курсов ''Бачки'', например, видео-материалы курса [[Брацки Техобзор]], может быть доступна без оплаты всем посетителям сети Интернет. Доступ к некоторым материалам может предоставляться на коммерческой основе.
+
===Вебка (WordPress)===
 +
:''Основная вики-страница: [[Брацка Вебка]]''
  
===Вебка===
+
:[[Брацка Вебка]] -- это официальный веб-сайт [[Брацка Школа|Брацкой Школы]], который представляет ''Школу'' в сети Интернет. Вэб-сайт построен на основе программного обеспечения [[WordPress]] и доступен для просмотра бесплатно 24 часа в день 7 дней в неделю любому посетителю сети Интернет.
::''Основная вики-страница: [[Брацка Вебка]]''
 
  
:[[Брацка Вебка]] -- это сеть вэб-сайтов [[Брацка Школа|Брацкой Школы]], которые представляют ''Школу'' в сети Интернет. Вэб-сайты построены на основе программного обеспечения [[WordPress]] и доступны для просмотра бесплатно 24 часа в день 7 дней в неделю любому посетителю сети Интернет.
+
:Для разработки веб-сайта используется конструктор страниц [[Elementor Pro]]. При обновлении версии [[WordPress]] до 5.8 содержание страницы не отображалось.
  
===Жици===
+
===Жици (Jitsi)===
::''Основная вики-страница: [[Брацки Жици]]''
+
:''Основная вики-страница: [[Брацки Жици]]''
  
 
:[[Брацки Жици]] -- это инструмент [[Брацка Школа|Брацкой Школы]] для организации видео- и аудио-конференций. ''Жици'' построены на основе программного обеспечения [[Jitsi]] и организованы [[#Кластер Жици|кластером]]. ''Жици'' доступны для любых участников конференций, но начинать сессии могут только те, кто зарегистрирован в [[Оплёт]]е.
 
:[[Брацки Жици]] -- это инструмент [[Брацка Школа|Брацкой Школы]] для организации видео- и аудио-конференций. ''Жици'' построены на основе программного обеспечения [[Jitsi]] и организованы [[#Кластер Жици|кластером]]. ''Жици'' доступны для любых участников конференций, но начинать сессии могут только те, кто зарегистрирован в [[Оплёт]]е.
  
===Крынка===
+
===Крынка (GitLab)===
::''Основная вики-страница: [[Брацка Крынка]]''
+
:''Основная вики-страница: [[Брацка Крынка]]''
  
 
:[[Брацка  Крынка]] -- это средство для работы над проектами, построенное на основе программного обеспечения [[GitLab]] и доступное исключительно администраторам [[Брацка Школа|Брацкой Школы]] и авторизованным ими разработчикам программного обеспечения. Доступ к ''Крынке'' осуществляется исключительно по [[PKI]].
 
:[[Брацка  Крынка]] -- это средство для работы над проектами, построенное на основе программного обеспечения [[GitLab]] и доступное исключительно администраторам [[Брацка Школа|Брацкой Школы]] и авторизованным ими разработчикам программного обеспечения. Доступ к ''Крынке'' осуществляется исключительно по [[PKI]].
  
===Пошта===
+
===Пошта (RoundCube)===
::''Основная вики-страница: [[Брацка Пошта]]''
+
:''Основная вики-страница: [[Брацка Пошта]]''
  
:[[Брацка Пошта]] -- это электронная почта, построенная на основе программного обеспечения [[RoundCube]] и доступная исключительно сотрудникам [[Брацка Школа|Брацкой Школы]].
+
:[[Брацка Пошта]] -- это электронная почта, построенная на основе [[#Почтовый сервер|Почтового сервера]] и доступная исключительно выпускникам семинара [[Выбор Профессии]].
  
===Правка===
+
===Правка (MediaWiki)===
::''Основная вики-страница: [[Брацка Правка]]''
+
:''Основная вики-страница: [[Брацка Правка]]''
  
:[[Брацка Правка]] -- это открытая база знаний Брацкой Школы, построенная на основе программного обеспечения [[MediaWiki]] и доступная для просмотра бесплатно 24 часа в день 7 дней в неделю любому посетителю сети Интернет.
+
:[[Брацка Правка]] -- это открытая база знаний Брацкой Школы, построенная на основе программного обеспечения [[MediaWiki]] и доступная для просмотра бесплатно 24 часа в день 7 дней в неделю любому посетителю сети Интернет. Вопрос подключения последних стабильных версий к [[OpenLDAP]] не был разрешён, потому установлена устаревшая версия 1.31.1
  
===Связка===
+
===Разделка===
::''Основная вики-страница: [[Брацка Связка]]''
+
:Эта прилада -- перспективная. Её идея -- предоставить подмастерьям нечто типа [[Microsoft Office]] или [[GoogleDocs]]. В данный момент, установлен [[Nextcloud]]. Тут можно делиться файлами: по ссылке, или с конкретным пользователем. Ссылке можно задавать срок действия. Работают почтовые уведомления. Есть разные приложения, календарь, задачи, и т.д.
  
===Сетка===
+
===Связка (SuiteCRM)===
::''Основная вики-страница: [[Брацка Сетка]]''
+
:''Основная вики-страница: [[Брацка Связка]]''
  
===Справа===
+
===Сетка (HumHub)===
::''Основная вики-страница: [[Брацка Справа]]''
+
:''Основная вики-страница: [[Брацка Сетка]]''
  
:[[Брацка Справа]] -- это средство управления людскими и материальными ресурсами предприятия, построенное на основе программного обеспечения [[Odoo]]. Часть ''Справы'', например, открытые документы предприятия, может быть доступна всем посетителям сети Интернет. Другая часть, например, данные клиентов предприятия, доступна исключительно тем сотрудникам [[Брацка Школа|Брацкой Школы]], которые подписали соглашение о неразглашении конфиденциальной информации.
+
:[[Брацка Сетка]] -- это корпоративная социальная сеть. ''Сетка'' построена на основе программного обеспечения [[HumHub]] (установлена версия 1.9.1).
  
===Учебка===
+
===Справа (Odoo)===
::''Основная вики-страница: [[Брацка Учебка]]''
+
:''Основная вики-страница: [[Брацка Справа]]''
  
:[[Брацка Учебка]] -- это средство организации учебных курсов и сертификационных программ, построенное на основе программного обеспечения [[Moodle]]. Часть курсов ''Учебки'', например, [[Брацка Вводка]], может быть доступна без оплаты всем посетителям сети Интернет. Доступ к некоторым курсам может предоставляться на коммерческой основе.
+
:[[Брацка Справа]] -- это средство управления людскими и материальными ресурсами предприятия, построенное на основе программного обеспечения [[Odoo]]. Часть ''Справы'', например, открытые документы предприятия, может быть доступна всем посетителям сети Интернет. Другая часть, например, данные клиентов предприятия, доступна исключительно тем сотрудникам [[Брацка Школа|Брацкой Школы]], которые подписали соглашение о неразглашении конфиденциальной информации.
  
==Развитие ресурсов==
+
===Учебка (Moodle)===
Общая стратегия:
+
:''Основная вики-страница: [[Брацка Учебка]]''
#Поддерживать те технологические ресурсы, которые имеются в наличии.
 
#Набирать координаторов проектов для разработки запросов и требований.
 
#Искать исполнителей на те [[Работа в Брацкой Школе|Работы в Брацкой Школе]], которые относятся к технологическим ресурсам.
 
  
===Кластерные проекты===
+
:[[Брацка Учебка]] -- это средство организации учебных курсов и сертификационных программ, построенное на основе программного обеспечения [[Moodle]] (установлена версия  3.11.2.). Часть курсов ''Учебки'', например, [[Брацка Вводка]], может быть доступна без оплаты всем посетителям сети Интернет. Доступ к некоторым курсам может предоставляться на коммерческой основе.
:Кластеры ''Облака'' решают проблему отказоустойчивости систем.
 
:*[[Кластер MariaDB]]
 
:*Управление пользователями осуществляется сейчас с дроплета ([[VPS]]) на [[DigitalOcean]] ([[DO]]). Другой дроплет поддерживает тестировку, но практически не используется. Надо переделать это решение на кластер. Сам [[DO]] предлагает [[load balancer]] и [[floating IP address]] -- эти решения требуют рассмотрения.
 
  
:{|class="wikitable" width=100% style="text-align:center;"
+
==Опытные приложения==
|+Профинансированные проекты кластеров
 
|Работы
 
![[Кластер MariaDB|MariaDB]]!![[Кластер PostgreSQL|PostgreSQL]]!![[Кластер Жици|Жици]]!![[Кластер Оплёта|Оплёта]]
 
|-
 
![[Запрос на разработку|Запрос]]
 
|Достаточно||Достаточно||Достаточно||Достаточно
 
|-
 
![[Требования к изделию|Требования]]
 
|&nbsp;||&nbsp;||&nbsp;||&nbsp;
 
|-
 
![[Архитектура изделия|Архитектура]]
 
|&nbsp;||&nbsp;||&nbsp;||&nbsp;
 
|-
 
![[Концептуальная модель|Модель]]
 
|&nbsp;||&nbsp;||&nbsp;||&nbsp;
 
|-
 
![[Прототип изделия|Прототип]]
 
|&nbsp;||&nbsp;||&nbsp;||&nbsp;
 
|-
 
![[Заказ на создание изделия|Заказ]]
 
|&nbsp;||&nbsp;||&nbsp;||&nbsp;
 
|-
 
![[Производство нового изделия|Производство]]
 
|&nbsp;||&nbsp;||&nbsp;||&nbsp;
 
|-
 
![[Конфигурация изделия|Конфигурация]]
 
|&nbsp;||&nbsp;||&nbsp;||&nbsp;
 
|-
 
![[Усовершенствование изделия|Усовершенствование]]
 
|&nbsp;||&nbsp;||&nbsp;||&nbsp;
 
|}
 
  
===Платформенные проекты===
+
===OpenEdX===
 +
:[[Вирджинский Технологический Институт]] использует [[OpenEdX]], а не [[Moodle]], для своих курсов. Отдельные пользователи ''Облака'' допускаются к этим курсам.
  
Аварийное восстановление===
+
===ProjecQtOr===
:Надо создать инструкцию по восстановлению в случае аварии.
+
:[[Вирджинский Технологический Институт]] использует [[ProjeQtOr]] в практических занятиях с обеспечением для управления плановыми разработками. Отдельные пользователи ''Облака'' допускаются к этим занятиям.
  
Географическая доступность===
+
===Redmine===
:Говоря о DNS, IP и DNSSEC, есть несколько доменных имён, но пока речь идёт о двух основных -- cnmcyber.com для англоязычных пользователей и bskol.com для русскоязычных:
+
:[[Redmine]] исторически использовался в [[Брацка Крынка|Брацкой Крынке]]. Сейчас он должен стать приложением для экспериментов с программным обеспечением управления разработками.
:*Домены зарегистрированы на [[GoDaddy]]; [[nameserver]]s расположены там.
 
:*Система управления пользователями, [[Оплёт]], сейчас расположена на одном [[VPS]] (они зовут их "дроплетами") [[DigitalOcean]]. Есть план добавить [[load balancer]] и перевести систему на кластер. Планов уезжать с [[DigitalOcean]] нет.
 
:*Основные пользовательские приложения расположены на трёх [[VPS]] [[Contabo|contabo.de]]. [[VPS]] объединены в кластер синхронизированной распределённой базой. Есть план добавить или заменить один [[VPS]] железом на [[Hetzner|hetzner.de]] с установкой [[proxmox]].
 
:Надо:
 
:#проверить существующие и создать нехватающие [[DNS]] и, возможно, новые [[DNSSEC]] записи. [[DNSSEC]] не является критичной -- может быть отлажено только для какой-то части зон [[DNS]]. Проект ''Школы'' -- учебный, нам важно иметь разные вещи для того, чтобы показывать ученикам.
 
:#изучить возможность [[Dynamic DNS]] ([[DDNS]]) или виртуальных [[DNS]].
 
:#[[IPv6]]. В данный момент используется [[IPv4]] и есть план разобраться с более новым протоколом. Судя по некоторым публикациям, [[IPv6]] решит проблему отказоустойчивости в части перенаправления трафика.
 
:#[[Virtual IP address]]. Есть необходимость разобраться с виртуальными адресами. [[Digitalocean]] предлагает [[floating IP address]], который можно устанавливать на те дроплеты ([[VPS]]), которые расположены в одном датацентре. [[Hetzner|Hetzner.de]] предлагает [[failover IP]], хотя с ними надо разобраться. Не похоже, что [[Contabo]] предлагает что-то вроде этого.
 
:#В случае, если виртуальный IP не возможен, есть практика направления IP на [[load balancer]] -- какие плюсы и минусы у этой практики?
 
:#Есть предложение, чтобы пользователь работал с тем приложением, которое более доступно для этого пользователя. [[DNS Anycast]], [[DNS Geocast]], и аналогичные распределительные системы не установлены -- каждое пользовательское приложение установлено только на одном [[VPS]]. Есть план продублировать приложения и отправлять пользователя на тот сервер, который наиболее доступен конкретному пользователю.
 
  
Интеграция данных===
+
===Taiga===
:#Сейчас, база каждого пользовательского приложения установлена на трёх нодах и синхронизована через [[#Кластерное копирование|Кластерное копирование]]. Есть план сделать одну распределённую базу и интегрировать её в Оплёт с тем, чтобы базы приложений забирали данные оттуда. В качестве интеграционного решения серъёзно рассматривается [[WSO2 Enterprise Integrator]]. Этот интегратор работает и как [[ESB]], и платформа для микросервисов. В качестве распределонной базы один специалист рекоммендовал [[NoSQL]] -- [[Apache Cassandra]]. Другой вариант -- распределённую [[SQL]] типа [[CockroachDB]].
+
:[[Вирджинский Технологический Институт]] использует [[Taiga software]] в практических занятиях с обеспечением для управления гибкими разработками. Отдельные пользователи ''Облака'' допускаются к этим занятиям.
:#Наиболее приоритетная задача -- создать архитектуру базы клиентов. Сейчас клиенты учитываются в нескольких независимых приложениях. Они имеют [[CRM]] модули, которые призваны учитывать работу с клиентами, которые могут является, но скорее всего не являются пользователями. Надо создать базу, в которую каждое приложение заливало новые данные и брало старые. Предложение заключалось в общей master базе, информация в которую может вбиваться с любого приложения, но отображаться в зависимости от её публичности.
 
:#Есть также предложение создать собирать данные с различных приложений и хранить их в [[NoSQL]] базе. Ранее обсуждалась единая неосновная база данных для всей системы. Разговор шёл о комбинации [[Hadoop]], [[ESB Mule]] и [[MongoDB]]. Идея была в сборе данных с разных приложений через [[ESB Mule]], причёсывание их [[Hadoop]]'ом и размещение в [[MongoDB]] как дополнительной базе данных, откуда они могут браться для для личного кабинета ([[dashboard]]) пользователя. То есть, заходя в кабинет, пользователь мог бы в идеале видеть свою активность в разных приложениях и искать по всем системам сразу.
 
:#Надо стабилизировать загрузку, хранение и использование картинок на [[MediaWiki]]. Сейчас они спорадически не загружаются или не отображаются. Например, 7 декабря картинки выбились, перестав отображаться. После клика на редактирование и сохранение, картинки появлялись -- этот сценарий повторялся на нескольких страницах. Затем всё само восстановилось. Аналогичные сбои происходили и раньше. Сама Википедия использует другую схему. Мы рассматриваем перенос картинок в хранилище.
 
  
Мониторинг===
+
==Поддержка и развитие==
:Мониторинг систм включает мониторинг работы как вычислительных серверов, так и приложений. Планируется использовать внутренние функции установленных приложений и рассмотреть отдельные приложения, такие как [[Zabbix]] и [[Nagios]].
 
  
Postfix/Dovecot/Roundcube===
+
===Общая стратегия===
:Команда планирует поднять highload мультидоменный почтовый сервер. Компетенций существующей команды хватает для настроек поддоменов и веб-серверов, но не для выбора и подготовки к эксплуатации. Количество пользователей не определено -- все, кто имеет право на почту, должен её иметь. Проблемы с дисковыми пространствами будут решаться отдельно.
+
#Поддерживать те технологические ресурсы, которые имеются в наличии, для чего заключить договор на обслуживание каждого ресурса.
:Требуется:
+
#Набирать координаторов проектов для разработки запросов и требований.
:#Выбрать, установить, настроить, провести нагрузочное тестирование, отмониторить продакшн и откоректировать параметры такого решение для почты, которое бы дружило с нашим [[WSO2 IS]], через который идёт управление пользователями. Будет установлен пакет [[iRedMail]], который включает в себя [[Postfix]], [[Dovecot]], [[Roundcube]]. Когда ''Облако'' строилось на [[OpenLDAP]], был найден подрядчик, требования которого были: 1. Что бы у всех пользователей было заполнено поле mail 2. Новый пользователь vmail (пароль скажут после установки пакета iRedmail) 3. Поле для квоты. Также обсуждался безопасный тунель между сервером почты и сервером [[OpenLDAP]]. Найденный подрайдчик считал, что лучшее решение -- это использование [[VPN]], чтобы и [[OpenLDAP]], и [[Dovecot]] виртуально были бы в одной сети. Авторизация почтового сервера идёт через [[Dovecot]]. Другой специалист называл такое решение идиотским. После решения о переходе с [[OpenLDAP]] на [[WSO2 IS]] подрячиков не искали.
+
#Искать исполнителей на те [[Работа в Брацкой Школе|Работы в Брацкой Школе]], которые относятся к технологическим ресурсам.
:#Задокументировать решения и настройки.
 
 
 
Резервное копирование===
 
:В ''Облаке'', к резервному копированию применяется несколько подходов. Копируются приложения и сервера; сохраняются базы и делаются снимки.
 
:*Изначально использовался [[rsync]] для копирования файлов, еженедельно полный бэкап и ежедневно incremental бэкап заливались на backup space на [[Contabo]]. Была идея использовать [[rsnapshot]] для снимков, но эту идею пока не получилось реализовать.
 
:*Весной-летом 2021 года, начались эксперименты с [[Veeam Agent for Linux]], для которого был установлен [[VNC® Viewer]]. Это обеспечение позволило копировать полный сервер.
 
:Надо создать:
 
:#Подробное описание существующей системы.
 
:#Процедуру проверки надёжности бэкапов.
 
 
 
===Приложенческие проекты===
 
:В существующую технологию включено много пользовательских приложений, упомянутых выше. Для всех, надо:
 
:#Обновлять все приложения до последних стабильных версий и устанавливать свежие патчи, когда они появляются в наличии. Основное требование для любого приложения -- привязка к нашему [[WSO2 Identity Server]] ([[WSO2 IS]]). Дополнительное требование для любого приложения -- привязка к нашему [[OpenLDAP]].
 
:#Документировать то, что у нас есть, и выявлять проблемы.
 
 
 
:Приоритетные проекты:
 
:#[[Перевод Оплёта на WSO2 IS]]
 
:#[[Устойчивость для Жици]]. Наиболее критическое приложение -- [[Брацки Жици]] на [[Jitsi]]. Эта видео-конференционная система пока установлена вместе с пользовательскими системами. Возможно, для него должен быть построен отдельный кластер, задействующий все имеющиеся в наличии сервера. Также обсуждается план увести её отдельно на [[CDN]] типа [[Cloudflare]] или глобальные облачные решения -- [[Microsoft Azure]] или [[AWS]] -- участники конференций могут находиться на разных континентах и требование к качеству особо высокое.
 
 
 
:Дополнительные проекты:
 
:#[[LDAP для Правки]]
 
:#[[CDN для Оплёта]]
 
:#[[Перевод Крынки на GitLab]]
 
  
:{|class="wikitable" width=100% style="text-align:center;"
+
===Развитие===
|+Профинансированные проекты приложений
+
:''Основная вики-страница: [[Работы над Bskol]]''
|Работы
 
![[Брацка Бачка|Бачка]]!![[Брацка Вебка|Вебка]]!![[Брацки Жици|Жици]]!![[Брацка Крынка|Крынка]]!![[Брацка Пошта|Пошта]]!![[Брацка Правка|Правка]]!![[Брацка Связка|Связка]]!![[Брацка Сетка|Сетка]]!![[Брацка Справа|Справа]]!![[Брацка Учебка|Учебка]]
 
|-
 
![[Запрос на разработку|Запрос]]
 
|Достаточно||Достаточно||Достаточно||Достаточно||Достаточно||Достаточно||Достаточно||Достаточно||Достаточно
 
|-
 
![[Требования к изделию|Требования]]
 
|&nbsp;||&nbsp;||&nbsp;||&nbsp;||&nbsp;||&nbsp;||&nbsp;||&nbsp;||&nbsp;
 
|-
 
![[Архитектура изделия|Архитектура]]
 
|&nbsp;||&nbsp;||&nbsp;||&nbsp;||&nbsp;||&nbsp;||&nbsp;||&nbsp;||&nbsp;
 
|-
 
![[Концептуальная модель|Модель]]
 
|&nbsp;||&nbsp;||&nbsp;||&nbsp;||&nbsp;||&nbsp;||&nbsp;||&nbsp;||&nbsp;
 
|-
 
![[Прототип изделия|Прототип]]
 
|&nbsp;||&nbsp;||&nbsp;||&nbsp;||&nbsp;||&nbsp;||&nbsp;||&nbsp;||&nbsp;
 
|-
 
![[Заказ на создание изделия|Заказ]]
 
|&nbsp;||&nbsp;||&nbsp;||&nbsp;||&nbsp;||&nbsp;||&nbsp;||&nbsp;||&nbsp;
 
|-
 
![[Производство нового изделия|Производство]]
 
|Наработки||Наработки||Наработки||&nbsp;||Наработки||Наработки||&nbsp;||&nbsp;||Наработки
 
|-
 
![[Конфигурация изделия|Конфигурация]]
 
|&nbsp;||&nbsp;||&nbsp;||&nbsp;||&nbsp;||&nbsp;||&nbsp;||&nbsp;||&nbsp;
 
|-
 
![[Усовершенствование изделия|Усовершенствование]]
 
|&nbsp;||&nbsp;||&nbsp;||&nbsp;||&nbsp;||&nbsp;||&nbsp;||&nbsp;||&nbsp;
 
|}
 
 
 
===Федерационные проекты===
 
:Надо:
 
:#Добиться изменения ролей по завершению курсов Учебки. Данные о завершении определённых курсов Учебки должны отдаваться в Оплёт, тот должен назначать новую роль в зависимости от завершённых курсов и отдавать сведения в [[WSO2 IS]].
 
:#Подготовиться к смене морды, когда её новый дизайн будет готов,
 
:#Настроить восстановление пароля,
 
:#Добавить CAPTCHA на регистрацию -- ранее была установлена Google-овская ReCAPTCHA, однако она не работала для пользователей в Китае, где услуги Google заблокированы, и потому была отключена.
 
:#Унифицировать тесты по всей платформе.
 
:#В Учебке (Moodle) активно используется элемент "Лекция", но не похоже, что этот элемент не сохраняет ответы учеников. Например, элемент "Тест" сохраняет абсолютно все ответы. Однако некоторые из ответов в лекциях необходимы для сохранения в качестве полей профиля. Мудл содержит пару плагинов для лекций, но не ясно решают ли эти плагины проблему сохранения ответов. Если существующие плагины не могут решить проблему, необходимо модернизировать родной плагин.
 
 
 
Федерационная идентификация===
 
:Пользовательская федерация налаживается на базе [[WSO2 Identity Server]]. До лета 2021, она строилась на [[OpenLDAP]], а до 2018 года -- на [[SimpleSAMLphp]].
 
:#Перевести основную идентификацию и авторизацию с [[OpenLDAP]] на [[WSO2 Identity Server]] в рамках проекта [[Перевод Оплёта на WSO2 IS]].
 
:#В тех приложениях, которые работают с [[OpenLDAP]], на регистрационных страницах оставить кнопку "[[LDAP login]]". Альтернативно, эту кнопку можно разместить на регистрационной странице [[WSO2 IS]].
 
:#Разрешить проблему ролей. По окончании курса Учебка ([[Moodle]]) должна отдавать информацию Оплёту, тот должен назначать новую роль и отдавать эту роль в [[WSO2 Identity Server]], а [[WSO2 Identity Server]] -- распространять по всем приложениям. Ранее эту проблему пытались решать с [[OpenLDAP]]. Всё решалось пока не сломались на проблеме изменения ролей -- [[OpenLDAP]] принимал только одну роль и далее не менял её.
 
:#Проверка [[SSO]]. Более 3х десятков пользовательских приложений включено в "Облако" и, заходя в каждое из них, сейчас пользователь не должен логиниться отдельно. Теоретически, [[SSO]] -- это родная функция [[WSO2 Identity Server]], но, после перехода с [[OpenLDAP]] на [[WSO2 Identity Server]], каждое приложение должно проверяться.
 
 
 
:{|class="wikitable" width=100% style="text-align:center;"
 
|+Профинансированные проекты Оплёта
 
|Работы
 
!Интерфейс!!Каптча!!Курсы!!Мероприятия!!Роли!!Тесты
 
|-
 
![[Запрос на разработку|Запрос]]
 
|Достаточно||Достаточно||Достаточно||Достаточно||Достаточно
 
|-
 
![[Требования к изделию|Требования]]
 
|&nbsp;||&nbsp;||&nbsp;||&nbsp;||&nbsp;
 
|-
 
![[Архитектура изделия|Архитектура]]
 
|&nbsp;||&nbsp;||&nbsp;||&nbsp;||&nbsp;
 
|-
 
![[Концептуальная модель|Модель]]
 
|&nbsp;||&nbsp;||&nbsp;||&nbsp;||&nbsp;
 
|-
 
![[Прототип изделия|Прототип]]
 
|&nbsp;||&nbsp;||&nbsp;||&nbsp;||&nbsp;
 
|-
 
![[Заказ на создание изделия|Заказ]]
 
|&nbsp;||&nbsp;||&nbsp;||&nbsp;||&nbsp;
 
|-
 
![[Производство нового изделия|Производство]]
 
|Наработки||&nbsp;||&nbsp;||&nbsp;||&nbsp;
 
|-
 
![[Конфигурация изделия|Конфигурация]]
 
|&nbsp;||&nbsp;||&nbsp;||&nbsp;||&nbsp;
 
|-
 
![[Усовершенствование изделия|Усовершенствование]]
 
|&nbsp;||&nbsp;||&nbsp;||&nbsp;||&nbsp;
 
|}
 
:Кроме того, сам Оплёт должен быть переделан в [[Кластер Оплёта|кластер]].
 
  
===Эксперементальные проекты===
+
==Связанные лектио==
:Есть план либо заменить один [[VPS]] железом, либо добавить железный сервер на [[Hetzner|hetzner.de]] для решения двух задач:
+
*[[Воссозданная Школа]]
:#Спроектировать сеть для повышения устойчивости системы.
+
*[[Названия в Школе]]
:#Автоматически создавать виртуальные машины для участников тренингов. Школа будет устраивать тренинги и планирует выдавать ресурсы для практических занятий. После оплаты участником, участник должен получать имэйл со ссылкой на ресурс с логином и паролем. Идеально, ресурс должен быть виртуальной машиной. Если виртуальная машина не получается, можно продумать возможность решения на контейнерах. Специалист считает, что так как контейнер создаётся одной строкой, можно сделать скрипт под Линукс, который будет создавать контейнер из образа и добавлять к нему логин и пароль.
+
*[[Волонтёры и Партнёры]]
:[[ProxmoxVE]] -- основное решение, которое рассматривается. Специалист предлагает использовать роутер [[Microtik]], чтобы на proxy сделать два IP адреса, первый использовать для внутренних виртуалок, если они нормально работают, а второй загнать в bridge для внешних серверов и средствами Линукса типа firewall делить тот трафик, который приходит. Кроме того, на том же proxy можно поставить [[DHCP]] сервер для раздачи адресов машинам. Другой специалист считает, что безопасных [[DHCP]] серверов на рынке нет.
+
*[[Обустройство Школы]]
 +
*[[Оценки в Школе]]
 +
*[[Классы Школы]]
 +
*[[Облако и Прилады]]
 +
*[[Что Есть Облако]]
 +
*[[Политика Приватности]]
 +
*[[Что Есть Крынка]]
 +
*[[Системы Крынки]]
 +
*[[Что Есть Тест]]
 +
*[[Данные для Тестов]]
 +
*[[Методы Тестировки]]

Текущая версия на 13:03, 30 сентября 2022

Брацко Облако (CNM Cloud; иногда кодируемое как "bo", далее то тексту -- Облако) -- это технологические ресурсы обслуживающие онлайн операции Брацкой Школы (здесь и далее то тексту -- Школы). Облако представляет собой совокупность программного обеспечения и поддерживающей его материальной части.


Содержание

Цели и задачи

Цели

Облако предоставляет автоматически или поддерживает технологически тех людей, которые предоставляют услуги, имеющие целью:
  1. Профессионально сориентировать, поддерживая организацию обзорных семинаров, практик и консультаций для тех, кто определяется с профессией.
  2. Подготовить к профессиональной деятельности, обеспечивая учебный процесс, обучение на рабочем месте или сертификацию профессиональных компетенций для тех, кто нарабатывает профессиональные квалификации.
  3. Трудоустроить, предоставляя знания, инструменты, сертификации, доступ к контактам и маркетинговым каналам тем, кто:
    • Уже готов к профессиональной деятельности и ищет конкретную работу.
    • Нанимают найденные, подготовленные и/или сертифицированные с использованием Облака кадры.
  4. Поддержать трудоустроенных, оказывая административные услуги и консультации, а также финансируя предприятия тех выпускников, которые решили организовать или продвинуть свои собственные бизнесы.

Задачи

Облако решает задачи обеспечения потенциальных и существующих учеников Брацкой Школы и вовлечённых в проект Bskol площадкой для учёбы и работы, в частности, Облако обеспечивает:
  • Всех пользователей Всемирной Паутины -- гостевым доступом к общественным ресурсам Облака, включая Правку, Вебку, Бачку, Брацки Жици, Крынку
  • Зарегистрированных в Оплёте пользователей -- пользовательским доступом к Кабине
  • Учеников -- пользовательским доступом к Учебке, Правке, Вебке, Бачке, Жици, Сетке и административным доступом к тем Курсовым Приладам, которые они изучают.
  • Координаторов и подрядчиков -- пользовательским доступом к Крынке и административным доступом к тем Опытным Приладам, над которыми они работают.
  • Подмастерьев, мастеров и сотрудников -- пользовательским доступом к Связке, Поште, Справе и административным доступом к тем Полным Приладам, которые они обслуживают.
  • Участников коротких тренингов -- доступом к тем виртуальным ресурсам, которые созданы специально для этого тренинга. Школа будет устраивать тренинги и планирует выдавать ресурсы для практических занятий. После регистрации на тренинг, участник должен получать имэйл со ссылкой на ресурс с логином и паролем. Ресурс должен быть либо виртуальной машиной, либо контейнером. Специалист считает, что так как контейнер создаётся одной строкой, можно сделать скрипт под Линукс, который будет создавать контейнер из образа и добавлять к нему логин и пароль.

Общие положения

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

Технологические ярусы

Облако включает в себя три яруса программного обеспечения:
  1. Инфраструктуру называемую Брацки Фермы,
  2. Связующее обеспечение или федерационную службу называемую Оплётом, и
  3. Пользовательские приложения.

Поддержка программных языков

Облако поддерживает следующие языки:
  • PHP. Поддерживаются версии 7.4. и 8.0.9. Apache HTTP server определяет, какой язык будет использоваться через скрипты типа:

    <FilesMatch \.php$># From the Apache version 2.4.10 and above, use the SetHandler to run PHP as a fastCGI process server SetHandler "proxy:unix:/run/php/php7.4-fpm.sock|fcgi://localhost"</FilesMatch>

  • Python.

Брацки Фермы (инфраструктура)

Основная вики-страница: Брацки Фермы

Делова Ферма

Основная вики-страница: Делова Ферма

Опытна Ферма

Основная вики-страница: Опытна Ферма

Кампусна Ферма

Основная вики-страница: Кампусна Ферма

Обеспечение Ферм (сводка)

Инфраструктура (Фермы)
Компоненты Название Предназначение Технология Веб‑адрес
Делова Частное облако Поддержка Пользовательских приложений и Связующего обеспечения OpenStack Спрятан
Виртуальная среда Управление виртуальными машинами для Опытна Облака ProxmoxVE
Мониторинг Слежение за работой вычислительных серверов и сообщения о неполадках Nagios Core
Установщик Инструмент для установки, конфигурации и удаления пакетов программного обеспечения APT
Веб-сервер Первичное управление запросами поступающими по HTTP NGINX
Вторичное управление запросами поступающими по HTTP Apache
Опытна
Кампусна
Оплётна

Оплёт (федерационная служба)

Основная вики-страница: Оплёт

Оплёт -- это то служебное программное обеспечение, которое собирает и Инфраструктуру Облака, и его Пользовательские приложения в единую систему. Оплёт представляет собой связующее программное обеспечение, которое может обеспечивать все вне зависимости от их расположения в системе, прежде всего, услугами по идентификации всех пользователей Облака, регистрации новых пользователей, определение ролей пользователей, авторизации их доступов и так далее.

Запись на курсы

В настоящее время запись на курсы производится через Брацку Учебку, обычно, через самозапись. Самозапись создаёт неудобства для некоторых учеников -- перед записью, они должны найти необходимый им курс. Предлагается создать модуль Оплёта, который будет автоматически записывать учеников, причём не только в Брацкой Учебке, но и на кампусе VIT.

Защита от ботов

Для защиты от "ботов", то есть веб-роботов, вначале была установлена Google-овская ReCAPTCHA, однако она не работала для пользователей в Китае, где услуги Google заблокированы, и потому была отключена. Планируется добавить простую, не-Google-овскую Friendly Captcha на регистрацию (https://friendlycaptcha.com/; https://github.com/FriendlyCaptcha).
В то же время, любая CAPTCHA ухудшает пользовательский опыт. Говорят, что лучшая CAPTCHA -- это её отсутствие. CAPTCHA не будет нужна, когда в Управление пользователями будет добавлена функция автоматического удаления учётных записей. Negative Captcha (https://github.com/subwindow/negative-captcha) -- ещё один интересный проект для опробования.

Идентификационные самоуслуги

Из-за проблем с почтовым сервером, в настоящее время не работает восстановление пароля, которое необходимо воссоздать и протестировать после решения проблем с почтой.

Интерфейс

Оплёт нуждается в новом пользовательском интерфейсе, включая приёмную и регистрационную страницы, а также кабинет пользователя.

Компоненты

Оплёт состоит из:
  1. Ядра, который представляет собою систему управления пользователями, написанную на Yii,
  2. Идентификационного сервера, который предоставляет данные ядра всем пользовательским приложениям,
  3. Дополнительных модулей, обслуживающих запись на курсы и организацию мероприятий, а также предоставляющих экзаменационные вопросы.

Определение ролей

По завершению определённых курсов Брацка Учебка должна отдавать информацию Оплёту, тот должен назначать новую роль и отдавать эту роль в WSO2 Identity Server, а WSO2 Identity Server -- распространять по всем приложениям. Ранее эту проблему пытались решать с OpenLDAP. Всё решалось пока не сломались на проблеме изменения ролей -- OpenLDAP принимал только одну роль и далее не менял её.

Организация мероприятий

Несколько приложений имеют свои функционалы по организации мероприятий (event) -- Брацка Учебка имеет календарь упражнений и экзаменов, Брацка Сетка предоставляет возможность организации мероприятий группы, Брацка Крынка организует календарь необходимых к выполнению работ и так далее. Некоторые мероприятия также должны публиковаться за пределами Облака, на страницах социальных сетей типа Фейсбука. Для централизации нескольких календарей, планировалось создание специального модуля Оплёта, где можно бы было отслеживать информацию из разных источников и размещать её в личном кабинете пользователя.

Почтовые ящики

Почтовые ящики работают на основе Почтового сервера. Две проблемы требуют решений:
  1. В профиль пользователя необходимо добавить поля для корпоративных имейлов. Сейчас почту автоматически может получить только тот, кто не указал своего электронного адреса при создании почты.
  2. Доступ к персональному ящику должны получать только пользователи с правами CertFellow и выше.

Управление пользователями

Заведение новых учётных записей и удаление тех записей, которые в течение 6-ти месяцев не завершили ни одного курса.

Федерационная идентификация

Пользовательская федерация налаживается на базе WSO2 Identity Server. До лета 2021, она строилась на OpenLDAP, а до 2018 года -- на SimpleSAMLphp. Планируется:
  1. Перевести основную идентификацию и авторизацию с OpenLDAP на WSO2 Identity Server в рамках проекта Перевод Оплёта на WSO2 IS.
  2. В тех приложениях, которые работают с OpenLDAP, на регистрационных страницах оставить кнопку "LDAP login". Альтернативно, эту кнопку можно разместить на регистрационной странице WSO2 IS.
  3. Проверка SSO. Более 3х десятков пользовательских приложений включено в "Облако" и, заходя в каждое из них, сейчас пользователь не должен логиниться отдельно. Теоретически, SSO -- это родная функция WSO2 Identity Server, но, после перехода с OpenLDAP на WSO2 Identity Server, каждое приложение должно проверяться.

Экзаменационные вопросы

В настоящее время, Брацка Учебка позволяет загрузить экзаменационные вопросы в корневую директорию, откуда их могут задействовать отдельные курсы. Однако централизованная статистика по этим вопросам отсутствует. Например, ученик может получать один и тот же вопрос в разных курсах. Кроме того, требуется использование отдельных вопросов в других приложениях, таких как Брацка Вебка, и этот функционал также отсутствует.
Далее, Брацка Учебка активно использует элемент "Лекция", но не похоже, что этот элемент не сохраняет ответы учеников. Однако некоторые из ответов в лекциях необходимы для сохранения в качестве полей профиля. Moodle содержит пару плагинов для лекций, но не ясно решают ли эти плагины проблему сохранения ответов.
Планируется унифицировать тесты по всей платформе с помощью нового модуля Оплёта.

Обеспечение Оплёта (сводка)

Ярус Название Предназначение Технология Веб‑адрес
Связующее обеспечение (Оплёт) Идентификация Получение данных от ядра и взаимосвязь с пользовательскими приложениями WSO2 IS
Ядро и пользовательский интерфейс Управление регистрацией, идентификацией и авторизацией доступов пользователей Yii (custom code) kabina.bskol.com

Пользовательские приложения

Пользовательские приложения -- это приложения для конечных пользователей.

Типы приложений

Облако предоставляет три типа приложений:
  1. Полные приложения, то есть те, которые используются по тому основному назначению, для которого они были созданы,
  2. Тренировочные приложения, то есть те, которые используются для отработки практических навыков работы с ними, и
  3. Эксперементальные приложения, то есть те, которые используются

Требования к приложениям

Основная вики-страница: Требования к приложениям Брацкого Облака
Требования к приложениям описаны на вики-странице Требования к приложениям Брацкого Облака.

Обеспечение прилад (сводка)

Ярус Название Предназначение Технология Веб‑адрес
Пользовательские приложения Бачка Размещение видео файлов AVideo backa.bskol.com
Вебка Администрация веб-страниц WordPress vebka.bskol.com
Жици Организация видео- и аудио-конференций Jitsi jitsi.bskol.com
Крынка Работа разработчиков над проектами с установленным service desk приложением для сбора информации по проблемам и хранение исходных кодов уникального программного обеспечения GitLab krynka.bskol.com
Пошта Электронная почта Roundcube posta.bskol.com
Правка Открытый источник знаний и, одновременно, место первоначальной работы подмастерьев MediaWiki pravka.bskol.com
Связка Полезные контакты SuiteCRM svazka.bskol.com
Сетка Социальная сеть HumHub setka.bskol.com
Справа Административный учёт, электронная коммерция (Careerprise Shop) и работа персонала над проектами Odoo sprava.bskol.com
Учебка Бесплатные учебные курсы Moodle ucebka.bskol.com
  Арендованное обеспечение
Эксперементальные приложения Campus Учебные курсы VIT OpenEdX campus.vit4all.com
Agile Практика для VIT курсов по Agile software Taiga agile.vit4all.com
Project Практика для VIT курсов по project management software ProjecQtOr project.vit4all.com
Redmine Практика в Redmine для VIT курсов по project management software Redmine redmine.bskol.com

Полные приложения

В сети Интернет, полные приложения для пользователей размещены на различных URL при том, что на каждом из URL различные сервисы планируется сделать доступными под различными поддоменами по принципу [поддомен].[домен].[расширение].

Бачка (AVideo)

Основная вики-страница: Брацка Бачка
Брацка Бачка -- это средство загрузки, хранения и просмотра видео-материалов. Видео построено на основе программного обеспечения AVideo (установлена версия 11.3). Часть курсов Бачки, например, видео-материалы курса Брацки Техобзор, может быть доступна без оплаты всем посетителям сети Интернет. Доступ к некоторым материалам может предоставляться на коммерческой основе.

Вебка (WordPress)

Основная вики-страница: Брацка Вебка
Брацка Вебка -- это официальный веб-сайт Брацкой Школы, который представляет Школу в сети Интернет. Вэб-сайт построен на основе программного обеспечения WordPress и доступен для просмотра бесплатно 24 часа в день 7 дней в неделю любому посетителю сети Интернет.
Для разработки веб-сайта используется конструктор страниц Elementor Pro. При обновлении версии WordPress до 5.8 содержание страницы не отображалось.

Жици (Jitsi)

Основная вики-страница: Брацки Жици
Брацки Жици -- это инструмент Брацкой Школы для организации видео- и аудио-конференций. Жици построены на основе программного обеспечения Jitsi и организованы кластером. Жици доступны для любых участников конференций, но начинать сессии могут только те, кто зарегистрирован в Оплёте.

Крынка (GitLab)

Основная вики-страница: Брацка Крынка
Брацка Крынка -- это средство для работы над проектами, построенное на основе программного обеспечения GitLab и доступное исключительно администраторам Брацкой Школы и авторизованным ими разработчикам программного обеспечения. Доступ к Крынке осуществляется исключительно по PKI.

Пошта (RoundCube)

Основная вики-страница: Брацка Пошта
Брацка Пошта -- это электронная почта, построенная на основе Почтового сервера и доступная исключительно выпускникам семинара Выбор Профессии.

Правка (MediaWiki)

Основная вики-страница: Брацка Правка
Брацка Правка -- это открытая база знаний Брацкой Школы, построенная на основе программного обеспечения MediaWiki и доступная для просмотра бесплатно 24 часа в день 7 дней в неделю любому посетителю сети Интернет. Вопрос подключения последних стабильных версий к OpenLDAP не был разрешён, потому установлена устаревшая версия 1.31.1

Разделка

Эта прилада -- перспективная. Её идея -- предоставить подмастерьям нечто типа Microsoft Office или GoogleDocs. В данный момент, установлен Nextcloud. Тут можно делиться файлами: по ссылке, или с конкретным пользователем. Ссылке можно задавать срок действия. Работают почтовые уведомления. Есть разные приложения, календарь, задачи, и т.д.

Связка (SuiteCRM)

Основная вики-страница: Брацка Связка

Сетка (HumHub)

Основная вики-страница: Брацка Сетка
Брацка Сетка -- это корпоративная социальная сеть. Сетка построена на основе программного обеспечения HumHub (установлена версия 1.9.1).

Справа (Odoo)

Основная вики-страница: Брацка Справа
Брацка Справа -- это средство управления людскими и материальными ресурсами предприятия, построенное на основе программного обеспечения Odoo. Часть Справы, например, открытые документы предприятия, может быть доступна всем посетителям сети Интернет. Другая часть, например, данные клиентов предприятия, доступна исключительно тем сотрудникам Брацкой Школы, которые подписали соглашение о неразглашении конфиденциальной информации.

Учебка (Moodle)

Основная вики-страница: Брацка Учебка
Брацка Учебка -- это средство организации учебных курсов и сертификационных программ, построенное на основе программного обеспечения Moodle (установлена версия 3.11.2.). Часть курсов Учебки, например, Брацка Вводка, может быть доступна без оплаты всем посетителям сети Интернет. Доступ к некоторым курсам может предоставляться на коммерческой основе.

Опытные приложения

OpenEdX

Вирджинский Технологический Институт использует OpenEdX, а не Moodle, для своих курсов. Отдельные пользователи Облака допускаются к этим курсам.

ProjecQtOr

Вирджинский Технологический Институт использует ProjeQtOr в практических занятиях с обеспечением для управления плановыми разработками. Отдельные пользователи Облака допускаются к этим занятиям.

Redmine

Redmine исторически использовался в Брацкой Крынке. Сейчас он должен стать приложением для экспериментов с программным обеспечением управления разработками.

Taiga

Вирджинский Технологический Институт использует Taiga software в практических занятиях с обеспечением для управления гибкими разработками. Отдельные пользователи Облака допускаются к этим занятиям.

Поддержка и развитие

Общая стратегия

  1. Поддерживать те технологические ресурсы, которые имеются в наличии, для чего заключить договор на обслуживание каждого ресурса.
  2. Набирать координаторов проектов для разработки запросов и требований.
  3. Искать исполнителей на те Работы в Брацкой Школе, которые относятся к технологическим ресурсам.

Развитие

Основная вики-страница: Работы над Bskol

Связанные лектио