Репозиторий с описанием стандартов разработки и обучения кафедры ИУ5
-
Разработка ведется в закрытом контуре Университета. Для доступа к ресурсам необходимо использование OpenVpn. Инструкция
-
Код проекта хранится в репозитории bmstu.codes(в открытом доступе) в категории кафедральных сервисов
-
Вся документация по проекту должна вестись во внутренней Вики (за vpn, доступ по учетке Университета). К Вики старницам прикручен движок draw.io, так что диагарммы можно рисовать прямо там. Регистрация и вход в Вики по oauth:
-
Там же рамположены трекеры проектов
-
Для получения доступов к коду и сервисам: 7.1. Обратитесь к администраторам
5.1.1. Администратор даст вам права на репозитарий
5.1.2. Создаст проект в Вики
5.1.3. Даст вам роль на проекте
5.2. После получения доступа к Вики, вы можете заводить следующие задачи в созданном проекте:
5.2.1. Создание базы данных для проекта - лучше не держать отдельный сервер баз данных для каждого проекта, а хостить несколько проектов на одном
5.2.2. Разворачивание проекта в средах - завести задачку на админимстратора.
5.2.2.1. Разворачивание происходит последовательно на тестовом и на продакшн серверах
5.2.2.2. Если в процессе разворачивания возникнут ошибки, связанные с кодом, администратор вернет вам задачу с комментариями что надо поправить.
- Макет интерфейса в Figma для компонентов MUI. Инструкция по Figma. Шаблон с компонентами ИУ5/ГУИМЦ
- Даталогическая ER диаграмма для базы данных PostgreSQL
- Описание методов и полей веб-сервисов в процессе проектирования системы. Совместное обсуждение бекендом и фронтендом форм по макету Figma и составление списка методов
- Минимизация нагрузки на сервер. Сервер только для хранения данных, вычисления нужно переносить на клиент.
- По причине минимальной нагрузки на сервер требуется использовать
ONNX runtime
для моделей нейронных сетей. И деплой моделей на клиенте - При проектировании необходимо соблюдать правило:
1 репозиторий
-1 контейнер
-1 сервис
- Документирование проекта диаграммами UML. В первую очередь развертывание
- В документации к проекту требования по нагрузке и количеству пользователей
- Использование SSO и Redis для авторизации
- Unit тесты для ключевого функционала приложения, особенно для алгоритмов расчетов
- Документирование веб-сервисов после реализации в swagger.
- Для развертывания обязательно наличие проекта в gitlab bmstu.codes
- Для всех репозиториев должны быть указаны требуемые пакеты (см подробное описание к стеку)
- Для развертывания новых сервисов в инфрастуктуре кафедры обращаться к Каневу Антону
Фронтенд. Подробное описание
- React
- Менеджер состояний Redux
- Визуальные компоненты MUI
- Nginx
- Первый вариант. Django Rest Framework. Подробное описание
- DRF используется в сервисах с ML
- Второй вариант. Golang. Подробное описание
- Golang используется в нагруженных сервисах
Хранилище. Подробное описание
- Реляционная СУБД PostgreSQL
- Резидентная БД Redis для сессий, кеширования данных
- Объектное хранилище S3 Ceph
- Очередь Apache Kafka
Использование SSO Электронного Университета, пример Для бекенда Django есть встраиваемая библиотека
Инфраструктура и развертывание. Подробное описание
- ОС Ubuntu 20.04
- Мониторинг Prometheus + Grafana
- Пайплайны развертывания CI в GitLab bmstu.codes
- Контейнеры docker compose в настоящее время, Kubernetes в 2023
- Ansible
- Nginx
- Для деплоя необходимо соблюдать правило:
1 репозиторий
-1 контейнер
-1 сервис
- Ubuntu 20.04 + docker
- Python 3.9
- IDE PyCharm, WebStorm, Visual Studio Code (приоритет)
- Anaconda
- RStudio
- СУБД PostgreSQL