SlideShare une entreprise Scribd logo
1  sur  39
Build Patterns
BEST PRACTICES UND PATTERNS FÜR BUILD KONFIGURATIONEN
Ralf Abramowitsch


Senior Software Development Engineer @ Vector Informatik GmbH



Dozent: Software-Entwicklung mit .NET @ DHBW Stuttgart



Kontakt


E-Mail: ralf@abramowitsch.de



Blog: http://blog.abramowitsch.de



Twitter: @minibrain81
Agenda


Einführung



Build Patterns



Build-Skelett



Ablagen-unabhängige Build-Skripte



Infrastruktur-unabhängige Build-Skripte



Kumulative Builds





Build Script Injection

Gated Commits

Zusammenfassung
Einführung
Einführung zu Patterns


Patterns wurden für architektonische Konzepte von
Christopher Alexander et al. entwickelt.



"Each pattern is a three-part rule, which expresses a relation
between..



a problem,





a certain context,
and a solution" (Alexander et al. 1977).

Patterns beschreiben Best Practices, erklären gute
Designs, so dass diese Lösungen leicht wiederverwendet
werden können.
http://en.wikipedia.org/wiki/File:A_Pattern_Language.jpg
Einführung zu Build Patterns
Beautiful Builds


Autor: Roy Osherove



Aktueller Stand: 30% fertig



https://leanpub.com/build
Build Script Injection
Build Script Injection
Problem


CI-Prozess ist etabliert und Produkte können gebaut werden



Build-Abläufe sind in der Build-Konfiguration hinterlegt



Build-Konfigurationen werden an aktuelle Anforderungen angepasst
und immer gleich nachgezogen



Alte Produktversion muss gebaut werden, zu der die neue BuildKonfiguration nicht passt  Build schlägt fehl
Build Script Injection
Projektstruktur zu Zeitpunkt A
(Produktversion 1.0)
Project 1
Bin
Source
Project 2

Projektstruktur zu Zeitpunkt B
(Produktversion 2.0)
Bin
Source
Project 1
Project 2

Bin

Setup

Source

Utils

Setup
Utils
Build Script Injection
Project 1
Bin
Source
Project 2

Bin
BuildKonfiguration

Source
Setup
Utils
Unter
Versionskontrolle
Build Script Injection
Lösung


Aufteilen der Build-Konfiguration in 2 Teile:


Ein Script, das im Umfeld der Build-Konfiguration abgelegt ist




Sehr statische und "dumme" Skripte

Ein Script, das unter SourceCode-Verwaltung steht


Script-Änderungen sind passend zur Produkt-Version



Script ist passend zu Aktionen und
zur aktuellen Struktur von Dateien (typischerweise relative Pfade)



Entwickler sollten vollen Zugriff auf diese Skripte haben
Build Script Injection
Statischer Anteil

Dynamischer Anteil
Project 1
Bin
Source

Project 2
BuildKonfiguration

Bin

Build-Skript

Source
Setup
Utils

Unter Versionskontrolle
Build-Skelette
Build Skelette
Problem


Arbeiten an einem Produkt laufen bereits auf Hochtouren



Mit Buildautomatisierung wurde noch nicht oder nur teilweise
begonnen



Je weiter das Projekt voranschreitet, um so


mehr Schritte müssen manuell vorgenommen werden und



eine Build-Automatisierung wird immer schwerer
Build Skelette
Lösung


Zu Beginn eines Projekts gleich mit der Buildautomatisierung beginnen


Leeres Entwicklungsprojekt (z.B. Visual Studio Solution) anlegen



Buildskript erstellen



Leeres Test-Projekt erstellen und in CI-Prozess einbauen



Deploy-Cycle einrichten
Build Skelette
Vorteile


Build-Prozess existiert von Anfang an



Einfach Anpassungen möglich



Schnelles Feedback
Build Skelette
Bestandteile des “Build Skeletts”



