Перейти к основному содержимому

Обзор платформы

Simple Env - общая инфраструктура, на которой держатся все курсы факультета (Django, Enterprise и остальные)
Логин один и тот же для любого курса, сервисы - тоже общие, эта страница - краткая карта: что где лежит и зачем

Теория​

Что такое Simple Env​

Кластер, на котором развёрнуты сервисы, общие для всех курсов: git-хостинг, портал с заданиями и баллами, доска задач, отчёты о качестве кода
Сдача заданий и автогрейдинг у любого курса устроены одинаково - через эти сервисы

Сервисы, с которыми работает студент​

СервисАдресДля чего
Homarrhome.simple-env.siteЕдиная домашняя страница - плитки-ссылки на остальные сервисы
Giteagitea.simple-env.siteРепозитории, Pull Request, автогрейдинг через Actions
Classroomclassroom.simple-env.siteЗадания, рубрика по каждому заданию, баллы
Plankaplanka.simple-env.siteKanban-доска команды/проекта
SonarQubesonarqube.simple-env.siteОтчёт о качестве кода - линт, покрытие тестами, code smells

Как именно сдавать код через Gitea (токен вместо пароля, автогрейдинг на push) - разобрано в курсовой теме «Git и Gitea»

Что работает "за кадром"​

Кроме сервисов из таблицы, в платформе есть автоматизация (например, n8n - шлёт уведомления о результатах грейдинга), Nexus (реестр Docker-образов и кеш PyPI/npm для CI) и Keycloak - сервис единого входа
Заходить в них напрямую не нужно - они работают сами, без участия студента

Когда появится командный проект​

Позже, когда сформируют команды, добавится ещё один пайплайн - деплой самого проекта
На каждый git push в проектном репозитории: прогон тестов → анализ SonarQube → сборка Docker-образа → сканирование уязвимостей (Trivy) → деплой в кластер → приложение доступно по https://project-NN.simple-env.site

Это отдельный пайплайн, не тот же самый, что для индивидуальных заданий из примера выше
Подробности - в «Сервисы платформы» и разделе для проектной части

Единый вход​

Все сервисы из таблицы используют один и тот же аккаунт - логин и пароль одни на всё, заходить в каждый сервис отдельно и повторно вводить пароль не нужно
Как устроен сам первый вход и смена пароля - в статье «Первый вход»

Примеры​

Типичный путь задания от постановки до балла:

Classroom (задание, рубрика)
↓
Работаешь в своей IDE, коммитишь
↓
git push → Gitea (репозиторий, Actions)
↓
Actions прогоняет автогрейдер → балл уходит в Classroom
↓
Смотришь балл и разбор ошибок - в Classroom
Смотришь качество кода (если курс это проверяет) - в SonarQube
Ведёшь задачи команды - в Planka

Проверь себя​

1. Нужен ли отдельный логин/пароль для каждого сервиса платформы?

Нет - один аккаунт (единый вход) работает во всех сервисах платформы

2. Где смотреть баллы за задания?

В Classroom (classroom.simple-env.site) - там же видна рубрика по каждому заданию

3. Что делает Homarr?

Это единая домашняя страница - плитки-ссылки на остальные сервисы платформы, чтобы не помнить адреса всех сервисов по отдельности

4. Нужно ли студенту самому заходить в n8n или Keycloak?

Нет - n8n работает в фоне (автоматизация уведомлений), а Keycloak - это то, что происходит "под капотом" при входе в любой другой сервис, отдельно заходить в него не нужно

5. Пайплайн для индивидуальных заданий и пайплайн для командного проекта - это одно и то же?

Нет - у индивидуальных заданий пайплайн проще (Gitea Actions прогоняет тесты и шлёт балл в Classroom), а у командного проекта - отдельный, с сборкой Docker-образа и деплоем в кластер

Итог / чек-лист​

  • Simple Env - общая инфраструктура для всех курсов, сервисы и вход одинаковы независимо от курса
  • Сервисы студента - Homarr (домашняя страница), Gitea (репозитории и автогрейдинг), Classroom (задания и баллы), Planka (kanban), SonarQube (качество кода)
  • Вход единый - один аккаунт на все сервисы (подробнее - «Первый вход»)
  • n8n, Nexus и Keycloak работают в фоне - отдельно заходить в них не нужно
  • У командного проекта (появится позже) - свой пайплайн деплоя, отдельный от автогрейдинга индивидуальных заданий

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

  • «Первый вход» - как получить логин/пароль и зайти в сервисы платформы в первый раз
  • «Git и Gitea» - токен вместо пароля для git, как устроен автогрейдинг на push
  • «Сервисы платформы» - подробный разбор каждого сервиса (Quality Gate в SonarQube, колонки в Planka, кеш Nexus и т.д.)