\documentclass{article}

\usepackage[utf8]{inputenc}
\usepackage{helvet}
\usepackage[T1]{fontenc}
\usepackage[ngerman]{babel}
\usepackage{multicol}[]
\usepackage{blindtext}
\usepackage{float}

\usepackage{fancyhdr}
\usepackage{geometry}
\usepackage{abstract}
\usepackage{graphicx}
\usepackage{acronym}
\usepackage{hyperref}

\usepackage{biblatex}

\graphicspath{ {./bilder/} }

\geometry{
	a4paper,margin=25mm
}

\title{\huge{Dev Ops mit Microservices - Gitlab}}
\date{\today}
\author{
	\begin{tabular}{ccc}
		\textbf{Roman Schöne} & \textbf{Christopher Schmitt}\\
		2211275 & ???????\\
		roman.schoene@stud.th-mannheim.de & christopher.schmitt@stud.th-mannheim.de
	\end{tabular}\\\\
	Technische Hochschule Mannheim
}
\addbibresource{literatur/dms.bib}

\renewcommand\familydefault{\sfdefault} % Helvetica 

\begin{document}
	\pagestyle{fancy}
	%... then configure it.
	\fancyhead{} % clear all header fields
	\fancyhead[L]{Gitlab}
	\fancyhead[R]{DMS - DevOps mit Micro Services}
	\fancyfoot{} % clear all footer fields
	\fancyfoot[LE,RO]{\thepage}
	
	\maketitle
	
	\begin{abstract}
		\blindtext
	\end{abstract}
	
	
	
	
	\begin{multicols}{2}
		\tableofcontents
		
		\section{Einleitung}
		\subsection{Softwarelösung}
		Gitlab ist eine mit Git kompatible Plattform für Code-Hosting. Der Code von Gitlab ist in Ruby verfasst \cite{degeler_gitlab_2014}. Unter der Haube verwendet Git die relationale Datenbank PostgreSQL. Auf Gitlab kann mithilfe einer Weboberfläche zugegriffen werden \cite{gitlab_about}:
		Gitlab kann in folgenden unterschiedlichen Formen genutzt werden:
		\begin{itemize}
			\item \textbf{\ac{SaaS}} Die Plattform wird innerhalb der Cloud von Gitlab gehostet.
			\item \textbf{Selbst gehostet} Gitlab kann auf linux-basierten Servern selbst betrieben werden.
			\item \textbf{Dediziertes \ac{SaaS}} Für Unternehmen und Regierungen kann Gitlab in eigenen isolierten Instanzen verwendet werden, um hohe Sicherheitsstandards zu gewährleisten.
		\end{itemize}	
		
		
		
		\subsection{Geschichte}
		
		Gitlab wurde von Sytse Sijbrandij und von Dmitriy Zaporozhets gegründet. Zaporozhets entwickelte Gitlab 2011 als Hilfsmittel für seine eigenen Projekte. Gitlab war zu dem Zeitpunkt eine private und freie Plattform zum eigenen Code-Hosting, entwickelt von Zaporozhets. Nachdem Zaporozhets sich entschied den Quellcode von Gitlab frei zugänglich zu machen, entstand die Partnerschaft mit Sijbrandij. Um den Einstieg in die Nutzung von Gitlab zu erleichtern entschieden sich Sijbrandij GitLab als \ac{SaaS} unter der Domain \url{https://gitlab.com/} anzubieten. Der Quellcode von Gitlab ist frei unter \url{https://gitlab.com/gitlab-org/gitlab} verfügbar \cite{degeler_gitlab_2014}. 2014 wurde Gitlab erstmalig als Unternehmen eingetragen und erfuhr seitdem einen grossen Zuwachs an Mitarbeitern. Aktuell zählt Gitlab mehr als 2600 Mitarbeiter, die über 65 Länder verteilt leben \cite{gitlab_about}. Gitlab selbst besitzt keinen ausgebauten Firmenhauptsitz, da Mitarbeiter hauptsächlich remote arbeiten und freie Verfügung über ihre Arbeitszeit haben \cite{choudhuryGitLabWorkWhere2020}. Gitlab finanziert sich durch Spenden um neue Funktionalitäten zu realisieren. Ein weiterer Teil der Einnahmen kommt durch den Abschluss von Abonnements der Enterprise-Edition \cite{degeler_gitlab_2014}. 
		Abbildung \ref{fig:gitlab-logo} zeigt das Logo von Gitlab. Es besteht aus einem Tanuki, einem in Japan heimischen Waschbärhund, und dem Gitlab Schriftzug.
		\begin{figure}[H]
			\centering
			\includegraphics[width=0.8\linewidth]{./bilder/gitlab-logo-100-rgb.png}
			\label{fig:gitlab-logo}
			\caption{Logo Gitlab}
		\end{figure} 
		Gitlab erregte in mehreren Fällen mediale Aufmerksamkeit auf sich. 2017 verlor die \ac{SaaS}-Lösung von Gitlab sechs Stunden an Nutzerdaten, aufgrund von einer menschlichen Fehlreaktion, ausgelöst durch Spamanfragen die in Problemen mit der Datenbank resultierten \cite{GitLabcomDatabaseIncident}. Ebenso bestanden 2022 Pläne inaktive Repositories löschen. Nach starker Kritik wurde sich dazu entschieden, anstatt zu löschen, zu archivieren \cite{onlineVersionsverwaltungGitLabRudert2022}.
		
		\subsection{Aufbau}
		
		Zusammenarbeit in Gitlab ist in Form von Gruppen organisiert. Diese können in Subgruppen unterteilt werden. Gruppen und Subgruppen können Projekte und Mitarbeiter zugeordnet werden.
		Jedes Projekt besteht aus einer Issue-Seite, einem Wiki und einem Code-Repository. \cite{gitlab_gitlab_nodate}
		
		% Vergleich von Features mit Github möglich
		
		\subsection{Funktionalitäten}
		
		
		
		\section{CI/CD}
		
		%https://docs.gitlab.com/topics/build_your_application/
		\subsection{Einführung}
		\subsection{Gitlab Runner}
		\subsection{Pipelines}
		\subsection{Jobs}
		\subsection{CICD-Komponenten}
		
		\section{Anwendungsbeispiel}
		
		\subsection{Projekt}
		
		%Projektvorstellung
		
		\subsection{Konfiguration}
		
		\subsection{Artefakte}
		
		\section{Evaluierung}
		
		\subsection{Vorgehensweise}
		
		%Kriterien ausdenken
		
		\subsection{Performanz}
		
		\subsection{Nachhaltigkeit}
		
		
		\section{Diskussion}
		\ac{CI/CD}
		
		\section{Ausblick}
		
		\section{Zusammenfassung}
		
		
		Hallo Welt \cite{arefeen_continuous_2019}
		\subsection{Geschichte}
		
		\section*{Abkürzungsverzeichnis}
		\begin{acronym}[Abkürzungsverzeichnis]
			\acro{CI/CD}{Continuous Integration/Continous Delivery}
			\acro{SaaS}{Software as a Service}
		\end{acronym}
		
		\printbibliography
	\end{multicols}
	
\end{document}
