SlideShare ist ein Scribd-Unternehmen logo
1 von 57
Downloaden Sie, um offline zu lesen
Continuous Integration
mit Hudson
(Noch) fauler werden in 10 Schritten




Dr. Simon Wiest
www.simonwiest.de


Java User Group Stuttgart (JUGS)
11.02.2010, Stuttgart
Gestatten, Hudson.
Agenda




             10 Schritte



         Überblick
Über den Referenten: Dr. Simon Wiest

       Privat: Hudson-Committer                Beruflich: Hudson-Anwender




       Lokalisierung DE                                  Projektleiter




                     Internationalisierung   Java Architekt
Plug-In Entwickler                                                       Coach




         Support & Evangelisierung
                                                       IT-Freiberufler
Was ist kontinuierliche Integration (CI)?
Was ist kontinuierliche Integration (CI)?
                                            orchestriert durch CI-System
Was ist kontinuierliche Integration (CI)?
                                                                    CI-System


                                Reports               Reporting
            Check-Out



                                 Build-
Developer        Repository                     Artefacts   QA      Archive
                                System



             Check-In


                   Subversion    Ant                   JUnit
                   CVS           Maven                 TestNG
                   Perforce      Shell-Skript          CheckStyle
                   Git           Batch-Datei           PMD
                   …             …                     …
Hudson auf einen Blick


  Java-basierte Web-Anwendung
  Initiiert 2006/2007 von
  Kohsuke Kawaguchi (Sun)
  Teil des Projekts Glassfish
  Open Source (MIT Lizenz)
  1,24 Mio. LOC (mit Plugins)
  Zur Zeit 200+ Plug-Ins
  180+ Beitragende
Wer verwendet Hudson (und darf es zugeben)?




Quelle: Kohsuke Kawaguchi, wiki.hudson-ci.org//x/EYQ5Ag
Hudson: Ein Projekt in voller Fahrt.
Agenda




             10 Schritte



         Überblick
1. Installation: Denkbar einfach.


                                    Download als
                                     WAR-Datei
                                     Ca. 26 MB




   WebSphere        Tomcat          Jetty            Winstone
                                                   (Eingebettet)
2. Konfiguration: Komfortabel und übersichtlich.




           Web-Interface                    XML-Konfigurationsdateien

Wann immer möglich, werden Konventionen oder sinnvolle Vorgabewerte
verwendet.
Demo 1


         21/24
3. Build-Systeme: Java – und darüber hinaus!




                                                Primär-Artefakt



                                                Dokumentation




            Eingebaut       Über Plug-Ins
                                                Testergebnisse
              Ant             Gant, Groovy
              Maven           MSBuild, Nant
              Shell Skript    Rake, Ruby
              Windows Batch   und viele mehr!
4. Berichten: Grenzenlos durch Plugins.


                                          Eingebaut
                                            JUnit
                                            TestNG



                                          Über Plug-Ins
                                            CheckStyle
                                            PMD
                                            FindBugs
                                            Simian
                                            u.v.m.
5. Source Code Repositories: Mehr als nur „Auschecken“.

                                       Repository
          Hudson                        Browser




                        Repository
Demo 2


         25/24
6. Benachrichtigungen: Viele Kanäle stehen offen.


                               E-Mail

                               RSS-Feeds

                               Instant Messenger

                               Twitter

                               Plugins für IDEs & Browser

                               Desktop-Gadgets
7. Remote API: Hudson lässt sich einfach automatisieren.


                                                                  HTML,
                   HTML                                         XML, JSON


                                                                HTML, CLI
                                         Hudson




                                                           Status anzeigen   Jobs importieren


Photos (von links): Simon Wiest, Daniel Lindner, violet.net, Hartmut Lang
Demo 3


         28/24
8. Abhängigkeiten zwischen Jobs: Intelligentes Bauen.


                      APP

                                                 Abhängigkeiten
                                                 zwischen
                      GUI            DB          Komponenten
      CORE




                            Test 1

    Compile   Check                              Abhängigkeiten
                                          Pack
                                                 zwischen
                            Test 2
                                                 Build-Schritten


                 Docs
9. Matrix-Builds: Hudson übernimmt die Fleißarbeit.
                      Achse „Betriebssystem“
                    Windows            Linux




          JDK 1.5

  Achse
  „JDK“


          JDK 1.6
10.Verteilte Builds: Skalierbare Leistung mit OS-Vielfalt.


                                              Cloud




                                   Master




                               Mac OS X     Linux     Windows
                                                      virtualisiert
       lokale Builds                  verteilte Builds
Zusammenfassung: Alle 10 Schritte auf einen Blick


  Installation                  Kommunikation

  Konfiguration                 Remote-API/CLI

  Build-Support                 Abhängige Jobs

  Berichte                      Matrix-Builds

  SCM-Integration               Verteilte Builds
Haben wir da nicht etwas vergessen?




                    Bisher hauptsächlich
                    core-Features gezeigt!
Über 200 Plugins erweitern den Core!


                                       Update-Center für
                  Core
                                       einfache Installation
                                       und Aktualisierung
                                       1–2 neue Plugins
                                       pro Woche(!)

             Plugins                   Maven-Tools für
                                       Plugin-Entwicklung
                                       Gute Unterstützung
                                       durch Developer-
                                       Mailingliste
Über 180 Plugins erweitern den Core!


                                       Accurev
                  Core                 Bazaar
                                       BitKeeper
                                       ClearCase
                                       CMVC
                                       CVS
                                       File System SCM
                                       Git
                                       Harvest
                                       Mercurial
                                       Perforce
                                       PVCS
                                       Subversion
                                       Synergy
                                       Team Foundation Server
                     Source Code       Template Project
                     Management        URL
                                       Visual SourceSafe
Über 180 Plugins erweitern den Core!


                                       Ant
                  Core                 Batch File
                                       Buckminster
                                       Gant
                                       Gradle
                                       Grails
                                       Groovy
                                       Kundo
                                       Maven
                                       MSBuild
                                       Nant
                                       PowerShell
                                       Rake
                                       Ruby
                                       SCons
           Build-     Source Code      SCTMExecutor
        Mechanismen   Management       Shell script
                                       Selenium AES
                                       Seleniumhq
                                       (und weitere)
