Разделите Git-операции, метаданные продукта и фоновые задачи. Для 50 000 пользователей сначала уточните активность, размер репозиториев и требования к доступности.
Спроектируй систему, аналогичную GitHub/GitLab (хранение кода, push/pull, 50 000 активных пользователей).
Разделите Git-операции, метаданные продукта и фоновые задачи. Для 50 000 пользователей сначала уточните активность, размер репозиториев и требования к доступности.
Короткий ответ
Что ответить на собеседовании
Подробный разбор
Ответ с пояснениями
Разделите Git-операции, метаданные продукта и фоновые задачи. Для 50 000 пользователей сначала уточните активность, размер репозиториев и требования к доступности.
SSH/HTTPS-шлюзы аутентифицируют push/pull и направляют их к хранилищу репозитория. Git-объекты и refs хранятся отдельно от SQL-метаданных пользователей, прав, issues и merge requests; бинарные файлы можно вынести в LFS/object storage. Конкурентное обновление refs требует проверки ожидаемой версии. Репликация, резервные копии и восстановление защищают данные, очереди обслуживают hooks и индексацию. CI-исполнители изолируют от хранилища и секретов. Не рассчитывайте RPS только из числа пользователей.