Ein Build Skript (unter Versionskontrolle) zum Kompilieren des Quellcodes



Continuous Integration Server


Buildkonfiguration “CI”:
Führt bei Code-Änderungen (Check-Ins) das Build-Skript aus



Buildkonfiguration “Deploy”:
Deploy-To-Test oder Deploy-To-Production
Ablagen-unabhängige Skripte
Ablagen-unabhängige Skripte
Problem


Build-Skripte laufen nur auf dem lokalen Rechner



Inbetriebnahme eines CI-Systems wird sehr aufwändig



Spezielle Build-Ordner



Bibliotheken müssen an bestimmte Ordner kopiert werden





Laufwerke mounten

Etc. …

Build-Skript hat spezielle Anforderungen an die Umgebung in der es ausgeführt wird
Ablagen-unabhängige Skripte
Lösung


Relative Pfade anstelle absoluter Pfade



Build-Skript steht unter Versionskontrolle (Repository)



Bibliotheken, Tools usw. im (separaten) Repository
Infrastruktur-unabhängige Skripte
Infrastruktur-unabhängige Skripte
Problem


Build-Skripte müssen an vielen Stellen angepasst werden, nur weil
sich eine Stelle ändert


Beispiele





Name der Maschine, auf die deployed wird, ändert sich
Neben Release-Targets sollen nun auch Debug-Targets gebaut werden

Verletzung des „Single-Source“-Prinzips


Name der Build-Konfiguration erscheint mehrfach im Skript
Infrastruktur-unabhängige Skripte
Lösung


Skript Variablen




Beispiel: Name der Build-Konfiguration

Skript Konfigurationsdatei


Sammlung mehrerer Skript Variablen



Vorteil: Alle Variablen an zentraler Stelle



Umgebungsvariablen



Skript Parameter
Infrastruktur-unabhängige Skripte
Mögliche Seiteneffekte



Erschweren des Debuggens von Skript-Problemen


Umgebungsvariablen müssen gut dokumentiert sein



Lokaler Build könnte fehlschlagen, wenn nicht alle Voraussetzungen

(Variablen, …) gesetzt sind
Kumulative Builds
Kumulative Builds
Problem


Builds dauern sehr lange, bis sie vollständig durchgelaufen sind



Build-Konfiguration enthält zu viele Schritte


Alle Schritte sind wichtig und können nicht übersprungen werden
Kumulative Builds
Lösung


Build-Konfigurationen sind oft ähnlich



Erstellen einer Pipeline


Wiederverwenden der Build-Artefakte
Kumulative Builds
Ausgangssituation: Continuous Integration Build
Source Code
auschecken

Debug Targets
bauen

Ausführen von
Kurz-Tests auf
Debug-Target
Kumulative Builds
Ausgangssituation: Nightly Build
Source Code
auschecken

Debug Targets
bauen

Ausführen aller
Tests auf
Debug-Target

Release Targets
bauen

Ausführen aller
Tests auf
Release-Target

Erzeugen von
CodeDoku, Installern,
…

Deployment auf
Test-Umgebung
Kumulative Builds
Ausgangssituation: Release Build
Source Code
auschecken

Debug Targets
bauen

Ausführen aller
Tests auf
Debug-Target

Release Targets
bauen

Ausführen aller
Tests auf
Release-Target

Deployment auf
ProductionUmgebung
Kumulative Builds
Zielsituation: Continuous Integration Build
Source Code
auschecken

Debug Targets
bauen

Ausführen von
Kurz-Tests auf
Debug-Target
Kumulative Builds
Zielsituation: Nightly Build
Source Code
auschecken

Debug Targets
bauen

Ausführen von
Kurz-Tests auf
Debug-Target

Build-Artefakte
aus dem CIBuild hoen

Release Targets
bauen

Ausführen aller
Tests auf
Release-Target

Erzeugen von
Installern