Über 180 Plugins erweitern den Core!


                                       CCCC             NCover
                  Core                 Checkstyle       NUnit
                                       Clover           Plot
                                       Cobertura        PMD Plugin
                                       CppUnit          PureCoverage
                                       Crap4J           Ruby metrics
                                       Doxygen          Selenium AES
                                       DRY              Seleniumhq
                                       Emma             Serenitec
                                       FindBugs         SLOCCount
                                       Gallio           Task Scanner
                                       Gnat             Testability
                                       Grinder          Explorer
                         Berichte      Japex            Violations
                                       Javadoc          Warnings
           Build-     Source Code      JavaNCSS+        WebTest
        Mechanismen   Management       JavaTest Rprt.   Presenter
                                       JUnit
                                       MSTest
Über 180 Plugins erweitern den Core!


                                       Campfire
                    Core               Email
                                       Google Calendar
                                       hudsonTracker
                                       IRC
                                       Jabber
                                       Nabaztag
                                       SameTime
                                       Status Monitor
                                       RSS
                                       TuxDroid
                                       Twitter
      Benachrichtigungen
                           Berichte
           Build-      Source Code
        Mechanismen    Management
Über 180 Plugins erweitern den Core!


                                        FTP Publisher
                    Core                java.net Uploader
                                        SCP
                                        SFEE
                                        SVN




                       Verteilung von
                        Artefakten
      Benachrichtigungen
                           Berichte
           Build-      Source Code
        Mechanismen    Management
Über 180 Plugins erweitern den Core!


                                       Active Directory Mantis
                    Core               Android App      PXE
                                       Audit Trail      Polarion
                                       Backlog          Redmine
                                       Bugzilla         RegEx Email
                                       Cluster mgmt. SFEE
                                       Crowd            Selenium
                                       Firefox Add-on Sonar
                                       Github           Swarm
        Integration mit                Google Calend. Trac
        Drittsystemen Verteilung von   Google Code      Windows Tray
                        Artefakten     Google Desktop
                                       HGCA
      Benachrichtigungen
                           Berichte    Hadoop
                                       iPhone App
           Build-      Source Code     JIRA
        Mechanismen    Management      Java.net
                                       Kagemai
                                       LDAP Email
Über 180 Plugins erweitern den Core!


                                       Hudson Central. Job(Re)Action
                    Core               Hudson Distr. Workspace Clean
                                       Locks and Latches
                                       M2 Extra Steps
                                       M2 Release
                                       Release
                                       Template Project
              „Build Wrapper“          VMware
                                       Xvnc
        Integration mit                ZenTimestamp
        Drittsystemen Verteilung von
                        Artefakten
      Benachrichtigungen
                           Berichte
           Build-      Source Code
        Mechanismen    Management
Über 180 Plugins erweitern den Core!


                                       Build-timeout
                    Core               Change Log History
                                       Claim
                                       Configuration Slicing
               Nützliches              Cygpath
               & Schräges              Emotional Hudson
                                       Google Analytics
              „Build Wrapper“          Green Balls
                                       JBPM
        Integration mit                Locale
        Drittsystemen Verteilung von   Port Allocator
                        Artefakten     Promoted Builds
                                       Radiator View
      Benachrichtigungen
                            Berichte   Retry Failed Builds
                                       Sectioned View
           Build-      Source Code     Sidebar-Link
        Mechanismen    Management      Slave-status
                                       Continuous Integration Game
Plugin „Continuous Integration Game“
Agenda




             10 Schritte



         Überblick
HERUNTERLADEN
EINSETZEN
WEITERSAGEN
MITMACHEN
hudson-ci.org
Und wenn Sie Lust auf mehr haben…




   Vortrag               Buch             Beratung
 Kostenlose Vor-Ort   „CI mit Hudson“   Individuelle Beratung
Einführungsvorträge    dpunkt.verlag    zu Buildmanagement,
 1-2 Mal im Monat       Herbst 2010      Werkzeug-Evaluation




Dr. Wiest – Ingenieurbüro für Softwaretechnik
www.simonwiest.de
Wie funktionieren die Bären?

                                       Mehr dazu im Hudson Wiki
                                    wiki.hudson-ci.org//x/AQA1AQ
        Hudson



                                       Bären

 HTTP/XML


                     CGI
                           Netz

    Monitor-Skript                                      230 V
                                  Steckdosenleiste
Wie funktionieren die Bären?




                                                      cedarsoft GmbH
                                                      Gomaringen




last.fm, London/UK

      Ingenieurbüro Dr. Wiest
                Gomaringen
                                Netzgiganten GmbH
                                          Stuttgart
