К созданию официального сайта МГУ (New Generation)
Официальный сайт Московского Университета - это информационная система, которая предоставляет доступ пользовательской аудитории к официальной информации, полученной только из авторизованных источников и утвержденных редакторской группой. Сайт состоит из головной страницы (на русском и английском языках), содержание которой формируется и утверждается главным редактором сайта, согласно Положению об официальном сайте МГУ, и дополнительных страниц, содержание которых формируется согласно редакционной политике и утвержденной структуре сайта.
Цели
Разработка информационно-технологической архитектуры официального сайта МГУ для решения следующих задач:
- Создание конкурентноспособного представительства Московского Университета в сети Интернет для размещения официальной информации МГУ
- Обеспечение полного цикла деятельности электронной редакции официального сайта Московского Университета
Результатом выполнения проекта будет полностью функционирующий сайт МГУ, повторяющий функциональность и содержание старого официального сайта МГУ, но на реализованный на новой информационно-технологической платформе, которая позволит дальнейшую разработку новой версии сайта, согласно новому утвержденному плану, и новых информационных сервисов. Кроме того, новая платформа позволит постепенно создавать англоязычные страницы, а также лучше выдерживать растущую нагрузку.
Аудитория
- Школьники, абитуриенты и их родители
- Студенты, профессорско-преподавательский состав, научные сотрудники МГУ
- Студенты, профессорско-преподавательский состав, научные сотрудники сторонних учебных и научных заведений
- Гости и посетители МГУ, участники конференций и других мероприятий
Задачи
- Создание программной инфраструктуры
- Создание кластера для официального сайта МГУ, тестирование и установка программного обеспечения
- Миграция контента
- Поддержка и развитие сайта
Методы
Для решения поставленных задач предполагается
- Разработка программной инфраструктуры на основе открытых программных компонентов для обеспечения работы текущих и будущих информационных проектов на сайте МГУ, в том числе и требующих нестандартных решений
- Подбор серверного и сетевого оборудования для кластера официального сайта МГУ, организация мониторинга функционирования системы
- Установка программной инфраструктуры на кластере, конфигурация сервисов и реализация шаблонов страниц официального сайта МГУ, а также специализированных рабочих мест для удаленной работы с документами
- Создание системы обмена документами между университетскими ресурсами
- Создание квалифицированной команды редакторов по разным направлениям для оперативного размещения документов на сайте МГУ и для миграции содержимого старой версии сайта
Требования к программной архитектуре
Требования к программной архитектуре сайта должны рассчитываться исходя из планируемого расширения аудитории сайта и количества материалов на сайте.
Нагрузочные требования (пиковые значения):
- Количество уникальных посетителей в сутки - 1 млн
- Количество запросов в секунду - 100 req/sec
- Количество поисковых запросов - 1 млн/сутки
- Количество документов в хранилище - 100,000 текстовых документов
- Линейная масштабируемость системы - от возможности работы всех сервисов на одном сервере, до работы одного сервиса на нескольких серверах
Функциональность:
- Поддержка полного цикла обработки документов в системе
- прием и регистрация документов в системе
- обработка документов в зависимости от его типа (новость, статья, книга, отчет, объявление,…), добавление новых типов документов.
- публикация на сайте
- поддержка версионности документов для документирования жизненного цикла документа на сайте
- Рабочие места для администратора системы, авторов, редакторов, главного редактора и т.д. для удаленной работы с системой с помощью интернет-браузера.
- Поддержка гибкой политики доступа (создание, чтение, модификация) к документам
- Поддержка разных методов навигации по сайту:
- Рубрикатор документов по различным атрибутам
- Лента документов с поддержкой отборов по различным атрибутам (тип документа, дата создания)
- Поиск по ключевым словам
- Полнотекстовый поиск по сайту с поддержкой атрибутов и специализированных словарей
- Каталог информационных ресурсов
- Поддержка системы шаблонов для быстрой и удобной верстки страниц сайта с соблюдением общего дизайна
- Поддержка многоязычности - 2 языка, русский/английский.
- Поддержка рабочего места переводчика документов
- Поддержка целостности оформления сайта
- Поддержка непрерывного цикла разработки сайта
- Разработка новых сервисов и модификация существующих не влияет на работу сайта
- Разработка новых сервисов и модификация существующих не влияет на тестирование новой версии сайта выпускающей редакцией
- Автоматическая синхронизация изменений на сайте без остановки работы сайта
- Возможность использования внешних сервисов
Обеспечение надежности:
- No SPOF (Single Point of Failure) - резервирование основных сервисов
- Обеспечение непрерывной работы системы в условиях пиковых нагрузок
Другие требования:
- Совместимость с общепринятыми веб-стандартами (HTML, HTTP[s])
- Использование только открытого ПО
- Разработка программного обеспечения для массовой миграции документов со старого сервера в новую систему
- Программная платформа поставляется в дистрибутиве с документацией на установку, требованиями к операционной системе и оборудованию. Кроме этого, требуется наличие регрессионных тестов для автоматического тестирования установленной системы и демонстрационного сайта с примерами использования API системы
- Сопровождение системы осуществляется в виде исправления ошибок, поставки соответствующих патчей и их применение в рабочей системе. Документирование работы над системой осуществляется с применением общепринятых систем мониторинга разработки, например, trac.
Ролевая политика доступа к ресурсам
Официальный сайт МГУ является информационной системой с повышенным уровнем ответственности к контенту сайта, а именно:
- Документы должны поступать только из авторизованных источников
- Документы должны проходить корректорскую обработку для исправления грамматических ошибок и очепяток
- Все версии документов должны храниться в системе, с предоставлением доступа к ним при необходимости
- Документы могут модифицироваться только авторизованными пользователями
- Доступ к некоторым документам может быть ограничен
- Некоторые возможности разметки текста (HTML) и вызываемых из документов скриптов (javascript) могут быть запрещены из соображений безопасности
Для эффективной и простой реализации политики доступа к ресурсам и документам предполагается использование ролевой политики доступа со следующими ролями:
- Главный редактор - полный доступ ко всему
- Редакторы по направлениям - полный доступ только к документам определенной группы
- Технический редактор - техническая правка (не может создавать и публиковать документ
- Переводчик - доступ на чтение к документу и ограниченный доступ к переводному документу (не может создавать и публиковать документ)
- Автор - может создать документ, работать над ним и отослать в редакцию
- Доверенный автор - может создать и опубликовать документ (возможно, в определенной категории)
- Внутренние роли, необходимые для функционирования системы
Редакторский интерфейс
Редакторский интерфейс предназначен для выполнения широкого круга задач в удаленном режиме, используя веб-браузер и согласно правам пользователя. Никакого прямого доступа в систему не предусмотрено ! Требуется наличие двух вариантов - простой, использующий стандартные средства HTML и совместимый с большинством браузеров, и визуальный, предоставляющий продвинутые средства редактирования документов.
Список задач:
- Заведение нового пользователя в системе
- Управление системой ролевого доступа
- Изменение ролей, приписанных к пользователю
- Создание и редактирование каталогов, справочников
- Создание и изменение нового документа выбранного типа
- Редактирование метаданных документа
- Формирование главной страницы сайта
Масштабирование системы
Для устойчивой работы при больших нагрузках и сбоях оборудования предлагается использовать многоуровневую архитектуру, в которой все основные сервисы могут функционировать на нескольких серверах. Многоуровневая архитектура означает использование разных ресурсов для разных задач, что позволяет эффективное использование ресурсов:
- Фронтенды - "легкие" сервера, требующие минимум ресурсов, которые взаимодействуют с пользователями сайта. Фронтенды могут работать как на одном, так и на нескольких серверах (при необходимости).
- Бэкенды - "тяжелые" сервера, которые по запросу от фронтенда формируют страницу (собирая данные с разных источников). Только бэкенды имеют доступ непосредственно к хранилищу данных. Как и фронтенды они могут работать на нескольких серверах.
- База данных обычно работает на отдельном сервере, к которому имеют доступ только бэкенды (по постоянному соединению) и только из внутренней сети. Она хранит разнообразные метаданные документов системы. Масштабируется репликацией на дополнительные сервера.
- Файловое распределенное хранилище для хранения разнообразных файлов (картинки, архивы, pdf, doc,…)
- Сервер[а] обработки документов для приемки, обработки и укладки документов. В зависимости от размера, сложности и типа документа, процесс обработки может быть очень ресурсоемким. При большом потоке документов может потребоваться несколько серверов.
Дополнительные сервисы
- Для обработки и онлайн редактирования некоторых видов документов необходима поддержка TeX/LaTeX, системы проверки правописания (спелл-чеккер), разнообразных словарей.
- Для анализа производительности системы, работы сайта необходим сервис хранения журналов работы всех основных сервисов, анализ и онлайн доступ к результатам.
Миграция
Задача миграции контента состоит в анализе структуры сервера, выделение основных типов документов, разработка программ для конвертации документов в новую модель данных, проверка работы и ревизия результатов работы.
Кроме того, требуется начальная работа по переводу основных документов сайта и его интерфейсов на английский язык. Для облегчения работы переводчиков требуется создать рабочее место переводчика.
План работ
- Этап 1.
- Создание тестового кластера для работ по созданию программной архитектуры сайта - определение конфигурации тестового кластера, закупка оборудования
- Настройка тестового кластера - установка операционной системы и необходимого программного обеспечения, в том числе и системы документирования процесса разработки (trac)
- Анализ структуры и содержания существующего официального сайта МГУ, выработка списка необходимых типов документов, разработка специализированных парсеров для конвертации документов в новые форматы и извлечение метаданных, создание специализированных справочников.
- Этап 2.
- Разработка программной архитектуры распределенной информационной системы
- Создание редакторских рабочих мест
- Разработка шаблонов для страниц сервера
- Наполнение и проверка целостности базы данных
- Перевод шаблонов и определенного списка базовых документов на английский язык
- Запуск пробного сайта и его тестирование - функциональное и нагрузочное
- Этап 3.
- Создание дистрибутива, документирование API, создание демонстрационного сайта с примерами реализации базовой функциональности сайта образовательного учреждения
- Этап 4.
- Уточнение дизайна официального сайта МГУ и его реализация
- Реализация ленты новостей с редакторским интерфейсом на основе агрегации новостей с университетских ресурсов
- Реализация поиска по всем информационных ресурсам МГУ и его тестирование
- Демонстрация работы сайта, работа над замечаниями
- Запуск сайта в рабочем режиме официального сайта МГУ
Этапы 1 и 2 могут идти параллельно, но 1 этап должен завершится раньше этапа 2.
1,2 -----------------1k----------2k3----------------3k4------------------------4k
1-1k - 2 месяца
2-2k - 3 месяца
3-3k - 2 месяца
4-4k - 4 месяца
Реальная продолжительность проекта больше на 1-2 месяца, если учесть выходные и праздники.
Рабочие группы
- Группа контента (редакторская группа) - задачи миграции существующего контента в новую систему, определяет структуру сайта, формирует задания группе разработчиков сайта, проводит редакционную политику сайта, следит за качеством и оперативностью публикации документов на сайте
- Группа разработчиков - разработка программной платформы сайта, ядра системы
- Группа разработчиков сайта - непосредственное программирование сервисов сайта, разработка шаблонов страниц, административных средств и.т.д. на основе программной платформы сайта
- Группа администраторов - установка и налаживание оборудования, необходимого программного обеспечения, установка программной платформы и запуск всех сервисов, мониторинг работы оборудования и сервисов
- Группа тестирования - осуществляет функциональное и нагрузочное тестирование всех сервисов сайта, а также соответствие стандартам Web.
- Административная группа - общий контроль за деятельностью групп, принятие решений. Обязательно входят главный редактор сайта и руководитель проекта.