Deployment auf
Test-Umgebung
Kumulative Builds
Zielsituation: Release Build
Debug Targets
bauen

Ausführen von
Kurz-Tests auf
Debug-Target

Holen der BuildArtefakte aus
CI-Build

Release Targets
bauen

Ausführen aller
Tests auf
Release-Target

Holen der BuildArtefakte aus
Nightly-Build

Deployment auf
ProductionUmgebung

Source Code
auschecken

Erzeugen von
CodeDoku, Installern,
…
Gated Commits
Gated Commits
Problem


Entwickler wissen nicht, was passiert, wenn sie ihren Code
committen


Bricht der Code den aktuellen Build?



Funktionieren nach dem Commit noch alle Tests?



„Blindes“ Committen
Gated Commits
Problem

Code schreiben

Einchecken

Build

Fehlersuche

Build
ok?

Ja
Bugfix
vorhanden
Nein

Team blockiert

Nein

Ja
Gated Commits
Code schreiben

„Gated Commit“
anfordern

Entwickler Code
Snapshot wird an
Server übertragen

Snapshot wird mit
Master Source
Version gemerged

Build-Konfiguration
wird ausgeführt

Nein

Benachrichtigung
des Entwicklers

Aufräumen &
Bereitstellen von
Logfiles etc.

Build ok?

Ja

Code wird in Master
Branch committed
Zusammenfassung


Build Patterns und Best Practices optimieren den Build Prozess


Erhöhte Wartbarkeit



Kürzere Ausführungszeiten & schnelleres Feedback



Erhöhte Qualität im Entwicklungsprozess
Vielen Dank für Ihre Aufmerksamkeit

Contenu connexe

Tendances

OSDC 2013 | Continuous Integration in data centers by Michael Prokop
OSDC 2013 | Continuous Integration in data centers by Michael ProkopOSDC 2013 | Continuous Integration in data centers by Michael Prokop
OSDC 2013 | Continuous Integration in data centers by Michael ProkopNETWAYS
 
Automatischer Build mit Maven - OPITZ CONSULTING - Stefan Scheidt
Automatischer Build mit Maven - OPITZ CONSULTING - Stefan ScheidtAutomatischer Build mit Maven - OPITZ CONSULTING - Stefan Scheidt
Automatischer Build mit Maven - OPITZ CONSULTING - Stefan ScheidtOPITZ CONSULTING Deutschland
 
Flexibilitaet mit CDI und Apache DeltaSpike
Flexibilitaet mit CDI und Apache DeltaSpikeFlexibilitaet mit CDI und Apache DeltaSpike
Flexibilitaet mit CDI und Apache DeltaSpikeos890
 
Electron.NET: Cross-Platform Desktop Software mit ASP.NET Core
Electron.NET: Cross-Platform Desktop Software mit ASP.NET CoreElectron.NET: Cross-Platform Desktop Software mit ASP.NET Core
Electron.NET: Cross-Platform Desktop Software mit ASP.NET CoreGregor Biswanger
 
EntwicklerCamp 2014 - DOTS reloaded
EntwicklerCamp 2014 - DOTS reloadedEntwicklerCamp 2014 - DOTS reloaded
EntwicklerCamp 2014 - DOTS reloadedRené Winkelmeyer
 
BED-Con - Tools für den täglichen Kampf als Entwickler
BED-Con - Tools für den täglichen Kampf als EntwicklerBED-Con - Tools für den täglichen Kampf als Entwickler
BED-Con - Tools für den täglichen Kampf als EntwicklerPatrick Baumgartner
 
Dnug35 ak-dev.071111-cookbook
Dnug35 ak-dev.071111-cookbookDnug35 ak-dev.071111-cookbook
Dnug35 ak-dev.071111-cookbookUlrich Krause
 
