Deployment 2.0

5.322 Aufrufe

Veröffentlicht am

Wer professionelle Webentwicklung betreibt, braucht einen gut funktionierenden Deployment-Prozess, um Updates von den lokalen Rechnern der Entwickler problemlos auf Test-, Stage- und Live-Server zu bekommen ohne dort die Datenbestände zu gefährden.

In dieser Session zeigen wir das Drupal-Deployment in einem neuen Workflow.

Mit von der Partie sind:

Features
Strongarm
Update- und Drush-Scripts
Updatescript- und Drushscript-Prozessor
Git und eine Repository-Strategie
Jenkins Continous Integration
Codemetriken und Codeanalyse beim Deployment

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
5.322
Auf SlideShare
0
Aus Einbettungen
0
Anzahl an Einbettungen
3.966
Aktionen
Geteilt
0
Downloads
21
Kommentare
0
Gefällt mir
0
Einbettungen 0
Keine Einbettungen

Keine Notizen für die Folie

Deployment 2.0

  1. 1. Drupal Deployment 2.0
  2. 2. Christian SchrammWebentwicklung, Projektmanagement, DeploymentBrightsolutions GmbH, DarmstadtTwitter: schrammosXING: https://www.xing.com/profile/Christian_Schramm12Facebook: https://www.facebook.com/schrammosMail: schramm@brightsolutions.de
  3. 3. AgendaJenkins Continous IntegrationFeatures, StrongarmUpdate- und Drush-ScriptsUpdatescript- und Drushscript-ProzessorGit und eine Repository-StrategieCodemetriken und Codeanalyse beim Deployment
  4. 4. Continous Integration mit JenkinsÜber Weboberfläche können Jobs getriggert werdenJenkins Jobs- Dev-Server aktualisieren (git pull, autom. alle 15 min.)- Stage-Server aktualisieren (git pull, manuell getriggert)- Live-Server aktualisieren (drush-rsync von Stage-Server)- Dokumentation erstellen (Doxygen Plugin)
  5. 5. Jenkins Continous Integration Server Development ServerWebdeveloper 1 StageLocal, XAMPP, Server Git, Drush LiveWebdeveloper 2 ServerLocal, XAMPP, Git-Repo Git, Drush Server
  6. 6. Features und Strongarm exportable (Auswahl)Berechtigungen Image-StylesBlock Settings Profile TypesCK-Editor Profiles RollenConditional Fields RulesContent-Types Taxonomie (keine Terms)Context TextformateFields, Fieldgroups VariablesFlag-Settings Views
  7. 7. Feature Updateprozess- Aktualisierte Features werden vom Entwickler in das Git-Repo gepushed- Jenkins (CI) aktualisiert Dev-, Stage- oder Live-ServerProblem:- Features müssen beim Deployment reverted werden- Manches ist mit Features nicht exportierbarLösung: Updatescripts
  8. 8. Update- und Drush-Scripts- enthalten PHP-Code der beim Deployment ausgeführt wird- werden unter /sites/default/updatescripts abgelegt- werden beim Deployment automatisch ausgeführtUpdate- und Drush-Script Aufgaben- Module an- und abschalten- Themes aktivieren- Features reverten- Deployment von Strukturen die mit Features nicht gehen- einzelne Variablen setzen
  9. 9. Update- und Drush-Scripts Beispiel Beispiel 1: Einschalten von Modulen mit einem Drush- / Updatescript <?php $host->set_author (Christian Schramm); $host->set_description (Enable initial modules.); // enable initial modules $host->drush ("en contact"); $host->drush ("en ctools"); $host->drush ("en views"); $host->drush ("en views_ui"); $host->finish_processing ();
  10. 10. Update- und Drush-Script-Prozessor (Modul)- stellt in Drupal eine Verwaltungsoberfläche bereit- kann Updatescripte ausführen (Button)- registriert ausgeführte Updatescripte in der Datenbank- erweitert Drush um einen Befehl (drush updatescripts)Mit diesem Drush-Befehl werden alle neuen Updatescriptsvon Jenkins beim Deployment automatisch ausgeführt.
  11. 11. Jenkins Deployment mit UpdatescriptsIm Buildprozess von Jenkins passiert folgendes:ssh servername "cd /var/www/projectname.de/www && git pull && git submodule init && git submodule update && drush updatescripts && drush cc all"
  12. 12. Git und eine Repository-StrategieAlle Entwickler arbeiten auf dem DEV-Branch des Repos.Das Filesystem des Dev- und Stage-Servers entspricht auchdem Stand des DEV-Branches.Der Master-Branch entspricht immer der Live-Version und wirdausschließlich beim aktualisieren des Live-Servers vonJenkins aktualisiert.
  13. 13. Codemetriken und CodeanalyseBeim Build kann Jenkins mit vielen Plugins Codeanalysenausführen, z.B. Duplicate Content, Lines of Code, Lines ofComments, Coding Style prüfenAls Test können auch SimpleTests von (eigenen) Modulen viaDrush ausgeführt werden
  14. 14. Workflow für Entwickler- alle Änderungen in Features verpacken- aspektorientierte Features bauen- bei aktualisierten Features ein Updatescript zum reverten des Features schreiben- Änderungen die nicht durch Features abzudecken sind durch eigenes Updatescript umsetzen- Features und Updatescripts committen und pushen
  15. 15. Workflow für Dev-, Stage-, Live-Serverupdates- Dev-Server-Builds automatisch alle 15 min.- Stage-Server-Builds manuell, via Knopfdruck- Live-Server-Builds manuell, via KnopfdruckAusfallzeiten des Servers während der Updates sehr kurz(wenige Minuten je nach Updatemenge).Mit Jenkins, Drush und Updatescripts alles voll automatisiert,keine Nacharbeit nötig.
  16. 16. Viel Spaß noch auf dem Drupal Camp 2012

×