$30 off During Our Annual Pro Sale. View Details »

EKON 17: Continuous Integration

EKON 17: Continuous Integration

My slides for the EKON 17 / 2013 talk about Continuous Integration.

Sebastian Gingter

November 05, 2013
Tweet

More Decks by Sebastian Gingter

Other Decks in Programming

Transcript

  1. Sebastian P.R. Gingter | Smarthouse Media GmbH
    Continuous Integration

    View Slide

  2. Vorab:
    •  Sourcen & Demos @github
    https://github.com/gingters/...
    •  Slides @speakerdeck
    https://speakerdeck.com/phoenixhawk
    Sebastian P.R. Gingter | @phoenixhawk

    View Slide

  3. Continuous Integration
    Infrastruktur für Sicherheit in der Entwicklung

    View Slide

  4. Agenda
    •  Historie
    •  Was ist CI?
    •  Warum will ich CI?
    •  Ablauf
    •  Vorteile
    •  Der Weg hin zu CI
    •  Tools und Beispiele

    View Slide

  5. Historie
    •  Continuous Integration ist eine der
    ursprünglichen 12 Praktiken aus
    „Extreme Programming“

    View Slide

  6. Was ist CI?
    •  Continuous Integration
    – Prozess & Praxis
    – Tools
    – Änderungen schnell integrieren
    – Idealerweise automatisiert
    – Inkl. Tests

    View Slide

  7. Warum will ich CI?
    •  Schon einmal vergessen, eine neue
    Datei einzuchecken?
    – Wie lange hat es gedauert bis das bei
    Kollegen auffällt?
    – Kollege noch da zum nachliefern?
    •  Schonmal Seiteneffekte produziert?
    – Wie lange hat es gedauert bis die
    auftraten?
    – Gab es hier schon einmal Regressions?

    View Slide

  8. Ablauf
    •  Checkout des letzten integrierten
    Standes
    •  Arbeit, Arbeit J
    •  Erst Bauen, dann schauen (lassen)
    (autom. Tests)
    •  Vor dem commit (bzw. push) – update
    des letzten integrierten Standes, test

    View Slide

  9. Ablauf
    •  Checkin
    •  Autom. Build auf dem Server
    •  Autom. Tests auf dem Server
    •  Grün? Okay
    •  Rot? Fixen -> Okay

    View Slide

  10. Vorteile
    •  Jederzeit einen Release-Fähigen
    Zustand im Repository
    •  Fehler fallen sehr schnell auf

    View Slide

  11. Der Weg zu CI
    •  „Verwaltete“ Quellcodeverwaltung
    – Alles benötigte im Repository
    •  Autom. Buildprozess
    – Siehe meine EKON 16 Slides zu MSBuild
    •  Selbsttestender Code
    – xUnit

    View Slide

  12. Der Weg zu CI
    •  M. Fowler:
    „Jeder commited täglich in den Trunk“
    •  Ich:
    „Wehe!“
    •  JEDER Commit ins zentrale Repository
    sollte (automatisch) integriert werden.
    •  Moderne CI-Systeme können auch
    Branches automatisiert integrieren

    View Slide

  13. Der Weg zu CI
    •  Man muss CI leben
    – Tooling kann helfen, aber es muss vorher
    schon funktionieren
    •  Der Buildprozess muss schnell sein
    – Maximal 10 Min. sollte das Ziel sein
    – Meistens sind Tests der Flaschenhals
    – Staged Builds / Build Pipeline kann helfen

    View Slide

  14. Der Weg zu CI
    •  Tests: In Kopie der Live-Umgebung
    – Soweit möglich
    – Self-Containing
    – Virtualisierung kann helfen
    •  Ergebnisse der Builds bereitstellen
    – Jeder soll möglichst einfach an das
    Ergebnis kommen
    – z.B. Installer generieren, Artefakte
    bereitstellen

    View Slide

  15. Der Weg zu CI
    •  Übergang zu Cont. Delivery fliessend
    •  Build-Status publik machen
    – z.B. Lava-Lampen (nicht zur Zustand,
    sondern auch Indikation der Dauer)
    – Gerne auch Chat-Bot, E-Mails etc.
    •  Mit Tooling kann auch ein Überblick
    über die Änderungen gewährt werden

    View Slide

  16. Tooling
    •  TeamCity / JetBrains
    •  Bamboo / Atlassian
    •  CruiseControl / CruiseControl.NET
    •  Cruise
    •  Jenkins / Hudson
    •  Team Foundation Server
    •  Continua CI (Finalbuilder Server als CI)
    •  u.v.m.

    View Slide

  17. Quellen
    •  http://www.martinfowler.com/articles/continuousIntegration.html
    •  https://speakerdeck.com/phoenixhawk/ekon-16-msbuild
    •  http://www.jamesshore.com/Blog/Continuous-Integration-is-an-Attitude.html

    View Slide