Naslov Tehnologije za kontinuiranu isporuku programske podrške
Naslov (engleski) Continuous Software Delivery Technologies
Autor Martin Pisačić
Mentor Mario Kušek (mentor)
Član povjerenstva Mario Kušek (predsjednik povjerenstva)
Član povjerenstva Jurica Babić (član povjerenstva)
Član povjerenstva Krešimir Pripužić (član povjerenstva)
Ustanova koja je dodijelila akademski / stručni stupanj Sveučilište u Zagrebu Fakultet elektrotehnike i računarstva Zagreb
Datum i država obrane 2019-07-09, Hrvatska
Znanstveno / umjetničko područje, polje i grana TEHNIČKE ZNANOSTI Računarstvo
Sažetak 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.
Sažetak (engleski) Modern software is complex and is usually consisted of a larger number of microservices, while the environment for execution consists of a larger number of
servers and complementary infrastructure (network configuration, load balancers, etc.). The paper presents the concept of continuous delivery that depicts
the idea and describes the logical steps from which the delivery pipeline consists, and which enables a more robust and simpler delivery process and encourages
a higher quality of developed software by detecting defects in development using the continuous integration process and various forms of testing. As support for software
consisted of microservices, technologies that allow the creation of separate environments for the execution of individual microservices in the form of containers and
container orchestration tools which are used for the management of containers and provide the overall environment for software execution are described.
Technologies for infrastructure provisioning (Terraform, Vagrant) as well as configuration management technologies (Chef, Puppet, Ansible) are described and compared.
The study example demonstrates the feasibility of continuous delivery using the symbIoTe Cloud framework composed of microservices in the form of Docker containers, while
Kubernetes was used as a container orchestration tool. Using Jenkins as a continuous integration server, the implementation of the delivery pipeline was created.
Terraform was used to automatically provision infrastructure, while the software execution environment in the form of the Kubernetes cluster was automatically created using the Ansible tool.
It is shown how code change in the relevant development branch starts the pipeline instance, executes all the steps, and deploys the microservice with new changes
in the preview environment while replacing the existing one.
Ključne riječi
kontinuirana isporuka programske podrške
kontejneri
orkestracija kontejnera
automatizirana uspostava infrastrukture
cjevovod kontinuirane isporuke
upravljanje konfiguracijom
Ansible
Chef
Puppet
Jenkins
Docker
Kubernetes
Ključne riječi (engleski)
Continuous Software Delivery
Containers
Container Orchestration
Automated Infrastructure Provisioning
Delivery Pipeline
Configuration Management
Ansible
Chef
Puppet
Jenkins
Docker
Kubernetes
Jezik hrvatski
URN:NBN urn:nbn:hr:168:483696
Studijski program Naziv: Računarstvo Vrsta studija: sveučilišni Stupanj studija: diplomski Akademski / stručni naziv: magistar/magistra inženjer/inženjerka računarstva (mag.ing.comp.)
Vrsta resursa Tekst
Način izrade datoteke Izvorno digitalna
Prava pristupa Zatvoreni pristup
Uvjeti korištenja
Javna napomena
Datum i vrijeme pohrane 2020-01-07 21:22:57