La nuova versione di Magento è, rispetto alla precedente, ancor più orientata all’utilizzo di sistemi di automazione già da tempo affermati nell’industria informatica (continuous integration e continuous delivery).
Questo intervento si propone di esplorare alcuni di questi aspetti partendo dalla nuova gestione dei comandi shell proposta dal framework. Con Magento 2 e gli attuali sistemi cloud si può quasi delineare una nuova figura accanto al Backend Developer, il “Devops” developer. Ovvero chi, facendo leva sugli strumenti ora nativi, si occupa di tutti quei processi che “dietro le quinte” garantiscono l’affidabilità del sistema, la ripetibilità e l’automazione dei processi e, in definitiva, la qualità del prodotto.
2. CONTINUOUS INTEGRATION & DEVELOPMENT IN MAGENTO 2
CHE COSA SIGNIFICA E A COSA SERVE?
ü Sviluppo costante
ü Gestione dei conflitti
ü Gestione del versioning
ü Gestione dei team di sviluppo
ü Test unit
ü Reportistica
3. CONTINUOUS INTEGRATION & DEVELOPMENT IN MAGENTO 2
CHE COSA SIGNIFICA E A COSA SERVE?
ü Sempre più progetti Magento vengono sviluppati sotto forma di rolling
release.
ü I progetti richiedono team di lavoro composti da molti professionisti,
spesso distribuiti su diverse sedi.
ü Sono necessari strumenti di mission control per i Project Manager.
ü E’ presente un alto rischio di bug di regressione.
ü C’è necessità di evitare conflitti di versione con più task concorrenti.
4. CONTINUOUS INTEGRATION & DEVELOPMENT IN MAGENTO 2
SCENARIO TIPO
Il cliente chiede di lavorare una funzione con pianificazione a lungo
termine, ma chiedeanche la flessibilità di intervento per piccoli task.
Chiede inoltre di essere sempre aggiornato sullo stato di
avanzamento del progetto.
Il team di sviluppo deve essere in grado di intervenire nei piccolitask
senza andare in conflitto con i processi a lungo termine.
5. CONTINUOUS INTEGRATION & DEVELOPMENT IN MAGENTO 2
STRUMENTI NECESSARI
ü Strumenti di coordinamento del team
ü Strumenti di versioning
ü Procedure di automazione di deploy
ü Strumenti di reportistica
ü Test unit
ü Alert automatici
ü Strumenti diagnostici
6. CONTINUOUS INTEGRATION & DEVELOPMENT IN MAGENTO 2
TECNOLOGIE (OVVERO: I MAGNIFICI 5)
ü GIT | Versioning
ü GITLab | Strumenti CI/CD + Report PM
ü Ansible | Deploy
ü Vagrant | Sviluppo locale
ü Test Unit Magento 2 | Verifica funzionamento
7. CONTINUOUS INTEGRATION & DEVELOPMENT IN MAGENTO 2
BEST PRACTICES GIT
ü 3 branch principali
ü DEV | versione sviluppo su base comune
ü QA | Quality Assesment
ü Master | copia di produzione
8. CONTINUOUS INTEGRATION & DEVELOPMENT IN MAGENTO 2
BEST PRACTICES GIT
ü Gestione dei task
ü Branch separati per ogni unità logica
ü Branch sempre derivati da master
ü Passaggio forzato in QA prima del rilascio in master.
9. CONTINUOUS INTEGRATION & DEVELOPMENT IN MAGENTO 2
BEST PRACTICES DEPLOY
ü Pubblicazione in QA o master
ü Creare merge con commit
ü Merge request su GITLab
ü Code review se prevista
ü Deploy
10. CONTINUOUS INTEGRATION & DEVELOPMENT IN MAGENTO 2
BEST PRACTICES DEPLOY
ü Verifica del deploy
ü Collegare test unit alla procedura di deploy
ü Utilizzo delle funzioni CI di GITLab: web-hook, .gitlab-ci.yml
11. CONTINUOUS INTEGRATION & DEVELOPMENT IN MAGENTO 2
INTEGRITA’ DEL CODICE
ü Codice sotto versioning
ü Possibilità di verifica
ESEMPI
ü SUPEE-5344
ü Code injection
12. CONTINUOUS INTEGRATION & DEVELOPMENT IN MAGENTO 2
MISSION CONTROL
Con GITLab, il project manager e il lead developer potranno
rapidamente:
ü Verificare eventuali conflitti
ü Verificare bug di regressione
ü Avere un report delle modifiche
13.
14. CONTINUOUS INTEGRATION & DEVELOPMENT IN MAGENTO 2
BUG DIAGNOSE
Funzioni di GIT bisect collegate
alle test unit per verificare il
momento esatto dell'introduzione
di un bug.
Modello di funzionamento OK/KO
molto semplice.