DEPLOYMENT EINES
TYPO3-INTRANETS MIT VAGRANT
TUGCGN MÄRZ 2015
Jari-Hermann Ernst
DIE REFERENTEN
TEAMARBEIT
Christoph Möller
Webdeveloper PHP/TYPO3
B·A·D Gesundheitsvorsorge und Sicherh...
1. Use Case „Intranet zum Mitnehmen"
2. Problems faced
3. Lösungsansatz
4. Walkthrough: Erzeugen eines neuen DEV-Systems
5...
Use Case

INTRANET ZUM
MITNEHMEN
KEY-FACTS ZU TEAMPOINT
PROJEKTUMGEBUNG
• "TeamPoint" = Unternehmens-Intranet/Info-Portal
• essentielles System für über 3....
SYSTEME, POLICIES, DATEN
PROJEKTUMGEBUNG
• Basis: SLES 11, LAMP, TYPO3 4.5, Apache Solr
• Umfangreiche Integrationen: 

SA...
ARCHITEKTUR
GESAMTSYSTEM
AUS UNTERNEHMENSSICHT
ANFORDERUNGEN
• parallel und unabhängig mehrere Features entwickeln
• lange Test-, Feedback-, Freiga...
AUS ENTWICKLERSICHT #1
ANFORDERUNGEN
• entwickeln, wo immer man ist (Home-Office, unterwegs)
• neue Dinge gefahrlos auspro...
AUS ENTWICKLERSICHT #2
ANFORDERUNGEN
• Arbeitsumgebung: Windows-Laptop, bevorzugte IDE (PhpStorm)
• limitierter Plattenpla...
Real Life

PROBLEMS
FACED
WENN'S IMMER EINFACH WÄRE...
HERAUSFORDERUNGEN
• Einschränkungen durch Enterprise-IT, lange Lebenszyklen und Policies
• Li...
FLASCHENHALS "SHARED DIRS"
PERFORMANCE
• Shared Directories VBox/VMWare sind langsam
• lokale VM sollte möglichst nur aus ...
SPERRIGES DEPLOYMENT
TYPO3 4.5
• TYPO3 kennt keine DB-Migrationen => EXT:t3deploy, DB-Schema-Updates
• Scheduler, LDAP-Aut...
Lösungsansatz

INTRANET-DEV
MIT VAGRANT
LOKALE SYSTEMUMGEBUNG #1
VORBEREITUNGEN
• Cygwin als UNIX-Umgebung für Windows - siehe http://cygwin.com
• Ziel: Lösung so...
LOKALE SYSTEMUMGEBUNG #2
VORBEREITUNGEN
• Vagrant als Deployment-Framework für lokale virtuelle Maschinen
• siehe http://v...
LOKALE SYSTEMUMGEBUNG #3
VORBEREITUNGEN
• Workspace-Verzeichnis anlegen, im Zugriff für IDE
• auf möglichst große Platte, ...
VIRTUELLE DEV-MASCHINE
VORBEREITUNGEN
• Ubuntu Server statt SLES 11 (nicht verfügbar als freie Vagrant-Basebox)
• Ubuntu i...
...UND SCHON KANN'S LOSGEHEN!
AUSPROBIEREN
Walkthrough

ERZEUGEN
EINES NEUEN
DEV-SYSTEMS
PROJEKTVERZEICHNIS VORBEREITEN
WALKTHROUGH
• Workspace-Verzeichnis erstellen
• Cygwin-Shell öffnen
• SITEDATA und SOLRDATA...
PROJEKTVORBEREITUNG
VIDEO
CONFIG-
FILE
CODE
CONFIG-
FILE
CODE
NUTZDATEN UPDATEN
WALKTHROUGH
• Cygwin-Shell öffnen
• ./update-assets.sh
• Aktualisiert SITEDATA und SOLRDATA
• erstellt f...
UPDATE
ASSETS
CODE
UPDATE
ASSETS
CODE
UPDATE
ASSETS
CODE
UPDATE
ASSETS
CODE
NUTZDATEN UPDATEN
VIDEO
LOKALE VM ERZEUGEN
WALKTHROUGH
• Cygwin-Shell in Projektverzeichnis öffnen
• vagrant up --provider vmware_workstation
• De...
VAGRANT-
FILE
CODE
LOKALE VM ERZEUGEN
VIDEO
INSTALL
DEVSITE
CODE
INSTALL
DEVSITE
CODE
DEVSITE
CONFIG
FILES
CODE
INSTALL
DEVSITE
CODE
INSTALL
DEVSITE
CODE
INSTALL
DEVSITE
CODE
INSTALL
DEVSITE
CODE
INSTALL
DEVSITE
CODE
INSTALL
DEVSITE
CODE
INSTALL
DEVSITE
CODE
INSTALL
DEVSITE
CODE
INSTALL
DEVSITE
CODE
ERGEBNISSE
VIDEO
Lessons Learned

