Брацко Облако

Материал из Брацка Правки
Версия от 04:13, 13 января 2022; Gary (обсуждение | вклад) (Мониторинг)
Перейти к: навигация, поиск

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


Содержание

Цели

Основные

Технологические ресурсы призваны поддерживать людей, которые:
  • либо определяются с профессией (помогая организовывать обзорные семинары, практики и исследования для них),
  • либо нарабатывают профессиональные квалификации (обеспечивая учебный процесс, обучение на рабочем месте или сертификацию навыков для них),
  • либо ищут конкретную работу (предоставляя знания, инструменты, сертификации, доступ к контактам и маркетинговым каналам).

Дополнительные

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

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

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

Основное обеспечение

Ярус Название Предназначение Технология Веб‑адрес
Инфраструктура (Фермы) Частное облако Поддержка Пользовательских приложений и Связующего обеспечения OpenStack Спрятан
Виртуальная среда Управление виртуальными машинами для Опытна Облака Proxmox
Мониторинг Слежение за работой вычислительных серверов и сообщения о неполадках Nagios Core
Установщик Инструмент для установки, конфигурации и удаления пакетов программного обеспечения APT
Веб-сервер Первичное управление запросами поступающими по HTTP NGINX
Вторичное управление запросами поступающими по HTTP Apache
Связующее обеспечение (Оплёт) Идентификация Получение данных от ядра и взаимосвязь с пользовательскими приложениями WSO2 IS
Ядро и пользовательский интерфейс Управление регистрацией, идентификацией и авторизацией доступов пользователей Yii (custom code) kabina.bskol.com
Пользовательские приложения Бачка Размещение видео файлов 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

NextClouds

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

Облако поддерживает следующие языки:
  • 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.

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

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

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

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

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

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

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

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

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

Аварийное восстановление

Инструкция по восстановлению инфраструктуры после аварии должна позволить восстановить отдельные:

Вычислительные сервера

В настоящее время, используется пять виртуальных частных серверов (virtual private server; VPS):
  1. Три арендованы у Contabo; два сервера и отдельное дисковое пространство для резервных копий располагаются в Сент-Луисе, Миссури, США, один -- в Германии. Планов уезжать с Contabo нет, но есть план заменить один сервер в Сент-Луисе, Миссури на сервер в Сингапуре;
  2. Два VPS (они зовут их "дроплетами") арендованы у DigitalOcean; один располагается в Нью-Йорке, США, один -- во Франции. Планов уезжать с DigitalOcean нет.
Для создания собственных виртуальных серверов, скорее всего, будет арендован физический сервер (bare metal) у hetzner.de в Германии.

DNS зоны

Мониторинг

Мониторинг систем включает мониторинг работы как вычислительных серверов, так и приложений.
  1. Для мониторинга систем, установлен Nagios Core. Используя агентов слежения, он отслеживает работу всех серверов системы, включая:
    • Доступность сетевых услуг (SMTP, POP3, HTTP, NNTP, ICMP, SNMP, FTP, SSH).
    • Использование ресурсов (processor load, disk usage, system logs, количество активных пользователей).
    • Доступность баз данных (в настоящее время -- MariaDB Server, в перспективе -- отслеживание и других услуг кластеров).
    • Состояние сертификатов SSL. Для отслеживания сертификатов, несколько инструментов не подошли, показывали срок действия один на все домены. Выбор был остановлен на check_ssl_cert. Отслеживаемые домены были объеденены в host groups и единую сервисную группу. Результат удовретворительный. Нужно будет подобавлять все нужные домены.
    Мониторинг осуществляется как через админовский интерфейс, так и через почтовые уведомления. Также был установлен Zabbix, но его пока не получилось подключить к базам данных. Планируется далее продолжить просмотр других специализированных приложений.
  2. Для мониторинга отдельных приложений и баз данных, помимо систем сетевого мониторинга, планируется использовать их внутренние функции, а также другие существующие решения.

Почтовый сервер

Команда планирует поднять highload мультидоменный почтовый сервер на основе существующего. На данный момент установлены чистые Postfix, Dovecot и Roundcube без каких-либо коробок. Они позволяют:
  1. Зарегестрироваться на opplet с почтовым адресом *@cnmcyber.com
  2. С этим адресом зайти на RoundCube
  3. Отправить почту себе на email
Настроены следующие DNS-записи:
  • DomainKeys Identified Mail (DKIM)
  • Sender Policy Framework (SPF)
  • Domain-based Message Authentication, Reporting and Conformance (DMARC)
