4. Die Integrations-Hölle
oder anders:
Wer hat meine Datei
überschrieben?
(Erinnung: einmal zu Stefan Schmidt winken)
Fragen wer einen Integrations Prozess hat?
5. Die Integrations-Hölle
1. mehrere Entwickler arbeiten unversioniert am Code
2. sprechen sich mündlich ab (oder über Klebebacker)
3. arbeiten auf unterschiedlichen Plattformen
4. Änderungen werden händisch zusammengeführt
5. Danach wird der unveränderte Teil nicht getestet
6. Man hofft und vermutet, zB. dass mein Code von
gestern noch nicht überschrieben wurde
6. Die Integrations-Hölle
1. mehrere Entwickler operieren am offenen Herzen
2. sprechen sich mündlich ab
3. arbeiten auf unterschiedlichen Plattformen
4. Änderungen werden händisch zusammengeführt
5. Danach wird der unveränderte Teil nicht getestet
6. Man hofft und vermutet, zB dass mein Code von
gestern noch da ist
Fatal error: Class 'User' not found in /Users/flobo/Webserver/
queske/app/mvc/controller/BaseController.php on line 23
8. Und wie kommt man in die
Deployment Hölle?
1. ganz klar: per FTP Upload ;)
9. Und wie kommt man in die
Deployment Hölle?
1. ganz klar: per FTP Upload ;)
2. Files Manuell auf Zielsystem übertragen
3. keine/abweichende lokale Entwicklungsumgebung
4. keine Tests durchgeführt
5. FTP Client hat Eigenwillen
6. Jemand hat bereits die selbe Datei verändert
7. Upload von 3271 Dateien bricht ab ... irgendwo
8. Upload bricht ab, Datei leer
9. statt index_test.php wird delete_db.php in
index.php umbenannt
20. Jenkins
11. Integration mit Paas/IaaS/SaaS Systemen wie
Cloudbees, Soucelabs, Amazon AWS
12. Managen von Infrastruktur
13. Überwachen von Systemprozessen
14. Integration über Jenkins Remote API
u name it!
Derzeit ca 850 Plugins verfügbar - 2011 waren es 400
22. Und die Vorteile?
Für Entwickler
1. Syntaktische Prüfung des Codes (Checkstyle, JSLint,
PHP -l, etc)
2. Fehler-Reports bei Problemen
3. Unterstützung bei Einhaltung von Konventionen
4. Überblick über die Projekte per Build Monitor
5. Reduzierung der typischen Fehler
6. keine nervigen manuellen Roboter-Aktivitäten
8. Kann sich auf das Coden konzentrieren
9. Braucht kein schlechtes Gewissen zu haben
23. Und die Vorteile?
Für Projektleiter / POs
1. Harmonisierung von Prozessen
2. Zuversichtlichkeit bei Projekten
3. Steigerung der Produktivität und Qualität
4. Metriken zum Verfolgen des Projektverlaufes
5. Unterstützung im Agilen Entwicklungsprozess
6. Bessere Transparenz / Auskunftsfähigkeit
24. Und die Vorteile?
Für Kunden
1. Frühe Testbarkeit von Produkt-Fragmenten
2. Zuversichtlichkeit beim Projektverlauf
3. Höhere Qualität des Endproduktes
4. Weniger Post-Launch-Schmerzen
5. Besseres Produkt durch früheren Proof-Of-Concept
6. Bessere Zahlungsmoral
26. Vorraussetzungen
1. kompletter Code in VCS (Git, SVN)
2. Entwickler branchen ihr Feature
3. automatischer Integrations- und Deployment-Prozess
4. Build und Testprozess muss schnell sein
5. Tests müssen existieren (Unit, Behaviour, Frontend)
6. Infrastruktur muss voll remote-administrierbar sein
7. Offline-Repos für eigene Forks oder bei Firewalls (Satis)
27. Beste Freunde
1. Agile Software Entwicklung
2. TDD / BDD
3. GIT / GitHub
4. Automatische Spielfreunde wie Vagrant, Puppet,
Capistrano, Chef)