From 4862268bd8bc7e0a8f0b1024a4bb01f12a8db738 Mon Sep 17 00:00:00 2001 From: Manuel Plonski Date: Thu, 19 Mar 2020 19:51:04 +0100 Subject: [PATCH] fuck me --- chapters/grund.tex | 2 +- chapters/problems.tex | 30 +++++++++++++++--------------- 2 files changed, 16 insertions(+), 16 deletions(-) diff --git a/chapters/grund.tex b/chapters/grund.tex index cb7b3f1..aa72150 100644 --- a/chapters/grund.tex +++ b/chapters/grund.tex @@ -187,7 +187,7 @@ Entwicklungszweig, auf dem die Änderungen innerhalb eines Projekt-Repository sequenziell fortgeschrieben werden. ~ - +\todo{GitOps noch ürgentwo als kleinen Merker einbaue} Der Name des Branches ist dafür ausschlaggebend, welcher Pfad in der Pipeline durchlaufen wird. Das Branch-Pattern beschreibt die Funktion, welche dem Branch zukommt. Je nach Art der Änderung \todo{kleine veränderung}auf einem Branch, diff --git a/chapters/problems.tex b/chapters/problems.tex index 65908e1..8920c91 100644 --- a/chapters/problems.tex +++ b/chapters/problems.tex @@ -77,7 +77,7 @@ Toolauswahl muss wiederholt werden -\subsubsection{\textbf{E02} - Umstellung der Nutzer auf Tools und Methode} +\subsubsection{\textbf{E02} - Umstellung der Nutzer auf Tools und Methode}\label{E02} Gerade bei einem All-in-One Tool ist die Einführung besonders herausfordernd. Während bei einer individuellen Lösung häufig bereits @@ -90,7 +90,7 @@ in Bezug auf Tool und Methode.\cite{plonski_herausforderungen_grund_2020,plonski $\Rightarrow$ Notwendigkeit von zusätzlichem Training für Methode und Tool -\subsubsection{\textbf{E03} - Migrationsaufwand} +\subsubsection{\textbf{E03} - Migrationsaufwand}\label{E03} Für ein bereits existierendes Projekt muss die Migration aus der alten Umgebung in das neue CI/CD System vorgesehen werden. @@ -108,7 +108,7 @@ Problemen oder Verzögerungen führen können.\cite{plonski_herausforderungen_gr $\Rightarrow$ Je nach Tool erheblicher Migrationsaufwand -\subsubsection{\textbf{E04} - Fehlender Automatisierungsexperten/Integrationsexperte} +\subsubsection{\textbf{E04} - Fehlender Automatisierungsexperten/Integrationsexperte}\label{E04} Wird ein selfhosted CI/CD-System nicht durch einen Automatisierungsexperten umgesetzt und betreut, stehen die CI Tools zwar @@ -147,7 +147,7 @@ Richtlinien, unter denen CI/CD Systeme implementiert und betrieben werden. Unkenntnis über deren Existenz oder Inhalt führen zu den folgenden Herausforderungen bei einer Einführung. -\subsubsection{\textbf{E05} -- Sicherheitsrichtlinien widersprechen den Zugriffen durch das Tool\todo{anders formulieren}} +\subsubsection{\textbf{E05} -- Sicherheitsrichtlinien widersprechen den Zugriffen durch das Tool\todo{anders formulieren}}\label{E05} Dazu gehören Sicherheitsrichtlinien im Unternehmen, beispielsweise könnte das Ausführen eines privilegierten Containers in einem CI/CD @@ -160,7 +160,7 @@ ein unautorisierter Zugriff auf das Produktionssystem erfolgen könnte.\cite{plo $\Rightarrow$ Kann zum Scheitern der Systemeinführung führen oder ein Workaround ist notwendig -\subsubsection{\textbf{E06} -- Coding-Konvention\todo{Blödes Problem}} +\subsubsection{\textbf{E06} -- Coding-Konvention\todo{Blödes Problem}}\label{E06} Unternehmens- oder Projekt-Codingrichtlinien können den Vorgaben des gewünschten Tools widersprechen. Ein Workaround ist notwendig. @@ -172,7 +172,7 @@ $\Rightarrow$ Kann zum Scheitern der Systemeinführung führen oder ein Workarou \subsubsection{\textbf{E07} -- Nicht übereinstimmende Portvorgaben zwischen der -Anwendungssoftware und dem} Tool +Anwendungssoftware und dem Tool}\label{E07} Der Portmissmatch ist ein typisches Problem bei All-in-One Lösungen. Das CI/CD System geht davon aus, dass die Software ihren Service über einen @@ -191,7 +191,7 @@ immer wieder neu starten, um eine Selbstreparatur zu ermöglichen.\ref{be:gitlab $\Rightarrow$ Pipeline zeigt ungewolltes Verhalten -- ist nicht funktionsfähig -\subsubsection{\textbf{E08} -- Namespace Restriktionen} +\subsubsection{\textbf{E08} -- Namespace Restriktionen}\label{E08} Eine häufig anzutreffende Richtlinie im Kubernetik-Umfeld betrifft die Vorgabe, in einem Cluster jede Anwendung im eigenen Namespace @@ -219,7 +219,7 @@ kontinuierlich implementiert und integriert werden. Daraus ergeben sich besondere Anforderungen an die Hardware, auf der ein CI/CD System installiert wird. -\subsubsection{\textbf{B01} extreme Laufzeiten im Build-Prozess} +\subsubsection{\textbf{B01} extreme Laufzeiten im Build-Prozess}\label{B01} CI/CD Systeme und Plattformen sind in ihrer Anwendung so ausgerichtet, dass viele Projekte parallel CI/CD betreiben. @@ -248,7 +248,7 @@ Entwicklungs-PC lasst sich ein Build-Prozess in etwa 5 bis 10 Minuten abbilden, während er auf einem CI/CD System mit einer etwas älteren Hardware bis zu eineinhalb Stunden dauern kann -\subsubsection{\textbf{B02} erschöpfte Speicherkapazität des CI/CD System} +\subsubsection{\textbf{B02} erschöpfte Speicherkapazität des CI/CD System}\label{B02} Der Betrieb eines CI / CD Systems kann auch in Bezug auf Speicherplatz zu Engpässen führen. Für jede kleineste Codeänderung wird das ganze Set @@ -268,7 +268,7 @@ Speichermedien laufen voll, da kontinuierlich bei jeder Änderung alles an Artefakten abgelegt wird. \subsubsection{\text{B03} - fehlende Möglichkeit zum kontrolliertem Stopp der -Pipeline} +Pipeline}\label{B03} Sobald eine gewisse Kette von Prozessen angestoßen ist, kann sie nicht mehr unterbrochen werden und auf den konsistenten Zustand zuvor @@ -282,7 +282,7 @@ $\Rightarrow$ Lange Wartezeiten für eine nicht mehr benötigte Pipelineausfüh \subsection[aufgrund Unkenntnis über Tool und Methode]{Probleme durch Unkenntnis über Tool und Methode} \subsubsection{\textbf{B04} -- ungewolltes Aktivieren der Pipeline durch unbewusste -Nutzung des Masterbranch} +Nutzung des Masterbranch} \label{B04} Wird versehentlich direkt auf dem Masterbranch gearbeitet und diese Änderung im Source Code Managementsystem freigegeben, kann es zur @@ -337,7 +337,7 @@ eine Möglichkeit, das Deployment noch zu verhindern. (siehe B03 - fehlende Möglichkeit zum kontrolliertem Stopp der Pipeline) \subsubsection{\textbf{B05} -- unbewusste Einbindung von Software, welche durch -Löschungsroutinen nicht permanent zur Verfügung steht} +Löschungsroutinen nicht permanent zur Verfügung steht} \label{B05} Häufig gibt es Richtlinien, welche die Löschung von Artefakten einer Software nach einem vorgegebenen Zeitraum veranlassen, solange sie @@ -350,7 +350,7 @@ diese Löschung verloren gehen. \cite{plonski_herausforderungen_Leo_2020} $\Rightarrow$ Programmabbruch -\subsubsection{\textbf{B06} -- unzureichende Tests - Nutzung des CI/CD Systems} +\subsubsection{\textbf{B06} -- unzureichende Tests - Nutzung des CI/CD Systems}\label{B06} Die statische Codeanalyse erwartet den Source Code in einem spezifischen Ordner. Unkenntnis über diese Vorgabe kann dazu führen, dass der Source @@ -364,7 +364,7 @@ weiter.\ref{be:jx} \cite{shahin2017continuous} $\Rightarrow$ Ungetesteter Code befindet sich in Produktion -\subsubsection{\textbf{B07} -- Modultest nur auf Codeabdeckung ausgelegt} +\subsubsection{\textbf{B07} -- Modultest nur auf Codeabdeckung ausgelegt}\label{B07} Unkenntnis über Test/ und Tool (Automatisierungs- und Produktionsrelevanz) Tests durchlaufen alle Codezeilen, ohne die @@ -384,7 +384,7 @@ $\Rightarrow$ Funktional ungetesteter Code befindet sich in Produktion \subsubsection{\textbf{B08} -- Fehleranfälligkeit bei Migrationen für -Datenbankänderungen} +Datenbankänderungen} \label{B08} Häufig geht mit Änderungen im Code auch eine Datenbankmigration einher. Das automatisierte Deployment muss in der richtigen Reihenfolge