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

Материал из Брацка Правки
Перейти к: навигация, поиск
(Clusters)
(DNS и DNSSEC)
Строка 209: Строка 209:
 
:*Система управления пользователями -- https://cabin.cnmcyber.com -- сейчас расположена на одном VPS (они зовут их "дроплетами") digitalocean.com. Есть план добавить load balancer и перевести систему на кластер. Планов уезжать с digitalocean.com нет.
 
:*Система управления пользователями -- https://cabin.cnmcyber.com -- сейчас расположена на одном VPS (они зовут их "дроплетами") digitalocean.com. Есть план добавить load balancer и перевести систему на кластер. Планов уезжать с digitalocean.com нет.
 
:*Пользовательские системы -- [https://cert.cnmcyber.com cert.] , [https://wiki.cnmcyber.com wiki.] , [https://venture.cnmcyber.com venture.] и так далее, включая почту [https://mail.cnmcyber.com mail.] -- расположены на трёх VPS contabo.de -- два VPS в штатах и один -- в Германии. VPS объединены в кластер синхронизированной распределённой базой. DNS Anycast, DNS Geocast, и аналогичные распределительные системы не установлены -- каждое пользовательское приложение установлено только на одном VPS. Есть план продублировать приложения и отправлять пользователя на тот сервер, который наиболее доступен конкретному пользователю. Есть план добавить или заменить один VPS железом на hetzner.de с установкой proxmox
 
:*Пользовательские системы -- [https://cert.cnmcyber.com cert.] , [https://wiki.cnmcyber.com wiki.] , [https://venture.cnmcyber.com venture.] и так далее, включая почту [https://mail.cnmcyber.com mail.] -- расположены на трёх VPS contabo.de -- два VPS в штатах и один -- в Германии. VPS объединены в кластер синхронизированной распределённой базой. DNS Anycast, DNS Geocast, и аналогичные распределительные системы не установлены -- каждое пользовательское приложение установлено только на одном VPS. Есть план продублировать приложения и отправлять пользователя на тот сервер, который наиболее доступен конкретному пользователю. Есть план добавить или заменить один VPS железом на hetzner.de с установкой proxmox
:*Видео-конференционная система [https://talk.cnmcyber.com talk.] пока установлена вместе с пользовательскими системами, но есть план увести её отдельно на CDN типа Cloudflare или глобальные облачные решения -- Microsoft Azure или AWS -- участники конференций могут находиться на разных континентах и требование к качеству особо высокое.
+
:*Видео-конференционная система [https://talk.cnmcyber.com talk.] (на Jitsi) пока установлена вместе с пользовательскими системами, но есть план увести её отдельно на CDN типа Cloudflare или глобальные облачные решения -- Microsoft Azure или AWS -- участники конференций могут находиться на разных континентах и требование к качеству особо высокое.
 
:DNSSEC не является критичной -- может быть отлажено только для какой-то части зон DNS. Проект ''Школы'' -- учебный, нам важно иметь разные вещи для того, чтобы показывать ученикам.
 
:DNSSEC не является критичной -- может быть отлажено только для какой-то части зон DNS. Проект ''Школы'' -- учебный, нам важно иметь разные вещи для того, чтобы показывать ученикам.
  

Версия 05:38, 14 декабря 2020

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


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

Цели и основные задачи

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

Дополнительные задачи

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

Общие требования

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

Ярусы

Планируемое Облако включает в себя три яруса программного обеспечения: Инфраструктуру, Связующее обеспечение и Пользовательские приложения.

URL стратегия

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

Обзор планируемых приложений

Ярус Обеспечение Предназначение Технология URL
Prototype Example
Инфраструктура Брацка База Поддержка Связующего обеспечения и Пользовательских приложений OpenStack  
Связующее обеспечение Оплёт Управление регистрацией, идентификацией и авторизацией доступов пользователей YII opplet. opplet.ksacerts.com
Пользовательские приложения Справочна Открытый источник знаний и, одновременно, работа для новичков MediaWiki wiki. wiki.ksacerts.com
Почта Электронная почта Roundcube mail. mail.ksacerts.com
Портал Административный учёт, электронная коммерция (Careerprise Shop) и работа персонала над проектами Odoo portal. portal.ksacerts.com
Учебка Учебные курсы Moodle campus. campus.ksacerts.com
Вэб‑поддержка Администрация вэб-сайтов WordPress web. web.ksacerts.com
Сессия Организация видео- и аудио-конференций BigBlueButton session. session.ksacerts.com
Видео Размещение видео файлов ClipBucket video. video.ksacerts.com
Архив Работа разработчиков над проектами с установленным service desk приложением для сбора информации по проблемам и хранение исходных кодов уникального программного обеспечения Redmine, SVN dev. dev.ksacerts.com

Брацка База (инфраструктура)

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

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

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

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

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

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

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

Правочна pravka
Пошта posta
Справа sprava
Учебка ucebka
Вэбка vebka
Сход skhod
Бачка backa
Крынка krynka

Брацка Справочна

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

Брацка Почта

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

Брацки Портал

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

Брацка Учебка

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

Брацка Вэб-поддержка

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

Братска Сессия

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

Брацко Видео

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

Брацки Архив

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

Построение технологических ресурсов

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

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

Приоритеты

  1. Поддерживать Брацка Справочна в рабочем состоянии (как минимум, в том, в котором они есть);
  2. Наладить возможность саморегистрации людей на Оплёте;
  3. Установить "Я не робот" на саморегистрацию;
  4. Подключить Брацки Архив к Оплёту;
  5. Увязать Брацки Архив с хранилищем файлов, например, Bitbucket;
  6. Установить обеспечение для учёта версий на Брацки Архив, если Bitbucket такового не обеспечит.

Профинансированные работы

Работы База Оплёт Справочна Почта Портал Учебка Сессия Видео Архив
Запрос Достаточно Достаточно Достаточно Достаточно Достаточно Достаточно Достаточно Достаточно Достаточно
Требования                  
Архитектура                  
Модель                  
Прототип                  
Заказ                  
Производство Наработки Наработки Наработки   Наработки Наработки     Наработки
Конфигурация                  
Усовершенствование                  

Задачи

Clusters

  1. Надо переделать кластер пользовательских приложений в high-availability cluster. В настоящее время load balancer сделан на NGINX, пользователи работают с приложениями, которые установлены на трёх различных серверах Contabo (два -- в штатах, один -- в Германии). Сервера поддерживают синхранизованные базы, которые обновляют друг друга. Если один сервер падает, то его пользовательские приложения не доступны. Надо повысить устойчивость кластера. В дополнение, есть предложение, чтобы пользователь работал с тем приложением, которое более доступно для этого пользователя. Рассматриваются решения для кластеров типе Linux-HA на основе heartbeat и load balancers типа HAProxy. Теоретически, будущий кластер может решить и проблему Jitsi, но, возможно, Jitsi требует иного подхода.
  2. Управление пользователями осуществляется сейчас с дроплета (VPS) на digitalocean (DO). Надо переделать это решение на кластер. Сам DO предлагает load balancer и floating IP address -- эти решения требуют рассмотрения.

Distributed databases

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

DNS и DNSSEC

Надо проверить существующие и создать нехватающие DNS и, возможно, новые DNSSEC записи. Речь идёт об основном домене -- cnmcyber.com:
  • Домен зарегистрирован на godaddy; nameservers расположены там.
  • Система управления пользователями -- https://cabin.cnmcyber.com -- сейчас расположена на одном VPS (они зовут их "дроплетами") digitalocean.com. Есть план добавить load balancer и перевести систему на кластер. Планов уезжать с digitalocean.com нет.
  • Пользовательские системы -- cert. , wiki. , venture. и так далее, включая почту mail. -- расположены на трёх VPS contabo.de -- два VPS в штатах и один -- в Германии. VPS объединены в кластер синхронизированной распределённой базой. DNS Anycast, DNS Geocast, и аналогичные распределительные системы не установлены -- каждое пользовательское приложение установлено только на одном VPS. Есть план продублировать приложения и отправлять пользователя на тот сервер, который наиболее доступен конкретному пользователю. Есть план добавить или заменить один VPS железом на hetzner.de с установкой proxmox
  • Видео-конференционная система talk. (на Jitsi) пока установлена вместе с пользовательскими системами, но есть план увести её отдельно на CDN типа Cloudflare или глобальные облачные решения -- Microsoft Azure или AWS -- участники конференций могут находиться на разных континентах и требование к качеству особо высокое.
DNSSEC не является критичной -- может быть отлажено только для какой-то части зон DNS. Проект Школы -- учебный, нам важно иметь разные вещи для того, чтобы показывать ученикам.

IP

  1. IPv6. В данный момент используется IPv4 и есть план разобраться с более новым протоколом
  2. Virtual IP address. Есть необходимость разобраться с виртуальными адресами. Digitalocean предлагает floating IP, который можно устанавливать на те дроплеты (VPS), которые расположены в одном датацентре. Hetzner.de предлагает failover IP, хотя с ними надо разобраться. Не похоже, что Contabo предлагает что-то вроде этого.
  3. В случае, если виртуальный IP не возможен, есть практика направления IP на load balancer -- какие плюсы и минусы у этой практики?

Jitsi

  1. Надо, чтобы только зарегистрированный пользователь мог начинать новую сессию.
  2. Кроме того, надо создать архитектуру более устойчивой работы, либо на разных серверах, либо вынести на сторонний CDN, либо иное решение.

MediaWiki

  1. Привязка последней стабильной версии MediaWiki к LDAP. У нас стоит 1.31.1 версия, так как эта версия -- последняя, которую поддерживает наш плагин LDAP. Последняя стабильная версия -- 1.36.0. Новый плагин -- https://www.mediawiki.org/wiki/Extension:LDAPAuthentication2
  2. Надо стабилизировать хранение и использование картинок. Сейчас они спорадически не отображаются. Например, 7 декабря картинки выбились, перестав отображаться. После клика на редактирование и сохранение, картинки появлялись -- этот сценарий повторялся на нескольких страницах. Затем всё само восстановилось. Аналогичные сбои происходили и раньше. Сама Википедия использует другую схему.

Moodle

  1. Добавка и отладка плагина https://moodle.org/plugins/enrol_coursecompleted к нашему Moodle'у

SSO

  1. Создание SSO. Более 3х десятков пользовательских приложений включено в "Облако", но заходя в каждое из них сейчас пользователь должен логиниться отдельно, что должно быть улучшено.