Hallo leute,
ich wollte mal von anderen mal erfahren wie ihr am Besten eure Anwendungen deployed.
Also Ich habe ganz am Anfang(wahrscheinlich wie jeder) erst mit FTP über Filezilla dann in der IDE gemacht. Funktioniert wunderbar wenn man allein an einem Code entwickelt, 2 uploads gleichzeitig können dinge kaputtmachen.
Dann entdeckte ich Git und die Projekte wurden über ein Cronjob auf dem Server aktualisiert. Problem dabei sind aber weitere Tasks die Man ausführen will nach dem Update, zb DB Migration ausführen, Bei neu Installation Config anpassen, wenn sich Config Struktur verändert hat, diese dann auch irgendwie Anpassen.
Jetzt sind dazu noch CI Server und Analyse tools dazu gekommen, weil es ja öfters passiert ist dass man vergessen hat den Test lokal auszuführen oder auf dem Server irgend eine Einstellung nicht ganz korrekt war und somit das endergebnis nicht lief, obwohl Tests durchgelaufen sind.
Neulich habe ich dann Capistrano gefunden, die Idee ist eigentlich interessant, man hat ein Deployment enviroment die alle Server usw kennt und man "pusht" von der Deployment enviroment auf die Server.
Zusätzlich ist Capistrano eben eine Ruby anwendung, d.h ich muss meine Settings als .rb dateien definieren und teilweise yml und ich brauche Ruby usw usw.. bin aber PHP Entwickler.
Habe mich dann umgeschaut und es sieht wohl so aus dass es daneben noch http://deployer.in/ und noch weitere PHP Basierende Tools exestieren.
Was ich mir nun als Deployment System ausgedacht habe, wäre
Auf Raspberry PI installiere ich gitolite, phpci und deployer, in gitolite wären meine Privaten Projekte drin, phpci kennt diese Projekte und kann die Tests und Analysetools ausführen, wenn alles ok ist springt deployer an und pusht dann das Projekt je auf den/die Server.
Problem wäre dass ich irgendwie eine Configurationsverwaltung machen müsste, also was für Rezepte deploeyer benutzen soll und welche config files es hochladen soll. Könnte man sich dann überlegen alle Projekteinstellungen in einem Git Repository zu lagern oder pro projekt gäbe es ein deployment projekt mit konfigurationen.
Aber bis ich mich jetzt da hinsetze und anfange rumzufrickeln wollte ich mich informieren ob es nicht vielleicht eine "modernere" Lösung gibt?
Hoffe auf einige Tipps von erfahreneren hier
Viele Grüße
ich wollte mal von anderen mal erfahren wie ihr am Besten eure Anwendungen deployed.
Also Ich habe ganz am Anfang(wahrscheinlich wie jeder) erst mit FTP über Filezilla dann in der IDE gemacht. Funktioniert wunderbar wenn man allein an einem Code entwickelt, 2 uploads gleichzeitig können dinge kaputtmachen.
Dann entdeckte ich Git und die Projekte wurden über ein Cronjob auf dem Server aktualisiert. Problem dabei sind aber weitere Tasks die Man ausführen will nach dem Update, zb DB Migration ausführen, Bei neu Installation Config anpassen, wenn sich Config Struktur verändert hat, diese dann auch irgendwie Anpassen.
Jetzt sind dazu noch CI Server und Analyse tools dazu gekommen, weil es ja öfters passiert ist dass man vergessen hat den Test lokal auszuführen oder auf dem Server irgend eine Einstellung nicht ganz korrekt war und somit das endergebnis nicht lief, obwohl Tests durchgelaufen sind.
Neulich habe ich dann Capistrano gefunden, die Idee ist eigentlich interessant, man hat ein Deployment enviroment die alle Server usw kennt und man "pusht" von der Deployment enviroment auf die Server.
Zusätzlich ist Capistrano eben eine Ruby anwendung, d.h ich muss meine Settings als .rb dateien definieren und teilweise yml und ich brauche Ruby usw usw.. bin aber PHP Entwickler.
Habe mich dann umgeschaut und es sieht wohl so aus dass es daneben noch http://deployer.in/ und noch weitere PHP Basierende Tools exestieren.
Was ich mir nun als Deployment System ausgedacht habe, wäre
Auf Raspberry PI installiere ich gitolite, phpci und deployer, in gitolite wären meine Privaten Projekte drin, phpci kennt diese Projekte und kann die Tests und Analysetools ausführen, wenn alles ok ist springt deployer an und pusht dann das Projekt je auf den/die Server.
Problem wäre dass ich irgendwie eine Configurationsverwaltung machen müsste, also was für Rezepte deploeyer benutzen soll und welche config files es hochladen soll. Könnte man sich dann überlegen alle Projekteinstellungen in einem Git Repository zu lagern oder pro projekt gäbe es ein deployment projekt mit konfigurationen.
Aber bis ich mich jetzt da hinsetze und anfange rumzufrickeln wollte ich mich informieren ob es nicht vielleicht eine "modernere" Lösung gibt?
Hoffe auf einige Tipps von erfahreneren hier
Viele Grüße
Kommentar