IBM Lotus Notes - From PLATO to the Leading Groupware Platform
IBM Lotus Notes - From PLATO to the Leading Groupware PlatformIBM Lotus Notes - From PLATO to the Leading Groupware Platform
IBM Lotus Notes - From PLATO to the Leading Groupware PlatformUlrich Krause
 
Wie skaliert man Software as a Service Applikationen in der Windows Azure Cloud
Wie skaliert man Software as a Service Applikationen in der Windows Azure CloudWie skaliert man Software as a Service Applikationen in der Windows Azure Cloud
Wie skaliert man Software as a Service Applikationen in der Windows Azure CloudPatric Boscolo
 
Docker for Windows / Windows Container
Docker for Windows / Windows ContainerDocker for Windows / Windows Container
Docker for Windows / Windows ContainerThomas Wilhelm Wiefel
 
Kuck mal, Node.js! Einstieg für .NET Entwickler mit Visual Studio Code und Ty...
Kuck mal, Node.js! Einstieg für .NET Entwickler mit Visual Studio Code und Ty...Kuck mal, Node.js! Einstieg für .NET Entwickler mit Visual Studio Code und Ty...
Kuck mal, Node.js! Einstieg für .NET Entwickler mit Visual Studio Code und Ty...Gregor Biswanger
 
Docker und Kubernetes Patterns & Anti-Patterns
Docker und Kubernetes Patterns & Anti-PatternsDocker und Kubernetes Patterns & Anti-Patterns
Docker und Kubernetes Patterns & Anti-PatternsQAware GmbH
 
Entwicklungsprozess und Arbeit mit Symfony2 in der fotocommunity GmbH
Entwicklungsprozess und Arbeit mit Symfony2 in der fotocommunity GmbHEntwicklungsprozess und Arbeit mit Symfony2 in der fotocommunity GmbH
Entwicklungsprozess und Arbeit mit Symfony2 in der fotocommunity GmbHstijink
 
Hands-on Workshop: API-Dokumentation mit OpenAPI / Swagger in ASP.NET Core
Hands-on Workshop: API-Dokumentation mit OpenAPI / Swagger in ASP.NET CoreHands-on Workshop: API-Dokumentation mit OpenAPI / Swagger in ASP.NET Core
Hands-on Workshop: API-Dokumentation mit OpenAPI / Swagger in ASP.NET CoreGregor Biswanger
 
Verteilte Anwendungen bei Azure mit Docker und Kubernetes
Verteilte Anwendungen bei Azure mit Docker und KubernetesVerteilte Anwendungen bei Azure mit Docker und Kubernetes
Verteilte Anwendungen bei Azure mit Docker und KubernetesGregor Biswanger
 
Tipps und Tricks im Umgang mit Docker
Tipps und Tricks im Umgang mit DockerTipps und Tricks im Umgang mit Docker
Tipps und Tricks im Umgang mit DockerNicholas Dille
 
Fix & fertig: Best Practises für "XPages-Migranten"
Fix & fertig: Best Practises für "XPages-Migranten"Fix & fertig: Best Practises für "XPages-Migranten"
Fix & fertig: Best Practises für "XPages-Migranten"Oliver Busse
 
Docker Workshop Experten Forum Stuttgart 2015, Agile Methoden GmbH
Docker Workshop Experten Forum Stuttgart 2015, Agile Methoden GmbHDocker Workshop Experten Forum Stuttgart 2015, Agile Methoden GmbH
Docker Workshop Experten Forum Stuttgart 2015, Agile Methoden GmbHagilemethoden
 

Tendances (20)

XPages - The Basics
XPages - The BasicsXPages - The Basics
XPages - The Basics
 
OSDC 2013 | Continuous Integration in data centers by Michael Prokop
OSDC 2013 | Continuous Integration in data centers by Michael ProkopOSDC 2013 | Continuous Integration in data centers by Michael Prokop
OSDC 2013 | Continuous Integration in data centers by Michael Prokop
 
