Moodle выходит дважды в год — в мае и ноябре, а каждая ветка получает поддержку примерно два года. Дальше — ни патчей безопасности, ни исправлений ошибок. При этом многие компании годами работают на версиях, которые уже не поддерживаются: система «вроде работает», и до первого инцидента до обновления не доходят руки. В этой статье рассказываем, как мы обновляем Moodle в реальных проектах и почему это управляемый процесс, а не лотерея.

Почему обновление откладывают годами

Ситуация «Moodle трёхлетней давности» — не редкость, а правило для компаний, которые внедряли систему силами подрядчика «под ключ» и остались без сопровождения. Причины, по которым обновление откладывают, почти всегда одни и те же.

Страх «всё сломается»
Без бэкапа и тестовой среды так и будет: любое обновление на живой системе — это риск потерять курсы или получить белый экран

Несовместимые плагины
Сертификаты, отчёты, интеграции — часть плагинов не работает с новой версией PHP, и непонятно, что с ними делать

Нет ресурсов
Штатный администратор ни разу не обновлял систему и не готов отвечать за последствия

Незнание рисков
Уязвимость в старой версии — это потенциальная утечка персональных данных учеников, штрафы по 152-ФЗ до 1 млн рублей и удар по репутации

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

Чем опасна версия без поддержки

Неподдерживаемая версия Moodle — это открытая дыра в безопасности. Для неё больше не выходят патчи, а уязвимости в старых ветках публикуются и становятся общеизвестными: злоумышленникам остаётся только найти систему, которая их ещё не закрыла. Для компании с персональными данными сотрудников и учеников это прямая угроза штрафов по 152-ФЗ и репутационных потерь. Подробно о том, как закрывать эти риски, мы писали в статье «Безопасность Moodle: 152-ФЗ и защита персональных данных».

Кроме безопасности, устаревшая версия означает и упущенные возможности: улучшенный интерфейс, новые инструменты оценивания и аналитики появляются только в актуальных ветках. Обновление — это не только закрытие дыр, но и доступ к функциональности, за которую не нужно платить отдельно.

Обновление как управляемый процесс: пять этапов

Профессиональное обновление Moodle — это пять этапов, на каждом из которых риск контролируется. Именно так мы строим работу в проектах технической поддержки.

Аудит
Проверяем версию Moodle, версию PHP, совместимость всех плагинов и темы — сразу видно, что потребует замены или доработки

Бэкап
Снимаем полную копию файлов и базы данных, чтобы при необходимости откатить обновление за 15 минут

Тестовая среда
Разворачиваем копию системы, обновляем её до целевой версии и прогоняем ключевые сценарии — прод не трогаем

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

Проверка
Тестируем курсы, пользователей, журнал оценок, отчёты и интеграции. Всё работает — только тогда открываем систему

Ключевой принцип: прод обновляется только после того, как обновление успешно прошло на тестовой копии. Никаких экспериментов на живой системе.

Как обновление проходит на практике

Упрощённо, без сложных схем — что происходит по шагам, когда мы обновляем Moodle заказчику.

Шаг 1. Диагностика
Собираем полную картину: текущая версия ядра, версия PHP, список плагинов и их статус совместимости. Определяем узкие места — плагины, которые придётся обновить или заменить аналогами. Если система сильно устарела, может потребоваться последовательный переход через несколько мажорных версий, а не прыжок через все сразу.

Шаг 2. Бэкап и тест
Снимаем резервную копию, разворачиваем тестовую среду и обновляем её до целевой версии. Прогоняем типовые сценарии: зачисление пользователя, прохождение курса, выдача сертификата, выгрузка отчётов. На тестовой среде видны все несовместимости — и они не задевают прод.

Шаг 3. Обновление прода
В нерабочее время включаем режим обслуживания, обновляем ядро, плагины и тему, запускаем обновление базы данных. Система поднимается уже на новой версии. В зависимости от размера системы и количества плагинов обновление занимает от 30 до 60 минут.