Не известно, шифруется ли почта TLS протоколом. Количество пользователей не определено -- все, кто имеет право на почту, должен её иметь. В перспективе в Оплёте будет добавлено одно поле для корпоративного имейла. Проблемы с дисковыми пространствами будут решаться отдельно.
Требуется:
  • Выбрать, установить, настроить, провести нагрузочное тестирование, отмониторить продакшн и откоректировать параметры такого решение для почты, которое бы дружило с нашим WSO2 IS, через который идёт управление пользователями.
  • Добиться того, чтобы почта приходила не в спам, а во входящие.
  • Задокументировать работающие решения и настройки.
В качестве подходящего обеспечения рассматривались три варианта:
  1. Оставить чистые Postfix, Dovecot и Roundcube без каких-либо коробок.
  2. Переключить на пакет iRedMail, который включает в себя Postfix, Dovecot, Roundcube. Когда Облако строилось на OpenLDAP, был найден подрядчик, требования которого были: 1. Что бы у всех пользователей было заполнено поле mail 2. Новый пользователь vmail (пароль скажут после установки пакета iRedmail) 3. Поле для квоты. Также обсуждался безопасный тунель между сервером почты и сервером OpenLDAP. Найденный подрядчик считал, что лучшее решение -- это использование VPN, чтобы и OpenLDAP, и Dovecot виртуально были бы в одной сети. Авторизация почтового сервера идёт через Dovecot. Другой специалист называл такое решение идиотским. После решения о переходе с OpenLDAP на WSO2 IS подрячиков не искали.
  3. Добавить OnlyOffice, который включает в себя всё тот же iRedMail, но только с авторизацией уже на платформе OnlyOffice. Похоже,OnlyOffice предоставляет возможность синхронизации пользователей с LDAP, но пока не известно, как он интегрируется с WSO2 IS.
Почтовые ящики работают на основе построенного сервера.

Резервное копирование

В Облаке, к резервному копированию применяется несколько подходов. Копируются приложения и сервера; сохраняются базы и делаются снимки.
  • Изначально использовался rsync для копирования файлов, еженедельно полный бэкап и ежедневно incremental бэкап заливались на backup space на Contabo. Была идея использовать rsnapshot для снимков, но эту идею пока не получилось реализовать.
  • Весной-летом 2021 года, начались эксперименты с Veeam Agent for Linux, для которого был установлен VNC® Viewer. Это обеспечение позволило копировать полный сервер. Сервера копируются на себя, что вначале это вызывало проблему нехватки места. В настоящее время, копируются только новые данные (increment). Таким образом избегается дублирование и экономится место. Далее планируется научиться копировать сервера на backup space.
Надо создать:
  1. Подробное описание существующей системы.
  2. Процедуру проверки надёжности бэкапов.

Данные в Облаке

Базы данных

Облако задействует большой спектр систем управления базами данных, некоторые из которых структурированы, а некоторые ориентированы на документы.
  1. Наибольшая часть пользовательских приложений использует базы управления данными на основе MariaDB Server. Администраторское приложение PhpMyAdmin используется для администрирования каждого из них.
  2. Отдельные приложения, например, Брацка Крынка и Брацка Справа, задействуют базы управления данными на основе PostgreSQL.
  3. Обособленная установка MariaDB Server, отличная от той, что поддерживает большую часть пользовательских приложений, также вовлечена в управление пользователями Оплёта.
  4. Идентификационный сервер Оплёта, то есть та его часть, которая работает с другими приложениями, построен на базе сервера WSO2 IS и задействует три базы H2 DBMS.
  5. NoSQL и структурированные распределённые базы будут задействованы в работу будущей интеграционной платформы Оплёта.

