Automatizovaný deploy (CI/CD)

Efektivní technologie pro usnadnění vývoje aplikací, jejich automatizované testování i nasazení v praxi

Pro usnadnění vývoje a nasazení aplikací nabízíme systém pro automatizaci aplikačních testů a deploy. Systém je navázaný na gitlab/bitbucket CI/CD a vyžaduje samostatný runner server. Umožňuje automatizovat deploy jak vývojových, tak produkčních verzí aplikací. Využívá nastavení práv pro přístup k repozitářům a merge do jednotlivých větví dle gitlab/bitbucket. Navazuje na skripty následně v rámci pipelines běžicí na runnerech, případně v rámci runnerů provádí další testy (unit testing, performance testing). Vychází z konfigurace buildu jenž je uložena v repository a výstrupem systému je pro každý commit/merge

  • na url viditelná konkrétní verze aplikace či její aktualizace pro otestování produkt manažerem/klientem
  • docker container pro vývojáře dostupný přes lokální docker repository
  • deploy aplikace na produkční(testovací čí vývojové) servery
Automatizovaný deploy (CI/CD) ZCOM

Nastavení pro automatický deploy je individuální a jeho konfiguraci provádíme vždy dle konkrétního workflow klienta.

Příklad z praxe

Máme repository ztest a používáme master, stage a dev jako tři testovací prostředí. Vývojář vytvoří novou větev dev_featureX, provede úvodní commit, po commitu proběhne v rámci pipeline pro repozitory build (dle yml konfigurace v repository)- build app, komponent, příprava db. Následně proběhnou požadované testy (unit tests, perfomance check). Pokud dojde k chybě je vygenerován report a notifikován autor commitu, pokud vše proběhne bez chyb, proběhne

  • vytvoření docker img s aplikací export img do docker repository (pro lokální vývoj vývojářů)
  • povolení merge z větve do větve nadřazené (tj z dev_featureX do dev, ze stage do master apod.)
  • vytvoření instance aplikace na infrastruktuře a její export na url (dostupnou z VPN, pod heslem, či veřejně) – v tomto případě kupříkladu na doménu dev_featureX.ztest.zdev.zcom.cz. Infrastruktura může mít podobu klasického vhost na webserveru, docker containeru či exportu do cloudu. Pokud nejde o první commit ale aktualizaci tak se provede místo vytvoření instance její aktualizace.