Build-Management Mit Marktüblichen Tools

Build-Management Mit Marktüblichen Tools

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

View Full Text

Details

  • File Type
    pdf
  • Upload Time
    -
  • Content Languages
    English
  • Upload User
    Anonymous/Not logged-in
  • File Pages
    27 Page
  • File Size
    -

Download

Channel Download Status
Express Download Enable

Copyright

We respect the copyrights and intellectual property rights of all users. All uploaded documents are either original works of the uploader or authorized works of the rightful owners.

  • Not to be reproduced or distributed without explicit permission.
  • Not used for commercial purposes outside of approved use cases.
  • Not used to infringe on the rights of the original creators.
  • If you believe any content infringes your copyright, please contact us immediately.

Support

For help with questions, suggestions, or problems, please contact us