Buildserver: Buildbot und Jenkins - Scientific Computing ... · Einleitung Buildserver Jenkins...

23
Einleitung Buildserver Jenkins Buildbot Travis CI Zusammenfassung Literatur Buildserver: Buildbot und Jenkins Dennis Markmann Arbeitsbereich Wissenschaftliches Rechnen Fachbereich Informatik Fakultät für Mathematik, Informatik und Naturwissenschaften Universität Hamburg 24.11.2016 Dennis Markmann Buildserver: Buildbot und Jenkins 1 / 23

Transcript of Buildserver: Buildbot und Jenkins - Scientific Computing ... · Einleitung Buildserver Jenkins...

Einleitung Buildserver Jenkins Buildbot Travis CI Zusammenfassung Literatur

Buildserver: Buildbot und Jenkins

Dennis Markmann

Arbeitsbereich Wissenschaftliches RechnenFachbereich Informatik

Fakultät für Mathematik, Informatik und NaturwissenschaftenUniversität Hamburg

24.11.2016

Dennis Markmann Buildserver: Buildbot und Jenkins 1 / 23

Einleitung Buildserver Jenkins Buildbot Travis CI Zusammenfassung Literatur

Gliederung (Agenda)

1 Einleitung

2 Buildserver

3 Jenkins

4 Buildbot

5 Travis CI

6 Zusammenfassung

7 LiteraturDennis Markmann Buildserver: Buildbot und Jenkins 2 / 23

Einleitung Buildserver Jenkins Buildbot Travis CI Zusammenfassung Literatur

Einleitung

Was macht ein Buildserver?

erstellt Software Buildskompiliert Codelegt ein Ziel festpackt die Anwendungentfernt generierte Dateienführt Tests durch

Dennis Markmann Buildserver: Buildbot und Jenkins 3 / 23

Einleitung Buildserver Jenkins Buildbot Travis CI Zusammenfassung Literatur

Buildserver

Abbildung: Buildserver Übersicht [01]

Dennis Markmann Buildserver: Buildbot und Jenkins 4 / 23

Einleitung Buildserver Jenkins Buildbot Travis CI Zusammenfassung Literatur

Vorteile von Buildservern

Automatisierung

Zentralisierung

Reporting

Dennis Markmann Buildserver: Buildbot und Jenkins 5 / 23

Einleitung Buildserver Jenkins Buildbot Travis CI Zusammenfassung Literatur

Continuous Build / Integration / Delivery

Abbildung: Vergleich der CI Stufen [02]

Dennis Markmann Buildserver: Buildbot und Jenkins 6 / 23

Einleitung Buildserver Jenkins Buildbot Travis CI Zusammenfassung Literatur

Jenkins

ehemals HudsonErscheinungsjahr: 2011Programmiersprache: Javafunktioniert out of the boxriesige Plugin Auswahl (370+)https://jenkins.io/

Abbildung: Jenkins Logo [03]

Dennis Markmann Buildserver: Buildbot und Jenkins 7 / 23

Einleitung Buildserver Jenkins Buildbot Travis CI Zusammenfassung Literatur

Arbeitsweise

Abbildung: Buildserver Arbeitsweise [04]

Dennis Markmann Buildserver: Buildbot und Jenkins 8 / 23

Einleitung Buildserver Jenkins Buildbot Travis CI Zusammenfassung Literatur

Realbeispiel Yahoo (2013)

1 Master3 backup Master50 Slaves8000 Builds pro Tag96GB RAM2 x Xeon E5645 2.40GHz, 4.80GT QPI (12 cores, 24 threads)

Dennis Markmann Buildserver: Buildbot und Jenkins 9 / 23

Einleitung Buildserver Jenkins Buildbot Travis CI Zusammenfassung Literatur

Übersicht

Abbildung: Jenkins Übersicht [05]

Dennis Markmann Buildserver: Buildbot und Jenkins 10 / 23

Einleitung Buildserver Jenkins Buildbot Travis CI Zusammenfassung Literatur

UI Erweiterungen

Abbildung: Build-Ampel [06]

Abbildung: Android / IPhone App [07]

Dennis Markmann Buildserver: Buildbot und Jenkins 11 / 23

Einleitung Buildserver Jenkins Buildbot Travis CI Zusammenfassung Literatur

UI Erweiterungen

Abbildung: Tech-Dashboard [08]

Dennis Markmann Buildserver: Buildbot und Jenkins 12 / 23

Einleitung Buildserver Jenkins Buildbot Travis CI Zusammenfassung Literatur

Weitere wichtige Plugins

ClaimBuild timesBuild PipelineJDK Parameter PluginParameterized Trigger Plugin

Dennis Markmann Buildserver: Buildbot und Jenkins 13 / 23

Einleitung Buildserver Jenkins Buildbot Travis CI Zusammenfassung Literatur