Empfohlene Nachlese


  Hudson
    Projektseite. hudson.dev.java.net
    JBoss Hudson CI Server. hudson.jboss.org/hudson
    Interview mit Hudson-Initiator Kohsuke Kawaguchi
    blogs.sun.com/glassfishpodcast (Episode #007)

  Continuous Integration
    White Paper von Martin Fowler. www.martinfowler.com
    CI Feature Matrix. confluence.public.thoughtworks.org
    P.M. Duvall: Continuous Integration. 2007.

  Projektautomatisierung (allgemein)
    J. F. Smart: Java Power Tools. 2008.
    M. Hüttermann: Agile Java-Entwicklung in der Praxis. 2007.
Bonus-Folie: Hardware aufrüsten lohnt.




                       CPU                                  Hauptspeicher




                   Festplatte                                   Netzwerk



Quelle: „Schneide Blog“ der Softwareschneiderei GmbH, http://schneide.wordpress.com
4 Strategien für schnellere Builds



                           X
                                     P1        P2     P3   P4
     P1     P2        P3     P4
                                                    Streichen

                                     P1        P2
     P1     P2        P3
                                                         P3   P4

            Streichen                          Staffeln

     #1
                                          M1        M2   M3   M4
       M1        M2    M3     M4

                                          M1
     #2
                                          M2             M4
                       M3*
                                          M3

          Modularisieren                  Parallelisieren
The Joel (Spolsky) Test

1.   Do you use source control?
2.   Can you make a build in one step?
3.   Do you make daily builds?
4.   Do you have a bug database?
5.   Do you fix bugs before writing new code?
6.   Do you have an up-to-date schedule?
7.   Do you have a spec?
8.   Do programmers have quiet working conditions?
9.   Do you use the best tools money can buy?
10. Do you have testers?
11. Do new candidates write code during their interview?
12. Do you do hallway usability testing?

www.joelonsoftware.com, Aug. 2000
www.rockstardemos.de

Weitere ähnliche Inhalte

Was ist angesagt?

Requirements Engineering in agilen Projekten - Flexibilität ist gefordert
Requirements Engineering in agilen Projekten - Flexibilität ist gefordertRequirements Engineering in agilen Projekten - Flexibilität ist gefordert
Requirements Engineering in agilen Projekten - Flexibilität ist gefordertGFU Cyrus AG
 
Automatischer Build mit Maven
Automatischer Build mit MavenAutomatischer Build mit Maven
Automatischer Build mit MavenStefan Scheidt
 
Roadshow: Einstieg in die Hybrid-App Entwicklung mit dem Intel XDK und Apache...
Roadshow: Einstieg in die Hybrid-App Entwicklung mit dem Intel XDK und Apache...Roadshow: Einstieg in die Hybrid-App Entwicklung mit dem Intel XDK und Apache...
Roadshow: Einstieg in die Hybrid-App Entwicklung mit dem Intel XDK und Apache...Gregor Biswanger
 
Docker und Kubernetes Patterns & Anti-Patterns
Docker und Kubernetes Patterns & Anti-PatternsDocker und Kubernetes Patterns & Anti-Patterns
Docker und Kubernetes Patterns & Anti-PatternsQAware GmbH
 
Kuck mal, Node.js! Einstieg für .NET Entwickler mit Visual Studio Code und Ty...
Kuck mal, Node.js! Einstieg für .NET Entwickler mit Visual Studio Code und Ty...Kuck mal, Node.js! Einstieg für .NET Entwickler mit Visual Studio Code und Ty...
Kuck mal, Node.js! Einstieg für .NET Entwickler mit Visual Studio Code und Ty...Gregor Biswanger
 
Docker - Automatisches Deployment für Linux-Instanzen
Docker - Automatisches Deployment für Linux-Instanzen Docker - Automatisches Deployment für Linux-Instanzen
Docker - Automatisches Deployment für Linux-Instanzen B1 Systems GmbH
 
Introduction to JEE
Introduction to JEEIntroduction to JEE
Introduction to JEEguestc44b7b
 
Vagrant, Puppet, Docker für Entwickler und Architekten
Vagrant, Puppet, Docker für Entwickler und ArchitektenVagrant, Puppet, Docker für Entwickler und Architekten
Vagrant, Puppet, Docker für Entwickler und ArchitektenOPITZ CONSULTING Deutschland
 
Aber schnell! Top HTML5 Performance Tipps für Hybrid- und Web-Apps
Aber schnell! Top HTML5 Performance Tipps für Hybrid- und Web-AppsAber schnell! Top HTML5 Performance Tipps für Hybrid- und Web-Apps
Aber schnell! Top HTML5 Performance Tipps für Hybrid- und Web-AppsGregor Biswanger
 
Build Patterns - Patterns und Best Practices für den Build Prozess
Build Patterns - Patterns und Best Practices für den Build ProzessBuild Patterns - Patterns und Best Practices für den Build Prozess
Build Patterns - Patterns und Best Practices für den Build ProzessRalf Abramowitsch
 
Neue Features der Java EE 6
Neue Features der Java EE 6Neue Features der Java EE 6
Neue Features der Java EE 6GFU Cyrus AG
 
Hendrik Jungnitsch: Software verpacken mit Docker
Hendrik Jungnitsch: Software verpacken mit DockerHendrik Jungnitsch: Software verpacken mit Docker
Hendrik Jungnitsch: Software verpacken mit Dockergedoplan
 
Citrix Fit4Cloud Reihe: Citrix XenServer in der Cloud
Citrix Fit4Cloud Reihe: Citrix XenServer in der CloudCitrix Fit4Cloud Reihe: Citrix XenServer in der Cloud
Citrix Fit4Cloud Reihe: Citrix XenServer in der CloudDigicomp Academy AG
 
Das dreckige Dutzend - ADF Migration nach 12c in der IKB - DOAG 2014.
Das dreckige Dutzend - ADF Migration nach 12c in der IKB - DOAG 2014.Das dreckige Dutzend - ADF Migration nach 12c in der IKB - DOAG 2014.
Das dreckige Dutzend - ADF Migration nach 12c in der IKB - DOAG 2014.Torsten Kleiber
 
Von Maven zu Gradle in 45 Minuten
Von Maven zu Gradle in 45 MinutenVon Maven zu Gradle in 45 Minuten
Von Maven zu Gradle in 45 MinutenQAware GmbH
 
Regulatorics: Offside is when the referee whistles - DOAG 2018
Regulatorics: Offside is when the referee whistles - DOAG 2018Regulatorics: Offside is when the referee whistles - DOAG 2018
Regulatorics: Offside is when the referee whistles - DOAG 2018Torsten Kleiber
 
MongoDB: Security-Tipps gegen Hacker
MongoDB: Security-Tipps gegen HackerMongoDB: Security-Tipps gegen Hacker
MongoDB: Security-Tipps gegen HackerGregor Biswanger
 

Was ist angesagt? (20)

Requirements Engineering in agilen Projekten - Flexibilität ist gefordert
Requirements Engineering in agilen Projekten - Flexibilität ist gefordertRequirements Engineering in agilen Projekten - Flexibilität ist gefordert
Requirements Engineering in agilen Projekten - Flexibilität ist gefordert
 
Automatischer Build mit Maven
Automatischer Build mit MavenAutomatischer Build mit Maven
Automatischer Build mit Maven
 
Jenkins Acceleration
Jenkins AccelerationJenkins Acceleration
Jenkins Acceleration
 
Roadshow: Einstieg in die Hybrid-App Entwicklung mit dem Intel XDK und Apache...
Roadshow: Einstieg in die Hybrid-App Entwicklung mit dem Intel XDK und Apache...Roadshow: Einstieg in die Hybrid-App Entwicklung mit dem Intel XDK und Apache...
Roadshow: Einstieg in die Hybrid-App Entwicklung mit dem Intel XDK und Apache...
 
Docker und Kubernetes Patterns & Anti-Patterns
Docker und Kubernetes Patterns & Anti-PatternsDocker und Kubernetes Patterns & Anti-Patterns
Docker und Kubernetes Patterns & Anti-Patterns
 
Kuck mal, Node.js! Einstieg für .NET Entwickler mit Visual Studio Code und Ty...
Kuck mal, Node.js! Einstieg für .NET Entwickler mit Visual Studio Code und Ty...Kuck mal, Node.js! Einstieg für .NET Entwickler mit Visual Studio Code und Ty...
Kuck mal, Node.js! Einstieg für .NET Entwickler mit Visual Studio Code und Ty...
 
Docker - Automatisches Deployment für Linux-Instanzen
Docker - Automatisches Deployment für Linux-Instanzen Docker - Automatisches Deployment für Linux-Instanzen
Docker - Automatisches Deployment für Linux-Instanzen
 
Introduction to JEE
Introduction to JEEIntroduction to JEE
Introduction to JEE
 
Vagrant, Puppet, Docker für Entwickler und Architekten
Vagrant, Puppet, Docker für Entwickler und ArchitektenVagrant, Puppet, Docker für Entwickler und Architekten
Vagrant, Puppet, Docker für Entwickler und Architekten
 
Iks Sonderdruck Eclipse Magazin Mai 2010: Automatisierte SWTBot-Tests
Iks Sonderdruck Eclipse Magazin Mai 2010: Automatisierte SWTBot-TestsIks Sonderdruck Eclipse Magazin Mai 2010: Automatisierte SWTBot-Tests
Iks Sonderdruck Eclipse Magazin Mai 2010: Automatisierte SWTBot-Tests
 
Aber schnell! Top HTML5 Performance Tipps für Hybrid- und Web-Apps
Aber schnell! Top HTML5 Performance Tipps für Hybrid- und Web-AppsAber schnell! Top HTML5 Performance Tipps für Hybrid- und Web-Apps
Aber schnell! Top HTML5 Performance Tipps für Hybrid- und Web-Apps
 
Build Patterns - Patterns und Best Practices für den Build Prozess
Build Patterns - Patterns und Best Practices für den Build ProzessBuild Patterns - Patterns und Best Practices für den Build Prozess
Build Patterns - Patterns und Best Practices für den Build Prozess
 
Neue Features der Java EE 6
Neue Features der Java EE 6Neue Features der Java EE 6
Neue Features der Java EE 6
 
Hendrik Jungnitsch: Software verpacken mit Docker
Hendrik Jungnitsch: Software verpacken mit DockerHendrik Jungnitsch: Software verpacken mit Docker
Hendrik Jungnitsch: Software verpacken mit Docker
 
Ant Maven
Ant MavenAnt Maven
Ant Maven
 
Citrix Fit4Cloud Reihe: Citrix XenServer in der Cloud
Citrix Fit4Cloud Reihe: Citrix XenServer in der CloudCitrix Fit4Cloud Reihe: Citrix XenServer in der Cloud
Citrix Fit4Cloud Reihe: Citrix XenServer in der Cloud
 
Das dreckige Dutzend - ADF Migration nach 12c in der IKB - DOAG 2014.
Das dreckige Dutzend - ADF Migration nach 12c in der IKB - DOAG 2014.Das dreckige Dutzend - ADF Migration nach 12c in der IKB - DOAG 2014.
Das dreckige Dutzend - ADF Migration nach 12c in der IKB - DOAG 2014.
 
Von Maven zu Gradle in 45 Minuten
Von Maven zu Gradle in 45 MinutenVon Maven zu Gradle in 45 Minuten
Von Maven zu Gradle in 45 Minuten
 
Regulatorics: Offside is when the referee whistles - DOAG 2018
Regulatorics: Offside is when the referee whistles - DOAG 2018Regulatorics: Offside is when the referee whistles - DOAG 2018
Regulatorics: Offside is when the referee whistles - DOAG 2018
 
MongoDB: Security-Tipps gegen Hacker
MongoDB: Security-Tipps gegen HackerMongoDB: Security-Tipps gegen Hacker
MongoDB: Security-Tipps gegen Hacker
 

Andere mochten auch

Continuous Integration / Deployment mit Jenkins CI
Continuous Integration / Deployment mit Jenkins CI Continuous Integration / Deployment mit Jenkins CI
Continuous Integration / Deployment mit Jenkins CI Florian Bosselmann
 
Continuous Integration mit Jenkins
Continuous Integration mit JenkinsContinuous Integration mit Jenkins
Continuous Integration mit JenkinsStephan Schmidt
 
Statische Code-Analyse mit Python
Statische Code-Analyse mit PythonStatische Code-Analyse mit Python
Statische Code-Analyse mit PythonTimo Stollenwerk
 
Cloud Computing - Wie grün ist die Wolke?
Cloud Computing - Wie grün ist die Wolke?Cloud Computing - Wie grün ist die Wolke?
Cloud Computing - Wie grün ist die Wolke?Michael Pauly
 
Continuous Delivery @ FriendScout24 | Webinale 2012
Continuous Delivery @ FriendScout24 | Webinale 2012Continuous Delivery @ FriendScout24 | Webinale 2012
Continuous Delivery @ FriendScout24 | Webinale 2012Michael Maretzke
 
CodeTalks Vortrag: Automatisierung mit Ansible & Jenkins @ LeanIX Enterprise ...
CodeTalks Vortrag: Automatisierung mit Ansible & Jenkins @ LeanIX Enterprise ...CodeTalks Vortrag: Automatisierung mit Ansible & Jenkins @ LeanIX Enterprise ...
CodeTalks Vortrag: Automatisierung mit Ansible & Jenkins @ LeanIX Enterprise ...LeanIX GmbH
 
Continuous integration eine Einführung für Unkundige
Continuous integration   eine Einführung für UnkundigeContinuous integration   eine Einführung für Unkundige
Continuous integration eine Einführung für Unkundigeabuwipp
 
DevDay 2016: Peter Lehmann - Testautomatisierungsframework Xeta
DevDay 2016: Peter Lehmann - Testautomatisierungsframework XetaDevDay 2016: Peter Lehmann - Testautomatisierungsframework Xeta
DevDay 2016: Peter Lehmann - Testautomatisierungsframework XetaDevDay Dresden
 
Webinar 4 Server in der Cloud – die AWS Compute Dienste
Webinar 4 Server in der Cloud – die AWS Compute DiensteWebinar 4 Server in der Cloud – die AWS Compute Dienste
Webinar 4 Server in der Cloud – die AWS Compute DiensteAWS Germany
 
Einführung in AWS - Übersicht über die wichtigsten Services
Einführung in AWS - Übersicht über die wichtigsten Services Einführung in AWS - Übersicht über die wichtigsten Services
Einführung in AWS - Übersicht über die wichtigsten Services AWS Germany
 
Webinar SharePoint auf AWS
Webinar SharePoint auf AWSWebinar SharePoint auf AWS
Webinar SharePoint auf AWSAWS Germany
 
Unit testing - Überblick für (Projekt) Manager
Unit testing - Überblick für (Projekt) ManagerUnit testing - Überblick für (Projekt) Manager
Unit testing - Überblick für (Projekt) ManagerFrank Sons
 
Agile Entwicklungsumgebung mit DVCS, Jenkins und Trello - Agile Bodensee Konf...
Agile Entwicklungsumgebung mit DVCS, Jenkins und Trello - Agile Bodensee Konf...Agile Entwicklungsumgebung mit DVCS, Jenkins und Trello - Agile Bodensee Konf...
Agile Entwicklungsumgebung mit DVCS, Jenkins und Trello - Agile Bodensee Konf...Jürgen Gutsch
 
Quo vadis DevOps
Quo vadis DevOpsQuo vadis DevOps
Quo vadis DevOpscusy GmbH
 
Innovacion javier cortes
Innovacion javier cortesInnovacion javier cortes
Innovacion javier cortesmanolobarahona
 
Kurzvortrag LAG Gedenkstätten RLP
Kurzvortrag LAG Gedenkstätten RLPKurzvortrag LAG Gedenkstätten RLP
Kurzvortrag LAG Gedenkstätten RLPDaniel Bernsen
 
Las redes de la computadoras
Las redes de la computadorasLas redes de la computadoras
Las redes de la computadorased colcha
 
Computación
ComputaciónComputación
Computaciónnatie
 
Pobreza en chile
Pobreza en chilePobreza en chile
Pobreza en chilecarbrito
 

Andere mochten auch (20)

Continuous Integration / Deployment mit Jenkins CI
Continuous Integration / Deployment mit Jenkins CI Continuous Integration / Deployment mit Jenkins CI
Continuous Integration / Deployment mit Jenkins CI
 
Continuous Integration mit Jenkins
Continuous Integration mit JenkinsContinuous Integration mit Jenkins
Continuous Integration mit Jenkins
 
Statische Code-Analyse mit Python
Statische Code-Analyse mit PythonStatische Code-Analyse mit Python
Statische Code-Analyse mit Python
 
Cloud Computing - Wie grün ist die Wolke?
Cloud Computing - Wie grün ist die Wolke?Cloud Computing - Wie grün ist die Wolke?
Cloud Computing - Wie grün ist die Wolke?
 
Continuous Delivery @ FriendScout24 | Webinale 2012
Continuous Delivery @ FriendScout24 | Webinale 2012Continuous Delivery @ FriendScout24 | Webinale 2012
Continuous Delivery @ FriendScout24 | Webinale 2012
 
CodeTalks Vortrag: Automatisierung mit Ansible & Jenkins @ LeanIX Enterprise ...
CodeTalks Vortrag: Automatisierung mit Ansible & Jenkins @ LeanIX Enterprise ...CodeTalks Vortrag: Automatisierung mit Ansible & Jenkins @ LeanIX Enterprise ...
CodeTalks Vortrag: Automatisierung mit Ansible & Jenkins @ LeanIX Enterprise ...
 
Continuous integration eine Einführung für Unkundige
Continuous integration   eine Einführung für UnkundigeContinuous integration   eine Einführung für Unkundige
Continuous integration eine Einführung für Unkundige
 
DevDay 2016: Peter Lehmann - Testautomatisierungsframework Xeta
DevDay 2016: Peter Lehmann - Testautomatisierungsframework XetaDevDay 2016: Peter Lehmann - Testautomatisierungsframework Xeta
DevDay 2016: Peter Lehmann - Testautomatisierungsframework Xeta
 
Webinar 4 Server in der Cloud – die AWS Compute Dienste
Webinar 4 Server in der Cloud – die AWS Compute DiensteWebinar 4 Server in der Cloud – die AWS Compute Dienste
Webinar 4 Server in der Cloud – die AWS Compute Dienste
 
Einführung in AWS - Übersicht über die wichtigsten Services
Einführung in AWS - Übersicht über die wichtigsten Services Einführung in AWS - Übersicht über die wichtigsten Services
Einführung in AWS - Übersicht über die wichtigsten Services
 
Webinar SharePoint auf AWS
Webinar SharePoint auf AWSWebinar SharePoint auf AWS
Webinar SharePoint auf AWS
 
Unit testing - Überblick für (Projekt) Manager
Unit testing - Überblick für (Projekt) ManagerUnit testing - Überblick für (Projekt) Manager
Unit testing - Überblick für (Projekt) Manager
 
Agile Entwicklungsumgebung mit DVCS, Jenkins und Trello - Agile Bodensee Konf...
Agile Entwicklungsumgebung mit DVCS, Jenkins und Trello - Agile Bodensee Konf...Agile Entwicklungsumgebung mit DVCS, Jenkins und Trello - Agile Bodensee Konf...
Agile Entwicklungsumgebung mit DVCS, Jenkins und Trello - Agile Bodensee Konf...
 
Quo vadis DevOps
Quo vadis DevOpsQuo vadis DevOps
Quo vadis DevOps
 
Frauen
FrauenFrauen
Frauen
 
Innovacion javier cortes
Innovacion javier cortesInnovacion javier cortes
Innovacion javier cortes
 
Kurzvortrag LAG Gedenkstätten RLP
Kurzvortrag LAG Gedenkstätten RLPKurzvortrag LAG Gedenkstätten RLP
Kurzvortrag LAG Gedenkstätten RLP
 
Las redes de la computadoras
Las redes de la computadorasLas redes de la computadoras
Las redes de la computadoras
 
Computación
ComputaciónComputación
Computación
 
Pobreza en chile
Pobreza en chilePobreza en chile
Pobreza en chile
 

Ähnlich wie Continuous Integration mit Hudson (JUG Stuttgart, 11.02.2010)

CI mit Hudson/Jenkins
CI mit Hudson/JenkinsCI mit Hudson/Jenkins
CI mit Hudson/JenkinsIngo Reinhart
 
Jalimo Slides Linuxtag2007
Jalimo Slides Linuxtag2007Jalimo Slides Linuxtag2007
Jalimo Slides Linuxtag2007smancke
 
Google Web Toolkit
Google Web ToolkitGoogle Web Toolkit
Google Web ToolkitTorben Brodt
 
JAX 2015 - Continuous Integration mit Java & Javascript
JAX 2015 - Continuous Integration mit Java & JavascriptJAX 2015 - Continuous Integration mit Java & Javascript
JAX 2015 - Continuous Integration mit Java & Javascriptdzuvic
 
Testautomatisierung mit CodedUI für Fortgeschrittende
Testautomatisierung mit CodedUI für FortgeschrittendeTestautomatisierung mit CodedUI für Fortgeschrittende
Testautomatisierung mit CodedUI für FortgeschrittendeNico Orschel
 
Steinzeit war gestern! Wege der Cloud-nativen Evolution.
Steinzeit war gestern! Wege der Cloud-nativen Evolution.Steinzeit war gestern! Wege der Cloud-nativen Evolution.
Steinzeit war gestern! Wege der Cloud-nativen Evolution.QAware GmbH
 
Slides (2) zu Teil 2 der Veranstaltungsreihe Anwendungsentwicklung mit Volt M...
Slides (2) zu Teil 2 der Veranstaltungsreihe Anwendungsentwicklung mit Volt M...Slides (2) zu Teil 2 der Veranstaltungsreihe Anwendungsentwicklung mit Volt M...
Slides (2) zu Teil 2 der Veranstaltungsreihe Anwendungsentwicklung mit Volt M...DNUG e.V.
 
Groupware Linuxtag 2008 Cb
Groupware Linuxtag 2008 CbGroupware Linuxtag 2008 Cb
Groupware Linuxtag 2008 Cbbofh42
 
C/ C++ for Notes & Domino Developers
C/ C++ for Notes & Domino DevelopersC/ C++ for Notes & Domino Developers
C/ C++ for Notes & Domino DevelopersUlrich Krause
 
.NET Core, .NET Standard & ASP.NET Core - Eine Übersicht
.NET Core, .NET Standard & ASP.NET Core - Eine Übersicht.NET Core, .NET Standard & ASP.NET Core - Eine Übersicht
.NET Core, .NET Standard & ASP.NET Core - Eine ÜbersichtJürgen Gutsch
 
Slides zum Impulsreferat: HCL UDP - DNUG Stammtisch Salzburg
Slides zum Impulsreferat: HCL UDP - DNUG Stammtisch SalzburgSlides zum Impulsreferat: HCL UDP - DNUG Stammtisch Salzburg
Slides zum Impulsreferat: HCL UDP - DNUG Stammtisch SalzburgDNUG e.V.
 
Continuous Delivery für Cloud-native Anwendungen auf Cloud-nativer Infrastruktur
Continuous Delivery für Cloud-native Anwendungen auf Cloud-nativer InfrastrukturContinuous Delivery für Cloud-native Anwendungen auf Cloud-nativer Infrastruktur
Continuous Delivery für Cloud-native Anwendungen auf Cloud-nativer InfrastrukturQAware GmbH
 
Architektur und Automation als Enabler für DevOps
Architektur und Automation als Enabler für DevOpsArchitektur und Automation als Enabler für DevOps
Architektur und Automation als Enabler für DevOpsmatfsw
 
Vortragsreihe Dortmund: Unified Development Environments
Vortragsreihe Dortmund: Unified Development EnvironmentsVortragsreihe Dortmund: Unified Development Environments
Vortragsreihe Dortmund: Unified Development EnvironmentsThorsten Kamann
 

Ähnlich wie Continuous Integration mit Hudson (JUG Stuttgart, 11.02.2010) (20)

CI mit Hudson/Jenkins
CI mit Hudson/JenkinsCI mit Hudson/Jenkins
CI mit Hudson/Jenkins
 
Jalimo Slides Linuxtag2007
Jalimo Slides Linuxtag2007Jalimo Slides Linuxtag2007
Jalimo Slides Linuxtag2007
 
Google Web Toolkit
Google Web ToolkitGoogle Web Toolkit
Google Web Toolkit
 
JAX 2015 - Continuous Integration mit Java & Javascript
JAX 2015 - Continuous Integration mit Java & JavascriptJAX 2015 - Continuous Integration mit Java & Javascript
JAX 2015 - Continuous Integration mit Java & Javascript
 
Testautomatisierung mit CodedUI für Fortgeschrittende
Testautomatisierung mit CodedUI für FortgeschrittendeTestautomatisierung mit CodedUI für Fortgeschrittende
Testautomatisierung mit CodedUI für Fortgeschrittende
 
Ec2009 Templates
Ec2009 TemplatesEc2009 Templates
Ec2009 Templates
 
Steinzeit war gestern! Wege der Cloud-nativen Evolution.
Steinzeit war gestern! Wege der Cloud-nativen Evolution.Steinzeit war gestern! Wege der Cloud-nativen Evolution.
Steinzeit war gestern! Wege der Cloud-nativen Evolution.
 
Softwaretests: Werkzeuge zur Automatisierung
Softwaretests: Werkzeuge zur AutomatisierungSoftwaretests: Werkzeuge zur Automatisierung
Softwaretests: Werkzeuge zur Automatisierung
 
Continuous Delivery
Continuous DeliveryContinuous Delivery
Continuous Delivery
 
Deployment 2.0
Deployment 2.0Deployment 2.0
Deployment 2.0
 
Slides (2) zu Teil 2 der Veranstaltungsreihe Anwendungsentwicklung mit Volt M...
Slides (2) zu Teil 2 der Veranstaltungsreihe Anwendungsentwicklung mit Volt M...Slides (2) zu Teil 2 der Veranstaltungsreihe Anwendungsentwicklung mit Volt M...
Slides (2) zu Teil 2 der Veranstaltungsreihe Anwendungsentwicklung mit Volt M...
 
Groupware Linuxtag 2008 Cb
Groupware Linuxtag 2008 CbGroupware Linuxtag 2008 Cb
Groupware Linuxtag 2008 Cb
 
C/ C++ for Notes & Domino Developers
C/ C++ for Notes & Domino DevelopersC/ C++ for Notes & Domino Developers
C/ C++ for Notes & Domino Developers
 
.NET Core, .NET Standard & ASP.NET Core - Eine Übersicht
.NET Core, .NET Standard & ASP.NET Core - Eine Übersicht.NET Core, .NET Standard & ASP.NET Core - Eine Übersicht
.NET Core, .NET Standard & ASP.NET Core - Eine Übersicht
 
Whitecoast lcty12 x_pages
Whitecoast lcty12 x_pagesWhitecoast lcty12 x_pages
Whitecoast lcty12 x_pages
 
TDD für Testmuffel
TDD für TestmuffelTDD für Testmuffel
TDD für Testmuffel
 
Slides zum Impulsreferat: HCL UDP - DNUG Stammtisch Salzburg
Slides zum Impulsreferat: HCL UDP - DNUG Stammtisch SalzburgSlides zum Impulsreferat: HCL UDP - DNUG Stammtisch Salzburg
Slides zum Impulsreferat: HCL UDP - DNUG Stammtisch Salzburg
 
Continuous Delivery für Cloud-native Anwendungen auf Cloud-nativer Infrastruktur
Continuous Delivery für Cloud-native Anwendungen auf Cloud-nativer InfrastrukturContinuous Delivery für Cloud-native Anwendungen auf Cloud-nativer Infrastruktur
Continuous Delivery für Cloud-native Anwendungen auf Cloud-nativer Infrastruktur
 
Architektur und Automation als Enabler für DevOps
Architektur und Automation als Enabler für DevOpsArchitektur und Automation als Enabler für DevOps
Architektur und Automation als Enabler für DevOps
 
Vortragsreihe Dortmund: Unified Development Environments
Vortragsreihe Dortmund: Unified Development EnvironmentsVortragsreihe Dortmund: Unified Development Environments
Vortragsreihe Dortmund: Unified Development Environments
 

Continuous Integration mit Hudson (JUG Stuttgart, 11.02.2010)

  • 1. Continuous Integration mit Hudson (Noch) fauler werden in 10 Schritten Dr. Simon Wiest www.simonwiest.de Java User Group Stuttgart (JUGS) 11.02.2010, Stuttgart
  • 2.
  • 3.
  • 4.
  • 5.
  • 6.
  • 7.
  • 8.
  • 10. Agenda 10 Schritte Überblick
  • 11. Über den Referenten: Dr. Simon Wiest Privat: Hudson-Committer Beruflich: Hudson-Anwender Lokalisierung DE Projektleiter Internationalisierung Java Architekt Plug-In Entwickler Coach Support & Evangelisierung IT-Freiberufler
  • 12. Was ist kontinuierliche Integration (CI)?
  • 13. Was ist kontinuierliche Integration (CI)? orchestriert durch CI-System
  • 14. Was ist kontinuierliche Integration (CI)? CI-System Reports Reporting Check-Out Build- Developer Repository Artefacts QA Archive System Check-In Subversion Ant JUnit CVS Maven TestNG Perforce Shell-Skript CheckStyle Git Batch-Datei PMD … … …
  • 15. Hudson auf einen Blick Java-basierte Web-Anwendung Initiiert 2006/2007 von Kohsuke Kawaguchi (Sun) Teil des Projekts Glassfish Open Source (MIT Lizenz) 1,24 Mio. LOC (mit Plugins) Zur Zeit 200+ Plug-Ins 180+ Beitragende
  • 16. Wer verwendet Hudson (und darf es zugeben)? Quelle: Kohsuke Kawaguchi, wiki.hudson-ci.org//x/EYQ5Ag
  • 17. Hudson: Ein Projekt in voller Fahrt.
  • 18. Agenda 10 Schritte Überblick
  • 19. 1. Installation: Denkbar einfach. Download als WAR-Datei Ca. 26 MB WebSphere Tomcat Jetty Winstone (Eingebettet)
  • 20. 2. Konfiguration: Komfortabel und übersichtlich. Web-Interface XML-Konfigurationsdateien Wann immer möglich, werden Konventionen oder sinnvolle Vorgabewerte verwendet.
  • 21. Demo 1 21/24
  • 22. 3. Build-Systeme: Java – und darüber hinaus! Primär-Artefakt Dokumentation Eingebaut Über Plug-Ins Testergebnisse Ant Gant, Groovy Maven MSBuild, Nant Shell Skript Rake, Ruby Windows Batch und viele mehr!
  • 23. 4. Berichten: Grenzenlos durch Plugins. Eingebaut JUnit TestNG Über Plug-Ins CheckStyle PMD FindBugs Simian u.v.m.
  • 24. 5. Source Code Repositories: Mehr als nur „Auschecken“. Repository Hudson Browser Repository
  • 25. Demo 2 25/24
  • 26. 6. Benachrichtigungen: Viele Kanäle stehen offen. E-Mail RSS-Feeds Instant Messenger Twitter Plugins für IDEs & Browser Desktop-Gadgets
  • 27. 7. Remote API: Hudson lässt sich einfach automatisieren. HTML, HTML XML, JSON HTML, CLI Hudson Status anzeigen Jobs importieren Photos (von links): Simon Wiest, Daniel Lindner, violet.net, Hartmut Lang
  • 28. Demo 3 28/24
  • 29. 8. Abhängigkeiten zwischen Jobs: Intelligentes Bauen. APP Abhängigkeiten zwischen GUI DB Komponenten CORE Test 1 Compile Check Abhängigkeiten Pack zwischen Test 2 Build-Schritten Docs
  • 30. 9. Matrix-Builds: Hudson übernimmt die Fleißarbeit. Achse „Betriebssystem“ Windows Linux JDK 1.5 Achse „JDK“ JDK 1.6
  • 31. 10.Verteilte Builds: Skalierbare Leistung mit OS-Vielfalt. Cloud Master Mac OS X Linux Windows virtualisiert lokale Builds verteilte Builds
  • 32. Zusammenfassung: Alle 10 Schritte auf einen Blick Installation Kommunikation Konfiguration Remote-API/CLI Build-Support Abhängige Jobs Berichte Matrix-Builds SCM-Integration Verteilte Builds
  • 33. Haben wir da nicht etwas vergessen? Bisher hauptsächlich core-Features gezeigt!
  • 34. Über 200 Plugins erweitern den Core! Update-Center für Core einfache Installation und Aktualisierung 1–2 neue Plugins pro Woche(!) Plugins Maven-Tools für Plugin-Entwicklung Gute Unterstützung durch Developer- Mailingliste
  • 35. Über 180 Plugins erweitern den Core! Accurev Core Bazaar BitKeeper ClearCase CMVC CVS File System SCM Git Harvest Mercurial Perforce PVCS Subversion Synergy Team Foundation Server Source Code Template Project Management URL Visual SourceSafe
  • 36. Über 180 Plugins erweitern den Core! Ant Core Batch File Buckminster Gant Gradle Grails Groovy Kundo Maven MSBuild Nant PowerShell Rake Ruby SCons Build- Source Code SCTMExecutor Mechanismen Management Shell script Selenium AES Seleniumhq (und weitere)
  • 37. Über 180 Plugins erweitern den Core! CCCC NCover Core Checkstyle NUnit Clover Plot Cobertura PMD Plugin CppUnit PureCoverage Crap4J Ruby metrics Doxygen Selenium AES DRY Seleniumhq Emma Serenitec FindBugs SLOCCount Gallio Task Scanner Gnat Testability Grinder Explorer Berichte Japex Violations Javadoc Warnings Build- Source Code JavaNCSS+ WebTest Mechanismen Management JavaTest Rprt. Presenter JUnit MSTest
  • 38. Über 180 Plugins erweitern den Core! Campfire Core Email Google Calendar hudsonTracker IRC Jabber Nabaztag SameTime Status Monitor RSS TuxDroid Twitter Benachrichtigungen Berichte Build- Source Code Mechanismen Management
  • 39. Über 180 Plugins erweitern den Core! FTP Publisher Core java.net Uploader SCP SFEE SVN Verteilung von Artefakten Benachrichtigungen Berichte Build- Source Code Mechanismen Management
  • 40. Über 180 Plugins erweitern den Core! Active Directory Mantis Core Android App PXE Audit Trail Polarion Backlog Redmine Bugzilla RegEx Email Cluster mgmt. SFEE Crowd Selenium Firefox Add-on Sonar Github Swarm Integration mit Google Calend. Trac Drittsystemen Verteilung von Google Code Windows Tray Artefakten Google Desktop HGCA Benachrichtigungen Berichte Hadoop iPhone App Build- Source Code JIRA Mechanismen Management Java.net Kagemai LDAP Email
  • 41. Über 180 Plugins erweitern den Core! Hudson Central. Job(Re)Action Core Hudson Distr. Workspace Clean Locks and Latches M2 Extra Steps M2 Release Release Template Project „Build Wrapper“ VMware Xvnc Integration mit ZenTimestamp Drittsystemen Verteilung von Artefakten Benachrichtigungen Berichte Build- Source Code Mechanismen Management
  • 42. Über 180 Plugins erweitern den Core! Build-timeout Core Change Log History Claim Configuration Slicing Nützliches Cygpath & Schräges Emotional Hudson Google Analytics „Build Wrapper“ Green Balls JBPM Integration mit Locale Drittsystemen Verteilung von Port Allocator Artefakten Promoted Builds Radiator View Benachrichtigungen Berichte Retry Failed Builds Sectioned View Build- Source Code Sidebar-Link Mechanismen Management Slave-status Continuous Integration Game
  • 44. Agenda 10 Schritte Überblick
  • 49. hudson-ci.org Und wenn Sie Lust auf mehr haben… Vortrag Buch Beratung Kostenlose Vor-Ort „CI mit Hudson“ Individuelle Beratung Einführungsvorträge dpunkt.verlag zu Buildmanagement, 1-2 Mal im Monat Herbst 2010 Werkzeug-Evaluation Dr. Wiest – Ingenieurbüro für Softwaretechnik www.simonwiest.de
  • 50.
  • 51. Wie funktionieren die Bären? Mehr dazu im Hudson Wiki wiki.hudson-ci.org//x/AQA1AQ Hudson Bären HTTP/XML CGI Netz Monitor-Skript 230 V Steckdosenleiste
  • 52. Wie funktionieren die Bären? cedarsoft GmbH Gomaringen last.fm, London/UK Ingenieurbüro Dr. Wiest Gomaringen Netzgiganten GmbH Stuttgart
  • 53. Empfohlene Nachlese Hudson Projektseite. hudson.dev.java.net JBoss Hudson CI Server. hudson.jboss.org/hudson Interview mit Hudson-Initiator Kohsuke Kawaguchi blogs.sun.com/glassfishpodcast (Episode #007) Continuous Integration White Paper von Martin Fowler. www.martinfowler.com CI Feature Matrix. confluence.public.thoughtworks.org P.M. Duvall: Continuous Integration. 2007. Projektautomatisierung (allgemein) J. F. Smart: Java Power Tools. 2008. M. Hüttermann: Agile Java-Entwicklung in der Praxis. 2007.
  • 54. Bonus-Folie: Hardware aufrüsten lohnt. CPU Hauptspeicher Festplatte Netzwerk Quelle: „Schneide Blog“ der Softwareschneiderei GmbH, http://schneide.wordpress.com
  • 55. 4 Strategien für schnellere Builds X P1 P2 P3 P4 P1 P2 P3 P4 Streichen P1 P2 P1 P2 P3 P3 P4 Streichen Staffeln #1 M1 M2 M3 M4 M1 M2 M3 M4 M1 #2 M2 M4 M3* M3 Modularisieren Parallelisieren
  • 56. The Joel (Spolsky) Test 1. Do you use source control? 2. Can you make a build in one step? 3. Do you make daily builds? 4. Do you have a bug database? 5. Do you fix bugs before writing new code? 6. Do you have an up-to-date schedule? 7. Do you have a spec? 8. Do programmers have quiet working conditions? 9. Do you use the best tools money can buy? 10. Do you have testers? 11. Do new candidates write code during their interview? 12. Do you do hallway usability testing? www.joelonsoftware.com, Aug. 2000