Динамични околини за развој - што е тоа
Локација: Дома »Од пракса» Динамични околини за развој - што е тоа?

Во многу наши проекти вообичаено е да работиме со неколку вработени на повеќе случувања истовремено. Затоа често се случува две или повеќе задачи да се развиваат паралелно, но тестирани или одобрени независно една од друга. 'Llе ви кажеме зошто решивме да користиме динамични околини за развој за да го решиме овој проблем:
Како работевме досега: Централни системи за прифаќање
Во основа, ние создаваме посебна гранка во Git за секоја задача, што значи дека паралелното тестирање и одобрување не претставува проблем. За многу проекти, сепак, имаме само еден централен систем за прифаќање. Само една гранка по друга, тогаш може да се игра на овој систем на прифаќање. Ако, на пример, прифаќањето на развојот се одложи поради отсуство на вработен или одговорно лице за контакт кај клиентот, сите понатамошни случувања засега се блокирани и целиот проект доаѓа до застој. Ова не само што доведува до одложувања на целокупниот проект, туку и до незадоволство кај нашите вработени.
За да можеме да играме неколку гранки истовремено во иднина, потребни беа неколку системи за прифаќање. За таа цел, веќе развивме концепт за динамични развојни средини на TYPO3Camp Rhein-Ruhr 2017.
Како функционираат опкружувањата за динамичен развој?
Врз основа на Docker и Kubernetes, првично поставивме сопствен кластер за контејнери Docker.
Gitlab CI ја презема контролата врз динамичните средини за развој. Секој пат кога ќе се турка гранка, работата во гасоводот Gitlab CI создава нова верзија на Docker-слика. Сликата за Докер е создадена специјално за гранката и ги вклучува сите артефакти и самиот проект.
Потоа, започнува или ажурира развојна околина со употреба на команда Slack или директно преку Gitlab CI. Ако ја избришеме гранката, гасоводот застанува во Gitlab CI. Пред да запре гасоводот, работата застанува и ја брише развојната средина.
Предности и недостатоци на опкружувањата за динамичен развој
Најголемата предност е јасно дека имаме сопствен систем на одобрување за секоја задача во еден проект. Ова значи дека тестирањето и прифаќањето паралелни задачи веќе не е проблем.Ова значи дека раководителите на проектите и развивачите не мора да поминуваат повеќе време играјќи и тестирајќи задача. Особено во проектите за клиенти во кои многу работи и под-проекти честопати работат во исто време, бевме во можност да го отстраниме притисокот од системот преку динамичните околини за развој и да отстраниме голем дел од претходно неопходните договори во рамките на тимовите на под-проектите. Општото незадоволство од „окупираните“ средини за прифаќање сега е минато.
Како неповолност, мора јасно да ја наведеме потребната инфраструктура. Колку повеќе системи за прифаќање работат на кластерот, толку повеќе хардвер ни треба. Кластерот мора да се финансира соодветно. Покрај тоа, потребен е одреден напор за конфигурирање и управување со кластерот и развојните средини што работат на него.