Tehnologije za kontinuiranu isporuku programske podrške : diplomski rad - Pisačić, Martin (M. Pisačić, 2019)
Sažetak na hrvatskom: Moderna programska podrška kompleksna je te se najčešće sastoji od većeg broja mikrousluga, dok se okruženje u kojem se programska podrška izvršava sastoji od većeg broja poslužitelja te popratne infrastrukture (mrežne konfiguracije, poslužitelja za balansiranje opterećenja i slično). U radu je prikazan koncept kontinuirane isporuke koji prikazuje ideju te su opisani logički koraci od kojih se sastoji cjevovod isporuke, a koji omogućava robusniji i jednostavniji proces uvođenja u primjenu te potiče veću kvalitetu razvijane programske podrške otkrivanjem nedostataka prilikom razvoja korištenjem procesa kontinuirane integracije te različitim oblicima testiranja. Kao oslonac programskoj podršci sastavljenoj od niza mikrousluga opisane su tehnologije koje omogućuju kreiranje zasebnih okruženja za izvršavanje pojedinih mikrousluga u obliku kontejnera te tehnologija za orkestraciju kontejnera koji upravljaju kontejnerima i pružaju cjelokupno okruženje programske podrške. Opisane su i uspoređene tehnologije za uspostavu infrastrukture (Terraform, Vagrant), kao i tehnologije za upravljanje konfiguracijom okruženja (Chef, Puppet, Ansible). Na studijskome primjeru prikazana je izvedivost koncepta kontinuirane isporuke koristeći programski okvir symbIoTe Cloud sastavljen od niza mikrousluga u obliku Docker kontejnera, dok se kao tehnologija za orkestraciju kontejnera koristio Kubernetes. Korištenjem Jenkins poslužitelja kontinuirane integracije kreirana je implementacija cjevovoda. Alat Terraform iskorišten je za automatsku uspostavu infrastrukture, dok se okruženje programske podrške u obliku Kubernetes klastera automatski kreiralo koristeći alat Ansible. Prikazano je kako izmjena programskog koda u odgovarajućoj grani razvoja pokreće instancu cjevovoda, izvršava sve korake te uvodi mikrouslugu s novim promjenama u pretpremijerno okruženje pritom zamjenjujući postojeću.