Cloud-Deployment von Webanwendungen auf Basis von PHP

Vor einer gan­zen Weile berich­tete ich über den PaaS-Anbieter Heroku, der sein Port­fo­lio an Pro­gram­mier­spra­chen mitt­ler­weile deut­lich erwei­tert hat. Bis vor nicht allzu lan­ger Zeit fehlte aber noch ein ver­gleich­ba­rer Anbie­ter für das Deploy­ment von PHP-Anwendungen. Ver­wun­der­lich gerade des­we­gen, weil PHP nach wie vor zu den belieb­tes­ten Pro­gram­mier­spra­chen im welt­wei­ten Netz gehört und einige sehr bekannte Sys­teme in PHP ent­wi­ckelt wurden.

Diese Lücke füllt nun der Anbie­ter PHP Fog, wel­cher, genau wie Heroku auf das Deploy­ment von Anwen­dun­gen über das Ver­sio­nie­rungs­tool Git setzt. Das ver­spricht eine äußerst ein­fa­che Hand­ha­bung und ist deut­lich zeit­ge­mä­ßer als das sonst übli­che Deploy­ment über FTP. Allein schon in Sachen Geschwin­dig­keit steckt Git die Daten­über­tra­gung via FTP locker in die Tasche. Vor eini­ger Zeit mel­dete ich mich dann bei PHP Fog an und begann, ein wenig zu expe­ri­men­tie­ren. Vor­bild­lich ist, dass man gän­gige PHP-Anwendungen per One-Click-Installer instal­lie­ren kann. Dazu gehört unter ande­rem auch das äußerst beliebte CMS Word­Press. In der Anfangs­phase aber war eine bei PHP Fog abge­legte WordPress-Installation aber nahezu unbrauch­bar, da man keine beschreib­ba­ren Ver­zeich­nisse ein­rich­ten konnte und somit viele Funk­tio­nen von Word­Press nicht nutz­bar waren. Updates schei­ter­ten, die Instal­la­tion von Plugins oder der Upload von Dateien war unmög­lich. Der ein­zige Aus­weg war, die WordPress-Installation lokal zu war­ten und die Ände­run­gen per Git zu deployen. Pro­ble­ma­tisch war aber natür­lich hier, dass Ein­träge in der loka­len Daten­bank nicht auf der Infra­struk­tur von PHP Fog lan­de­ten. Die Anfangs­phase war kurzum ziem­lich ent­täu­schend. Stän­dige Down­ti­mes und ein erfolg­rei­cher, groß ange­leg­ter Hacker­an­griff trüb­ten den Erstein­druck wei­ter. Mitt­ler­weile ist der Ser­vice deut­lich gereift und die oben genann­ten Kri­tik­punkte sind alle­samt eli­mi­niert wor­den. Den­noch reicht der Bedie­nungs­kom­fort lei­der nach wie vor nicht an den von Heroku ran. Lokale Ände­run­gen an Theme-Dateien bspw. kann man lei­der nicht zurück auf den eige­nen Rech­ner bekom­men, da die Ver­sio­nie­rung nur in eine Rich­tung funk­tio­niert. Glei­ches gilt für hoch­ge­la­dene Dateien, bei­spiels­weise Fotos. Diese nach­träg­lich auf den eige­nen Rech­ner zu bekom­men, bspw. um einen Anbie­ter­wech­sel durch­zu­füh­ren ist nicht mög­lich, wenigs­tens nicht ohne Umwege über WordPress-Plugins, die das erlau­ben. Die­ser Nach­teil exis­tiert natür­lich auch bei Heroku, nur bringt jede Rails-basierte Anwen­dung einen inte­grier­ten Web­ser­ver mit und ver­fügt im Regel­fall über meh­rere Daten­ban­ken (Pro­duc­tion, Deve­lop­ment, Test), sodass man Ände­run­gen an der Anwen­dungs­struk­tur ohne Pro­bleme lokal vor­neh­men und auch gleich tes­ten kann. Die Schuld ist hier also nicht bei PHP Fog zu suchen, son­dern viel­mehr bei der Struk­tur von PHP-Anwendungen. Ohne eine lokale Instal­la­tion eines Web­ser­vers und einer MySQL-Datenbank ist eine sol­che Arbeits­weise nicht mög­lich. In Sachen Sim­pli­zi­tät schlägt Rails hier PHP ganz bequem. Die Idee, das Deploy­ment von PHP-Anwendungen über das effi­zi­ente und ein­fach zu bedie­nende Git vor­zu­neh­men ist gut, lei­der schei­tert die Benutz­bar­keit in der Pra­xis an dem doch recht ange­staub­ten Kon­zept von PHP-Anwendungen. Heroku ver­bie­tet das Schrei­ben in das Datei­sys­tem des Anbie­ters ein­fach, um genau sol­chen Pro­ble­men vor­zu­beu­gen. Rails-Anwendungen spie­len da im Regel­fall auch pro­blem­frei mit, und man bin­det Sto­rage über Ser­vices wie Ama­zons S3 an. Bei PHP Fog ist das Schrei­ben ins Datei­sys­tem (lei­der) ohne wei­te­res mög­lich. Dor­tige Ände­run­gen las­sen sich aber nicht reflek­tie­ren. Meine Idee wäre, dass man im Backend von PHP Fog einen But­ton fin­den sollte, der auf der ent­fern­ten Maschine eine git add .; git com­mit –am ‘Kom­men­tar’ aus­führt und man dann mit­tels git pull die Ände­run­gen auf seine eigene Maschine bekommt. Ich werde wohl mal ein Support-Ticket einreichen …

Hinterlasse eine Antwort

Deine E-Mail-Adresse wird nicht veröffentlicht. Erforderliche Felder sind markiert *

Du kannst folgende HTML-Tags benutzen: <a href="" title=""> <abbr title=""> <acronym title=""> <b> <blockquote cite=""> <cite> <code> <del datetime=""> <em> <i> <q cite=""> <strike> <strong>