Automatischer Build mit Maven - OPITZ CONSULTING - Stefan Scheidt
Automatischer Build mit Maven - OPITZ CONSULTING - Stefan ScheidtAutomatischer Build mit Maven - OPITZ CONSULTING - Stefan Scheidt
Automatischer Build mit Maven - OPITZ CONSULTING - Stefan Scheidt
 
Continuous Delivery
Continuous DeliveryContinuous Delivery
Continuous Delivery
 
Flexibilitaet mit CDI und Apache DeltaSpike
Flexibilitaet mit CDI und Apache DeltaSpikeFlexibilitaet mit CDI und Apache DeltaSpike
Flexibilitaet mit CDI und Apache DeltaSpike
 
Electron.NET: Cross-Platform Desktop Software mit ASP.NET Core
Electron.NET: Cross-Platform Desktop Software mit ASP.NET CoreElectron.NET: Cross-Platform Desktop Software mit ASP.NET Core
Electron.NET: Cross-Platform Desktop Software mit ASP.NET Core
 
EntwicklerCamp 2014 - DOTS reloaded
EntwicklerCamp 2014 - DOTS reloadedEntwicklerCamp 2014 - DOTS reloaded
EntwicklerCamp 2014 - DOTS reloaded
 
BED-Con - Tools für den täglichen Kampf als Entwickler
BED-Con - Tools für den täglichen Kampf als EntwicklerBED-Con - Tools für den täglichen Kampf als Entwickler
BED-Con - Tools für den täglichen Kampf als Entwickler
 
Dnug35 ak-dev.071111-cookbook
Dnug35 ak-dev.071111-cookbookDnug35 ak-dev.071111-cookbook
Dnug35 ak-dev.071111-cookbook
 
IBM Lotus Notes - From PLATO to the Leading Groupware Platform
IBM Lotus Notes - From PLATO to the Leading Groupware PlatformIBM Lotus Notes - From PLATO to the Leading Groupware Platform
IBM Lotus Notes - From PLATO to the Leading Groupware Platform
 
Wie skaliert man Software as a Service Applikationen in der Windows Azure Cloud
Wie skaliert man Software as a Service Applikationen in der Windows Azure CloudWie skaliert man Software as a Service Applikationen in der Windows Azure Cloud
Wie skaliert man Software as a Service Applikationen in der Windows Azure Cloud
 
Docker for Windows / Windows Container
Docker for Windows / Windows ContainerDocker for Windows / Windows Container
Docker for Windows / Windows Container
 
Kuck mal, Node.js! Einstieg für .NET Entwickler mit Visual Studio Code und Ty...
Kuck mal, Node.js! Einstieg für .NET Entwickler mit Visual Studio Code und Ty...Kuck mal, Node.js! Einstieg für .NET Entwickler mit Visual Studio Code und Ty...
Kuck mal, Node.js! Einstieg für .NET Entwickler mit Visual Studio Code und Ty...
 
Docker und Kubernetes Patterns & Anti-Patterns
Docker und Kubernetes Patterns & Anti-PatternsDocker und Kubernetes Patterns & Anti-Patterns
Docker und Kubernetes Patterns & Anti-Patterns
 
Entwicklungsprozess und Arbeit mit Symfony2 in der fotocommunity GmbH
Entwicklungsprozess und Arbeit mit Symfony2 in der fotocommunity GmbHEntwicklungsprozess und Arbeit mit Symfony2 in der fotocommunity GmbH
Entwicklungsprozess und Arbeit mit Symfony2 in der fotocommunity GmbH
 
Hands-on Workshop: API-Dokumentation mit OpenAPI / Swagger in ASP.NET Core
Hands-on Workshop: API-Dokumentation mit OpenAPI / Swagger in ASP.NET CoreHands-on Workshop: API-Dokumentation mit OpenAPI / Swagger in ASP.NET Core
Hands-on Workshop: API-Dokumentation mit OpenAPI / Swagger in ASP.NET Core
 
