Title KONTINUIRANA INTEGRACIJA I ISPORUKA APLIKACIJA
Title (english) CONTINUOUS INTEGRATION AND APPLICATION DELIVERY
Author Nedo Knezović
Mentor Valentini Kožica (mentor)
Committee member Igor Nazor (član povjerenstva)
Committee member Haidi Božiković (član povjerenstva)
Granter University of Split (University Department of Professional Studies) (Department of Computing) Split
Defense date and country 2021-07-09, Croatia
Scientific / art field, discipline and subdiscipline TECHNICAL SCIENCES Computing
Abstract U ovom završnom radu opisuje se koncept kontejnerizacije s naglaskom na njegovu primjenu u pakiranju aplikacijskih rješenja u obliku Docker slika (eng. image). Dodatno će bit proučene Docker unutar Dockera (eng. Docker-in-Docker, DIND) funkcionalnosti koje pruža sam Docker. Uz funkcionalnosti Dockera, također će se proučavati platforma Kubernetes koja predstavlja orkestralno upravljanje kontejnerima, njegova arhitektura te osnove funkcionalnosti pri upravljanju aplikacijskih rješenja u mikroservis arhitekturi. Kao centraln sustav koji će ujediniti funkcionalnosti do sada spomenutih arhitektura, je Gitlab. Detaljno će se opisati Gitlab platforma te sve njene komponente (git server, gitlab pokretač, Docker registry, te DIND prethodno spomenut) i cjelokupna arhitektura s naglaskom na primjenu same platforme za implementaciju CI/CD (eng. Continuous Integration, Continuous Delivery) cjevovoda (eng. pipeline). Ovaj završni rad će prezentirati podizanje Gitlab platforme odnosno njegove komponente u Docker kontejnerima te podesiti CI/CD cjevovod za specifičan git repozitorij. Za git projekt iskoristiti postojeći projekt otvorenog kôda (eng. open source) temeljen na mikroservis arhitekturi (minimalno 3 mikroservisa), te napravit kontejnerizaciju njihovih komponenti. Na odvojenoj infrastrukturi će biti podignut Kubernetes klaster i spojen s Gitlab platformom. Također će biti potrebno podesiti git repozitorij da korist CI/CD cjevovod integriran unutar Gitlab aplikacije, odnosno da stvara (eng. build) sam kôd unutar Docker kontejnera, kreira Docker sliku, te ga gura (eng, push) u registar, pokreće kontejner i radi testove, te na kraju razvija (eng. deploy) sve mikroservise na postojeću Kubernetes platformu. Rezultat ovog završnog rada je opisan cjelokupni CI/CD cjevovod te demonstracija s jednim uspješnim te jednim neuspješnim razvojnim okruženjem (eng deployment). Zaključak će se referencirati na dosadašnji proces bez CI/CD cjevovoda, te istaknuti njihove razlike i prednosti CI/CD-a.
Abstract (english) This thesis describes the concept of containerization with an emphasis on application solutions management in form of Docker images. The Docker-in-Docker functionality provided by Docker will be further studied. In addition to the Docker functionality Kubernetes platform will also be explained. It represents the orchestral management of containers, architecture and basic functionalities in microservice environments. Gitlab is central system that will unify functionalities mentioned so far. Platform provided by Gitlab followed with all accessories (git server, gitlab runner, Docker registry and Docker-inDocker), will be described in detail here with emphasis on the CI/CD pipeline implementation This final paper will present installation of the Gitlab platform and all its components in Docker containers. Also, it will set the CI/CD pipeline for specific git repository. As for gi project, open source based on the containerized microservice architecture will be used. On split infrastructure Kubernetes cluster will be deployed and connected to Gitlab platform. Gi repository will be set to use CI/CD pipeline integrated into Gitlab application which will have a task of building code inside of a Docker container, afterwards it will be followed by creating Docker images, and finally, pushing it into the registry. Image from the registry will be used for creation of the containers which will be tested later on. If tests pass with success production deployment is being executed onto the existing Kubernetes platform. The result of this paper is an explanation of the whole CI/CD process with one successful and one failed pipeline demonstration using open source example code. In conclusion, CI/CD pipeline will be compared with legacy methods used before. At the very end, pipeline advantages will be highlighted.
Keywords
Docker
platforma
cjevovod
Keywords (english)
Docker
platform
pipeline
Language croatian
URN:NBN urn:nbn:hr:228:645480
Study programme Title: Information Technology – specialist graduate - professional Study programme type: professional Study level: specialist graduate Academic / professional title: STRUČNI/A SPECIJALIST/SPECIJALISTICA INŽENJER/INŽENJERKA INFORMACIJSKIH TEHNOLOGIJA (STRUČNI/A SPECIJALIST/SPECIJALISTICA INŽENJER/INŽENJERKA INFORMACIJSKIH TEHNOLOGIJA)
Type of resource Text
File origin Born digital
Access conditions Access restricted to students and staff of home institution
Terms of use
Created on 2021-07-12 11:29:54