Kategorien
Technologie

Cloud-Deployment von Webanwendungen auf Basis von PHP

Vor einer gan­zen Wei­le berich­te­te ich über den PaaS-Anbie­ter Hero­ku, der sein Port­fo­lio an Pro­gram­mier­spra­chen mitt­ler­wei­le deut­lich erwei­tert hat. Bis vor nicht all­zu lan­ger Zeit fehl­te aber noch ein ver­gleich­ba­rer Anbie­ter für das Deploy­ment von…

Vor einer gan­zen Wei­le berich­te­te ich über den PaaS-Anbie­ter Hero­ku, der sein Port­fo­lio an Pro­gram­mier­spra­chen mitt­ler­wei­le deut­lich erwei­tert hat. Bis vor nicht all­zu lan­ger Zeit fehl­te aber noch ein ver­gleich­ba­rer Anbie­ter für das Deploy­ment von PHP-Anwen­dun­gen. Ver­wun­der­lich gera­de 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 eini­ge sehr bekann­te Sys­te­me in PHP ent­wi­ckelt wur­den.

Die­se Lücke füllt nun der Anbie­ter PHP Fog, wel­cher, genau wie Hero­ku 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­de­te 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­gi­ge PHP-Anwen­dun­gen per One-Click-Instal­ler instal­lie­ren kann. Dazu gehört unter ande­rem auch das äußerst belieb­te CMS Wor­d­Press. In der Anfangs­pha­se aber war eine bei PHP Fog abge­leg­te Wor­d­Press-Instal­la­ti­on aber nahe­zu unbrauch­bar, da man kei­ne beschreib­ba­ren Ver­zeich­nis­se ein­rich­ten konn­te und somit vie­le Funk­tio­nen von Wor­d­Press nicht nutz­bar waren. Updates schei­ter­ten, die Instal­la­ti­on von Plugins oder der Upload von Datei­en war unmög­lich. Der ein­zi­ge Aus­weg war, die Wor­d­Press-Instal­la­ti­on lokal zu war­ten und die Ände­run­gen per Git zu deploy­en. 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­pha­se war kurz­um ziem­lich ent­täu­schend. Stän­di­ge 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­wei­le ist der Ser­vice deut­lich gereift und die oben genann­ten Kri­tik­punk­te 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 Hero­ku ran. Loka­le Ände­run­gen an The­me-Datei­en 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­de­ne Datei­en, bei­spiels­wei­se Fotos. Die­se 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 Umwe­ge über Wor­d­Press-Plugins, die das erlau­ben. Die­ser Nach­teil exis­tiert natür­lich auch bei Hero­ku, nur bringt jede Rails-basier­te Anwen­dung einen inte­grier­ten Web­ser­ver mit und ver­fügt im Regel­fall über meh­re­re Daten­ban­ken (Pro­duc­tion, Deve­lo­p­ment, Test), sodass man Ände­run­gen an der Anwen­dungs­struk­tur ohne Pro­ble­me 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-Anwen­dun­gen. Ohne eine loka­le Instal­la­ti­on eines Web­ser­vers und einer MyS­QL-Daten­bank ist eine sol­che Arbeits­wei­se 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-Anwen­dun­gen über das effi­zi­en­te und ein­fach zu bedie­nen­de 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-Anwen­dun­gen. Hero­ku 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-Anwen­dun­gen 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­ti­ge Ände­run­gen las­sen sich aber nicht reflek­tie­ren. Mei­ne Idee wäre, dass man im Backend von PHP Fog einen But­ton fin­den soll­te, der auf der ent­fern­ten Maschi­ne 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 sei­ne eige­ne Maschi­ne bekommt. Ich wer­de wohl mal ein Sup­port-Ticket ein­rei­chen …

Schreibe einen Kommentar

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