Il sito è principalmente utilizzato dagli sviluppatori, che caricano il codice sorgente dei loro programmi e lo rendono scaricabile dagli utenti. Questi ultimi possono interagire con lo sviluppatore tramite un sistema di issue tracking, pull request e commenti che permette di migliorare il codice del repository risolvendo bug o aggiungendo funzionalità. Inoltre Github elabora dettagliate pagine che riassumono come gli sviluppatori lavorano sulle varie versioni dei repository.
GitHub fornisce anche altri servizi come Gist, strumenti per creare repository individuali e per le pagine web che possono essere modificate tramite un repository di Git, un servizio di hosting ed una piattaforma di statistiche sui siti web.
E’ un software per il controllo di versione distribuito tramite Git.
E’ possibile, attraverso un abbonamento (Team, Enterprise, One), usufruire di ulteriori servizi offerti dalla piattaforma stessa.
Quando avviene un evento di fallimento, il componente deve notificare il guasto al gestore della rete usando protocolli tipo SMNP.
- outage elettricita a livello di paese,
- componenti hardware si rompono,
- attacchi esterni verso il sistema di gestione delle reti (es. DOS),
- Malfunzionamento o rottura di un servizio esterno a GitHub.
- hardware monitoring -> hardware failure detection -> operator notification
- fornire più servizi con funzionalità simili.
- disponibilita servizio 24/7
Limitazione spazio dedicato e limitato numero di operazioni che si possono effettuare sul progetto software.
- un utente o un gruppo di utenti può abusare delle risorse messe a disposizione e condivise
- gli utenti possono fare un uso inefficiente delle risorse del sistema
Nel caso di Github la maggior parte degli utenti sono esterni.
- Rate Limiting per gli utenti (nel caso di utilizzo delle API).
- limitazione nelòlo spazio di storage.
E un processo per mantenere la consistenza della performance del servizio. Il sistema deve aiutare l'operatore della rete affinche possa scegliere il software piu appropriato per gestire la rete.
- non riesco a determinare il componente da cambiare nel caso in cui i requisiti del sistema cambino
- outages nel caso in cui viene modificato erroneamente un componente di sistema
- startup/shutdown schede di rete
- assegnazione ip alle macchine
Monitorare le componenti affinche si abbia la massima efficienza in termini di prestazioni dei componenti stessi.
- costi elevati in quanto viene effettuato un uso eccessivo delle risorse (poca efficienza nell'utilizzo delle componenti)
- Elevata latenza nei tempi di download / upload del codice sorgente.
- monitorare componenti affinche non vi siano colli di bottiglia o sprechi di risorse
Meccanismi di protezione e controllo degli accessi (generazione chiavi crittografiche, password). Possiamo considerare la parte inerente agli accessi dell'organizzazione che eroga il servizio. Tutti i membri del team di sviluppo dovrebbero avere dei dati di accesso affinche possano accedere alla rete (organizzazione) interna al servizio.
- accessi non autorizzati (al manager e/o agli agents)
- log di tutti gli accessi effettuati alla rete
- segnalazione accessi fraudolenti
Authors | Andrea Audenino ([email protected]) |
Alberto Guastalla ([email protected]) |
Daniele Serafini ([email protected]) |
Giacomo Costarelli ([email protected]) |
---|---|---|---|---|
Github URLs | https://github.com/Gilgames000 | https://github.com/AlbertoGuastalla | https://github.com/DanSeraf | https://github.com/giacomocostarelli |