Files
Seminararbeit_2020/chapters/Einleitung.tex
2020-03-20 12:03:27 +01:00

96 lines
4.4 KiB
TeX

\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 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}
Auf den ersten Blick erscheinen die Konzepte einfach und schnell
umsetzbar zu sein und die Umstellung auf \cicd wird schnell gestartet,
um die Vorteile zu nutzen.
\medskip
Mit \cicd wird jedoch nicht nur eine einfache Automatisierung
bestehender Prozesse eingeführt. \cicd besitzt eine zentrale Rolle,
welche auch den Entwicklungsprozess selbst verändert. Diese zentrale
Rolle und Komplexität wird häufig unterschätzt. Schon während der
Einführung oder später im Betrieb treten unerwartete Herausforderungen
zu Tage, vom gravierenden Fehler in Produktion bis zum Systemstillstand.
\medskip
Eine typische Herausforderungen, welche erst im Betrieb deutlich werden,
ist die unabsichtliche Auslieferung eines nicht produktionsbereiten
Codes in den Betrieb.
\medskip
Eine falsche Handhabung in der \scm kann in einem \cicd
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}
\textbf{Mit dieser Seminararbeit soll untersucht werden, inwieweit sich solche und weitere typische und häufige Komplikationen bei der Einführung und dem Betrieb von CI/CD verhindern lassen.}
\textbf{Sie stellt dar, wie das Auftreten eines ungewollten Deployments und weiterer Probleme sowohl in der Einführung als auch im Betrieb eines CI/CD Systems durch geeignete Planung und technische Maßnahmen verhindert werden können.}
Anhand einer Problemrecherche und Analyse werden Empfehlungen
entwickelt, welche 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.
\medskip
\section{Methode}
Zur Erhebung relevanter Probleme wurden Experteninterviews geführt\todo{ürgent was stimmt noch nicht},
wissenschaftliche Arbeiten, Erfahrungsberichte sowie eigene
Beobachtungen im \cicd Umfeld herangezogen.
\medskip
Aus der Problemanalyse wurden die Ursachen identifiziert und
entsprechende Empfehlungen abgeleitet.
\section{Vorgehen}
\medskip
In einem ersten Schritt betrachte ich den Softwareentwicklungsprozess
und die Automatisierungsmöglichkeiten im Allgemeinen, um dann Ideexx \todo{Ausschreiben} von
\cicd 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 \cicd werden nicht
betrachtet.
\section{Aufbau}
\todo{Fix name Ref}
Im Kapitel \nameref{automatisierung-im-softwareentwicklungsprozess} werden Grundlagen für die Phasen der Softwareentwicklung und deren Automatisierung unter CI/CD aufgezeigt, welche um eine Darstellung über das Branchkonzept unter Git ergänzt wird.
Diese Grundlagen dienen dem Verständnis der im Anschluss in Kapitel \nameref{heraus} dargestellten Ergebnisse der Erhebung und Analyse von Problemen bei der Einführung und im Betrieb von \cicd. Hierbei wird das in der Einleitung angerissene Problem vertieft und erläutert.
Aus der Problemanalyse werden im Kapitel \nameref{mas} Lösungsansätze und Empfehlungen formuliert und auch eine konkrete Umsetzungsempfehlung für das Eingangsproblem entwickelt.