Интеграция данных

  1. Сейчас, база каждого пользовательского приложения установлена на трёх нодах и синхронизована через Кластерное копирование. Есть план сделать одну распределённую базу и интегрировать её в Оплёт с тем, чтобы базы приложений забирали данные оттуда. В качестве интеграционного решения серъёзно рассматривается WSO2 Enterprise Integrator. Этот интегратор работает и как ESB, и платформа для микросервисов. В качестве распределонной базы один специалист рекоммендовал NoSQL -- Apache Cassandra. Другой вариант -- распределённую SQL типа CockroachDB.
  2. Наиболее приоритетная задача -- создать архитектуру базы клиентов. Сейчас клиенты учитываются в нескольких независимых приложениях. Они имеют CRM модули, которые призваны учитывать работу с клиентами, которые могут является, но скорее всего не являются пользователями. Надо создать базу, в которую каждое приложение заливало новые данные и брало старые. Предложение заключалось в общей master базе, информация в которую может вбиваться с любого приложения, но отображаться в зависимости от её публичности.
  3. Есть также предложение создать собирать данные с различных приложений и хранить их в NoSQL базе. Ранее обсуждалась единая неосновная база данных для всей системы. Разговор шёл о комбинации Hadoop, ESB Mule и MongoDB. Идея была в сборе данных с разных приложений через ESB Mule, причёсывание их Hadoop'ом и размещение в MongoDB как дополнительной базе данных, откуда они могут браться для для личного кабинета (dashboard) пользователя. То есть, заходя в кабинет, пользователь мог бы в идеале видеть свою активность в разных приложениях и искать по всем системам сразу.
  4. Надо стабилизировать загрузку, хранение и использование картинок на MediaWiki. Сейчас они спорадически не загружаются или не отображаются. Например, 7 декабря картинки выбились, перестав отображаться. После клика на редактирование и сохранение, картинки появлялись -- этот сценарий повторялся на нескольких страницах. Затем всё само восстановилось. Аналогичные сбои происходили и раньше. Сама Википедия использует другую схему. Мы рассматриваем перенос картинок в хранилище.

Обслуживающие кластеры

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

Облако задействует четыре кластерa; стойкость Облакаскладывается из стойкости отдельных кластеров. Кластеры Облака должны быть переделаны в отказоустойчивые (high-availability cluster). Каждый кластер должен поддерживать свойства географической доступности. Усилия по построению кластеров называются Кластерными проектами.

Кластер Жици

Основная вики-страница: Устойчивость для Жици
Вместе с Брацкой Вебкой, наиболее критическое приложение для маркетинга всего проекта -- это Брацки Жици на Jitsi. Эта видео-конференционная система пока установлена вместе с пользовательскими системами. Возможно, для него должен быть построен отдельный кластер, задействующий все имеющиеся в наличии сервера. Также обсуждается план увести её отдельно на CDN типа Cloudflare или глобальные облачные решения -- Microsoft Azure или AWS -- участники конференций могут находиться на разных континентах и требование к качеству особо высокое.

Кластер MariaDB

Основная вики-страница: Кластер MariaDB

Кластер Оплёта

Основная вики-страница: Кластер Оплёта
Кластер Оплёта -- это связка ресурсов Облака, обеспечивающая отказоустойчивость Оплёта, а также распределителей нагрузки (load balancer) остальных кластеров.

Кластер PostgreSQL

Основная вики-страница: Кластер PostgreSQL

Стойкость Облака

Архитектура Обслуживающих кластеров, то есть связок нескольких однотипных приложений или их баз данных с распределителями нагрузки между этими приложениями или базами, используется для обеспечения отказоустойчивости (high availability) Облака.

Принципы отказоустойчивости

  • Все пользовательские приложения дублируются -- копии каждого из них установлены как минимум на трёх вычислительных серверах в разных центрах.
  • Базы данных разных установок одного и того же приложения синхранизуются. Таким образом, обращаясь к любому из них, пользователь получает аналогичные данные и результаты вычислений.
  • Когда пользователь хочет обратиться к приложению, пользователь направляется на распределитель нагрузки (load balancer). Распределитель нагрузки постоянно связывается со всеми установками приложений, чтобы знать, какие из них находятся в наличии. От распределителя нагрузки, пользователь перенаправляется к той установке, которая работоспособна и доступнее для конкретного пользователя. Если какая-то из установок выходит из строя, пользователь этого не должен заметить. Как только распределитель нагрузки замечает отсутствие какого-либо ресурса, он запускает механизм отладки.

Кластеры и приложения

Ярус Название Основное ПО ПО базы данных Кластер
Связующее обеспечение Оплёт (ядро) Yii MariaDB Server Кластер Оплёта
Идентификация WSO2 IS H2 DBMS
Пользовательские приложения Бачка AVideo MariaDB Server Кластер MariaDB
Вебка WordPress
Жици Jitsi Отсутствует Устойчивость для Жици
Крынка GitLab PostgreSQL Кластер PostgreSQL
Пошта Roundcube
Правка MediaWiki MariaDB Server Кластер MariaDB
Связка SuiteCRM
Сетка HumHub
Справа Odoo PostgreSQL Кластер PostgreSQL
Учебка Moodle MariaDB Server Кластер MariaDB
  Арендованное обеспечение
Эксперементальные приложения Campus OpenEdX
  • MariaDB Server для данных пользователей;
  • MongoDB для непользовательских данных.
