Medii de dezvoltare dinamice - ce este asta

Locație: Acasă »Din practică» Medii de dezvoltare dinamice - ce este asta?

dezvoltare

În multe dintre proiectele noastre este obișnuit să lucrăm cu mai mulți angajați la mai multe evoluții în același timp. De aceea se întâmplă adesea ca două sau mai multe sarcini să fie dezvoltate în paralel, dar să fie testate sau aprobate independent unul de celălalt. Vă vom spune de ce am decis să folosim medii de dezvoltare dinamică pentru a rezolva această problemă:

Cum am lucrat până acum: sisteme centrale de acceptare

Practic, creăm o ramură separată în Git pentru fiecare sarcină, ceea ce înseamnă că testarea și aprobarea paralelă nu reprezintă o problemă. Cu toate acestea, pentru multe proiecte avem un singur sistem central de acceptare. Doar o ramură după cealaltă poate fi apoi jucată pe acest sistem de acceptare. Dacă, de exemplu, acceptarea unei dezvoltări este întârziată din cauza absenței unui angajat sau a persoanei de contact responsabile la client, toate evoluțiile ulterioare sunt blocate pentru moment și întregul proiect se oprește. Acest lucru duce nu numai la întârzieri în proiectul general, ci și la nemulțumirea angajaților noștri.

Pentru a putea juca mai multe ramuri în același timp în viitor, au fost necesare mai multe sisteme de acceptare. În acest scop, am dezvoltat deja un concept pentru medii de dezvoltare dinamică la TYPO3Camp Rhein-Ruhr 2017.

Cum funcționează mediile de dezvoltare dinamică?

Pe baza Docker și Kubernetes, am creat inițial propriul nostru cluster pentru containere Docker.

Gitlab CI preia controlul mediilor dinamice de dezvoltare. De fiecare dată când o ramură este împinsă, o lucrare în conducta Gitlab CI creează o nouă versiune a unei imagini Docker. Imaginea pentru Docker este creată special pentru ramură și include toate artefactele și proiectul în sine.

Un mediu de dezvoltare este apoi pornit sau actualizat utilizând o comandă Slack sau direct prin Gitlab CI. Dacă ștergem ramificația, conducta se oprește în Gitlab CI. Înainte ca conducta să se oprească, o lucrare se oprește și șterge mediul de dezvoltare.

Avantajele și dezavantajele mediilor de dezvoltare dinamice

Cel mai mare avantaj este clar că avem propriul nostru sistem de aprobare pentru fiecare sarcină dintr-un proiect. Aceasta înseamnă că testarea și acceptarea sarcinilor paralele nu mai este o problemă. Aceasta înseamnă că managerii de proiect și dezvoltatorii nu trebuie să petreacă mai mult timp jucând și testând o sarcină. În special în proiectele clienților în care multe dezvoltări și sub-proiecte rulează deseori în același timp, am reușit să eliminăm presiunea din sistem prin mediile dinamice de dezvoltare și să eliminăm o mare parte din acordurile necesare anterior în cadrul echipelor de sub-proiect. Nemulțumirea generală față de mediile de acceptare „ocupate” este acum un lucru din trecut.

Ca dezavantaj, trebuie să precizăm clar infrastructura necesară. Cu cât mai multe sisteme de acceptare rulează pe cluster, cu atât avem nevoie de mai mult hardware. Clusterul trebuie finanțat în consecință. În plus, este necesar un anumit efort pentru a configura și gestiona clusterul și mediile de dezvoltare care rulează pe acesta.