Your SlideShare is downloading. ×

Continuous Integration in heterogenen Umgebungen

568

Published on

In embedded Projekten und im regulierten Umfeld kommen mehrere Programmiersprachen, Compiler, Interpreter und weitere Werkzeuge zum Einsatz und bilden so eine sehr heterogene Entwicklungsumgebung. …

In embedded Projekten und im regulierten Umfeld kommen mehrere Programmiersprachen, Compiler, Interpreter und weitere Werkzeuge zum Einsatz und bilden so eine sehr heterogene Entwicklungsumgebung.
Die Integration von Projektmanagementsoftware, Buildsystem, Versionskontrolle, Testwerkzeugen und Simulatoren stellt selbst ein komplexes Softwareprojekt dar.
Um die Produktivität zu steigern, muss diese Infrastruktur für den Entwickler transparent und reibungslos funktionieren.
Wir werden einige Real-World-Projekte mit solchen heterogenen Entwicklungsumgebungen näher betrachten und zeigen, wie Konzepte wie Continuous-Integration und Continuous-Deployment angewendet wurden, welche Probleme dabei auftreten und wie man damit umgehen kann.

Mehrwert: Die Zuhörer erfahren Ansätze wie auch in technisch schwierigem Umfeld Continous-Integration umgesetzt werden kann, um einen agilen Softwareentwicklungsprozess zu ermöglichen.

Published in: Technology
0 Comments
1 Like
Statistics
Notes
  • Be the first to comment

No Downloads
Views
Total Views
568
On Slideshare
0
From Embeds
0
Number of Embeds
0
Actions
Shares
0
Downloads
4
Comments
0
Likes
1
Embeds 0
No embeds

Report content
Flagged as inappropriate Flag as inappropriate
Flag as inappropriate

Select your reason for flagging this presentation as inappropriate.

Cancel
No notes for slide