Agile Taiga software PostgreSQL
Project ProjecQtOr

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

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

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

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

В настоящее время запись на курсы производится через Брацку Учебку, обычно, через самозапись. Самозапись создаёт неудобства для некоторых учеников -- перед записью, они должны найти необходимый им курс. Предлагается создать модуль Оплёта, который будет автоматически записывать учеников, причём не только в Брацкой Учебке, но и на кампусе 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 содержит пару плагинов для лекций, но не ясно решают ли эти плагины проблему сохранения ответов.
Планируется унифицировать тесты по всей платформе с помощью нового модуля Оплёта.

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

В сети Интернет, полные приложения для пользователей размещены на различных 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.). Часть курсов Учебки, например, Брацка Вводка, может быть доступна без оплаты всем посетителям сети Интернет. Доступ к некоторым курсам может предоставляться на коммерческой основе.

Веб-доступность

Content delivery network; CDN; reverse proxy

Географическая доступность

Облако распределено по нескольким континентам с тем, чтобы пользователь работал с тем приложением, которое более доступно для этого пользователя. Для этого будут планироваться DNS Anycast, DNS Geocast и аналогичные распределительные системы. Есть план отправлять пользователя на тот сервер, который наиболее доступен конкретному пользователю. Усилия по улучшению географической доступности являются частью Доменных проектов.

Доменные имена

Усилия по улучшению доменных имён являются частью Доменных проектов. Хотя планируется использование десайтков доменных имён, речь пока идёт о двух основных:
  1. cnmcyber.com -- некоммерческий сайт для англоязычных пользователей; на коммерческой стороне, он должен поддерживаться сайтом vit4all.com;
  2. bskol.com -- некоммерческий сайт для русскоязычных пользователей; на коммерческой стороне, он должен поддерживаться сайтом vsemka.com.
Доменные имена зарегистрированы на GoDaddy; nameservers расположены там. Записи делались спонтанно не подвергались ревизии. Планируется:
  • Проверить существующие и создать нехватающие DNS.
  • Рассмотреть добавку новых DNSSEC записей. DNSSEC не является критичной -- может быть отлажено только для какой-то части зон DNS. Проект Школы -- учебный, нам важно иметь разные вещи для того, чтобы показывать ученикам.
  • Изучить возможность Dynamic DNS (DDNS) или виртуальных DNS.

Нахождение в Паутине

Говоря об IP адресах, в данный момент используется IPv4, но есть план разобраться с более новым протоколом. Судя по некоторым публикациям, IPv6 решит проблему отказоустойчивости в части перенаправления трафика.
В дополнение, есть план разобраться с виртуальными адресами (virtual IP address). Digitalocean предлагает floating IP address, который можно устанавливать на те дроплеты (VPS), которые расположены в одном датацентре. То есть, мы этой возможностью не воспользуемся. Hetzner.de предлагает failover IP, хотя с ними надо разобраться. Не похоже, что Contabo предлагает что-то вроде этого.
Усилия по улучшению нахождения Облака в Паутине являются частью Доменных проектов.

Виртуализация

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

Задачи

Опытно Облако решает две основные задачи:
  1. Обеспечивать сотрудников и подрядчиков площадкой для развития Облака. Каждый пакет программного обеспечения установлен на отдельной виртуальной машине. Доступ к этой машине дан тем сотрудникам и тем подрядчикам, которые работают над конкретным приложением. В Опытном Облаке:
    • Все Полные приложения имеют свои экспериментальные версии.
    • Размещены все Опытные приложения без исключения.
    • Установлены те федеративные и сетевые решения, которые не задействованы для непосредственного обслуживания тех учеников, которые не являются подмастерьями.
  2. Автоматически создавать виртуальные машины для участников тренингов. Школа будет устраивать тренинги и планирует выдавать ресурсы для практических занятий. После оплаты участником, участник должен получать имэйл со ссылкой на ресурс с логином и паролем. Идеально, ресурс должен быть виртуальной машиной. Если виртуальная машина не получается, можно продумать возможность решения на контейнерах. Специалист считает, что так как контейнер создаётся одной строкой, можно сделать скрипт под Линукс, который будет создавать контейнер из образа и добавлять к нему логин и пароль.

Железо

Железный сервер (bare metal) и хранилище для его резервных копий будут арендованы на hetzner.de. Следующие вопросы требуют решения:
  • Объём основного дискового пространства -- например, будет ли достаточным 2 x 512 GB NVMe SSD (Software-RAID 1)
  • AMD Ryzen 5 3600 Hexa-Core "Matisse" (Zen2) или Intel® Core™ i7-8700 Hexa-Core Coffee Lake

