daily build verfahren für erfolgreiche continuus projekte 1 buildprozesse mit perl

28
1 Daily Build Verfahren für erfolgreiche Continuus Projekte Buildprozesse mit Buildprozesse mit Perl Perl

Upload: vreni-schmenk

Post on 06-Apr-2015

105 views

Category:

Documents


0 download

TRANSCRIPT

Page 1: Daily Build Verfahren für erfolgreiche Continuus Projekte 1 Buildprozesse mit Perl

1

Daily Build Verfahren für erfolgreiche Continuus

Projekte

Buildprozesse mit PerlBuildprozesse mit Perl

Page 2: Daily Build Verfahren für erfolgreiche Continuus Projekte 1 Buildprozesse mit Perl

Build Prozesse mit Perlhttp://www.riecon-it.de

Folie Nr. 2

InhaltInhalt

Build Prozesse

Daily Build Verfahren für erfolgreiche Continuus Projekte

Generelles Vorgehen zur Einrichtung

Einsatz von Perl

Zusammenfassung

Page 3: Daily Build Verfahren für erfolgreiche Continuus Projekte 1 Buildprozesse mit Perl

Build Prozesse mit Perlhttp://www.riecon-it.de

Folie Nr. 3

Ziel dieses VortragesZiel dieses Vortrages

Aufzeigen eines möglichen Lösungsansatzes, für Buildprozesse ohne die Verwendung von Continuus Object Make

Voraussetzung: Für einzelne Komponenten des Software Produktes existiert ein Makeprozessz.B. Über Unix-Make, GNU-Make o.ä.

Die verwendete Programmiersprache spielt dabei keine Rolle.

Page 4: Daily Build Verfahren für erfolgreiche Continuus Projekte 1 Buildprozesse mit Perl

Build Prozesse mit Perlhttp://www.riecon-it.de

Folie Nr. 4

Build ProzesseBuild Prozesse

Definition: Build Prozesse sind automatisierte Abläufe, um aus Sourcen ein Software-Produkt zu erstellen.

Es wird zwischen zwei Verfahren unterschieden:

• Mit Continuus Object Make

• Ohne Object Make

Page 5: Daily Build Verfahren für erfolgreiche Continuus Projekte 1 Buildprozesse mit Perl

Build Prozesse mit Perlhttp://www.riecon-it.de

Folie Nr. 5

Full/Partial BuildFull/Partial Build

Full BuildDer komplette Buildprozess wird durchlaufen.Jede Source wird neu compiliert, alle Bibliotheken des Produktes neu erstellt und das Produkt neu gelinkt.

Partial Build

Nur Teilprodukte werden neu erstellt.Für eine Fehlerbehebung wird z.B. nur eine Bibliothek neuübersetzt und zum Produkt neu hinzugelinkt.

Page 6: Daily Build Verfahren für erfolgreiche Continuus Projekte 1 Buildprozesse mit Perl

Build Prozesse mit Perlhttp://www.riecon-it.de

Folie Nr. 6

Mögliche ProblemeMögliche Probleme

Full Build - Sicherste Methode, ein Produkt zu erstellen!- Zeitfaktor- Im Fehlerfall kein Full Build möglich

Partial Build - notwendig für Fehlerbehebung u. Tests

- Inkonsistenzen und dadurch Produktfehler- Sofern nicht unter Config. Management,

nicht mehr nachvollziehbar

Page 7: Daily Build Verfahren für erfolgreiche Continuus Projekte 1 Buildprozesse mit Perl

Build Prozesse mit Perlhttp://www.riecon-it.de

Folie Nr. 7

Umgebung für Build Umgebung für Build ProzesseProzesseDie in diesem Vortrag besprochenen Verfahren

wurden im Client-Server Umfeld erfolgreich getestet.

Betriebssysteme: Unix-Derivate, NT

Vorzugsweise werden Build-Verfahren unter Unix realisiert, da hier über Cronjobs und der Shell-Umgebung einiges automatisiert werden kann.

Bei reinen NT Entwicklungen ist der Einsatz problematischer, aber möglich.

