devops der triple-e klasse - eclipse democamp

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

Upload: werner-keil

Post on 13-May-2015

344 views

Category:

Technology


0 download

DESCRIPTION

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.

TRANSCRIPT

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

2. 2 2012-2013 Creative Arts & TechnologiesBilder Maersk Line und Andere 3. Fahrplan Einleitung Hudson Automatisierung Maven Build Kokki Konfiguration Multiconf PyDev Entwicklung Demo Q&A 3 2012-2013 Creative Arts & Technologies 4. Stapellauf4 2013 Creative Arts & TechnologiesBilder Maersk Line 5. Jungfernfahrt5 2013 Creative Arts & Technologies 6. Was bin Ich? Werner KeilTwitter @wernerkeil Consultant Coach Creative Cosmopolitan Open Source Evangelist Software Architect Java Godfather UOMo Project Lead ETCS Guy Email [email protected] 2012-2013 Creative Arts & Technologies 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. Hudson | Downloads8 2012 Creative Arts & Technologies 9. Hudson | Commits9 2012 Creative Arts & Technologies 10. Hudson | Job Koordination10 2012-2013 Creative Arts & Technologies 11. Hudson | Job Koordination im Triple-E Stil11 2012-2013 Creative Arts & Technologies 12. Hudson | Promovierte Builds12 2012-2013 Creative Arts & Technologies 13. HudsonDEMO 14. Maven Evolution der Build Systeme14 2012-2013 Creative Arts & Technologies 15. Maven Lean Anwendung Nutzen Maven nur fr Was es am Besten kann Dependency Management Nexus Managed Environment Generiert / Gestartet durch Kokki Konfiguriert via Multiconf Hudson Plugins Zabbix Monitoring Kibana Log Analyse15 2012-2013 Creative Arts & Technologies 16. Missing Link Erstellen der (Virtuellen) Maschinen16 2012-2013 Creative Arts & Technologies 17. Viele Virtuelle Maschinen17 2013 Creative Arts & TechnologiesBilder Maersk Line 18. Virtual Machine Provisionierung Vagrant und Oracle VirtualBox (oder vmware) Vagrant Management virtueller Betriebssysteme Virtual Machine Oracle VirtualBox Hufiger Vmware Gelegentlich Linux Container Weitere Option 18 2013 Creative Arts & Technologies 19. Kokki Infrastruktur Automation Configuration Management Teil des Provisionierungsvorgangs Bibliothek und einfaches Kommandozeilentool Bislang keine Client/Server Komponente Knnte GitHub an Stelle einer Client/Server Komponente nutzen Alternative zu Puppet/Chef/Cfengine Implementiert in Python19 2012-2013 Creative Arts & Technologies 20. Kokki | Begriffe Kokki ist ein Configuration Management Framework. Es kann eigenstndig oder als Teil eines komplexeren Systems genutzt werden. Es bedeutet Koch in Finnischer Sprache Environment: Ausfhrungsumgebung Resource: Beschreibt eine Datei, Service, Paket, etc.. Provider: Wei um das Ausfhren von Ressourcen Kitchen: Container (Regal) fr Kochbcher Cookbook: Container fr Rezepte und Bibliotheken Recipe: Gruppe von Resourcedefinitionen Library: Utility Methoden, Ressourcen und Provider 20 2012-2013 Creative Arts & Technologies 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. 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. 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 bentigen unterschiedliche Datenbankverbindungen und (mind.) 4 Umgebungen: Local (eigenes Entwicklergert) 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. 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 fr solche Erweiterungen Was Multiconf ist Multiconf erlaubt es einen Software stack zu definieren und warnt frh genug, wen etwas an dessen Definition fehlerhaft oder unvollstndig ist. Andere Tools nutze YAML oder JSON um die Komponenten zu definieren, doch bentigt man dort wieder eine Mglichkeit, diese Einstellungen zu validieren. Multiconf ist Beides - Definition und Validierung. 24 2012-2013 Creative Arts & Technologies 25. Multiconf | JSF Beispiel from javax_faces import ProjectStage from valid_envs import local, dev, test, uat, proddef 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. Multiconf | Autor Multiconf Autor Lars Hupfeldt Nielsen Alles Gute zum Geburtstag, Selma Lagerlf wnscht Nils Hupfeldtsson26 2013 Creative Arts & Technologies 27. Multiconf | Eine Inspiration fr Java Configuration API Initiiert von Oracle Crdit Suisse Mit etwas Hilfe u.a. durch den Java Godfather Entwurf fr Einen Java Specification Request (JSR) bei JCP.org Siehe: http://java-config.java.net27 2013 Creative Arts & Technologies 28. PyDev PyDev ist ein Produkt von Appcelerator, einer Softwarefirma, die Webentwicklern bei der Erstellung plattform-unabhngiger Lsungen fr Handy, Tablet oder Desktop untersttzt Gewinner des 2011 Eclipse Award fr Best Developer Tool Appcelerator stellt auch Aptana Studio (enthlt PyDev) oder Titanium Studio her, beides Eclipsebasierende IDEs fr Web and Mobile Plattformen 28 2012-2013 Creative Arts & Technologies 29. PyDev | Code Completion29 2012 Creative Arts & Technologies 30. PyDev | Code Navigation30 2012 Creative Arts & Technologies 31. PyDev | Code Coverage31 2012 Creative Arts & Technologies 32. PyDev | Debugging32 2012 Creative Arts & Technologies 33. PyDev | Unit Tests33 2012 Creative Arts & Technologies 34. PyDevDEMO 35. Zeit zum PlaudernQ&A 36. Links Kokki https://github.com/samuel/kokki Multiconf https://github.com/lhupfeldt/multiconf PyDevhttp://www.pydev.org 37. Links (2) Eclipse Hudson http://www.eclipse.org/hudson/ Apache Maven http://www.apache.org/maven/ Java Config APIhttp://java-config.java.net 38. Vielen Dank38 2012-2013 Creative Arts & TechnologiesEmail [email protected] Twitter @wernerkeilBilder Maersk Line