Introduzione
Le strategie di diramazione Git efficaci sono fondamentali per il successo della distribuzione del software su larga scala. Questo modulo fornisce indicazioni complete sulla progettazione e sull'implementazione di flussi di lavoro di diramazione che supportano il recapito continuo, la collaborazione in team e la garanzia di qualità. Si apprenderà come selezionare e implementare il modello di diramazione corretto per le esigenze dell'organizzazione, sia che si stia lavorando con piccoli team agile o organizzazioni di sviluppo aziendali di grandi dimensioni.
Perché la strategia di diramazione è importante
I team di sviluppo software moderni richiedono strategie di diramazione che bilanciano diversi problemi critici:
- Velocità di sviluppo: consente ai team di lavorare in modo indipendente senza bloccarsi tra loro.
- Controllo qualità: mantenere la qualità del codice tramite processi sistematici di revisione e test.
- Gestione delle versioni: supporta versioni software prevedibili e affidabili.
- Mitigazione dei rischi: isolare il lavoro sperimentale e fornire funzionalità di rollback.
- Requisiti di conformità: soddisfare gli standard normativi e di controllo per la gestione delle modifiche.
Framework per la strategia di branching aziendale
Considerazioni strategiche per la selezione del modello di diramazione:
| Fattore | Impatto sulla strategia | Domande chiave |
|---|---|---|
| Dimensioni del team | Complessità del coordinamento e frequenza di unione | Quanti sviluppatori lavorano contemporaneamente? |
| Frequenza di rilascio | Ciclo di vita del ramo e intervallo di integrazione | Viene effettuato il rilascio in produzione con quale frequenza? |
| Requisiti di qualità | Esaminare i processi e testare l'integrazione | Quali livelli dei gate di qualità sono necessari? |
| Esigenze di conformità | Tracciabilità degli audit e flussi di lavoro per l'approvazione | Quali requisiti normativi si applicano? |
I team di sviluppo di Microsoft dimostrano questi principi su larga scala, usando GitHub Flow per i servizi che richiedono una distribuzione rapida e approcci più strutturati per i prodotti aziendali che richiedono cicli di test estesi.
Obiettivi di apprendimento completi
Dopo aver completato questo modulo, avrai padroneggiato le strategie di diramazione essenziali e sarai in grado di:
Progettazione di diramazione strategica:
- Valutare e selezionare i flussi di lavoro di diramazione Git appropriati in base alle dimensioni del team, alla frequenza di rilascio e ai requisiti di qualità.
- Progettare strategie di diramazione che supportano la consegna continua mantenendo gli standard di conformità e qualità del codice.
- Implementare i criteri di diramazione e i framework di governance su scala aziendale.
Competenze pratiche di implementazione:
- Implementare flussi di lavoro dei rami di funzionalità con isolamento corretto, processi di revisione e strategie di integrazione.
- Configurare e gestire GitHub Flow per i team che richiedono una distribuzione rapida e continua.
- Eseguire flussi di lavoro di fork per progetti open source e collaborazione con team distribuiti.
- Stabilire la protezione dei rami e unire restrizioni che applicano gate di qualità e requisiti di revisione.
Competenze della piattaforma:
- Sfruttare le funzionalità avanzate di diramazione di Azure Repos per gli ambienti di sviluppo aziendali.
- Integrare le strategie di diramazione con le pipeline di CI/CD e i framework automatizzati di test.
- Monitorare e ottimizzare i flussi di lavoro di diramazione per la produttività e la velocità di distribuzione dei team.
Autovalutazione: valutare l'idoneità per la diramazione
Nozioni fondamentali su Git
- [ ] Conosci i concetti di base di Git, come commit, branch e merge?
- [ ] Si ha familiarità con i concetti relativi al controllo della versione distribuita?
- Conosci come risolvere i conflitti di merge?
Esperienza di sviluppo per i team
- [ ] Hai lavorato in team che utilizzano repository condivisi?
- [ ] Capisci i processi di revisione del codice e i pull request?
- [ ] Si ha familiarità con i concetti di integrazione continua?
Contesto organizzativo
- [ ] Il team ha specifiche pianificazioni di rilascio o requisiti di conformità?
- [ ] Si lavora con i team distribuiti tra fusi orari?
- [ ] È necessario coordinare più team o collaboratori esterni?
Prerequisiti e preparazione
Conoscenza essenziale:
- Concetti fondamentali di DevOps: comprensione dei principi DevOps, dell'integrazione continua e dei concetti di consegna.
- Nozioni di base sul controllo della versione: familiarità con i principi di controllo della versione (revisione utile ma completa fornita).
- Esperienza di sviluppo software: background in ambienti di sviluppo software basati su team.
Esperienza consigliata:
- Riga di comando Git: familiarità di base con i comandi e i concetti di Git.
- Flussi di lavoro delle richieste pull: esperienza con i processi di revisione del codice.
- Consapevolezza CI/CD: Comprensione dei processi automatizzati di costruzione e distribuzione.
Configurazione richiesta:
- Installazione git: assicurarsi che Git sia installato e configurato nell'ambiente di sviluppo.
- Account GitHub: accesso a GitHub per esercizi pratici con flussi di lavoro moderni di diramazione.
- Accesso ad Azure DevOps: accesso all'organizzazione per gli esercizi di Azure Repos (può essere generato durante il modulo).