Transcript

  • 1. Continuous Integration inheterogenen UmgebungenVassilis RizopoulosCarsten Kind Folie 1 24. November 2011 Vassilis Rizopoulos Carsten Kind © Zühlke 2011
  • 2. Am Anfang gab es Codeder mit Hilfe von Zip-Dateienund Disketten transportiertwerden musste… und es fühlte sich so an:Continuous Integration in heterogenen Umgebungen | Vassilis Rizopoulos, Carsten Kind 24. November 2011 Folie 2 © Zühlke 2011
  • 3. VersionskontrolleContinuous Integration in heterogenen Umgebungen | Vassilis Rizopoulos, Carsten Kind 24. November 2011 Folie 3 © Zühlke 2011
  • 4. Build-SystemeContinuous Integration in heterogenen Umgebungen | Vassilis Rizopoulos, Carsten Kind 24. November 2011 Folie 4 © Zühlke 2011
  • 5. Continuous IntegrationContinuous Integration in heterogenen Umgebungen | Vassilis Rizopoulos, Carsten Kind 24. November 2011 Folie 5 © Zühlke 2011
  • 6. Und was kommt danach…Continuous Integration in heterogenen Umgebungen | Vassilis Rizopoulos, Carsten Kind 24. November 2011 Folie 6 © Zühlke 2011
  • 7. ZielMinimieren der Zeit zwischenEinchecken und Feedback überdie Code-Qualität.Continuous Integration in heterogenen Umgebungen | Vassilis Rizopoulos, Carsten Kind 24. November 2011 Folie 7 © Zühlke 2011
  • 8. Moderne EntwicklungsumgebungContinuous Integration:• Automatische Builds – Benachrichtigung von Build-Fehlern• Automatische Testläufe – Benachrichtigung von fehlgeschlagene TestsZusätzlich:• Anforderungen – Test Tracing, Code-Abdeckung• Historische Sicht auf Build und Test-Fehler (Race- Conditions detektieren, Code-Schwachstellen detektieren, Fortschrittskontrolle)Das alles muss den Entwicklern schnell undzuverlässig bereitgestellt werden.Continuous Integration in heterogenen Umgebungen | Vassilis Rizopoulos, Carsten Kind 24. November 2011 Folie 8 © Zühlke 2011
  • 9. Worüber wir hier nicht mehr redenwollen!Build- & Test-Automatisierungsind akzeptierte Methoden undsollten eingesetzt werden.Continuous Integration in heterogenen Umgebungen | Vassilis Rizopoulos, Carsten Kind 24. November 2011 Folie 9 © Zühlke 2011
  • 10. Entwicklungsinfrastruktur ALM OS, Netzwerkzonen usw.) Basic Infrastructure (HW, Version Control User Administration Backup Build Test Support ServicesContinuous Integration in heterogenen Umgebungen | Vassilis Rizopoulos, Carsten Kind 24. November 2011 Folie 10 © Zühlke 2011
  • 11. Heterogene Umgebung: DefinitionContinuous Integration in heterogenen Umgebungen | Vassilis Rizopoulos, Carsten Kind 24. November 2011 Folie 11 © Zühlke 2011
  • 12. Drei Projekte Embedded Project TFS TFS TFS TFS TFS subversion Rake, TFSBuild TFSBuild Jenkins MSTest, SL-Nunit / Unity, NUnit, rutema, MSTest Rutema, NI selenium Sharepoint Radiator, Portal BlogContinuous Integration in heterogenen Umgebungen | Vassilis Rizopoulos, Carsten Kind 24. November 2011 Folie 12 © Zühlke 2011
  • 13. WP7-AppContinuous Integration in heterogenen Umgebungen | Vassilis Rizopoulos, Carsten Kind 24. November 2011 Folie 13 © Zühlke 2011
  • 14. Entwicklungsumgebungfür Windows Phone 7Tools:• Visual Studio 2010• Silverlight Toolkit for Windows Phone• TFS für – ALM – Versionskontrolle TFS – Build TFSAber wie kann man testen?• .NET 4.0 Projekte mit verlinkten C#-Dateien TFSBuild• Silverlight Unit Test Framework aus Toolkit SL-Nunit / MSTestContinuous Integration in heterogenen Umgebungen | Vassilis Rizopoulos, Carsten Kind 24. November 2011 Folie 14 © Zühlke 2011
  • 15. Unit Tests für Windows Phone 7Entscheidung:Unit-Testframework aus dem Silverlight Toolkit.Vorteil:• Kein artifizieller Code.• Läuft direkt auf dem Gerät oder dem Emulator.Nachteil:• Keine Integration.• Wie können die Tests in den Continuous Integration Build integriert werden?Continuous Integration in heterogenen Umgebungen | Vassilis Rizopoulos, Carsten Kind 24. November 2011 Folie 15 © Zühlke 2011
  • 16. Continous Integration Setup Build-Server BuildService Get Latest Compile Test- Runner Wp7TestActivity Start Test-Runner Drop Build Test-Ergebnisse TFSContinuous Integration in heterogenen Umgebungen | Vassilis Rizopoulos, Carsten Kind 24. November 2011 Folie 16 © Zühlke 2011
  • 17. Kommunikation derWP7-Test-Activity Wp7TestActivity Starten Deployen Ausführen Tests gestartet Test- Runner WCF Host Test-Ergebnis Tests fertig Kill process Result.trx “Publish” Testergebnisse MstestActivity TFSContinuous Integration in heterogenen Umgebungen | Vassilis Rizopoulos, Carsten Kind 24. November 2011 Folie 17 © Zühlke 2011
  • 18. Telematiklösung:Drei Länder, sechs Werke,weltweiter Einsatz Kunden-Sicht Liebherr-Sicht TU Funk (GPRS) Händler-Sicht Baumaschine Liebherr RZContinuous Integration in heterogenen Umgebungen | Vassilis Rizopoulos, Carsten Kind 24. November 2011 Folie 18 © Zühlke 2011
  • 19. LiDAT: Flottenmanagement fürBaumaschinen Internet Active External Directory LiDAT Portal Services GIS Provider Services Report Internet Services LiDAT Services Machine LTP Services LiDAT Data Server Warehouse Inbox Import LiDAT OLTP LiDAT OLTP Services Principal MirrorContinuous Integration in heterogenen Umgebungen | Vassilis Rizopoulos, Carsten Kind 24. November 2011 Folie 19 © Zühlke 2011
  • 20. LiDAT: Ein Hersteller,viele Technologien• Viele Projekttypen• Verteiltes System• Externe Systemkopplung• VersionswechselContinuous Integration in heterogenen Umgebungen | Vassilis Rizopoulos, Carsten Kind 24. November 2011 Folie 20 © Zühlke 2011
  • 21. LiDAT Entwicklungs-Umgebung• Unit Tests langsam (12s Startupzeit)• Builds langsam (~40 Mins)• Selenium Tests zerbrechlich TFS• TFS Version Control (2005/2008)• Entwickler Builds ≠ CI Builds TFS TFSBuild MSTest, rutema, selenium Sharepoint PortalContinuous Integration in heterogenen Umgebungen | Vassilis Rizopoulos, Carsten Kind 24. November 2011 Folie 21 © Zühlke 2011
  • 22. LiDAT: Entwicklungsansatz• VMs für alles• Der Build Server hat immer Recht• DB Schema unter Versionskontrolle• Test Szenarien mit Daten• Ein-Stop System DeploymentContinuous Integration in heterogenen Umgebungen | Vassilis Rizopoulos, Carsten Kind 24. November 2011 Folie 22 © Zühlke 2011
  • 23. “Embedded project” Embedded Project• Zwei unterschiedliche Prozessoren, zwei Betriebssysteme• Medizintechnik-Entwicklung nach ISO 13485, Software nach ISO 62304• Zulassung weltweit, insbesondere in Europa, USA, Asien, …• Hardware- und Software-Entwicklung• TFS für Anforderungs- und Test-ManagementContinuous Integration in heterogenen Umgebungen | Vassilis Rizopoulos, Carsten Kind 24. November 2011 Folie 23 © Zühlke 2011
  • 24. “Embedded Project”: Eckdaten Embedded Project Safety 25 Leute Guidelines N+1 Diversitär 4 5 Tools Sprachen Compiler 3 OS 4 IDEsContinuous Integration in heterogenen Umgebungen | Vassilis Rizopoulos, Carsten Kind 24. November 2011 Folie 24 © Zühlke 2011
  • 25. “Embedded Project”: Lösungsansatz Embedded ProjectRake integriert die Umgebung: • Ein Task für jede Aktion • Zentrale Konfiguration der Umgebung TFS • Einheitliche BedienungsschnittstelleCI ist ein Beiprodukt subversion• Der Build ist nur ein weiterer Task im zentralen Script. Rake, Jenkins Unity, NUnit, Rutema, NI Radiator, BlogContinuous Integration in heterogenen Umgebungen | Vassilis Rizopoulos, Carsten Kind 24. November 2011 Folie 25 © Zühlke 2011
  • 26. Information Radiator:Schnelles Feedback Embedded ProjectJeder Screen ist das Ergebnis eines TasksContinuous Integration in heterogenen Umgebungen | Vassilis Rizopoulos, Carsten Kind 24. November 2011 Folie 26 © Zühlke 2011
  • 27. Zusammenfassung • WP7: Obwohl die gesamte Entwicklungsumgebung homogen erscheint, sind dennoch erhebliche Anstrengungen notwendig um ein modernes CI zu ermöglichen. • LiDAT: Obwohl alles ausschließlich auf Microsoft- Technologien basiert, wird die Vielzahl eingesetzter Technologien zu einer Herausforderung für Systemtests im Rahmen von CI. Embedded • Embedded Project: Bei verschiedene Herstellern und Project verschieden Technologien ist die Integration der Umgebung die Hauptaufgabe. CI ist nur Teil davon.Continuous Integration in heterogenen Umgebungen | Vassilis Rizopoulos, Carsten Kind 24. November 2011 Folie 27 © Zühlke 2011
  • 28. FazitDie Bereitstellung einer Entwicklungsinfrastruktur istein komplexes Software-Integrations-Projekt!• Infrastruktur sollte wie alle Software Projekte behandelt werden: Versionierung, Release Management, automatische Deployments (sehr wichtig)• Daumenregel: Ab 7+-2 Leuten braucht man jemanden, der sich hauptamtlich um die Umgebung kümmert. Dedizierte Rolle: Productivity EngineerContinuous Integration in heterogenen Umgebungen | Vassilis Rizopoulos, Carsten Kind 24. November 2011 Folie 28 © Zühlke 2011
  • 29. Vielen DankContinuous Integration in heterogenen Umgebungen | Vassilis Rizopoulos, Carsten Kind 24. November 2011 Folie 29 © Zühlke 2011

×