92 lines
4.1 KiB
TeX
92 lines
4.1 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 im Produktionssystem bis hin zum Systemstillstand.
|
|
|
|
\medskip
|
|
Eine typische Herausforderung, welche erst im Betrieb deutlich wird,
|
|
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 und in der
|
|
Toollandschaft.
|
|
|
|
\medskip
|
|
Sie werden ergänzt durch Ansätze und Strategien, welche eine Orientierung für die Umsetzung liefern.
|
|
|
|
\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,
|
|
wissenschaftliche Arbeiten, Erfahrungsberichte sowie eigene
|
|
Beobachtungen im \cicd Umfeld herangezogen.
|
|
|
|
\medskip
|
|
Aus der Problemanalyse wurden Ursachen identifiziert und
|
|
entsprechende Empfehlungen abgeleitet.
|
|
|
|
\section{Aufbau}
|
|
\todo{Fix name Ref}
|
|
Im Kapitel \ref{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 \ref{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 \ref{mas} Lösungsansätze und Empfehlungen formuliert und auch eine konkrete Umsetzungsempfehlung für das Eingangsproblem entwickelt.
|
|
|
|
\section{Abgrenzung}
|
|
|
|
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.
|