Große Entwicklungsabteilungen stehen oft vor dem Problem einheitlicher Entwicklungsprozesse und Werkzeuge. Nach einiger Zeit hat jedes Projekt eigene Prozesse und Werkzeuge etabliert. Dies ist nicht im Sinne der Entwicklungsabteilung. Softwaresysteme müssen i. d. R. über Jahre hinweg gewartet und erweitert werden - oft von einem Team, das sich neu in die Anwendung einarbeiten muss.
Nicht selten stellt die Rekonstruktion der Entwicklungsumgebung einen erheblichen Aufwand dar.
Dieser Vortrag beschreibt - anhand eines Erfahrungsberichts - den Aufbau einer strukturierten Entwicklungsumgebung, die auch für grosse Entwicklungsabteilungen skaliert.
- Zentrale Projekt- und Codeverwaltung (ähnlich wie Sourceforge)
- Buildmanagement mit Maven
- Entwicklungswerkzeuge basierend auf Maven und Eclipse
- Installierbare Teamserver mit Virtualisierungstechnologie für Continuous Integration
11. 11DB Systel GmbH, Wolfgang Schwab, I.TID 3, 03.06.2008
Java Entwicklungsumgebung der DB Systel
14.04.2008
DB Systel
Wolfgang Schwab
12. 12DB Systel GmbH, Wolfgang Schwab, I.TID 3, 03.06.2008
DB Systel
Einer der größten konzerneigenen ITK-Dienstleister Europas
DB Systel GmbH
Zentrale: Frankfurt am Main
Mitarbeiter: 5100
Umsatz 2006: 837 Mio. Euro
DB Systems DB Telematik
2007 erfolgte die Integration von DB Systems und DB Telematik zu DB Systel
13. 13DB Systel GmbH, Wolfgang Schwab, I.TID 3, 03.06.2008
DB Systel – Ein Unternehmen der Deutschen Bahn
Infrastruktur und
Dienstleistungen
Geschäftsfelder
Gruppen-
funktionen
Service-
funktionen
Konzern-
leitung
Transport und Logistik
Fernverkeh
r
RegioStadtverkehr Netz
Personen-
bahnhöfe
Energie
Dienst-
leistungen
IntermodalRail Freight
Land
Transport
Contract
Logistics /
SCM 2)
Air/Ocean
Freight
Vertrieb 1)
ProjektBau 1)
Wirtschaft und PolitikFinanzen/Controlling Personal und RechtVorsitzender
Personenverkehr
DB Systel
GmbH
1) ServiceCenter 2) SCM: Supply Chain Management
Deutsche Bahn AG
14. 14DB Systel GmbH, Wolfgang Schwab, I.TID 3, 03.06.2008
Inhalt
3. Repositories
2. Exkurs: Maven 2
4. Team Server
1. Entwicklungsclient
19. 19DB Systel GmbH, Wolfgang Schwab, I.TID 3, 03.06.2008
Entwicklungsclient – Paketierung Eclipse
Funktionsweise Extension Locations
Java-Basis
JDT
PMD
M2Eclipse
YourKit
JEE
WTP-JST
YourKit-EE
Struts
JBoss
Struts
JSF
JBoss
JSF
Spring
Spring
IDE
Project Source Repository: platform.xml
Die Konfiguration eines Projektes aktiviert Eclipse Extension Locations
20. 20DB Systel GmbH, Wolfgang Schwab, I.TID 3, 03.06.2008
Entwicklungsclient – Konfiguration
Projekt 1
setenv-4.0
Shell
Eclipse
Projekt 2
setenv-4.0
Shell
Eclipse
Projekt n
setenv-4.1
Shell
Eclipse
Projekt aktiviert und ergänzt Konfiguration der Entwicklungsumgebung
…
Base 4.0
setenv
Base 4.1
setenv
JBoss 4.2
setenv
WLS 10.0
setenv
JBoss 5.0
setenv
Einheitliche Entwicklungsumgebung
Projektspezifische Konfiguration
21. 21DB Systel GmbH, Wolfgang Schwab, I.TID 3, 03.06.2008
Entwicklungsclient – Konfiguration
Bestandteil der Konfiguration
Umgebungsvariablen
– JAVA_HOME
– MVN_HOME
– JBOSS_HOME
– etc.
platform.xml für Eclipse Extension Locations
Settings-Files für Maven
Verknüpfungen zum Start von Dos-Shell und Eclipse
22. 22DB Systel GmbH, Wolfgang Schwab, I.TID 3, 03.06.2008
Entwicklungsclient – Verteilungsmechanismen
Die perfekte Lösung gibt es nicht
Kurze Reaktionszeit
Flexibel handhabbar
Automatisierung über Skripte
Keine Verwaltung von Installationen
und Lizenzen
Gruppenlaufwerk
Einfache Bedienung
Zugriffsrechte problematisch
Verzeichnistiefe beschränkt
File Section GForge
Einfache Bedienung
Synchronisierung problematisch
Strukturierungsmöglichkeiten beschränkt
Subversion
Nachvollziehbarkeit und Wiederholbarkeit
Modifikation/Entwicklung gut unterstützt
Synchronisierung erfordert SVN-
Verzeichnisse
Installations- und Lizenzverwaltung
Automatische Installation
Installationsänderung vom Entwickler
nicht kontrollierbar
Langwieriger Lieferprozess
Enteo Netinstall
Volle Kontrolle über Nutzung
Installation mit Verzögerung
Virtuelle Umgebung über Softgrid
Sofort einsatzbereit
Dateien sind für andere Programme nicht
sichtbar
Allgemein verfügbar Speziell Firmenclient
23. 23DB Systel GmbH, Wolfgang Schwab, I.TID 3, 03.06.2008
Inhalt
3. Repositories
2. Exkurs: Maven 2 kommt gleich
4. Team Server
1. Entwicklungsclient
24. 24DB Systel GmbH, Wolfgang Schwab, I.TID 3, 03.06.2008
Repositories – Produkte
GForge + Subversion
LiveLink
HP Quality Center
25. 25DB Systel GmbH, Wolfgang Schwab, I.TID 3, 03.06.2008
Alternative zum Softwaredepot: Rational Clear Case
Repositories – GForge
Tabelle von Projekten
Projektname Zugriffsrechte/
Projektzugehörigkeit
Web-Oberfläche:
Collaboration (Tracker,
News, Wiki etc.)
Subversion-Repository
Musterprojekt Musterfrau – Admin
Mustermann –
Developer
https://swd.bahn-net.db.de/
projects/musterprojekt
https://swd.bahn-net.db.de/
musterprojekt/svn/
KOLT Marc Volz – Admin https://swd.bahn-net.db.de/
projects/kolt
https://swd.bahn-net.db.de/
projects/kolt/svn/
maven++ Horst Duchêne – Admin https://swd.bahn-net.db.de/
projects/mavenpp
https://swd.bahn-net.db.de/
projects/mavenpp/svn/
… … … …
36. 36DB Systel GmbH, Wolfgang Schwab, I.TID 3, 03.06.2008
Inhalt
3. Repositories Fortsetzung
2. Exkurs: Maven 2
4. Team Server
1. Entwicklungsclient
37. 37DB Systel GmbH, Wolfgang Schwab, I.TID 3, 03.06.2008
Repositories – Maven-Repository für Komponenten
Exkurs: Quellkomponenten versus Zielkomponenten
Build
Komponente
n
Quellen
Development
Runtime
Environment
Komponenten
Projektinformationen
(Metriken)
.jar
.java
.jar
java –jar
.jar
.html
Werkzeuge
Quelle Ziel
38. 38DB Systel GmbH, Wolfgang Schwab, I.TID 3, 03.06.2008
Repositories – Maven-Repository für Komponenten
Internet-Repositories
Central
JBoss
Java.net
CodehausSpring
Maven
Proxy
Maven++
Komponente
n
KOLT
Komponente
n
Intranet (K2)
Cache
39. 39DB Systel GmbH, Wolfgang Schwab, I.TID 3, 03.06.2008
Jeder baut auf dem Client alle Komponenten
+ Komponenten entsprechen dem
lokalem Stand der Quellen.
Komponentenaustausch zwischen Entwickler
+ Nicht alle Sourcen müssen ausgecheckt
und gebaut werden.
Kontinuierlicher Build auf Team-Server
+ Alle Komponenten sind zentral verfügbar und
synchron zum Stand der Quellen im Repository
Repositories – Snapshots-Repositories
Wer baut die Anwendungskomponenten in
Entwicklung?
Quellen
Komponente
n
Quellen
Komponenten
Quellen
Kontinuierliche
s Bauen
40. 40DB Systel GmbH, Wolfgang Schwab, I.TID 3, 03.06.2008
Repositories – Freigegebene Komponenten
Wie wird aus dem Snapshot ein Release?
Freigegebene
Komponenten
(Softwaredepot)
Snapshot
Komponenten
(Team-Server)
Quellen
Kontinuierliches
Bauen + Testen
Entwicklung Release
Release-Tag
41. 41DB Systel GmbH, Wolfgang Schwab, I.TID 3, 03.06.2008
Repositories – Übersicht
Entwicklungsprozess inkl. Snapshots und Releases
Entwick-
lung
Sources
Freigegebene
Komponente
Install/DeployRuntime
Environments
Automatic
Build
Freigegebene
Komponenten
Issues
Sources
Commit
Workspace Build
Laufzeitum-
gebung
Entwicklung
Snapshot
Komponenten
Snapshot
Artifacts
Release
Team Server
Client
Team Server
Test und
Produktion
42. 42DB Systel GmbH, Wolfgang Schwab, I.TID 3, 03.06.2008
Inhalt
3. Repository
2. Exkurs: Maven 2
4. Team Server
1. Entwicklungsclient
43. 43DB Systel GmbH, Wolfgang Schwab, I.TID 3, 03.06.2008
Team Server
Betriebsführungsmodelle
Excklusiver Server pro Projekt
Ressource ist immer verfügbar und planbar
Projekt bekommt meistens Root-Rechte
Hoher Aufwand für Beschaffung und Rückgabe
Schlechte Nutzung von Ressourcen bzw. hohe Kosten
Shared Server: Ein Home-Verzeichnis pro Projekt
Niedrige Kosten
Moderater Aufwand für Beschaffung und Rückgabe
Keine Root-Rechte
Verfügbarkeit der Ressource kaum steuerbar
Schlechte Nutzung von Ressourcen bzw. hohe Kosten
Virtueller Server optimistische Betrachtung
leichtgewichtige Beschaffungs- und Rückgabeprozesse
Niedrige Kosten
i. d. R. Root-Rechte
Zugesicherte Ressourcen sind verfügbar
44. 44DB Systel GmbH, Wolfgang Schwab, I.TID 3, 03.06.2008
Java 6.0 JBoss 4.2
Maven 2.0 Continuum Maven Proxy
Entwicklungsumgebung Server
Team Server
Installationspakete
Tomcat 6 WLS 10.0 Java 5.0
JEE Server Plattform
…
Linux Plattform
Editor Mail …
45. 45DB Systel GmbH, Wolfgang Schwab, I.TID 3, 03.06.2008
Komponenten
Sourcen
Team Server
Exkurs: Installation von JEE-Anwendungen
Installiertes
System
continuum.war
proxy.war
Maven
Assembly
Konfigurationen
spezifische
Installations-
skripte
generische
Installations-
skripte
Maven POM
Maven
Release
Komponente
n
seu.tar.gz
manuell
wget
untar
install
activate
start
Paketquellen
Installations-
quellen
Zielumgebung
Konfiguration
Zielumgebung
46. 46DB Systel GmbH, Wolfgang Schwab, I.TID 3, 03.06.2008
Team Server
Konfiguration
Umgebungsvariablen
– JAVA_HOME
– MVN_HOME
– JBOSS_HOME
– etc.
Settings-Files für Maven
Initialisierung der Umgebung für bestimmte SEU- und Projektversionen:
Durch Sourcen von setenv-Skripten
Die Konfiguration des Team Server ist analog zum Entwicklungsclient
48. 48DB Systel GmbH, Wolfgang Schwab, I.TID 3, 03.06.2008
Team Server
Konfiguration
Software-Architekt im Development Center der DB Systel GmbH
JEE-Technologien
OLTP-Systeme
Application Lifecycle Management
Wolfgang Schwab