2011-02-03 1 views
19

Github è un servizio davvero straordinario. Sono curioso di capire com'è la loro architettura e come si adattano i diversi pezzi insieme; come memorizzano i repository, come accedono a questi repository per mostrare i contenuti dei file, come gestiscono la visualizzazione delle diff, ecc. Qualcuno potrebbe dare una panoramica delle tecnologie e delle tecniche che usano, quindi posso studiarli per espandere le mie conoscenze e a loro volta ?Come funziona il sito Web di github (architettura)?

+5

Perché non si chiede a questa domanda sul sito GitHub? È più probabile che gli sviluppatori di github rispondano correttamente alla tua domanda piuttosto che a persone casuali qui su SO ... –

risposta

8

Il nucleo di Github è il software open source git, che è un controllo di versione distribuito e un software di gestione del codice sorgente. Github aggiunge molte funzionalità alle funzionalità di git, tra cui il rilevamento dei problemi, wiki, controllo degli accessi, ecc.

Tuttavia, Github è un software proprietario e molti dei suoi interni rimangono sconosciuti al grande pubblico.

Al fine di scoprire come i pezzi sono in forma insieme, suggerisco seguendo i cavi di seguito:

  • Github's official Engineering Blog, che copre una vasta gamma di temi della progettazione della piattaforma.
    • in particolare this article, una panoramica completa scritta da Github CTO.
  • Projects that power Github, una lista ufficialmente curata di progetti open-source che alimentano Github. Qui ci sono alcuni punti salienti:
    • rotaie - web backend
    • Jekyll - blog del motore dietro Github Pagine
    • elasticsearch - motore di ricerca
    • hubot - una chat bot per compito di automazione
    • ace - editor di codice basato su browswer
    • d3 - js lib per grafici e diagrammi
    • resque - background works
  • GitLab, un'alternativa open-source a Github, che offre praticamente le stesse funzionalità.
    • Leggi il codice sorgente di GitLab e scoprirai come GitLab (e Github) funziona sotto il cofano.
    • GitLab Architecture Overview. Questo articolo è sicuramente un buon punto di partenza.

mi ha donato un diagramma di layout di sistema da Gitlab Panoramica dell'architettura. Scommetto che hai già capito come funziona gitlab da questo diagramma.

(Ci sono sicuramente molte differenze tra Github e GitLab, ma un progetto open-source è sempre meglio per qualcuno che vuole imparare, no?)

GitLab system layout diagram

0

Utilizzano Git che è un sistema di controllo di versione distribuito gratuito e open source progettato per gestire tutto, dai progetti piccoli a quelli molto grandi con velocità ed efficienza. vedi https://git-scm.com.