Обеспечение

ProxmoxVE -- основное решение, которое рассматривалось изначально. Это решение использовалось ранее, но не была решена проблема автоматического создания виртуальных машин для участников тренингов. Похоже, что VMWare и Oracle VirtualBox справляются с этой проблемой лучше.
Далее, некоторые специалисты в разговорах упоминали Apache CloudStack и инструменты оркестрации типа Ansible и Puppet software, хотя те рассчитаны на работу с намного большим количеством машин, чем на данный момент планируется в Опытне Облаке.
Количество IP адресов и архитектура их распределения также требуют решения. Один специалист предлагает использовать роутер Microtik, чтобы на proxy сделать два IP адреса, первый использовать для внутренних виртуалок, если они нормально работают, а второй загнать в bridge для внешних серверов и средствами Линукса типа firewall делить тот трафик, который приходит. Кроме того, на том же proxy можно поставить DHCP сервер для раздачи адресов машинам. Другой специалист считает, что безопасных DHCP серверов на рынке нет.

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

OpenEdX

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

ProjecQtOr

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

Redmine

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

Taiga

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

Развитие ресурсов

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

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

Доменные проекты

Доменные проекты -- это усилия по улучшению Веб-доступности.
Профинансированные проекты доменов
Работы CDN DNSSEC IPv6 Переадресация Ревизия DNS
Запрос Достаточно Достаточно Достаточно Достаточно
Требования        
Архитектура        
Модель        
Прототип        
Заказ        
Производство        
Конфигурация        
Усовершенствование        

Инфраструктурные проекты

Инфраструктурные проекты -- это усилия по построению Инфраструктуры Облака, включая Данные в Облаке. Усилия по построению Кластеров выделены в Кластерные проекты.
Профинансированные проекты инфраструктуры
Работы Виртуализация Восстановление Интеграция Копирование Мониторинг Почта
Запрос Достаточно Достаточно Достаточно Достаточно
Требования        
Архитектура        
Модель        
Прототип        
Заказ        
Производство        
Конфигурация        
Усовершенствование        

Кластерные проекты

Кластерные проекты -- это усилия по построению Кластеров.
Профинансированные проекты кластеров
Работы MariaDB PostgreSQL Жици Оплёта
Запрос Достаточно Достаточно Достаточно Достаточно
Требования        
Архитектура        
Модель        
Прототип        
Заказ        
Производство        
Конфигурация        
Усовершенствование        

Приложенческие проекты

Приложенческие проекты -- это усилия по построению Пользовательских приложений, прежде всего, включая Полные приложения. В существующую технологию включено много пользовательских приложений. Для всех, надо:
  1. Обновлять все приложения до последних стабильных версий и устанавливать свежие патчи, когда они появляются в наличии. Основное требование для любого приложения -- привязка к нашему WSO2 Identity Server (WSO2 IS). Дополнительное требование для любого приложения -- привязка к нашему OpenLDAP.
  2. Документировать то, что у нас есть, и выявлять проблемы.
Профинансированные проекты приложений
Работы Бачка Вебка Жици Крынка Пошта Правка Связка Сетка Справа Учебка
Запрос Достаточно Достаточно Достаточно Достаточно Достаточно Достаточно Достаточно Достаточно Достаточно
Требования                  
Архитектура                  
Модель                  
Прототип                  
Заказ                  
Производство Наработки Наработки Наработки   Наработки Наработки     Наработки
Конфигурация                  
Усовершенствование                  
Так как приложения существуют не в вакууме, часть усилий по развитию приложений относится к другим группам. Например, к:

Федерационные проекты

Федерационные проекты -- это усилия по построению Оплёта. Усилия по переделке Оплёта на кластер относятся к Кластерным проектам.
Профинансированные проекты Оплёта
Работы Защита Идентификация Интерфейс Курсы Мероприятия Роли Тесты Почта
Запрос Достаточно Достаточно Достаточно Достаточно Достаточно
Требования          
Архитектура          
Модель          
Прототип          
Заказ          
Производство Наработки        
Конфигурация          
Усовершенствование          

Эксперементальные проекты

Эксперементальные проекты -- это усилия по построению перспективных и популярных ресурсов Облака.
Профинансированные эксперименты
Работы GitLab MediaWiki OpenEdX ProjecQtOr Taiga
Запрос Достаточно Достаточно Достаточно Достаточно Достаточно
Требования          
Архитектура          
Модель          
Прототип          
Заказ          
Производство Наработки        
Конфигурация          
Усовершенствование