adding pandoc und test von cicd command
This commit is contained in:
@@ -1,34 +1,93 @@
|
||||
\chapter{Einleitung}
|
||||
|
||||
Das Thema der Digitalisierung ist heute nicht mehr wegzudenken, wenn es in den Unternehmen darum geht in der wachsenden Dynamik des Marktes passend zu agieren. Dabei muss auch die Softwareentwicklung sich diesem Trend anpassen und so von zeit- und kostenintensiven Softwareprojekten zu einer agilen Entwicklung mit vollautomatisierten Prozessen umschwenken.
|
||||
Der moderne Softwareentwicklungsprozess wird immer weiter automatisiert. Hier sind ``Continuous Integration'' und ``Continuous Deployment/Delivery'' (CI/CD) schon weit verbreitet. Unter anderem ermöglichen Konzepte wie CI/CD schnellere Entwicklungsgeschwindigkeiten und erhöhen so die Chance, Fehler frühzeitig zu erkennen.\cite{article:puppet}
|
||||
Das Thema der Digitalisierung ist heute nicht mehr wegzudenken, wenn es
|
||||
in den Unternehmen darum geht, in der wachsenden Dynamik des Marktes
|
||||
passend zu agieren. Dabei muss auch die Softwareentwicklung sich diesem
|
||||
Trend anpassen und so von prozess- und planungslastigen Projekten zu
|
||||
einer agilen Entwicklung mit vollautomatisierten Prozessen umschwenken.
|
||||
|
||||
\medskip
|
||||
Der moderne Softwareentwicklungsprozess wird immer weiter automatisiert.
|
||||
Hier sind ``Continuous Integration'' und ``Continuous Deployment/Delivery''
|
||||
(CI/CD) schon weit verbreitet und dafür bekannt, den
|
||||
Softwareentwicklungsprozess zu beschleunigen \cite{article:google}.
|
||||
|
||||
|
||||
|
||||
\section{Motivation}
|
||||
|
||||
Wie bei allen neuen Methoden mit den dazugehörigen Werkzeugen muss die korrekte Anwendung erlernt und beachtet werden. Denn die Vorteile kommen nur dann zum Tragen, wenn diese eine konsequente und richtige Anwendung finden.
|
||||
Wird das Konzept von CI/CD nicht durchdrungen oder inkonsequent umgesetzt, so können verschiedene Probleme auftreten, welche dann zu Lasten von Zeit, Projektbudget und Effizienz gehen. Beispielsweise kann fehlendes Wissen über die Funktionsweise des CI/CD Systems im Falle einer Störung zum Stillstand des Entwicklungsprozesses führen.
|
||||
Auf den ersten Blick erscheinen die Konzepte einfach und schnell
|
||||
umsetzbar zu sein und die Umstellung auf CI/CD wird schnell gestartet,
|
||||
um die Vorteile zu nutzen.
|
||||
|
||||
\medskip
|
||||
Mit CI/CD wird jedoch nicht nur eine einfache Automatisierung
|
||||
bestehender Prozesse eingeführt. CI/CD besitzt eine zentrale Rolle,
|
||||
welche auch den Entwicklungsprozess selbst verändert. Diese zentrale
|
||||
Rolle und Komplexität wird häufig unterschätzt, und schon während der
|
||||
Einführung oder später im Betrieb treten unerwartete Herausforderungen
|
||||
zu Tage.
|
||||
|
||||
\medskip
|
||||
Eine dieser Herausforderungen, welche erst im Betrieb deutlich werden,
|
||||
ist die unabsichtliche Auslieferung eines nicht produktionsbereiten
|
||||
Codes in den Betrieb.
|
||||
|
||||
\medskip
|
||||
Eine falsche Handhabung in der Versionsverwaltung kann in einem CI/CD
|
||||
Umfeld zu diesem ungewollten Deployment führen und so eine fehlerhafte
|
||||
Funktionalität der Software oder sogar einen Systemausfall bewirken.
|
||||
|
||||
\medskip
|
||||
\section{Ziel der Arbeit}
|
||||
|
||||
Grundsätzlich stellt sich die Frage, wie die Konzeption und das Design eines CI/CD Systems aussehen sollte, um die Vorteile der Methode bestmöglich zur Geltung zu bringen und sich Probleme in der Anwendung von Verfahren und Werkzeugen vermeiden zu lassen.
|
||||
Daraus ergibt sich die Fragestellung nach den Qualitätseigenschaften eines CI/CD System welche ich ins Zentrum meiner Seminararbeit stellen möchte. Hieraus ergeben sich unter anderem folgende Fragen:
|
||||
\begin{itemize}
|
||||
|
||||
\item Was bedeutet Qualität für ein CI/CD System?
|
||||
\item Welche Anforderungen stellen sich an eine CI/CD Pipeline mit hoher Qualität?
|
||||
\item Lassen sich Basisanforderungen aufstellen, unabhängig von dem Einsatzgebiet der Pipeline?
|
||||
|
||||
\end{itemize}
|
||||
\newpage
|
||||
\textbf{
|
||||
\noindent Ziel ist die Ausarbeitung von Anforderungen und Qualitätsmerkmalen an ein CI/CD System, welche die Entwicklungsgeschwindigkeit steigert, ohne die Softwarequalität zu kompromittieren.
|
||||
Anforderungen an eine Qualitätsvolle CI/CD Pipeline aufstellen.
|
||||
\noindent
|
||||
Das Auftreten eines ungewollten Deployments und weiterer häufig
|
||||
anzutreffender Probleme innerhalb eines CI/CD - Systems kann bereits bei
|
||||
der Einführung durch geeignete Planung und technische Maßnahmen
|
||||
verhindert werden.
|
||||
}
|
||||
|
||||
Anhand einer Problemrecherche und Analyse werden Empfehlungen
|
||||
entwickelt, die bei der Planung und Einführung eines Systems
|
||||
herangezogen werden können.
|
||||
|
||||
\medskip
|
||||
Diese Empfehlungen sind sehr allgemein formuliert, bedingt durch die
|
||||
große Vielseitigkeit in den Einsatzumgebungen als auch durch in der
|
||||
Toollandschaft.
|
||||
|
||||
\medskip
|
||||
Sie werden ergänzt durch Ansätze und Strategien, an denen man sich in
|
||||
der Umsetzung orientieren kann.
|
||||
|
||||
\medskip
|
||||
Für das dargestellte Problem des ungewollten Deployment eines nicht
|
||||
produktionsreifen Codes wird für eine konkrete Einsatzumgebung und
|
||||
Toolsituation aufgezeigt, wie sich das Problem durch entsprechende
|
||||
Planung und technische Maßnahmen verhindern lässt.
|
||||
\newpage
|
||||
|
||||
|
||||
\section{Vorgehen}
|
||||
In einem ersten Schritt betrachte ich den Softwareentwicklungsprozess und die Automatisierungsmöglichkeiten im Allgemeinen.
|
||||
Anschließend werden die Vorteile und Probleme unter dem Einsatz von CI/CD erarbeitet, um dann entsprechende Qualitätsmerkmale abzuleiten und Anforderungen an die Tools, Standards und Methoden eines CI/CD Systems zu formulieren.
|
||||
Zur Erhebung relevanter Probleme wurden Experteninterviews geführt,
|
||||
wissenschaftliche Arbeiten, Erfahrungsberichte sowie eigene
|
||||
Beobachtungen im CI/CD Umfeld herangezogen.
|
||||
|
||||
\medskip
|
||||
Aus der Problemanalyse wurden die Ursachen identifiziert und
|
||||
entsprechende Empfehlungen abgeleitet.
|
||||
|
||||
\medskip
|
||||
In einem ersten Schritt betrachte ich den Softwareentwicklungsprozess
|
||||
und die Automatisierungsmöglichkeiten im Allgemeinen, um dann Ideexx von \todo{Ausschreiben}
|
||||
CI/CD aufzuzeigen.
|
||||
|
||||
\medskip
|
||||
Die Problemrecherche und Analyse kann nicht den Anspruch der
|
||||
Vollständigkeit erfüllen. Sie berücksichtigt typische- und häufig
|
||||
anzutreffende Probleme. Dabei sind die Empfehlungen unabhängig von einem
|
||||
konkreten Anwendungsfall und der Toolsituation formuliert. Probleme zur
|
||||
Thematik des mentalen Wandels bei der Einführung von CI/CD werden nicht
|
||||
betrachtet.
|
||||
Reference in New Issue
Block a user