Build-Management Mit Marktüblichen Tools
Total Page:16
File Type:pdf, Size:1020Kb
Build-Management mit marktüblichen Tools Björn Feustel Orientation in Objects GmbH Weinheimer Str. 68 Steffen Schluff 68309 Mannheim www.oio.de Version: 2.0 [email protected] Gliederung • Einleitung • Issue-Tracker und IDE • SCM und CI-Server • Release Management • Continuous Delivery • Zusammenfassung und Ausblick © 2011 Orientation in Objects GmbH Build-Management mit marktüblichen Tools 2 1 Gliederung • Einleitung • Issue-Tracker und IDE • SCM und CI-Server • Release Management • Continuous Delivery • Zusammenfassung und Ausblick © 2011 Orientation in Objects GmbH Build-Management mit marktüblichen Tools 3 Build-Infrastructure – What‘s the fuss? • Ein guter Entwicklungsprozess ist einfach, flexibel und praxisorientiert, d.h.: – Reibungslose Arbeit im Team – Schnelle Entwicklungszyklen – Inhärenter Qualitätsanspruch – Gute Planung und Steuerung • Eine Build-Infrastruktur muss das unterstützen, z. B. durch: – Bereitstellen gemeinsamer, integrierter Entwicklungswerkzeuge – Automatisieren von wiederkehrenden Prozessen – Vorgeben und Prüfen von Konventionen, z.B. Metriken – Vereinfachen der Projektkontrolle • Und wen betrifft es? © 2011 Orientation in Objects GmbH Build-Management mit marktüblichen Tools 4 2 Rollenverständnis • Rollenbegriffe sind abhängig • Im Kontext der Präsentation von Projektgröße / -struktur, – Team Organisation • Entwickler, Spezialisten • Ändert den Sourcecode – Developer, Architect • Erstellt Tests/sichert die – Tester / QA Qualität • Kennt (und verbessert) den – Release Engineer & Manager Build-Prozess – Product & Project Manager – Product Owner – Controller – Scrum Master • Scrum Master • Pflegt und optimiert das Projekt • Überwacht und steuert den Projektfortschritt – Stakeholder • Product Owner und Interessenten • Bestimmen die Ziele und Prioritäten © 2011 Orientation in Objects GmbH Build-Management mit marktüblichen Tools 5 Bausteine einer modernen Build-Infrastruktur IDE Eclipse Issue-Tracker Atlassian JIRA & Greenhopper SCM CI-Server Subversion Hudson & ViewVC © 2011 Orientation in Objects GmbH Build-Management mit marktüblichen Tools 6 3 Gliederung • Einleitung • Issue-Tracker und IDE • SCM und CI-Server • Release Management • Continuous Delivery • Zusammenfassung und Ausblick © 2011 Orientation in Objects GmbH Build-Management mit marktüblichen Tools 7 Issue-Tracker IDE Eclipse Issue-Tracker Atlassian JIRA & Greenhopper SCM CI-Server Subversion Hudson & ViewVC © 2011 Orientation in Objects GmbH Build-Management mit marktüblichen Tools 8 4 Issue-Tracker – Synopsis • Aufgabe IDE – Erfasst alle Änderungen und Aktivitäten Issues • Bug Tracking vs. Issue Management vs. SCRUM SCM CI – Ermöggjpglicht die Projektplanung • Features, Versionen, Fix-Termine, Kapazität – Gibt verbindliche Auskunft über den Projekt(zu)stand • Nächste Aufgaben, Versionsfortschritt, Arbeitsauslastung – Entkopplung der Entwicklung von ablenkenden Prozessen • Requirements Management, Change Management • Rollen und Verwendung – Alle: Ermitteln und Pflege des Projektstatus – Alle: Projjpektplanung – Team: Bereitstellen des Arbeitskontexts (Mylyn / Eclipse) • Produkte – Atlassian JIRA, Bugzilla, Roundup, FogBugz, Trac © 2011 Orientation in Objects GmbH Build-Management mit marktüblichen Tools 9 IDE – Integrated Development Environment IDE Eclipse Mylyn Issue-Tracker Atlassian JIRA & Greenhopper SCM CI-Server Subversion Hudson & ViewVC © 2011 Orientation in Objects GmbH Build-Management mit marktüblichen Tools 10 5 IDE – Synopsis • Aufgabe IDE – Zentrales Arbeitswerkzeug der Entwickler Issues SCM CI – Maximierunggp der Entwicklerproduktivität • Rollen und Verwendung – Team: Entwicklers Habitat – Team: Allgemeiner Zugriff auf SCM (Subversive) – Team: Kontextbezogener Zugriff auf Issue-Tracker (Mylyn) • Produkte – Eclipse, NetBeans, IntelliJ IDEA © 2011 Orientation in Objects GmbH Build-Management mit marktüblichen Tools 11 Demonstration • Issue Tracker: IDE – Organisation der Issues / Release-Notes Issues – Anbindunggp an IDE per Myyylyn (()Atlassian IDE Connector) SCM CI •IDE: IDE – SVN Integration Issues – Changesets verwalten mit Mylyn SCM CI © 2011 Orientation in Objects GmbH Build-Management mit marktüblichen Tools 12 6 Issue-Tracker – Das Build-System wächst… IDE Eclipse Mylyn Connector Issue-Tracker Atlassian JIRA & Greenhopper SCM CI-Server Subversion Hudson & ViewVC © 2011 Orientation in Objects GmbH Build-Management mit marktüblichen Tools 13 IDE – Das Build-System wächst… Subversive IDE Eclipse Mylyn Issue-Tracker Atlassian JIRA & Greenhopper SCM CI-Server Subversion Hudson & ViewVC © 2011 Orientation in Objects GmbH Build-Management mit marktüblichen Tools 14 7 Issue-Tracker – Best Practices & Konventionen • Nachvollziehbarkeit / Reproduzierbarkeit IDE – Arbeiten immer im Kontext eines Issues Issues – Issues nach Versionen erfassen SCM CI • Aktualität – Issues immer auf Personen zuordnen – Änderungen unmittelbar dokumentieren – Medienbruch für den Entwickler vermeiden (z. B. mit Mylyn) – Organisation der Issues optimieren (z.B. mit Greenhopper) • Als Single Point of Truth etablieren – Berührungsängste bei allen Beteiligten abbauen • Aber: Individuals and interactions over processes and tools (Agile Manifesto) © 2011 Orientation in Objects GmbH Build-Management mit marktüblichen Tools 15 IDE – Best Practices & Konventionen • Projektweite Vorgaben für alle IDE – Die gleiche IDE (Produkt, Plugins) Issues SCM CI – Das ggg(gleiche Vorgehen (Handling der Issues) – Die gleichen Einstellungen (Code Formatter, Code Syntax, …) • Vermeiden von Tool-Brüchen – Integrierter SVN Client – Integriertes Deployment in lokale Testserver (pre-tested Commit) • Optimieren des Arbeitsflusses – Task/Context Management (z. B. Mylyn / Eclipse oder Cube‘n / NetBeans) – Automatische Prozesse (z. B. „Save Actions“ / Eclipse) • Aber: Build-Prozess muss außerhalb der IDE funktionieren © 2011 Orientation in Objects GmbH Build-Management mit marktüblichen Tools 16 8 Gliederung • Einleitung • Issue-Tracker und IDE • SCM und CI-Server • Release Management • Continuous Delivery • Zusammenfassung und Ausblick © 2011 Orientation in Objects GmbH Build-Management mit marktüblichen Tools 17 SCM – Software Configuration Management IDE Subversive Eclipse Mylyn Issue-Tracker Atlassian JIRA & Greenhopper SCM CI-Server Subversion Hudson & ViewVC © 2011 Orientation in Objects GmbH Build-Management mit marktüblichen Tools 18 9 SCM – Synopsis • Aufgabe IDE – Verwaltung sämtlicher Quellartefakte Issues SCM CI • Sourcen, Konfiguration, Dokumentation – Zusammenarbeit im Team ermöglichen – Versionsverwaltung / Baselining • Rollen und Verwendung – Alle: Zugriff auf alle Artefakte und Dokumentation (ViewVC / SVN) – Alle: Nachvollziehen von Änderungen (JIRA Subversion Plugin) – Team: Grundlaggpe für parallele Entwicklung g( (Branch/Merge) • Produkte – SVN, Git, Perforce, Mercurial, CVS © 2011 Orientation in Objects GmbH Build-Management mit marktüblichen Tools 19 CI-Server – Continuous Integration Server IDE Subversive Eclipse Mylyn Issue-Tracker Atlassian JIRA & Greenhopper SVN Plugin SCM CI-Server View VC Subversion Hudson & ViewVC © 2011 Orientation in Objects GmbH Build-Management mit marktüblichen Tools 20 10 CI-Server – Synopsis • Aufgabe IDE – Qualitätssicherung Issues • Automatische Integration SCM CI • AfühAusführen von TtEtllTests, Erstellen von Repor ts • Qualitätshistorie und Trends aufzeigen – Gewährleisten der Reproduzierbarkeit • Ausführen von Referenz-Builds • Automatisches Markieren im SCM – Automatisches Erstellen und Ausliefern des Produktes • Instanziieren der Deployment Pipeline • Rollen und Verwendung – Team: Integrations- und Qualitätsfeedback • Produkte – Hudson, Jenkins, Bamboo, TeamCity, Go, CruiseControl © 2011 Orientation in Objects GmbH Build-Management mit marktüblichen Tools 21 Demonstration •SCM: IDE – Nachvollziehbarkeit in JIRA Issues – Reppygository Zugriff mit ViewVC SCM CI •CI-Server: IDE – SVN Anbindung Issues – JIRA Plugin für Hudson SCM CI © 2011 Orientation in Objects GmbH Build-Management mit marktüblichen Tools 22 11 SCM – Das Build-System wächst… IDE Subversive Eclipse Mylyn Issue-Tracker Atlassian JIRA & Greenhopper SVN Plugin SCM CI-Server View VC Subversion Hudson & ViewVC © 2011 Orientation in Objects GmbH Build-Management mit marktüblichen Tools 23 CI-Server – Das Build-System wächst… IDE Subversive Eclipse Mylyn Issue-Tracker Atlassian JIRA & Greenhopper SVN Plugin JIRA Plugin SCM CI-Server View VC Subversion Hudson & ViewVC SVN Plugin © 2011 Orientation in Objects GmbH Build-Management mit marktüblichen Tools 24 12 SCM – Best Practices & Konventionen • Optimieren des Projektflusses IDE – Tooling beherrschen (Merging) Issues – Häufige Check-ins & Merges (aber: Head stabil halten) SCM CI – Check-in immer au f ein Issu e bez ogen ( z.B . SVN -Hook) – Atomare Check-ins mit aussagekräftigen Kommentaren • Mechanismen zur Projektverfolgung nutzen – Zugriff für alle ermöglichen: ViewVC, Tortoise – Benachrichtigungen (z.B. automatischer Mailversand oder RSS-Feeds) • Konsistenz, Vollständigkeit und Ordnung wahren – Jede Version der Software ist aus dem SCM reproduzierbar – Zentrales Repository bei DVCS verwenden – Alte Daten löschen • Aber: Bei SCM gibt es kein „aber“! © 2011 Orientation in Objects GmbH Build-Management mit marktüblichen Tools 25 CI-Server – Best Practices & Konventionen • Optimieren des Projektflusses IDE – Abwarten des CI-Laufs, ggf. sofort claimen/reparieren Issues – Tests lokal ausführen vor dem Check-in (Pre-Commit Test) SCM CI – Don‘t commit on a broken bu ild – Quantität & Qualität der Tests muss stimmen • Optimieren