Riepilogo delle best practice - Praticare l'integrazione e la consegna continue in AWS

Riepilogo delle best practice

Di seguito sono riportate alcune best practice sulle cose da fare e da non fare per CI/CD.

Cose da fare:

  • Trattare l'infrastruttura come codice

    • Usare il controllo delle versioni per il codice dell'infrastruttura.

    • Utilizzare sistemi di tracciatura/creazione dei ticket sui bug.

    • Chiedere ai colleghi di rivedere le modifiche prima di applicarle.

    • Stabilire i pattern/progetti del codice dell'infrastruttura.

    • Testare le modifiche all'infrastruttura come le modifiche al codice.

  • Creare team integrati di sviluppatori composti da non più di 12 membri autonomi.

  • Chiedere a tutti gli sviluppatori di eseguire frequentemente il commit del codice nel trunk principale, senza feature branch di lunga durata.

  • Adottare in modo coerente un sistema di compilazione come Maven o Gradle in tutta l'organizzazione e standardizzare le build.

  • Chiedere agli sviluppatori di creare unit test per una copertura del 100% della base di codice.

  • Assicurarsi che gli unit test rappresentino il 70% dei test complessivi in termini di durata, numero e ambito.

  • Assicurarsi che gli unit test siano aggiornati e non trascurati. Gli errori che emergono dagli unit test devono essere corretti e non aggirati.

  • Considerare la configurazione della consegna continua come codice.

  • Stabilire controlli di sicurezza basati sui ruoli (ovvero chi può fare cosa e quando).

    • Monitorare/tracciare ogni risorsa possibile.

    • Creare avvisi su servizi, disponibilità e tempi di risposta.

    • Acquisire, imparare e migliorare.

    • Condividere l'accesso con tutti i membri del team.

    • Pianificare i parametri e il monitoraggio nel ciclo di vita.

  • Tenere traccia dei parametri standard.

    • Numero di build.

    • Numero di implementazioni.

    • Tempo medio necessario affinché le modifiche raggiungano l'ambiente di produzione.

    • Tempo medio dalla prima fase della pipeline a ciascuna fase.

    • Numero di modifiche che raggiungono l'ambiente di produzione.

    • Tempo medio di compilazione.

  • Utilizzare pipeline differenti per ciascun branch e team.

Cose da non fare:

  • Avere branch di lunga durata con merge grandi e complicati.

  • Fare test manuali.

  • Implementare processi di approvazione, gate, revisioni del codice e revisioni della sicurezza manuali.