Page 8: Daily Build Verfahren für erfolgreiche Continuus Projekte 1 Buildprozesse mit Perl

Build Prozesse mit Perlhttp://www.riecon-it.de

Folie Nr. 8

Daily Build Verfahren für Daily Build Verfahren für erfolgreiche erfolgreiche Continuus ProjekteContinuus Projekte

Daily Build bedeutet ... das Projekt ist täglich in der Lage, das

Produkt komplett neu zu erstellen.... täglich zu wissen, wo das Projekt steht... sich möglichst früh auf den Tag der Auslieferung vorzubereiten.

Page 9: Daily Build Verfahren für erfolgreiche Continuus Projekte 1 Buildprozesse mit Perl

Build Prozesse mit Perlhttp://www.riecon-it.de

Folie Nr. 9

Daily Build als Erfolgsfaktor Daily Build als Erfolgsfaktor (1)(1)

Tägliche Prüfung

• der Einstellung der Reconfigure Properties

• der Entwickler-Disziplin

• von Abhängigkeiten

• der Integration der Sourcen (Integrationstest)

• des Projekt-Standes

Page 10: Daily Build Verfahren für erfolgreiche Continuus Projekte 1 Buildprozesse mit Perl

Build Prozesse mit Perlhttp://www.riecon-it.de

Folie Nr. 10

Daily Build als Erfolgsfaktor Daily Build als Erfolgsfaktor (2)(2)

Tägliche Bereitstellung

• eines neuen Produktes für Systemtests

• von Informationen – zur Buildfähigkeit des Produktes oder Teilen davon– zu Konflikten aufgrund parallel checkin o.ä.– zu Inkonsistenzen aufgrund fehlerhaft

eingecheckter Sourcen– Problemzonen (bestimmte Bibliotheken o.ä.)

• z.B. Liste behobener Fehler

Page 11: Daily Build Verfahren für erfolgreiche Continuus Projekte 1 Buildprozesse mit Perl

Build Prozesse mit Perlhttp://www.riecon-it.de

Folie Nr. 11

Daily Build als Erfolgsfaktor Daily Build als Erfolgsfaktor (3)(3)

Nutzung von Rechenzeit

• bei Build über Nacht (Nightly Build)

• vorteilhaft bei Datenbank-Anwendungen

Sicherheit für den Tag X !!!

Page 12: Daily Build Verfahren für erfolgreiche Continuus Projekte 1 Buildprozesse mit Perl

Build Prozesse mit Perlhttp://www.riecon-it.de

Folie Nr. 12

Generelles Vorgehen zur Generelles Vorgehen zur Einrichtung Einrichtung 1. Prüfung des Makeprozesses

2. Automatisierung - Build für das ganze Produkt z.B. mit Perl

3. Verknüpfung des automatischen Build mit Continuus

4. Bereitstellung von Build-Ergebnissen z.B. über Intranet (optional)

Page 13: Daily Build Verfahren für erfolgreiche Continuus Projekte 1 Buildprozesse mit Perl

Build Prozesse mit Perlhttp://www.riecon-it.de

Folie Nr. 13

Makeprozess Makeprozess Bsp.: Abhängigkeiten bei einer C

Entwicklung

LocalDev. 1Env.

LocalDev. nEnv.

GlobalDev.Env.

Bei vorhandenen Libs und Headers-> local makeAnsonsten Zugriffauf Globale Umgebung(Lib- u. Headerverzeichn.)

Make

BuildEnv.

Reconfigure

Make

Make

Page 14: Daily Build Verfahren für erfolgreiche Continuus Projekte 1 Buildprozesse mit Perl

Build Prozesse mit Perlhttp://www.riecon-it.de

Folie Nr. 14

Automatisierter BuildAutomatisierter Build

Warum Perl?• Einfache und mächtige Scriptsprache.

• Ideal zum Starten von Prozessen und Auswerten von ASCII-Log Files.

• CGI-Scripte

• Verfügbarkeit: NT / Unix