Verteilte Anwendungen bei Azure mit Docker und Kubernetes
Verteilte Anwendungen bei Azure mit Docker und KubernetesVerteilte Anwendungen bei Azure mit Docker und Kubernetes
Verteilte Anwendungen bei Azure mit Docker und Kubernetes
 
Tipps und Tricks im Umgang mit Docker
Tipps und Tricks im Umgang mit DockerTipps und Tricks im Umgang mit Docker
Tipps und Tricks im Umgang mit Docker
 
Fix & fertig: Best Practises für "XPages-Migranten"
Fix & fertig: Best Practises für "XPages-Migranten"Fix & fertig: Best Practises für "XPages-Migranten"
Fix & fertig: Best Practises für "XPages-Migranten"
 
Docker Workshop Experten Forum Stuttgart 2015, Agile Methoden GmbH
Docker Workshop Experten Forum Stuttgart 2015, Agile Methoden GmbHDocker Workshop Experten Forum Stuttgart 2015, Agile Methoden GmbH
Docker Workshop Experten Forum Stuttgart 2015, Agile Methoden GmbH
 

Similaire à Build Patterns - Patterns und Best Practices für den Build Prozess

Softwarequalitätssicherung mit Continuous Integration Tools
Softwarequalitätssicherung mit Continuous Integration ToolsSoftwarequalitätssicherung mit Continuous Integration Tools
Softwarequalitätssicherung mit Continuous Integration ToolsGFU Cyrus AG
 
Agile Bodensee - Introducing Continuous Delivery
Agile Bodensee - Introducing Continuous DeliveryAgile Bodensee - Introducing Continuous Delivery
Agile Bodensee - Introducing Continuous Deliverypingworks
 
GitLab: CI-Pipelines | PHP Usergroup Hamburg 20.03.2018
GitLab: CI-Pipelines | PHP Usergroup Hamburg 20.03.2018GitLab: CI-Pipelines | PHP Usergroup Hamburg 20.03.2018
GitLab: CI-Pipelines | PHP Usergroup Hamburg 20.03.2018Christian Mücke
 
Gradle - Beginner's Workshop (german)
Gradle - Beginner's Workshop (german)Gradle - Beginner's Workshop (german)
Gradle - Beginner's Workshop (german)Joachim Baumann
 
Continuous Testing: Integration- und UI-Testing mit OpenShift-Build-Pipelines
Continuous Testing: Integration- und UI-Testing mit OpenShift-Build-PipelinesContinuous Testing: Integration- und UI-Testing mit OpenShift-Build-Pipelines
Continuous Testing: Integration- und UI-Testing mit OpenShift-Build-PipelinesTobias Schneck
 
Testgetriebene Softwareentwicklung
Testgetriebene SoftwareentwicklungTestgetriebene Softwareentwicklung
Testgetriebene Softwareentwicklungjlink
 
Continous Deployment - Schneller entwickeln
Continous Deployment - Schneller entwickelnContinous Deployment - Schneller entwickeln
Continous Deployment - Schneller entwickelnMartin Seibert
 
Continuous Delivery für Cloud-native Anwendungen auf Cloud-nativer Infrastruktur
Continuous Delivery für Cloud-native Anwendungen auf Cloud-nativer InfrastrukturContinuous Delivery für Cloud-native Anwendungen auf Cloud-nativer Infrastruktur
Continuous Delivery für Cloud-native Anwendungen auf Cloud-nativer InfrastrukturQAware GmbH
 
30. Treffen der .NET User Group Rhein-Neckar mit Constantin Klein - „Bekommen...
30. Treffen der .NET User Group Rhein-Neckar mit Constantin Klein - „Bekommen...30. Treffen der .NET User Group Rhein-Neckar mit Constantin Klein - „Bekommen...
30. Treffen der .NET User Group Rhein-Neckar mit Constantin Klein - „Bekommen....NET User Group Rhein-Neckar
 
