© Zühlke 2012
Torben Knerr, Klaus Alfert
Zu viele Köche verderben
den Brei…
Kochschule für Devs und Ops mit Chef, Vagrant ...
© Zühlke 2012
Ein typisches Java Projekt:
• Web Applikation
• Datenbank
• Memcached
• Nginx
• GeoServer
Cluster und Failov...
© Zühlke 2012
Unser letztes Projekt…
Mit einer typischen Deployment Pipeline:
DevOps mit Chef & Co | Torben Knerr, Klaus A...
© Zühlke 2012
Unser letztes Projekt…
Und typischen Problemen:
• Alle Umgebungen sind unterschiedlich
• Keiner kennt die Un...
© Zühlke 2012
Ein erster Lösungsansatz:
Hey, wir bauen VMs!
Das hilft schon mal weiter:
• Vorbereitete VMs für die Entwick...
© Zühlke 2012
Ein erster Lösungsansatz:
Hey, wir bauen VMs!
Aber…
• Manuelles Management von VMs
ist schwierig (oder zumin...
© Zühlke 2012
Warum Scripting?
• Leichtgewichtige Skripte statt fetter VMs
– Infrastruktur kann versioniert werden
• Umgeb...
© Zühlke 2012
DevOps mit Chef & Co
Torben Knerr, Klaus Alfert
Willkommen in der
DevOps Küche!
Infrastruktur á la Carte
22....
© Zühlke 2012
Ziel: einfache Infrastruktur automatisiert aufsetzen
• Zum Beispiel auf dem Entwickler PC
• Separate VM für ...
© Zühlke 2012
DevOps mit Chef & Co
Torben Knerr, Klaus Alfert
Zutat 1:
Wir brauchen VMs
22. Januar 2013
Folie 11
© Zühlke 2012
Zutat 1: Wir brauchen VMs
Enter Vagrant
Was ist Vagrant?
• Vagrant ist Automatisierung für VirtualBox
• Konf...
Zutat 1: Wir brauchen VMs – ein einfaches Vagrantfile
Zutat 1: Wir brauchen VMs – ein einfaches Vagrantfile
Basebox
Zutat 1: Wir brauchen VMs – ein einfaches Vagrantfile
App Server VM
Zutat 1: Wir brauchen VMs – ein einfaches Vagrantfile
Datenbank VM
Zutat 1: Wir brauchen VMs – Interaktion mit Vagrant
vagrant up
Zutat 1: Wir brauchen VMs – Interaktion mit Vagrant
vagrant ssh
© Zühlke 2012
Zutat 1: Wir brauchen VMs
Ein Blick in die VirtualBox GUI
DevOps mit Chef & Co | Torben Knerr, Klaus Alfert
...
Zutat 1: Wir brauchen VMs – VM Konfiguration im Detail
Zutat 1: Wir brauchen VMs – VM Konfiguration im Detail
Zutat 1: Wir brauchen VMs – VM Konfiguration im Detail
Name, CPUs, RAM, etc…
Zutat 1: Wir brauchen VMs – VM Konfiguration im Detail
vagrant reload
© Zühlke 2012
Zutat 1: Wir brauchen VMs
Kontrolle in der VirtualBox GUI
DevOps mit Chef & Co | Torben Knerr, Klaus Alfert ...
© Zühlke 2012
DevOps mit Chef & Co
Torben Knerr, Klaus Alfert
Zutat 2:
Provisionierung
22. Januar 2013
Folie 25
© Zühlke 2012
Zutat 2: Provisionierung
Zurück zu unserem Szenario
Nackte VMs reichen nicht
• Auf der DB-VM brauchen wir ei...
© Zühlke 2012
Zutat 2: Provisionierung
Enter Chef
Was ist Chef?
• Chef ist Konfigurationsmanagement für Infrastruktur
• In...
Zutat 2: Provisionierung – PostgreSQL installieren
Zutat 2: Provisionierung – PostgreSQL installieren
Stelle den PostgreSQL Server bereit
Zutat 2: Provisionierung – PostgreSQL installieren
Spezifische Konfiguration
vagrant up db
Was steht im PostgreSQL
Rezept?
Installiere das Package
Erzeuge die Konfig-Datei
Erzeuge die Konfig-Datei
Erzeuge die andere Konfig-Datei
Starte PostgreSQL als Service
Der Server ist auch selbst ein Client!
Zutat 2: Provisionierung – das gleiche mit Tomcat…
Zutat 2: Provisionierung – das gleiche mit Tomcat…
Stelle den Tomcat bereit
Zutat 2: Provisionierung – das gleiche mit Tomcat…
Tomcat Konfiguration
vagrant up web
© Zühlke 2012
Die Philosophie von Chef
Spezifikation des Zielzustandes
• Idempotenz
• „Selbstheilung“
DSL abstrahiert von ...
© Zühlke 2012
DevOps mit Chef & Co
Torben Knerr, Klaus Alfert
Zutat 3:
Kochbuchverwaltung
22. Januar 2013
Folie 46
© Zühlke 2012
Zutat 3: Kochbuchverwaltung
Zurück zu unserem Szenario
22. Januar 2013DevOps mit Chef & Co | Torben Knerr, K...
© Zühlke 2012
Zutat 3: Kochbuchverwaltung
Hier findet man Kochbücher!
22. Januar 2013DevOps mit Chef & Co | Torben Knerr, ...
© Zühlke 2012
Zutat 3: Kochbuchverwaltung
Enter Librarian
Was ist Librarian?
• Librarian bietet Dependency Management für ...
© Zühlke 2012
Zutat 3: Kochbuchverwaltung
Ein einfaches Cheffile
Cheffile
22. Januar 2013DevOps mit Chef & Co | Torben Kne...
Zutat 3: Kochbuchverwaltung – ein einfaches Cheffile
Librarian „installiert“ die Kochbücher
© Zühlke 2012
DevOps mit Chef & Co
Torben Knerr, Klaus Alfert
Zutat 4:
Eigene Kochbücher
22. Januar 2013
Folie 52
© Zühlke 2012
Zutat 4: Eigene Kochbücher
Zurück zu unserem Szenario
VMs mit Infrastruktur reichen nicht
• Wir brauchen ein...
© Zühlke 2012
Mit Knife kann man Kochbücher erstellen
22. Januar 2013DevOps mit Chef & Co | Torben Knerr, Klaus Alfert Fol...
© Zühlke 2012
Zutat 4: Eigene Kochbücher
Die Struktur des myapp Kochbuchs
Ein Kochbuch, aber mit separaten Rezepten um die...
© Zühlke 2012
Zutat 4: Eigene Kochbücher
Die Struktur des myapp Kochbuchs
In den Attributen werden Default-Werte definiert...
© Zühlke 2012
Zutat 4: Eigene Kochbücher
Die Struktur des myapp Kochbuchs
• myapp/attributes/db.rb
• myapp/attributes/web....
© Zühlke 2012
Zutat 4: Eigene Kochbücher
Die Struktur des myapp Kochbuchs
Im „db“ Rezept wird PostgreSQL installiert, dann...
Ohne PostgreSQL macht es keinen Sinn
Hilfreiche Resourcen dazunehmen
Zuerst den User anlegen
Die Datenbank erzeugen
© Zühlke 2012
Zutat 4: Eigene Kochbücher
Im Vagrantfile myapp::db anwenden
Vagrantfile
22. Januar 2013DevOps mit Chef & Co...
© Zühlke 2012
Zutat 4: Eigene Kochbücher
Im Vagrantfile myapp::db anwenden
Vagrantfile
22. Januar 2013DevOps mit Chef & Co...
vagrant provision db
© Zühlke 2012
Zutat 4: Eigene Kochbücher
Erweitertes Cheffile
22. Januar 2013DevOps mit Chef & Co | Torben Knerr, Klaus Al...
© Zühlke 2012
Zutat 4: Eigene Kochbücher
Die Struktur des myapp Kochbuchs
Im „web“ Rezept wird Tomcat installiert, die
Web...
Wir müssen Tomcat installieren
Hier liegt unser .war File
Datenbankkonfiguration
Applikation in Tomcat deployen
© Zühlke 2012
Zutat 4: Eigene Kochbücher
Im Vagrantfile myapp::web anwenden
Vagrantfile
22. Januar 2013DevOps mit Chef & C...
© Zühlke 2012
Zutat 4: Eigene Kochbücher
Im Vagrantfile myapp::web anwenden
Vagrantfile
22. Januar 2013DevOps mit Chef & C...
© Zühlke 2012
Zutat 4: Eigene Kochbücher
Im Vagrantfile myapp::web anwenden
Vagrantfile
22. Januar 2013DevOps mit Chef & C...
vagrant provision web
Läuft unsere Anwendung denn nun?
Oder was auch immer gerade ist…
Wir haben das Yabe Beispiel vom Play! Framework benutzt:
http://www.playframework.org/docu...
© Zühlke 2012
DevOps mit Chef & Co
Torben Knerr, Klaus Alfert
Die DevOps-Küche
22. Januar 2013
Folie 80
© Zühlke 2012
Rekapitulation:
Was haben wir bisher gemacht
DevOps mit Chef & Co | Torben Knerr, Klaus Alfert 22. Januar 20...
© Zühlke 2012
Textuelle Spezifikation der Infrastruktur
• Keine Shell-Skripte, sondern Spezifikation des Zielzustandes
• K...
© Zühlke 2012
Wir haben nur an der Oberfläche geraspelt
Chef & Vagrant bieten noch sehr viel mehr
• Provisionierung in der...
© Zühlke 2012
Wenn Infrastruktur Code ist, dann muss
Infrastruktur auch getestet werden!
DevOps mit Chef & Co | Torben Kne...
Dr. Klaus Alfert
Email: klaus.alfert@zuehlke.com
http://xing.to/alfert
Torben Knerr
Email: torben.knerr@zuehlke.com
http:/...
Zu viele Köche verderben den Brei - Kochschule für Devs und Ops mit Chef, Vagrant & Co
Zu viele Köche verderben den Brei - Kochschule für Devs und Ops mit Chef, Vagrant & Co
Zu viele Köche verderben den Brei - Kochschule für Devs und Ops mit Chef, Vagrant & Co
Zu viele Köche verderben den Brei - Kochschule für Devs und Ops mit Chef, Vagrant & Co
Zu viele Köche verderben den Brei - Kochschule für Devs und Ops mit Chef, Vagrant & Co
Zu viele Köche verderben den Brei - Kochschule für Devs und Ops mit Chef, Vagrant & Co
Nächste SlideShare
Wird geladen in …5
×

Zu viele Köche verderben den Brei - Kochschule für Devs und Ops mit Chef, Vagrant & Co

727 Aufrufe

Veröffentlicht am

Chef, Knife, Vagrant und Co dürfen in keiner modernen DevOps Küche fehlen. Diese Werkzeuge sowie die Kernkonzepte von Chef sind die Hauptzutaten für unseren Vortrag. Anhand unserer Projekterfahrungen zeigen wir Ihnen wie Sie bestehende Rezepte aus der Community verwenden und nach Ihrem Geschmack verfeinern. Damit haben Sie das grundlegende Handwerkszeug, um ganze Systemlandschaften per Knopfdruck verlässlich und reproduzierbar aufzusetzen - sei es in der Cloud, in Ihrer eigenen Testumgebung, oder auf dem Entwickler-PC. Happy Cooking!

Veröffentlicht in: Software
0 Kommentare
0 Gefällt mir
Statistik
Notizen
  • Als Erste(r) kommentieren

  • Gehören Sie zu den Ersten, denen das gefällt!

Keine Downloads
Aufrufe
Aufrufe insgesamt
727
Auf SlideShare
0
Aus Einbettungen
0
Anzahl an Einbettungen
5
Aktionen
Geteilt
0
Downloads
6
Kommentare
0
Gefällt mir
0
Einbettungen 0
Keine Einbettungen

Keine Notizen für die Folie

Zu viele Köche verderben den Brei - Kochschule für Devs und Ops mit Chef, Vagrant & Co

  1. 1. © Zühlke 2012 Torben Knerr, Klaus Alfert Zu viele Köche verderben den Brei… Kochschule für Devs und Ops mit Chef, Vagrant & Co 22. Januar 2013 Folie 1
  2. 2. © Zühlke 2012 Ein typisches Java Projekt: • Web Applikation • Datenbank • Memcached • Nginx • GeoServer Cluster und Failover sind natürlich auch gefordert! Unser letztes Projekt… DevOps mit Chef & Co | Torben Knerr, Klaus Alfert Nginx Memcached Tomcat Tomcat DB Master DB Slave GeoServer App 22. Januar 2013 Folie 2
  3. 3. © Zühlke 2012 Unser letztes Projekt… Mit einer typischen Deployment Pipeline: DevOps mit Chef & Co | Torben Knerr, Klaus Alfert Lokal DEV TEST PROD 22. Januar 2013 Folie 3
  4. 4. © Zühlke 2012 Unser letztes Projekt… Und typischen Problemen: • Alle Umgebungen sind unterschiedlich • Keiner kennt die Unterschiede so richtig • Neue Entwickler brauchen 3 Tage bis die Umgebung lokal läuft • Komplexere Szenarien sind lokal nicht testbar • Lange Feedback-Zyklen in „shared“ Umgebungen (DEV) • Unterschiedliche Ansprechpartner für Netz / OS / DB /… • Und wie immer… DevOps mit Chef & Co | Torben Knerr, Klaus Alfert 22. Januar 2013 Folie 4
  5. 5. © Zühlke 2012 Ein erster Lösungsansatz: Hey, wir bauen VMs! Das hilft schon mal weiter: • Vorbereitete VMs für die Entwickler mit Tomcat, Datenbank, Nginx, etc… • Mit viel Liebe von Hand gefertigt • Das Standardvorgehen bei unseren Embedded-Kollegen DevOps mit Chef & Co | Torben Knerr, Klaus Alfert 22. Januar 2013
  6. 6. © Zühlke 2012 Ein erster Lösungsansatz: Hey, wir bauen VMs! Aber… • Manuelles Management von VMs ist schwierig (oder zumindest lästig) • Prozesstreue ist von großer Bedeutung • Wie versioniert man eigentlich eine 40GB große VM? In Subversion? • Funktioniert lokal auf Entwickler PCs, aber unpassend für zentrale Infrastruktur • Wie parametriert man solche VMs? Fazit: hilft, aber geht nicht weit genug! DevOps mit Chef & Co | Torben Knerr, Klaus Alfert 22. Januar 2013 Folie 7
  7. 7. © Zühlke 2012 Warum Scripting? • Leichtgewichtige Skripte statt fetter VMs – Infrastruktur kann versioniert werden • Umgebungen können reproduzierbar aufgesetzt werden – Möglichst wenig manuelle Tätigkeiten – Ausgangsbasis für „saubere“ Deployments • Umgebungen werden explizit designed – Entstehen nicht zufällig – Werden explizit als ausführbare Spezifikation beschrieben Wir haben Kontrolle über unsere Umgebung! Unsere Lösung: Wir skripten VMs! DevOps mit Chef & Co | Torben Knerr, Klaus Alfert 22. Januar 2013 Folie 8
  8. 8. © Zühlke 2012 DevOps mit Chef & Co Torben Knerr, Klaus Alfert Willkommen in der DevOps Küche! Infrastruktur á la Carte 22. Januar 2013 Folie 9
  9. 9. © Zühlke 2012 Ziel: einfache Infrastruktur automatisiert aufsetzen • Zum Beispiel auf dem Entwickler PC • Separate VM für App Server und Datenbank • Jederzeit reproduzierbar („clean setup“) Unser Beispiel Szenario DevOps mit Chef & Co | Torben Knerr, Klaus Alfert App Server VM Tomcat Datenbank VM PostgreSQL .war 22. Januar 2013 Folie 10
  10. 10. © Zühlke 2012 DevOps mit Chef & Co Torben Knerr, Klaus Alfert Zutat 1: Wir brauchen VMs 22. Januar 2013 Folie 11
  11. 11. © Zühlke 2012 Zutat 1: Wir brauchen VMs Enter Vagrant Was ist Vagrant? • Vagrant ist Automatisierung für VirtualBox • Konfiguration der VMs wird in ein Vagrantfile ausgelagert • Einfache Befehle zum steuern der VMs: – vagrant up – vagrant ssh – vagrant halt – … • http://vagrantup.com DevOps mit Chef & Co | Torben Knerr, Klaus Alfert 22. Januar 2013 Folie 12
  12. 12. Zutat 1: Wir brauchen VMs – ein einfaches Vagrantfile
  13. 13. Zutat 1: Wir brauchen VMs – ein einfaches Vagrantfile Basebox
  14. 14. Zutat 1: Wir brauchen VMs – ein einfaches Vagrantfile App Server VM
  15. 15. Zutat 1: Wir brauchen VMs – ein einfaches Vagrantfile Datenbank VM
  16. 16. Zutat 1: Wir brauchen VMs – Interaktion mit Vagrant vagrant up
  17. 17. Zutat 1: Wir brauchen VMs – Interaktion mit Vagrant vagrant ssh
  18. 18. © Zühlke 2012 Zutat 1: Wir brauchen VMs Ein Blick in die VirtualBox GUI DevOps mit Chef & Co | Torben Knerr, Klaus Alfert Ist das die App Server VM? Oder doch die Datenbank VM? 22. Januar 2013 Folie 19
  19. 19. Zutat 1: Wir brauchen VMs – VM Konfiguration im Detail
  20. 20. Zutat 1: Wir brauchen VMs – VM Konfiguration im Detail
  21. 21. Zutat 1: Wir brauchen VMs – VM Konfiguration im Detail Name, CPUs, RAM, etc…
  22. 22. Zutat 1: Wir brauchen VMs – VM Konfiguration im Detail vagrant reload
  23. 23. © Zühlke 2012 Zutat 1: Wir brauchen VMs Kontrolle in der VirtualBox GUI DevOps mit Chef & Co | Torben Knerr, Klaus Alfert 22. Januar 2013 Folie 24 und die VM Parameter stimmen auch! Besser!
  24. 24. © Zühlke 2012 DevOps mit Chef & Co Torben Knerr, Klaus Alfert Zutat 2: Provisionierung 22. Januar 2013 Folie 25
  25. 25. © Zühlke 2012 Zutat 2: Provisionierung Zurück zu unserem Szenario Nackte VMs reichen nicht • Auf der DB-VM brauchen wir eine Datenbank z.B. PostgreSQL • Auf dem App-VM brauchen wir einen Tomcat Installation und Konfiguration dieser Software kann Chef übernehmen! 22. Januar 2013DevOps mit Chef & Co | Torben Knerr, Klaus Alfert Folie 26
  26. 26. © Zühlke 2012 Zutat 2: Provisionierung Enter Chef Was ist Chef? • Chef ist Konfigurationsmanagement für Infrastruktur • Installiert & konfiguriert Systeme von Grund auf • Bietet eine DSL um Infrastruktur auf einer angemessenen Abstraktionsebene zu beschreiben Mehr dazu: • http://www.opscode.com/chef/ Vagrant unterstützt die Provisionierung von VMs via Chef! 22. Januar 2013DevOps mit Chef & Co | Torben Knerr, Klaus Alfert Folie 27
  27. 27. Zutat 2: Provisionierung – PostgreSQL installieren
  28. 28. Zutat 2: Provisionierung – PostgreSQL installieren Stelle den PostgreSQL Server bereit
  29. 29. Zutat 2: Provisionierung – PostgreSQL installieren Spezifische Konfiguration
  30. 30. vagrant up db
  31. 31. Was steht im PostgreSQL Rezept?
  32. 32. Installiere das Package
  33. 33. Erzeuge die Konfig-Datei
  34. 34. Erzeuge die Konfig-Datei
  35. 35. Erzeuge die andere Konfig-Datei
  36. 36. Starte PostgreSQL als Service
  37. 37. Der Server ist auch selbst ein Client!
  38. 38. Zutat 2: Provisionierung – das gleiche mit Tomcat…
  39. 39. Zutat 2: Provisionierung – das gleiche mit Tomcat… Stelle den Tomcat bereit
  40. 40. Zutat 2: Provisionierung – das gleiche mit Tomcat… Tomcat Konfiguration
  41. 41. vagrant up web
  42. 42. © Zühlke 2012 Die Philosophie von Chef Spezifikation des Zielzustandes • Idempotenz • „Selbstheilung“ DSL abstrahiert von systemspezifischen Details • Resourcen • Provider für das jeweilige System Küche als Namensgeber • Chef, Cookbook, Recipe, Knife, … 22. Januar 2013DevOps mit Chef & Co | Torben Knerr, Klaus Alfert Folie 45
  43. 43. © Zühlke 2012 DevOps mit Chef & Co Torben Knerr, Klaus Alfert Zutat 3: Kochbuchverwaltung 22. Januar 2013 Folie 46
  44. 44. © Zühlke 2012 Zutat 3: Kochbuchverwaltung Zurück zu unserem Szenario 22. Januar 2013DevOps mit Chef & Co | Torben Knerr, Klaus Alfert Woher kommt eigentlich das PostgreSQL Kochbuch / Rezept ??? Folie 47
  45. 45. © Zühlke 2012 Zutat 3: Kochbuchverwaltung Hier findet man Kochbücher! 22. Januar 2013DevOps mit Chef & Co | Torben Knerr, Klaus Alfert http://community.opscode.com/cookbooks/ https://github.com/search?q=cookbook Folie 48
  46. 46. © Zühlke 2012 Zutat 3: Kochbuchverwaltung Enter Librarian Was ist Librarian? • Librarian bietet Dependency Management für Cookbooks • Automatisiertes herunterladen und extrahieren Abhängigkeiten werden in einem Cheffile spezifiziert • Transitive Abhängigkeiten werden mit aufgelöst • Unter Berücksichtigung von Quellen und Versionen Mehr dazu • https://github.com/applicationsonline/librarian 22. Januar 2013DevOps mit Chef & Co | Torben Knerr, Klaus Alfert Folie 49
  47. 47. © Zühlke 2012 Zutat 3: Kochbuchverwaltung Ein einfaches Cheffile Cheffile 22. Januar 2013DevOps mit Chef & Co | Torben Knerr, Klaus Alfert Folie 50
  48. 48. Zutat 3: Kochbuchverwaltung – ein einfaches Cheffile Librarian „installiert“ die Kochbücher
  49. 49. © Zühlke 2012 DevOps mit Chef & Co Torben Knerr, Klaus Alfert Zutat 4: Eigene Kochbücher 22. Januar 2013 Folie 52
  50. 50. © Zühlke 2012 Zutat 4: Eigene Kochbücher Zurück zu unserem Szenario VMs mit Infrastruktur reichen nicht • Wir brauchen ein DB-Schema und eine DB-User für unsere Anwendung • Das WAR-File für unsere Anwendung muss im Tomcat deployed werden Dafür gibt es kein wiederverwendbares Kochbuch, das wir einfach nutzen können! 22. Januar 2013DevOps mit Chef & Co | Torben Knerr, Klaus Alfert Folie 53
  51. 51. © Zühlke 2012 Mit Knife kann man Kochbücher erstellen 22. Januar 2013DevOps mit Chef & Co | Torben Knerr, Klaus Alfert Folie 54 Zutat 4: Eigene Kochbücher Enter Knife
  52. 52. © Zühlke 2012 Zutat 4: Eigene Kochbücher Die Struktur des myapp Kochbuchs Ein Kochbuch, aber mit separaten Rezepten um die Datenbank und Webapp aufzusetzen 22. Januar 2013DevOps mit Chef & Co | Torben Knerr, Klaus Alfert Folie 55 myapp attributes recipes db.rb web.rb db.rb default.rb web.rb
  53. 53. © Zühlke 2012 Zutat 4: Eigene Kochbücher Die Struktur des myapp Kochbuchs In den Attributen werden Default-Werte definiert 22. Januar 2013DevOps mit Chef & Co | Torben Knerr, Klaus Alfert myapp attributes recipes db.rb web.rb db.rb default.rb web.rb Folie 56
  54. 54. © Zühlke 2012 Zutat 4: Eigene Kochbücher Die Struktur des myapp Kochbuchs • myapp/attributes/db.rb • myapp/attributes/web.rb 22. Januar 2013DevOps mit Chef & Co | Torben Knerr, Klaus Alfert Folie 57
  55. 55. © Zühlke 2012 Zutat 4: Eigene Kochbücher Die Struktur des myapp Kochbuchs Im „db“ Rezept wird PostgreSQL installiert, dann die Datenbank und der DB User angelegt 22. Januar 2013DevOps mit Chef & Co | Torben Knerr, Klaus Alfert myapp attributes recipes db.rb web.rb db.rb default.rb web.rb Folie 58
  56. 56. Ohne PostgreSQL macht es keinen Sinn
  57. 57. Hilfreiche Resourcen dazunehmen
  58. 58. Zuerst den User anlegen
  59. 59. Die Datenbank erzeugen
  60. 60. © Zühlke 2012 Zutat 4: Eigene Kochbücher Im Vagrantfile myapp::db anwenden Vagrantfile 22. Januar 2013DevOps mit Chef & Co | Torben Knerr, Klaus Alfert Folie 64
  61. 61. © Zühlke 2012 Zutat 4: Eigene Kochbücher Im Vagrantfile myapp::db anwenden Vagrantfile 22. Januar 2013DevOps mit Chef & Co | Torben Knerr, Klaus Alfert Statt postgresql::server Folie 65
  62. 62. vagrant provision db
  63. 63. © Zühlke 2012 Zutat 4: Eigene Kochbücher Erweitertes Cheffile 22. Januar 2013DevOps mit Chef & Co | Torben Knerr, Klaus Alfert Folie 67
  64. 64. © Zühlke 2012 Zutat 4: Eigene Kochbücher Die Struktur des myapp Kochbuchs Im „web“ Rezept wird Tomcat installiert, die Webapp konfiguriert und im Tomcat deployed 22. Januar 2013DevOps mit Chef & Co | Torben Knerr, Klaus Alfert myapp attributes recipes db.rb web.rb db.rb default.rb web.rb Folie 68
  65. 65. Wir müssen Tomcat installieren
  66. 66. Hier liegt unser .war File
  67. 67. Datenbankkonfiguration
  68. 68. Applikation in Tomcat deployen
  69. 69. © Zühlke 2012 Zutat 4: Eigene Kochbücher Im Vagrantfile myapp::web anwenden Vagrantfile 22. Januar 2013DevOps mit Chef & Co | Torben Knerr, Klaus Alfert Folie 74
  70. 70. © Zühlke 2012 Zutat 4: Eigene Kochbücher Im Vagrantfile myapp::web anwenden Vagrantfile 22. Januar 2013DevOps mit Chef & Co | Torben Knerr, Klaus Alfert Folie 75 Statt dem tomcat Rezept
  71. 71. © Zühlke 2012 Zutat 4: Eigene Kochbücher Im Vagrantfile myapp::web anwenden Vagrantfile 22. Januar 2013DevOps mit Chef & Co | Torben Knerr, Klaus Alfert C Folie 76 Hier läuft die Datenbank
  72. 72. vagrant provision web
  73. 73. Läuft unsere Anwendung denn nun?
  74. 74. Oder was auch immer gerade ist… Wir haben das Yabe Beispiel vom Play! Framework benutzt: http://www.playframework.org/documentation/1.0/samples
  75. 75. © Zühlke 2012 DevOps mit Chef & Co Torben Knerr, Klaus Alfert Die DevOps-Küche 22. Januar 2013 Folie 80
  76. 76. © Zühlke 2012 Rekapitulation: Was haben wir bisher gemacht DevOps mit Chef & Co | Torben Knerr, Klaus Alfert 22. Januar 2013 Zutat 1 Wir brauchen VMs Zutat 2 Provisionierung Zutat 3 Kochbuchverwaltung Zutat 4 Eigene Kochbücher + Folie 81 + +
  77. 77. © Zühlke 2012 Textuelle Spezifikation der Infrastruktur • Keine Shell-Skripte, sondern Spezifikation des Zielzustandes • Knackig kurz, aber nicht kryptisch • SCM-freundlich: Kilobyte statt Gigabyte • Komplexe Infrastruktur steht auf Knopfdruck bereit • Immer wieder ausführbar und wiederholbar • Wiederverwendbarkeit auf Infrastrukturebene Was haben wir erreicht? 22. Januar 2013DevOps mit Chef & Co | Torben Knerr, Klaus Alfert Folie 82
  78. 78. © Zühlke 2012 Wir haben nur an der Oberfläche geraspelt Chef & Vagrant bieten noch sehr viel mehr • Provisionierung in der Cloud oder ihrer Virtualisierungsumgebung • Erweiterungsmöglichkeiten der DSL dank Ruby – Eigene Resourcen und Provider – Programmierung innerhalb der Rezepte • Chef-Server – Rechte-Management – Search – Environments Eine populäre Alternative zu Chef ist Puppet. • Bietet einen reinen DSL-Ansatz ohne Ruby. 22. Januar 2013DevOps mit Chef & Co | Torben Knerr, Klaus Alfert Folie 83
  79. 79. © Zühlke 2012 Wenn Infrastruktur Code ist, dann muss Infrastruktur auch getestet werden! DevOps mit Chef & Co | Torben Knerr, Klaus Alfert Lint Checking • foodcritic Unit-Level Testing • chefspec • fauxhai Smoke Tests (von Innen) • chef-minitest-handler Acceptance Testing (von Außen) • cucumber-nagios 22. Januar 2013 Folie 84
  80. 80. Dr. Klaus Alfert Email: klaus.alfert@zuehlke.com http://xing.to/alfert Torben Knerr Email: torben.knerr@zuehlke.com http://xing.to/tknerr Guten Appetit! Folien: http://bit.ly/z_slideshare Beispiele: https://github.com/tknerr/oop-chef-demo

×