Mögliches Verfahren:Perl-Script, welches einzelne Makeprozesse nacheinander abarbeitetund die Ergebnisse in ein Log-File schreibt.

Page 15: Daily Build Verfahren für erfolgreiche Continuus Projekte 1 Buildprozesse mit Perl

Build Prozesse mit Perlhttp://www.riecon-it.de

Folie Nr. 15

Verknüpfung mit Verknüpfung mit ContinuusContinuus

Erstellung einer Ablaufsteuerung, welche folgendes durchführt:

1. Aktualisieren der Sourcen für die Build UmgebungReconfigure und nachfolgender Sync auf einemgetrennten Continuus Build/Prepared Projekt

2. Ausführung des automatisierten Builds

3. Auswerten und Aufbereiten der Daten für das Intranet

Page 16: Daily Build Verfahren für erfolgreiche Continuus Projekte 1 Buildprozesse mit Perl

Build Prozesse mit Perlhttp://www.riecon-it.de

Folie Nr. 16

Bereitstellen von Build-Bereitstellen von Build-Ergebnissen Ergebnissen

Mögliche interessante Informationen:

• Welche Bibliotheken wurden nicht gebaut u. warum– Liste Good/Bad Libs

– Liste unsatisfied Symbols (z.B. bei C-Projekten)

• Welche Sourcen/Versionen haben zum Produkt geführt

• Welche Fehler sind im aktuellen Produkt behoben(Unter der Voraussetzung, daß PT eingesetzt wird)

Page 17: Daily Build Verfahren für erfolgreiche Continuus Projekte 1 Buildprozesse mit Perl

Build Prozesse mit Perlhttp://www.riecon-it.de

Folie Nr. 17

PWE 1

PWE n ContinuusDB

.

.

.

PWEBuild Mgt.

Exe / Libs

Nightly:

Daily Build im ÜberblickDaily Build im Überblick

• 2. Build

• 1. Reconfigure

• 3. Info Intranet

Page 18: Daily Build Verfahren für erfolgreiche Continuus Projekte 1 Buildprozesse mit Perl

Build Prozesse mit Perlhttp://www.riecon-it.de

Folie Nr. 18

Einsatz von PerlEinsatz von Perl

Ich empfehle den Einsatz von Perl, da

• mit geringfügigen Modifikationen auch unter NT lauffähig

• Modularisierbar • (z.B. Module für Continuus Funktionen, Make, Auswertung)

• Große Funktionsvielfalt schon vorhanden

Page 19: Daily Build Verfahren für erfolgreiche Continuus Projekte 1 Buildprozesse mit Perl

Build Prozesse mit Perlhttp://www.riecon-it.de

Folie Nr. 19

Was muß bei der Was muß bei der Umsetzung beachtet Umsetzung beachtet werden?werden?

• Möglichst früh Funktionsbibliotheken anlegen

• Sauberer Programmierstil(mit Perl kann so programmiert werden, daß man zwei Tage später den eigenen Code nicht mehr lesen kann!)

• Dokumentation (Kommentare, Beschreibungen)

• Schrittweises Vorgehen(Bottom Up)Zuerst kleine Teilprozesse automatiseren

Page 20: Daily Build Verfahren für erfolgreiche Continuus Projekte 1 Buildprozesse mit Perl

Build Prozesse mit Perlhttp://www.riecon-it.de

Folie Nr. 20

Was wird benötigt? (1)Was wird benötigt? (1)

• Scripte nicht nur für den Full Build erstellenFull Build bedeutet „Best Case“

• Automatismen für Partial Builds- Wie kann mitten im Prozess gestartet werden?- Sollen manuelle Eingriffe möglich sein?- Steuerung über Optionen

• Release-Verwaltung - Sichern von Projekten, Folder und Tasks- Releasen von Projekten

Page 21: Daily Build Verfahren für erfolgreiche Continuus Projekte 1 Buildprozesse mit Perl

Build Prozesse mit Perlhttp://www.riecon-it.de

Folie Nr. 21

Was wird benötigt? (2)Was wird benötigt? (2)