DWX 2017 - Alternativen zu Visual-Studio-Testtools: Wann lohnt es sich auch m...
DWX 2017 - Alternativen zu Visual-Studio-Testtools: Wann lohnt es sich auch m...DWX 2017 - Alternativen zu Visual-Studio-Testtools: Wann lohnt es sich auch m...
DWX 2017 - Alternativen zu Visual-Studio-Testtools: Wann lohnt es sich auch m...Marc Müller
 
Robuste Design Systems mit Storybook und Angular: vom Konzept zur lebendigen ...
Robuste Design Systems mit Storybook und Angular: vom Konzept zur lebendigen ...Robuste Design Systems mit Storybook und Angular: vom Konzept zur lebendigen ...
Robuste Design Systems mit Storybook und Angular: vom Konzept zur lebendigen ...Andreas Wissel
 
C/ C++ for Notes & Domino Developers
C/ C++ for Notes & Domino DevelopersC/ C++ for Notes & Domino Developers
C/ C++ for Notes & Domino DevelopersUlrich Krause
 
Vortragsreihe Dortmund: Unified Development Environments
Vortragsreihe Dortmund: Unified Development EnvironmentsVortragsreihe Dortmund: Unified Development Environments
Vortragsreihe Dortmund: Unified Development EnvironmentsThorsten Kamann
 
Einführung in ASP.NET Core Middlewares
Einführung in ASP.NET Core MiddlewaresEinführung in ASP.NET Core Middlewares
Einführung in ASP.NET Core MiddlewaresMatthias Jauernig
 
Vagrant, Puppet, Docker für Entwickler und Architekten
Vagrant, Puppet, Docker für Entwickler und ArchitektenVagrant, Puppet, Docker für Entwickler und Architekten
Vagrant, Puppet, Docker für Entwickler und ArchitektenOPITZ CONSULTING Deutschland
 
Der Status Quo des Chaos Engineerings
Der Status Quo des Chaos EngineeringsDer Status Quo des Chaos Engineerings
Der Status Quo des Chaos EngineeringsQAware GmbH
 
Continuous Integration mit Hudson (JUG Stuttgart, 11.02.2010)
Continuous Integration mit Hudson (JUG Stuttgart, 11.02.2010)Continuous Integration mit Hudson (JUG Stuttgart, 11.02.2010)
Continuous Integration mit Hudson (JUG Stuttgart, 11.02.2010)Wiest Simon
 

Similaire à Build Patterns - Patterns und Best Practices für den Build Prozess (20)

Softwarequalitätssicherung mit Continuous Integration Tools
Softwarequalitätssicherung mit Continuous Integration ToolsSoftwarequalitätssicherung mit Continuous Integration Tools
Softwarequalitätssicherung mit Continuous Integration Tools
 
Agile Bodensee - Introducing Continuous Delivery
Agile Bodensee - Introducing Continuous DeliveryAgile Bodensee - Introducing Continuous Delivery
Agile Bodensee - Introducing Continuous Delivery
 
GitLab: CI-Pipelines | PHP Usergroup Hamburg 20.03.2018
GitLab: CI-Pipelines | PHP Usergroup Hamburg 20.03.2018GitLab: CI-Pipelines | PHP Usergroup Hamburg 20.03.2018
GitLab: CI-Pipelines | PHP Usergroup Hamburg 20.03.2018
 
Roslyn DDC Kompakt 2014
Roslyn DDC Kompakt 2014Roslyn DDC Kompakt 2014
Roslyn DDC Kompakt 2014
 
Gradle - Beginner's Workshop (german)
Gradle - Beginner's Workshop (german)Gradle - Beginner's Workshop (german)
Gradle - Beginner's Workshop (german)
 
