Wie setzt ihr Projekte sinnvoll um? (Realisierung von DEV, Stage und Live Umgebung)
am 21.01.2020 - 19:31 Uhr in
Guten Tag liebe Kollegen,
ich habe mal eine Frage.
Wie setzt Ihr Eure Projekte sinnvoll um?
Wie aktualisiert ihr Eure Drupal Projekte ohne viel Aufwand?
Wie ich es bisher mache:
- Umsetzung direkt auf Live Server
- Entwicklung mit PHPstorm mit automatisiertem Upload auf den Server
- Updates spiele ich am LIVE System ein (Ich weiß, sehr mutig ;)
- Bei größeren Änderungen ziehe ich mir händisch eine Kopie der Seite und entwickele auf einer Testumgebung
Wie ich es gerne hätte:
- Entwicklung auf einem LOKALEN Webserver
- per einfachem Klick oder Konsolen-Befehl möchte ich das Projekt gerne auf die Staging Umgebung packen (Zur Kundensicht)
- Anschließend möchte ich es wieder per Klick LIVE schalten (Hier allerdings mit Merge der Datenbank / Synchronisation)
- Updates würde ich gerne erst Lokal einspielen und dann auf Weg wie oben veröffentlichen. > Somit muss es möglich sein per Klick die Liveumgebung auf die Lokale DEV Umgebung zu kopieren
- Dies soll sowohl bei meinem eigenen Server funktionieren als auch bei dem Kunden, falls er selber hostet (Dort habe ich nur FTP und SQL zur Verfügung
Hat jemand von Euch hier Erfahrungen gemacht?
Mir ist äußerst wichtig, dass ich meinen Arbeitsprozess professionalisiere, ohne dabei einen riesen Aufwand zu haben.
Ich besitze derzeit ein shared Hosting Paket mit rudimentären SSH Zugang bei All Inkl.
Geplant ist es irgendwann einen zusätzlichen MANAGED Server oder vServer zu mieten (Ich habe nicht die Zeit mich um die Administration des Servers zu kümmern)
Ich habe mir bereits Docker angeschaut. Ansich finde ich dies ganz cool, allerdings klappt das dann wieder bei Kunden nicht, die selber hosten.
Ich würde mich über Tipps freuen und bedanke mich schon mal im voraus ;)
- Anmelden oder Registrieren um Kommentare zu schreiben
Deployment mittels git
am 22.01.2020 - 09:15 Uhr
Hi,
ich bin ebenfalls Kunde bei all-inkl.com und betreue mehrere Kundenprojekte, sowohl im Shared Hosting als auch mit eigenem Managed Server.
Was Drupal angeht, so arbeite ich mit Git. Je nach Komplexität des Projekts habe ich bis zu drei Branches (dev, stage, master). Ich entwickle grundsätzlich lokal. Änderungen pushe ich in mein zentrales (Bare-)Git-Repository auf dem Live-Server. Per Hook (post-receive) werden Änderungen automatisch in das Stage- bzw. Masterverzeichnis ausgespielt.
Du fragst auch wegen der Datenbanken. Diese halte ich strikt getrennt und ich synchronisiere/merge hier nichts. Das heißt zum Beispiel, wenn ich Inhalte lokal einpflege, muss ich sie anschließend auch auf dem Live-Server nochmal per Hand einpflegen. Aber letztlich verwende ich Inhalte in meiner lokalen Umgebung nur zum Testen (z.B. bei technischen Weiterentwicklungen oder bei Systemupdates).
Git wohl Mittel der Wahl
am 22.01.2020 - 16:33 Uhr
Moin,
ich hab einen lokalen Lamp Stack, der mit dem stage und production Server identisch ist (PHP, MSQL Version u.s.w).
Auf stage und production gibt es jeweils ein Git bare Repo, das den gepushten Code via Git Hook ins Document Root deployed.
Entwicklung, Erweiterungen, Bug Fixes und Updates mach ich nur lokal. Wenn alles gut ist, wird nur mittels git push deployed. Änderungen in der DB, z.Bsp. Konfigs, verwalte ich ebenfalls mit Git.
Wenn das System erstmal eingerichtet ist, geht das alles ratz fatz.
Meine Projekte, bisher 20 an
am 10.02.2020 - 12:49 Uhr
Meine Projekte, bisher 20 an der Zahl, davon 10 Drupal, laufen alle über git, mit einem eigenem GitLab-Server.
Durch GitLab CI/CD, composer, npm, docker und co. kann ich alle Projekte über einen automatisierten Buildprozess betreiben. Auf meinem Staging-Server sowie auf meinem Live-Server bin ich nur noch für Sicherheitsupdates auf OS ebene.
Mit den Buildprozessen kann ich auch, ohne dass ich Lokal alles einzeln angeben muss, allen Drupal Projekten die Sicherheitsupdates in einem Schwung aufspielen, das ganze wird mir dann auf Staging geschoben, wo ich kurz drüber schaue ob irgendein Update was kaputt gemacht hat.
Wenn alles funktioniert hat drück ich auf einen Knopf im GitLab und innerhalb von 4-6min sind alle Projekte auf dem neuersten Stand. (Mit möglicher one-click rollback funktion, falls doch was kaputt gegangen ist)
So ein Setup funktioniert aber meistens nur über Root/Self Managed Server, da man bei Managed Servern oft nicht die benötigten Programme nachinstallieren kann.
Ab einer gewissen Größe/einem gewissen Umfang an eigenen Projekten, sollte man sich aber immer Gedanken drüber machen, ob man die Sicherheit des Betriebs, der Hard-und Software, sowie die Performance in die Hände einer Fremdfirma geben sollte/möchte.
Viele Grüße,
Andi
Web- und Drupal Freelancer aus München | Schwarz Developing
Meine Kunden habe ich alle
am 05.10.2021 - 06:33 Uhr
Meine Kunden habe ich alle bei einem Hoster, der Plesk-Obsidian einsetzt.
Das macht einiges einfacher beim hochladen.
Ich entwickle lokal auf meinem Laptop, wo ich Wampserver im Einsatz habe. Ich finde Wampserver ist für lokale Entwicklung am einfachsten.
Die "Liveschaltung" mache ich noch indem ich die Dateien zippe, und ein Datanbankabbild ebenfalls zippe, dann lade ich die gezippte Datei per Plesk-Obsidian Oberfläche hoch, und entpacke sie direkt.
Das Datenbankabbild kann direkt in gezippter Form in php MyAdmin importiert werden.
settings Datei anpassen - fertig.
Updates führe ich ebenfalls auf dem Laptop aus.
"composer update", dann das update.php der lokalen Webseite besuchen, prüfen, ob alles glatt läuft, dann Dateien zippen und hochladen.
Ich bin noch nicht so fortgeschritten, dass ich GIT, Docker und so angeschaut habe. Ich bin mit dem aktuellen Vorgang recht zufrieden, die einzelnen Schritte können zügig ausgeführt werden. 1-Klick Vorgänge sind aus meiner Sicht anfälliger für Anwenderfehler, ich habe es gern wenn der Arbeitsvorgang in 2-3 kleineren Schritten erledigt wird, dann kann es sein, dass man noch während Schritt 2 oder 3 denkt "oha ...."
Ich schreibe einige Tricks auf meiner privaten Webseite auf (auf Englisch), siehe Signatur.
meine persönliche Webseite: drupaldope.com
enthält Tipps & Tricks zu Drupal 8 & 9 (auf Englisch)