DevOps der Triple-E Klasse
mit Hudson, Maven, Kokki
Multiconf & PyDev
Werner Keil
Eclipse DemoCamp 2013 Karlsruhe
20. Nove...
2

© 2012-2013 Creative Arts & Technologies

Bilder © Maersk Line und Andere
Fahrplan
• Einleitung
• Hudson
• Automatisierung

• Maven
• Build

• Kokki
• Konfiguration
• Multiconf

• PyDev
• Entwickl...
Stapellauf

4

© 2013 Creative Arts & Technologies

Bilder © Maersk Line
Jungfernfahrt

5

© 2013 Creative Arts & Technologies
Was bin Ich?
Werner Keil

Twitter @wernerkeil

• Consultant – Coach
• Creative Cosmopolitan
• Open Source Evangelist
• Sof...
Hudson
• Hudson is a powerful and widely used open source
continuous integration server providing
development teams with a...
Hudson | Downloads

8

© 2012 Creative Arts & Technologies
Hudson | Commits

9

© 2012 Creative Arts & Technologies
Hudson | Job Koordination

10

© 2012-2013 Creative Arts & Technologies
Hudson | Job Koordination im Triple-E Stil

11

© 2012-2013 Creative Arts & Technologies
Hudson | Promovierte Builds

12

© 2012-2013 Creative Arts & Technologies
Hudson

DEMO
Maven
Evolution der Build Systeme

14

© 2012-2013 Creative Arts & Technologies
Maven
“Lean” Anwendung

• Nutzen Maven nur für Was es am Besten kann
• Dependency Management
• Nexus

• Managed Environmen...
Missing Link
Erstellen der (Virtuellen) Maschinen

16

© 2012-2013 Creative Arts & Technologies
Viele Virtuelle Maschinen

17

© 2013 Creative Arts & Technologies

Bilder © Maersk Line
Virtual Machine Provisionierung
Vagrant und Oracle VirtualBox (oder vmware)

• Vagrant
• Management virtueller Betriebssys...
Kokki
• Infrastruktur Automation → Configuration
Management

• Teil des Provisionierungsvorgangs
• Bibliothek und einfache...
Kokki | Begriffe
• Kokki ist ein Configuration Management
Framework.
• Es kann eigenständig oder als Teil eines komplexere...
Kokki | Beispiel
from kokki import *
with Environment() as env:
Package("vim", action="upgrade")