VERBESSERUNGS-
POTENTIAL
BESSER GEHT IMMER
LESSONS LEARNED
• EXT:coreapi kann mittlerweile mehr (DB-Schema-Updates, Clear Cache, ...)
• EXT:t3deplo...
BESSER GEHT IMMER
LESSONS LEARNED
• VMWare-Investition lohnt.
• SLES 11 ist so richtig Enterprise.
• Deployment mit TYPO3 ...
FRAGEN
&
ANTWORTEN
VIELEN DANK!
Deployment von Entwicklungsumgebungen eines TYPO3-Intranets mit Vagrant
Deployment von Entwicklungsumgebungen eines TYPO3-Intranets mit Vagrant
Deployment von Entwicklungsumgebungen eines TYPO3-Intranets mit Vagrant
Deployment von Entwicklungsumgebungen eines TYPO3-Intranets mit Vagrant
Deployment von Entwicklungsumgebungen eines TYPO3-Intranets mit Vagrant
Deployment von Entwicklungsumgebungen eines TYPO3-Intranets mit Vagrant
Deployment von Entwicklungsumgebungen eines TYPO3-Intranets mit Vagrant
Nächste SlideShare
Wird geladen in …5
×

Deployment von Entwicklungsumgebungen eines TYPO3-Intranets mit Vagrant

1.037 Aufrufe

Veröffentlicht am

Deployment eines größeren TYPO3-Intranets als "Wegwerf"-DEV-VM mit Vagrant und VMWare

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

Keine Downloads
Aufrufe
Aufrufe insgesamt
1.037
Auf SlideShare
0
Aus Einbettungen
0
Anzahl an Einbettungen
3
Aktionen
Geteilt
0
Downloads
2
Kommentare
0
Gefällt mir
4
Einbettungen 0
Keine Einbettungen

Keine Notizen für die Folie

