Ogni modifica è una pull request revisionata che supera controlli automatici prima di un deploy automatico e reversibile.
01Ciclo di sviluppo
- Progettazione: le modifiche che toccano autenticazione, autorizzazione o dati personali sono progettate secondo i controlli OWASP Top 10.
- Realizzazione: tutto il codice sorgente sta in repository GitHub privati. Ogni modifica nasce su un branch e viene unita tramite una pull request.
- Verifica: controlli dei tipi, test Go e controlli di build girano su ogni modifica. I controlli stessi vengono testati iniettando un errore noto e verificando che lo intercettino.
- Rilascio: i deploy in produzione partono da una pipeline automatica su macchine di build effimere, usando solo il commit unito.
- Osservazione: ogni rilascio viene verificato in produzione dopo il deploy, con l’identificativo di rilascio visibile nelle intestazioni di risposta.
02Controllo delle modifiche
- Le modifiche all’infrastruttura (server, reti, permessi, allarmi) sono codice Terraform e Ansible e seguono lo stesso flusso di pull request, con un controllo dedicato all’infrastruttura.
- Due deploy dello stesso servizio non girano mai contemporaneamente.
- Ogni rilascio è versionato; la versione precedente resta sul server, così tornare indietro è un cambio di versione e non una ricostruzione.
03Ambienti e dati
Lo sviluppo usa account e programmi di prova. I dati di produzione non vengono copiati sui computer degli sviluppatori, e l’accesso ai dati di produzione per il supporto è limitato a quanto serve al compito di supporto.
04Contatti
Domande su questa policy, questionari di sicurezza e richieste dell’accordo sul trattamento dei dati: privacy@mentornity.com.