File("/etc/hosts",
owner...
Kokki++ | Multiconf
• Multiconf ist ein Framework zur Beschreibung
komplexer Umgebungen mithilfe von Python.

• Warum
• Es...
Multiconf
• Wie
• Man stelle sich ein Projekt vor, in dem eine stark heterogene Umgebung
unterschiedliche Server wie Tomca...
Multiconf (2)
• Was Multiconf nicht ist
• Multiconf weiß nicht, von selbst, wie man Umgebungen erstellt
• Multiconf weiß n...
Multiconf | JSF Beispiel
from javax_faces import ProjectStage
from valid_envs import local, dev, test, uat, prod

def jsf_...
Multiconf | Autor
• Multiconf Autor
• Lars Hupfeldt Nielsen
• Alles Gute zum
Geburtstag,
Selma Lagerlöf
wünscht
„Nils Hupf...
Multiconf | Eine Inspiration für
Java Configuration API

• Initiiert von
• Oracle
• Crédit Suisse
• Mit etwas Hilfe u.a. d...
PyDev
• PyDev ist ein Produkt von Appcelerator, einer
Softwarefirma, die Webentwicklern bei der
Erstellung plattform-unabh...
PyDev | Code Completion

29

© 2012 Creative Arts & Technologies
PyDev | Code Navigation

30

© 2012 Creative Arts & Technologies
PyDev | Code Coverage

31

© 2012 Creative Arts & Technologies
PyDev | Debugging

32

© 2012 Creative Arts & Technologies
PyDev | Unit Tests

33

© 2012 Creative Arts & Technologies
PyDev

DEMO
Zeit zum Plaudern

Q&A
Links
Kokki
https://github.com/samuel/kokki
Multiconf
https://github.com/lhupfeldt/multiconf
PyDev

http://www.pydev.org
Links (2)
Eclipse – Hudson
http://www.eclipse.org/hudson/
Apache Maven
http://www.apache.org/maven/
Java Config API

http:...
Vielen Dank

38

© 2012-2013 Creative Arts & Technologies

Email werner@catmedia.us Twitter @wernerkeil

Bilder © Maersk L...
Nächste SlideShare
Wird geladen in ...5
×

DevOps der Triple-E Klasse - Eclipse DemoCamp

406

Published on

Maersk Line lässt nicht nur die weltweit größten Schiffe der 'Triple-E' Klasse bauen. Continuous Integration und Delivery in einer ähnlichen Größenordnung mit Hudson, Maven und Tools wie Kokki (ähnlich Puppet oder Chef ) werden dort ebenso praktiziert.
Diese Session gewährt eine kurze Übersicht über Multi-Configuration (Matrix) Job-Typen wie sie in den meisten dieser Projekte genutzt werden. Highlights in einer heterogenen Umgebung, wie man sie in Vielfalt und Umfang sonst fast nur bei großen Anbietern von Public Cloud Lösungen findet.

Published in: Technologie
0 Kommentare
0 Gefällt mir
Statistiken
Notizen
  • Hinterlassen Sie den ersten Kommentar

  • Be the first to like this

Keine Downloads
Views
Gesamtviews
406
Bei Slideshare
0
Aus Einbettungen
0
Anzahl an Einbettungen
2
Aktionen
Geteilt
0
Downloads
2
Kommentare
0
Gefällt mir
0
Einbettungen 0
No embeds

No notes for slide

DevOps der Triple-E Klasse - Eclipse DemoCamp

  1. 1. DevOps der Triple-E Klasse mit Hudson, Maven, Kokki Multiconf & PyDev Werner Keil Eclipse DemoCamp 2013 Karlsruhe 20. November 2013
  2. 2. 2 © 2012-2013 Creative Arts & Technologies Bilder © Maersk Line und Andere
  3. 3. Fahrplan • Einleitung • Hudson • Automatisierung • Maven • Build • Kokki • Konfiguration • Multiconf • PyDev • Entwicklung • Demo • Q&A 3 © 2012-2013 Creative Arts & Technologies
  4. 4. Stapellauf 4 © 2013 Creative Arts & Technologies Bilder © Maersk Line
  5. 5. Jungfernfahrt 5 © 2013 Creative Arts & Technologies
  6. 6. Was bin Ich? Werner Keil Twitter @wernerkeil • Consultant – Coach • Creative Cosmopolitan • Open Source Evangelist • Software Architect • Java Godfather • UOMo Project Lead • ETCS Guy … Email werner@catmedia.us 6 © 2012-2013 Creative Arts & Technologies
  7. 7. Hudson • Hudson is a powerful and widely used open source continuous integration server providing development teams with a reliable way to monitor changes in source control and trigger a variety of builds. (The Hudson Book) 7 © 2012 Creative Arts & Technologies
  8. 8. Hudson | Downloads 8 © 2012 Creative Arts & Technologies
  9. 9. Hudson | Commits 9 © 2012 Creative Arts & Technologies
  10. 10. Hudson | Job Koordination 10 © 2012-2013 Creative Arts & Technologies
  11. 11. Hudson | Job Koordination im Triple-E Stil 11 © 2012-2013 Creative Arts & Technologies
  12. 12. Hudson | Promovierte Builds 12 © 2012-2013 Creative Arts & Technologies
  13. 13. Hudson DEMO
  14. 14. Maven Evolution der Build Systeme 14 © 2012-2013 Creative Arts & Technologies
  15. 15. Maven “Lean” Anwendung • Nutzen Maven nur für Was es am Besten kann • Dependency Management • Nexus • Managed Environment • Generiert / Gestartet durch Kokki • Konfiguriert via Multiconf • Hudson Plugins • Zabbix Monitoring • Kibana Log Analyse 15 © 2012-2013 Creative Arts & Technologies
  16. 16. Missing Link Erstellen der (Virtuellen) Maschinen 16 © 2012-2013 Creative Arts & Technologies
  17. 17. Viele Virtuelle Maschinen 17 © 2013 Creative Arts & Technologies Bilder © Maersk Line
  18. 18. Virtual Machine Provisionierung Vagrant und Oracle VirtualBox (oder vmware) • Vagrant • Management virtueller Betriebssysteme • Virtual Machine • Oracle VirtualBox • Häufiger • Vmware • Gelegentlich • Linux Container • Weitere Option 18 © 2013 Creative Arts & Technologies
  19. 19. Kokki • Infrastruktur Automation → Configuration Management • Teil des Provisionierungsvorgangs • Bibliothek und einfaches Kommandozeilentool • Bislang keine Client/Server Komponente • Könnte GitHub an Stelle einer Client/Server Komponente nutzen • Alternative zu Puppet/Chef/Cfengine • Implementiert in Python 19 © 2012-2013 Creative Arts & Technologies
  20. 20. Kokki | Begriffe • Kokki ist ein Configuration Management Framework. • Es kann eigenständig oder als Teil eines komplexeren Systems genutzt werden. • Es bedeutet “Koch” in Finnischer Sprache • Environment: Ausführungsumgebung • Resource: Beschreibt eine Datei, Service, Paket, etc.. • Provider: Weiß um das Ausführen von Ressourcen • Kitchen: Container (“Regal”) für Kochbücher • Cookbook: Container für Rezepte und Bibliotheken • Recipe: Gruppe von Resourcedefinitionen • Library: Utility Methoden, Ressourcen und Provider 20 © 2012-2013 Creative Arts & Technologies
  21. 21. Kokki | Beispiel from kokki import * with Environment() as env: Package("vim", action="upgrade") File("/etc/hosts", owner = "root", group = "root", content = "127.0.0.1 localhostn" "255.255.255.255 broadcasthostn" "::1 localhostn" "fe80::1%lo0 localhostn") env.run() 21 © 2012-2013 Creative Arts & Technologies
  22. 22. Kokki++ | Multiconf • Multiconf ist ein Framework zur Beschreibung komplexer Umgebungen mithilfe von Python. • Warum • Es entstand aus dem schlichten Bedarf teils sehr heterogene Java EE Projekte kontinuierlich zu bauen und auszuliefern. • Mittels einer Handvoll Python Scripts und einer Handvoll textueller Property Dateien. • Mit steigender Anzahl Property Dateien stieg naturgemäß auch die Anzahl der notwendigen Scripts… • Aus diesem Dilemma heraus wurde Multiconf geboren. Leider nur 4 Whys 22 © 2012-2013 Creative Arts & Technologies
  23. 23. Multiconf • Wie • Man stelle sich ein Projekt vor, in dem eine stark heterogene Umgebung unterschiedliche Server wie Tomcat, Jetty, JBoss, Websphere, Glassfish oder Weblogic erfordert. • Sie benötigen unterschiedliche Datenbankverbindungen und (mind.) 4 Umgebungen: • Local (eigenes Entwicklergerät) • Dev • Test • Prod • Projekt Konfiguration ist ähnlich auf einigen Umgebungen, aber Irgendwas ist fast immer unterschiedlich. (DB, Ports, Proxies, Log-Dateien, u.dgl.) 23 © 2012 -2013 Creative Arts & Technologies
  24. 24. Multiconf (2) • Was Multiconf nicht ist • Multiconf weiß nicht, von selbst, wie man Umgebungen erstellt • Multiconf weiß nicht, wie es die Bestandteile einer Umgebung erstellen soll • Multiconf hat keinen Exekutor • Perfektes Paar mit Systeme wie Kokki • Selbe Sprache • Erweiterbare Rezepte und Bibliotheken machen Kokki offen für solche Erweiterungen • Was Multiconf ist • Multiconf erlaubt es einen Software “stack” zu definieren und warnt früh genug, wen etwas an dessen Definition fehlerhaft oder unvollständig ist. Andere Tools nutze YAML oder JSON um die Komponenten zu definieren, doch benötigt man dort wieder eine Möglichkeit, diese Einstellungen zu validieren. Multiconf ist Beides - Definition und Validierung. 24 © 2012-2013 Creative Arts & Technologies
  25. 25. Multiconf | JSF Beispiel from javax_faces import ProjectStage from valid_envs import local, dev, test, uat, prod def jsf_stages(): with ProjectStage() as ps: ps.name(local=”Development”, dev=”Development”, test=”UnitTest”, uat=”SystemTest”, prod=”Production”) 25 © 2012 -2013 Creative Arts & Technologies
  26. 26. Multiconf | Autor • Multiconf Autor • Lars Hupfeldt Nielsen • Alles Gute zum Geburtstag, Selma Lagerlöf wünscht „Nils Hupfeldtsson“ 26 © 2013 Creative Arts & Technologies
  27. 27. Multiconf | Eine Inspiration für Java Configuration API • Initiiert von • Oracle • Crédit Suisse • Mit etwas Hilfe u.a. durch den „Java Godfather“ • Entwurf für • Einen Java Specification Request (JSR) bei JCP.org • Siehe: http://java-config.java.net 27 © 2013 Creative Arts & Technologies
  28. 28. PyDev • PyDev ist ein Produkt von Appcelerator, einer Softwarefirma, die Webentwicklern bei der Erstellung plattform-unabhängiger Lösungen für Handy, Tablet oder Desktop unterstützt Gewinner des 2011 Eclipse Award für Best Developer Tool Appcelerator stellt auch Aptana Studio (enthält PyDev) oder Titanium Studio her, beides Eclipsebasierende IDEs für Web and Mobile Plattformen 28 © 2012-2013 Creative Arts & Technologies
  29. 29. PyDev | Code Completion 29 © 2012 Creative Arts & Technologies
  30. 30. PyDev | Code Navigation 30 © 2012 Creative Arts & Technologies
  31. 31. PyDev | Code Coverage 31 © 2012 Creative Arts & Technologies
  32. 32. PyDev | Debugging 32 © 2012 Creative Arts & Technologies
  33. 33. PyDev | Unit Tests 33 © 2012 Creative Arts & Technologies
  34. 34. PyDev DEMO
  35. 35. Zeit zum Plaudern Q&A
  36. 36. Links Kokki https://github.com/samuel/kokki Multiconf https://github.com/lhupfeldt/multiconf PyDev http://www.pydev.org
  37. 37. Links (2) Eclipse – Hudson http://www.eclipse.org/hudson/ Apache Maven http://www.apache.org/maven/ Java Config API http://java-config.java.net
  38. 38. Vielen Dank 38 © 2012-2013 Creative Arts & Technologies Email werner@catmedia.us Twitter @wernerkeil Bilder © Maersk Line
  1. A particular slide catching your eye?

    Clipping is a handy way to collect important slides you want to go back to later.

×