Deployment von Entwicklungsumgebungen eines TYPO3-Intranets mit Vagrant

  1. 1. DEPLOYMENT EINES TYPO3-INTRANETS MIT VAGRANT TUGCGN MÄRZ 2015
  2. 2. Jari-Hermann Ernst DIE REFERENTEN TEAMARBEIT Christoph Möller Webdeveloper PHP/TYPO3 B·A·D Gesundheitsvorsorge und Sicherheitstechnik GmbH Geschäftsführer network.publishing GmbH
  3. 3. 1. Use Case „Intranet zum Mitnehmen" 2. Problems faced 3. Lösungsansatz 4. Walkthrough: Erzeugen eines neuen DEV-Systems 5. Lessons Learned, Verbesserungspotential 6. Fragen & Antworten DIESE PRÄSENTATION AGENDA FÜR
  4. 4. Use Case
 INTRANET ZUM MITNEHMEN
  5. 5. KEY-FACTS ZU TEAMPOINT PROJEKTUMGEBUNG • "TeamPoint" = Unternehmens-Intranet/Info-Portal • essentielles System für über 3.000 Mitarbeiter • Inhalte/Funktionen in ständiger Bearbeitung, User-Generated Content • eingerichtet als Browser-Startseite - Ausfälle werden sofort bemerkt • Verfügbarkeit und Performance des LIVE-Systems darf nicht durch DEV- Prozesse beeinträchtigt werden
  6. 6. SYSTEME, POLICIES, DATEN PROJEKTUMGEBUNG • Basis: SLES 11, LAMP, TYPO3 4.5, Apache Solr • Umfangreiche Integrationen: 
 SAP, Datenbanken, eRecruiting, Seminarbuchungen, XML-Daten, APIs • Staging für Code und Konfiguration (DEV, STAGE, LIVE) • Multi-Server-Setup (MySQL, Web, Solr, SAN-Storage, LDAP, ...) • ca. 20 GB Nutzdaten, mehrere GB Datenbankinhalte • Master-Content wird in LIVE gepflegt
  7. 7. ARCHITEKTUR GESAMTSYSTEM
  8. 8. AUS UNTERNEHMENSSICHT ANFORDERUNGEN • parallel und unabhängig mehrere Features entwickeln • lange Test-, Feedback-, Freigabezyklen • Unternehmens-IT darf nicht durch DEV-Prozesse belastet werden • reproduzierbarer, dokumentierter Entwicklungsprozess
  9. 9. AUS ENTWICKLERSICHT #1 ANFORDERUNGEN • entwickeln, wo immer man ist (Home-Office, unterwegs) • neue Dinge gefahrlos ausprobieren (TYPO3-/Solr-Upgrades, ...) • ständiges Anlegen neuer DEV-Systeme, "Wegwerf-VMs" • kein Warten auf IT/Dienstleister bei Bedarf nach neuen DEV-Systemen • Bedarf für konsistente Point-in-Time-Snapshots • Code, Config, Content und Struktur (DB+Filesystem) müssen passen
  10. 10. AUS ENTWICKLERSICHT #2 ANFORDERUNGEN • Arbeitsumgebung: Windows-Laptop, bevorzugte IDE (PhpStorm) • limitierter Plattenplatz, nicht unbedingt High-End aus Performancesicht • schneller Workflow, direkte Auswirkung bei Änderungen • Geschwindigkeits-/Platzoptimierung (sperrige Datenmengen) • unkomplizierte Zusammenarbeit mit Agentur/Dritten • Integration mit VCS (Subversion, demnächst Gitlab)
  11. 11. Real Life
 PROBLEMS FACED
  12. 12. WENN'S IMMER EINFACH WÄRE... HERAUSFORDERUNGEN • Einschränkungen durch Enterprise-IT, lange Lebenszyklen und Policies • Lizenzbeschränkungen, Kosteneinsparung (SLES 11 vs. Ubuntu Server) • DEV-System muss auch ohne VPN-Verbindung laufen/erzeugt werden können • TYPO3 4.5 ist nicht deployment-freundlich • I/O-Performance ist der Flaschenhals • Problemfall "LDAP-Authentifizierung" • Problemfall "E-Mailversand"
  13. 13. FLASCHENHALS "SHARED DIRS" PERFORMANCE • Shared Directories VBox/VMWare sind langsam • lokale VM sollte möglichst nur aus dem echten VM-Filesystem servieren • daher werden die meisten Nutzdaten per rsync in VM kopiert • Ausnahme: fileadmin/SHARED, uploads (mehr als 20 GB) • große Nutzdatenverzeichnisse per Shared Directory und Symlink in DocRoot
  14. 14. SPERRIGES DEPLOYMENT TYPO3 4.5 • TYPO3 kennt keine DB-Migrationen => EXT:t3deploy, DB-Schema-Updates • Scheduler, LDAP-Auth, Domain-Records müssen deaktiviert/angepasst werden • Language Package Updates aus dem TER müssen neu gezogen werden • generell: passende Overrides/Includes für localconf.php
  15. 15. Lösungsansatz
 INTRANET-DEV MIT VAGRANT
  16. 16. LOKALE SYSTEMUMGEBUNG #1 VORBEREITUNGEN • Cygwin als UNIX-Umgebung für Windows - siehe http://cygwin.com • Ziel: Lösung soll unter Windows, Mac OS X, Linux einsetzbar sein • Benötigte Pakete: openssh, subversion, rsync, wget, mysql (Client) • SSH-PubKey-Auth einrichten für alle LIVE-Hosts (Web, DB, Solr)
  17. 17. LOKALE SYSTEMUMGEBUNG #2 VORBEREITUNGEN • Vagrant als Deployment-Framework für lokale virtuelle Maschinen • siehe http://vagrantup.com • Virtualisierung, Versuch #1: Virtualbox • Virtualisierung, Versuch #2: VMWare Workstation + Vagrant-Provider
  18. 18. LOKALE SYSTEMUMGEBUNG #3 VORBEREITUNGEN • Workspace-Verzeichnis anlegen, im Zugriff für IDE • auf möglichst große Platte, besser SSD (I/O-Performance) • "sperrige" Daten als Kopiervorlage lokal ablegen/updaten • für TYPO3 (SITEDATA): • fileadmin/SHARED (1TB NFS Volume), uploads, typo3conf • für Solr (SOLRDATA): • kompletter Index/Cores, Schemata, Config
  19. 19. VIRTUELLE DEV-MASCHINE VORBEREITUNGEN • Ubuntu Server statt SLES 11 (nicht verfügbar als freie Vagrant-Basebox) • Ubuntu ist besser non-interaktiv skriptbar • aktuellere Softwareversionen (PHP, MySQL, Kernel, Libs) • keine Lizenzkosten für lokale DEV-Umgebung
  20. 20. ...UND SCHON KANN'S LOSGEHEN! AUSPROBIEREN
  21. 21. Walkthrough
 ERZEUGEN EINES NEUEN DEV-SYSTEMS
  22. 22. PROJEKTVERZEICHNIS VORBEREITEN WALKTHROUGH • Workspace-Verzeichnis erstellen • Cygwin-Shell öffnen • SITEDATA und SOLRDATA bereitstellen (Kopie oder Symlink) • Vagrant-Config aus SVN auschecken • Konfigurationsdatei anpassen (Pfade, SVN User) • Vagrant vorbereiten (Plugins für Package-Cache und VMWare, Lizenz)
  23. 23. PROJEKTVORBEREITUNG VIDEO
  24. 24. CONFIG- FILE CODE
  25. 25. CONFIG- FILE CODE
  26. 26. NUTZDATEN UPDATEN WALKTHROUGH • Cygwin-Shell öffnen • ./update-assets.sh • Aktualisiert SITEDATA und SOLRDATA • erstellt frischen MySQL-Dump der LIVE-Site und legt ihn lokal ab • Ziel: 20+ GB nur übertragen, wenn unbedingt nötig • geht nur bei Verbindung zum LIVE-System (Office-LAN oder per VPN)
  27. 27. UPDATE ASSETS CODE
  28. 28. UPDATE ASSETS CODE
  29. 29. UPDATE ASSETS CODE
  30. 30. UPDATE ASSETS CODE
  31. 31. NUTZDATEN UPDATEN VIDEO
  32. 32. LOKALE VM ERZEUGEN WALKTHROUGH • Cygwin-Shell in Projektverzeichnis öffnen • vagrant up --provider vmware_workstation • Debug: VAGRANT_LOG=INFO vagrant up --provider vmware_workstation • erstellt neue VM, installiert und konfiguriert nach Bauplan/Skript • lokale Abweichungen (Auth/LDAP, Mail/SMTP, Netzwerk, SSL-Zertifikat, ...)
  33. 33. VAGRANT- FILE CODE
  34. 34. LOKALE VM ERZEUGEN VIDEO
  35. 35. INSTALL DEVSITE CODE
  36. 36. INSTALL DEVSITE CODE
  37. 37. DEVSITE CONFIG FILES CODE
  38. 38. INSTALL DEVSITE CODE
  39. 39. INSTALL DEVSITE CODE
  40. 40. INSTALL DEVSITE CODE
  41. 41. INSTALL DEVSITE CODE
  42. 42. INSTALL DEVSITE CODE
  43. 43. INSTALL DEVSITE CODE
  44. 44. INSTALL DEVSITE CODE
  45. 45. INSTALL DEVSITE CODE
  46. 46. INSTALL DEVSITE CODE
  47. 47. ERGEBNISSE VIDEO
  48. 48. Lessons Learned
 VERBESSERUNGS- POTENTIAL
  49. 49. BESSER GEHT IMMER LESSONS LEARNED • EXT:coreapi kann mittlerweile mehr (DB-Schema-Updates, Clear Cache, ...) • EXT:t3deploy wäre nicht mehr nötig • alternativ: TYPO3 Surf • git ist besser geeignet als SVN 
 (Cherry Picking, Merge-Lanes, Feature Branches, etc.) • Warum kein PuPHPet, Puppet, chef, ansible?
  50. 50. BESSER GEHT IMMER LESSONS LEARNED • VMWare-Investition lohnt. • SLES 11 ist so richtig Enterprise. • Deployment mit TYPO3 6.2 ist einfacher.
  51. 51. FRAGEN & ANTWORTEN
  52. 52. VIELEN DANK!

×