Manueller Versionsbuild

Abbildung: Manueller Build [09]

Dennis Markmann Buildserver: Buildbot und Jenkins 14 / 23

Einleitung Buildserver Jenkins Buildbot Travis CI Zusammenfassung Literatur

Statistiken

BuildzeitMetriken (z.B. Warnings, FinBugs etc.)Test Abdeckung

Abbildung: Build Statistik [10]

Dennis Markmann Buildserver: Buildbot und Jenkins 15 / 23

Einleitung Buildserver Jenkins Buildbot Travis CI Zusammenfassung Literatur

Buildbot

Erscheinungsjahr: 2003Programmiersprache: Pythonläuft in Containerhttps://buildbot.net/

Abbildung: Buildbot Logo [11]Dennis Markmann Buildserver: Buildbot und Jenkins 16 / 23

Einleitung Buildserver Jenkins Buildbot Travis CI Zusammenfassung Literatur

Buildbot

Abbildung: Buildbot Übersicht [12]Dennis Markmann Buildserver: Buildbot und Jenkins 17 / 23

Einleitung Buildserver Jenkins Buildbot Travis CI Zusammenfassung Literatur

Vergleich

Jenkins Buildbotsimpel und übersichtlich komplizierte Konfigurationbringt viele Funktionen direkt mit out of the box nicht sehr mächtigContinuous Delivery fähig im Standard nicht unterstütztAnt & Maven Support -riesige Plugin Auswahl an Anforderungen ausrichtbar- vollständige Python Unterstützung

Dennis Markmann Buildserver: Buildbot und Jenkins 18 / 23

Einleitung Buildserver Jenkins Buildbot Travis CI Zusammenfassung Literatur

Travis CI

Erscheinungsjahr: 2011GitHub Verknüpfungsehr schnell einzurichtenhttps://travis-ci.org

Abbildung: Travis CI Logo [13]

Dennis Markmann Buildserver: Buildbot und Jenkins 19 / 23

Einleitung Buildserver Jenkins Buildbot Travis CI Zusammenfassung Literatur

Zusammenfassung

Buildserverwichtiger Bestandteil professioneller Softwareentwicklungverringert den Aufwand innerhalb des Teamshilft bei der Erhaltung der Softwarequalität

Jenkinsprominenter Vertretereinfach und stark erweiterbar

Buildboteher eine Speziallösungextrem personalisierbar mit Aufwand

Travis CIsehr schnell und einfach einzurichtentoll für kleine GitHub Projekte

Dennis Markmann Buildserver: Buildbot und Jenkins 20 / 23

Einleitung Buildserver Jenkins Buildbot Travis CI Zusammenfassung Literatur

Literatur I

[01] Buildserver Übersicht. https://1.f.ix.de/developer/imgs/06/7/6/5/7/0/1/c282a21ff5c8369a.png

[02] Vergleich der CI Stufen. http://www.rightscale.com/blog/cloud-management-best-practices/continuous-integration-and-delivery-cloud-how-rightscale-does-it

[03] Jenkins Logo. https://jenkins.io/images/226px-Jenkins_logo.svg.png

[04] Buildserver Arbeitsweise.https://buildbot.net/img/overview.png

[05] Jenkins Übersicht. https://circleci.com/docs/assets/img/docs/jenkins-ui.png

Dennis Markmann Buildserver: Buildbot und Jenkins 21 / 23

Einleitung Buildserver Jenkins Buildbot Travis CI Zusammenfassung Literatur

Literatur II

[06] Build-Ampel. https://blog.codecentric.de/files/2013/07/polling.png

[07] Android / IPhone App. https://lh5.ggpht.com/ccy5Pcv74AqTTMqELsdjcHeRcFP2LLtCBYsok0y05R5oU0iQ2sBykHR_QMcqbeezoMY=h900

[08] Tech-Dashboard.https://wiki.jenkins-ci.org/download/attachments/68387008/2_Three_columns_view.png

[09] Manueller Build. https://wiki.jenkins-ci.org/download/attachments/67569147/example_screenshot.png?version=1&modificationDate=1370959572000

Dennis Markmann Buildserver: Buildbot und Jenkins 22 / 23

Einleitung Buildserver Jenkins Buildbot Travis CI Zusammenfassung Literatur

Literatur III

[10] Build Statistik. http://devops.com/wp-content/uploads/2015/01/global-build-stats.jpg

[11] Buildbot Logo. https://buildbot.net/img/nut.png

[12] Buildbot Übersicht.http://www.codeproject.com/Articles/438020/Buildbot-Part-II-Running-automated-build-and-tests

[13] Travis CI Logo.https://dka575ofm4ao0.cloudfront.net/pages-hero_covers/normal/27/open-uri20130615-7532-1ele51z

Dennis Markmann Buildserver: Buildbot und Jenkins 23 / 23