• Kopieren von Source Bäumen- über Continuus (Reconfigure und Sync Workarea)- ggf. ohne Continuus aus einer Workarea, evtl. einfacher, da immer aus der Build-Umgebung

• Erstellung von Testumgebung - Kopieren der Sourcen, Executables- Debugvorbereitungen

Page 22: Daily Build Verfahren für erfolgreiche Continuus Projekte 1 Buildprozesse mit Perl

Build Prozesse mit Perlhttp://www.riecon-it.de

Folie Nr. 22

Was wird benötigt? (3)Was wird benötigt? (3)

• Auswertung der Logfiles– Fehlerhafte Teilprodukte (Übersichten)

– Konkrete Fehlermeldungen der Teilprodukte

– Mögliche Behebungshinweisez.B. Unsatisfied Symbol wird von Bibliothek xyz aufgerufen

• Bereitstellung einer Liste aller Sourcen und zugehöriger Versionen

Page 23: Daily Build Verfahren für erfolgreiche Continuus Projekte 1 Buildprozesse mit Perl

Build Prozesse mit Perlhttp://www.riecon-it.de

Folie Nr. 23

Beispiel eines Perl-Beispiel eines Perl-ProgrammesProgrammes• Das folgende Perlprogramm liest ein File und

gibt den Inhalt des Files aus.

• #!/usr/local/bin/perl• #• $file = '/etc/passwd'; # Filename zuweisen• open(INFO, $file); # File öffnen• @lines = <INFO>; # in Array einlesen• close(INFO); # File schliessen• print @lines; # Array ausgeben

Page 24: Daily Build Verfahren für erfolgreiche Continuus Projekte 1 Buildprozesse mit Perl

Build Prozesse mit Perlhttp://www.riecon-it.de

Folie Nr. 24

Commandline Interface Commandline Interface und Perl (1)und Perl (1)

• .....

• # Continuus starten• ccm_start();

• ######## Reconfigure ausführen• update_workarea ($proj_name, $rep_file);• ########

• # Continuus stoppen• ccm_stop();

Page 25: Daily Build Verfahren für erfolgreiche Continuus Projekte 1 Buildprozesse mit Perl

Build Prozesse mit Perlhttp://www.riecon-it.de

Folie Nr. 25

Commandline Interface Commandline Interface und Perl (2)und Perl (2)

• sub update_workarea • {• my ($PROJ_NAME)=$_;

• print REP_FILE `ccm reconfigure -r -p $PROJ_NAME`;• print "Reconfigure beendet !!!\n";• print REP_FILE `ccm sync -p $PROJ_NAME`;• print "Sync beendet !!!\n";• print " F E R T I G !!!\n";• }

Page 26: Daily Build Verfahren für erfolgreiche Continuus Projekte 1 Buildprozesse mit Perl

Build Prozesse mit Perlhttp://www.riecon-it.de

Folie Nr. 26

URLs zu PerlURLs zu Perl

• http://www.perl.org

• http://www.cpan.org

• http://www.perlarchiv.de/perl/index.shtm

• http://perl.miningco.com/compute/perl/

• http://www.ibriker.de

Page 27: Daily Build Verfahren für erfolgreiche Continuus Projekte 1 Buildprozesse mit Perl

Build Prozesse mit Perlhttp://www.riecon-it.de

Folie Nr. 27

ZusammenfassungZusammenfassung

• Positive Effekte durch Einsatz von Daily Build Verfahren

• Bessere Produktqualität– Durch tägliche Builds und Tests

• Schnelle Produktzyklen– Da täglich ein neues Produkt vorliegt

• Geringere Kosten– Der Aufwand für die Einrichtung von

Daily Build Prozessen zahlt sich aus!– Schnelle Fehlerbehebung möglich

• Mehr Sicherheit– Fallback-Lösung, z.B. Stand letzter Tag

Page 28: Daily Build Verfahren für erfolgreiche Continuus Projekte 1 Buildprozesse mit Perl

Build Prozesse mit Perlhttp://www.riecon-it.de

Folie Nr. 28

Vielen Dank

für

Ihre Aufmerksamkeit

Noch Fragen ?