Шаг 4. Контроль после запуска
Проверяем ключевые сценарии уже на проде, следим за логами и ошибками в первые сутки. Если что-то пошло не так — откатываем из бэкапа, потери данных ноль.

Что мы делаем в рамках технической поддержки

Обновление ядра — часть нашей регулярной работы по сопровождению LMS, а не отдельная «операция под заказ». В рамках технической поддержки Moodle и обслуживания СДО мы поддерживаем актуальность исходного кода, контролируем совместимость плагинов и заранее планируем переходы на новые версии — так обновление перестаёт быть событием с риском и становится рутинным пунктом регламента.

Если системе нужны доработки под новую версию — замена несовместимых плагинов, обновление кастомных модулей, интеграций, — мы закрываем и это. Например, при переходе на новые мажорные версии часть плагинов приходится адаптировать или заменять: это видно уже на этапе аудита, поэтому сюрпризов на проде не бывает.

Примеры из практики

Производственная компания
Система работала на версии без поддержки, аудит безопасности показал критические уязвимости, а регулятор требовал привести систему в соответствие с 152-ФЗ. Мы провели обновление с пропуском нескольких мажорных версий: аудит, бэкап, тестовая среда, обновление прода за один уикенд. Два несовместимых плагина заменили аналогами. Итог — закрытые критические уязвимости, простой около 40 минут и ноль потерянных данных

Учебный центр с тысячами слушателей
После самостоятельной попытки обновления сайт упал в белый экран — сломался плагин сертификатов, слушатели не получали документы. Мы восстановили систему из бэкапа за два часа, затем провели обновление по полной процедуре: тестовая среда, проверка всех плагинов, обновление прода в нерабочее время. Вторая попытка прошла без единой ошибки

Если вы только планируете переезд на новую версию и хотите оценить масштаб работ, полезно начать с расчёта: как формируется стоимость владения Moodle, мы разбирали в статье «Сколько стоит Moodle?». А о том, что даёт переход на свежую мажорную версию, — в обзоре «Moodle 5.0: что нового и как обновляться».

Почему мы это знаем

Мы внедряем и сопровождаем LMS на базе Moodle с 2011 года. За это время мы обновляли системы самого разного масштаба — от небольших учебных центров до корпоративных порталов банков и промышленных предприятий, включая ВТБ, Аэрофлот, АТОЛ и ММК. Мы знаем, какие плагины ломаются чаще всего, как обходить типичные проблемы совместимости и как делать переходы через несколько мажорных версий без потери данных и длительных простоев.

Часто задаваемые вопросы

Как часто нужно обновлять Moodle?

Moodle выходит дважды в год — в мае и ноябре. Каждая ветка поддерживается примерно два года. Мы рекомендуем не пропускать мажорные версии и обновляться в течение срока поддержки, чтобы не накапливать разрыв между версиями.

Можно ли перескочить сразу несколько мажорных версий?

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

Что делать, если плагин несовместим с новой версией?

На этапе аудита мы определяем такие плагины и решаем их судьбу: обновить до совместимой версии, заменить аналогом или адаптировать код. Это видно заранее, поэтому на проде сюрпризов не бывает.

Сколько времени занимает обновление Moodle?

Само обновление на проде занимает от 30 до 60 минут в нерабочее время. Вместе с аудитом, бэкапом и проверкой на тестовой среде весь процесс обычно занимает несколько дней — но без простоя для пользователей.

Что делать, если после обновления что-то сломалось?

До обновления мы всегда снимаем полный бэкап файлов и базы данных. Если после обновления возникает проблема, систему можно откатить за 15 минут без потери данных.

Входит ли обновление в техническую поддержку Moodle?

Да. Поддержание актуальности ядра и плагинов — базовая задача технической поддержки и обслуживания LMS. Отдельное обновление устаревшей системы мы тоже проводим как разовую работу.