Continuous Testing: Integration- und UI-Testing mit OpenShift-Build-Pipelines
Continuous Testing: Integration- und UI-Testing mit OpenShift-Build-PipelinesContinuous Testing: Integration- und UI-Testing mit OpenShift-Build-Pipelines
Continuous Testing: Integration- und UI-Testing mit OpenShift-Build-Pipelines
 
Testgetriebene Softwareentwicklung
Testgetriebene SoftwareentwicklungTestgetriebene Softwareentwicklung
Testgetriebene Softwareentwicklung
 
Continous Deployment - Schneller entwickeln
Continous Deployment - Schneller entwickelnContinous Deployment - Schneller entwickeln
Continous Deployment - Schneller entwickeln
 
Continuous Delivery für Cloud-native Anwendungen auf Cloud-nativer Infrastruktur
Continuous Delivery für Cloud-native Anwendungen auf Cloud-nativer InfrastrukturContinuous Delivery für Cloud-native Anwendungen auf Cloud-nativer Infrastruktur
Continuous Delivery für Cloud-native Anwendungen auf Cloud-nativer Infrastruktur
 
30. Treffen der .NET User Group Rhein-Neckar mit Constantin Klein - „Bekommen...
30. Treffen der .NET User Group Rhein-Neckar mit Constantin Klein - „Bekommen...30. Treffen der .NET User Group Rhein-Neckar mit Constantin Klein - „Bekommen...
30. Treffen der .NET User Group Rhein-Neckar mit Constantin Klein - „Bekommen...
 
DWX 2017 - Alternativen zu Visual-Studio-Testtools: Wann lohnt es sich auch m...
DWX 2017 - Alternativen zu Visual-Studio-Testtools: Wann lohnt es sich auch m...DWX 2017 - Alternativen zu Visual-Studio-Testtools: Wann lohnt es sich auch m...
DWX 2017 - Alternativen zu Visual-Studio-Testtools: Wann lohnt es sich auch m...
 
Robuste Design Systems mit Storybook und Angular: vom Konzept zur lebendigen ...
Robuste Design Systems mit Storybook und Angular: vom Konzept zur lebendigen ...Robuste Design Systems mit Storybook und Angular: vom Konzept zur lebendigen ...
Robuste Design Systems mit Storybook und Angular: vom Konzept zur lebendigen ...
 
Advanced Continuous Integration
Advanced Continuous IntegrationAdvanced Continuous Integration
Advanced Continuous Integration
 
C/ C++ for Notes & Domino Developers
C/ C++ for Notes & Domino DevelopersC/ C++ for Notes & Domino Developers
C/ C++ for Notes & Domino Developers
 
Vortragsreihe Dortmund: Unified Development Environments
Vortragsreihe Dortmund: Unified Development EnvironmentsVortragsreihe Dortmund: Unified Development Environments
Vortragsreihe Dortmund: Unified Development Environments
 
Einführung in ASP.NET Core Middlewares
Einführung in ASP.NET Core MiddlewaresEinführung in ASP.NET Core Middlewares
Einführung in ASP.NET Core Middlewares
 
Vagrant, Puppet, Docker für Entwickler und Architekten
Vagrant, Puppet, Docker für Entwickler und ArchitektenVagrant, Puppet, Docker für Entwickler und Architekten
Vagrant, Puppet, Docker für Entwickler und Architekten
 
Continuous Delivery
Continuous DeliveryContinuous Delivery
Continuous Delivery
 
Der Status Quo des Chaos Engineerings
Der Status Quo des Chaos EngineeringsDer Status Quo des Chaos Engineerings
Der Status Quo des Chaos Engineerings
 
Continuous Integration mit Hudson (JUG Stuttgart, 11.02.2010)
Continuous Integration mit Hudson (JUG Stuttgart, 11.02.2010)Continuous Integration mit Hudson (JUG Stuttgart, 11.02.2010)
Continuous Integration mit Hudson (JUG Stuttgart, 11.02.2010)
 

Build Patterns - Patterns und Best Practices für den Build Prozess