Github - действительно потрясающий сервис. Я очень хочу понять, какова их архитектура и как они сочетаются друг с другом; как они хранят репозитории, как они обращаются к этим репозиториям, чтобы показать содержимое файла, как они обрабатывают отображение различий и т.д. Может ли кто-нибудь дать обзор технологий и методов, которые они используют, поэтому я могу изучить их, чтобы расширить свои знания и, в свою очередь, навыки
Как работает сайт github (архитектура)?
Ответ 1
Ядром Github является программное обеспечение с открытым исходным кодом git
, которое является распределенным управлением версиями и программным обеспечением для управления исходным кодом. Github добавляет множество функций в функциональность git
, включая отслеживание проблем, вики, контроль доступа и т.д.
Однако Github - это проприетарное программное обеспечение, и многие из его внутренних компонентов остаются неизвестными широкой общественности.
Чтобы узнать, как штуки подходят друг к другу, я предлагаю следующие ссылки ниже:
- Официальный технический блог Github, который охватывает широкий круг тем, посвященных дизайну платформы.
- особенно в этой статье, обширный обзор, написанный техническим директором Github.
- Проекты, которые поддерживают Github, официально кураторский список проектов с открытым исходным кодом, которые управляют Github. Вот несколько основных моментов:
- рельсы - веб-сервер
- jekyll - движок блога за страницами Github
- elasticsearch - поисковая система
- hubot - бот-чат для автоматизации задач
- ace - редактор кода на основе browswer
- d3 - js lib для графиков и диаграмм
- resque - фоновые работы
- GitLab, альтернатива GITUB с открытым исходным кодом, которая предлагает практически те же функциональные возможности.
- Прочитайте исходный код GitLab, и вы узнаете, как работает GitLab (и Github) под капотом.
- Обзор архитектуры GitLab. Эта статья, безусловно, хорошая точка входа.
Я украл схему компоновки системы из Обзор архитектуры Gitlab. Ставка на то, что вы уже знаете, как работает gitlab с этой диаграммы.
(Конечно, есть большая разница между Github и GitLab. Но проект с открытым исходным кодом всегда лучше для тех, кто хочет учиться, не так ли?)
Ответ 2
Они используют Git
, которая представляет собой систему управления распределенной версией с открытым исходным кодом и открытым исходным кодом, предназначенную для обработки всего от небольших до очень крупных проектов со скоростью и эффективностью. см. https://git-scm.com.