Shopware Hosting Performance

Im September 2019 rief mich ein langjähriger Kunde an. Wir haben für Ihn schon den Magento Shop sowie zuletzt eine Eigenentwicklung seines Entwicklerteams gehostet. HHVM, PHP-FPM und auch Docker Container waren Techniken, die wir hierfür zur Verfügung gestellt haben.

Bei seinem Anruf teilte er mir jedoch mit, dass er mit seinem Shop auf Shopware umsteigt und die Agentur bereits kurz vor der Fertigstellung steht. Üblicherweise hat die Agentur ihm geraten, das Hosting auf einen empfohlenen Provider der Agentur umzustellen. Es handelte sich dabei um einen bekannten niedersächsischen Provider der sich mit NGinx Hosting auf Shopware spezialisiert hat. Der Kunde teilte mir mit, dass er diesem Umzug nur sehr ungern zugestimmt hat. Jedoch möchte er als Shopbetreiber sicherstellen, dass die Agentur mit dem Hoster gut zusammenarbeitet. Die Agentur meinte, dass es nur bei dem einen Hoster, den Sie empfehlen, möglich wäre.

Selbstverständlich haben wir das akzeptiert und soweit alles in die Wege geleitet.

Am Tag des Umzug des Shops auf das neue Serversystem sah soweit alles gut aus. Durch die Verwendung von Cloudflare konnte die Domain augenblicklich auf den neuen Server umgestellt werden.

Gegen Mittag klingelte erneut das Telefon. Es war der Kunde. Er war sehr erregt weil der neue Shop erhebliche Probleme bei der Erreichbarkeit zeigte. Er bat unsere Technik eine Analyse des Problems bei dem anderen Hoster zu erstellen da sowohl die Agentur als auch der Hoster unzureichende Informationen lieferten. Am Ende gab es von Seiten der Agentur und auch vom neuen Hoster keine wirklichen Lösungen.

Wir stiegen also in die Analyse des Systems ein.

Folgende Eckdaten wurden gesammelt:

  • Der Shop verwendet Shopware 5
  • Der Shop lief bei dem neuen Anbieter auf einen Server (DB Server und Webserver zusammen)
  • Der Shop hat zu Spitzenzeiten 100 gleichzeitige Besucher (> 1.3 Millionen Seitenanfragen pro Tag)
  • Der Shop verwendet Redis als Cache Backend
  • Der Shop läuft auf einem dedizierten Server mit Nginx als Webserver
  • Der Shop läuft auf einem dedizierten Server mit 32 CPU Kernen und 128GB RAM

Als wir die Infos zu dem Server erhalten haben, hat uns gewundert wieso ein so wichtiger und umsatzkräftiger Shop nicht auf einem redundanten System läuft. Ein einfacher Hardwareausfall wie ein defekter RAM Speicher, CPU oder Mainboard würden für einen Stillstand des kompletten Shops für längere Zeit sorgen.
Da der Shop des Kunden bei uns bis dato immer auf einem hochverfügbaren Cloudsystem lief, hat uns diese Eintscheidung des Kunden doch sehr gewundert.

Als erstes haben wir eine Bestandsaufnahme der Performance gemacht.

Bei dem ersten Test haben wir die Geschwindigkeit der Startseite des Shop gemessen. Wir verwenden dazu https://loader.io .
Loader.io kann viele verschiedene Zugriffe mit unterschiedlichen IP Adressen auf eine Zielseite simulieren und die Ergebnisse darstellen:

Shopware Hosting Performance subversion hosting
Der erste Test des Shops auf dem System ders anderen Anbieters

Der Test war ernüchternt. Zugriffzeiten von über 1.5 Sekunden und bereits bei wenigen Zugriffen war es dem Server nicht mehr möglich zu antworten. Es kam zu Timeouts.

Wir haben eine Testinstanz des Shopware Shops auf unserem Shopware Hosting Demoserver installiert um zu sehen, ob der Shop selbst ggf. ein Problem aufweist. Nach einigen Konfigurationen wie z.B. MySQL Optimierungen, Redis Konfigurationen, PHP-FPM Anpassungen etc. lief der Shop auf unserer Hardware sehr performant:

Shopware Hosting Performance subversion hosting
Der erste Test des Shops auf usnerem Shopware optimierten Cloudserver

Durchschnittliche Ladezeiten von unter 500ms lagen in dem Bereich, den wir für diesen Shop erwartet haben.

Uns war schleierhaft, warum das Ergebnis bei dem neuen Hoster nicht erzielt werden konnte und auch offenbar niemend dort bereit war, das Problem weiter zu verfolgen.

Trotzdem war das Ziel der Analyse zu dem Zeitpunkt noch, herauszufinden warum es auf dem Shopware spezialisiertem Hoster nicht in zufriedenstellender Performance funktionierte.

Zu den Eckdaten unseres Systems:

  • VMWare Enterprise Cloudsystem mit voller redundanz und einer Verfügbarkeit von 99,99%
  • 10GBit Netzwerkverbindungen für die Cloudplattform intern und extern
  • 16 Kerne, 16GB RAM
  • DB Server und Webserver auf einem System (wegen der Vergleichbarkeit)
  • Redis Server als Cache
  • NGinx als Reverse Proxy und Apache 2.4 als Backend Server mit PHP-FPM
  • Shopware optimierter Cloudserver

Normalerweise würden wir einen Shop dieser Größenordnung auf einem System mit getrennten DB- und Webserver installieren, jedoch wollten wir eine Vergleichbarkeit von unserem System und dem System vom neuen Hoster erreichen. Daher haben wir es so installiert, wie der andere Anbieter.

Nach einigen weiteren Tests konnten wir das System des NGinx Hosting Spezialisten nicht auf unsere Performance anheben. Vom Anbieter und der Agentur kamen leider auch keine brauchbaren Informationen. Der Support war anscheinend auch sehr schwierig. Etwas was aus unserer Sicht im Bereich Shophosting nicht sein darf.

Um den Shopware Shop und ggf. irgendwelche besonderheiten mal komplett auszuschließen, haben wir einfach eine phpinfo auf unserem Server und den des neuen Hosters abgelegt und einen Performancetest durchgeführt:

Aufruf einer phpinfo beim anderen Anbieter

Hurra, dies war tatsächlich der erste Test, den der Server des anderen Anbieters ohne Fehlermeldung beantworten konnte. Die durchschnittliche Zeit von 624ms war nicht begeisternd.

Wir haben den Test auf unserem System durchgeführt:

Aufruf der phpinfo auf usnerem System

Die durchschnittliche Ladezeit einer phpinfo Seite war auf unserem System bereits über 40% schneller als auf dem System des NGinx Spezialisten.

An der Stelle haben wir aufgehörrt nach Problem im Shop oder in den Einstellungen zu suchen. Das andere System hat offenbar ein Leistungsproblem da es bereits unserem System mit 16 Kernen und 16GB RAM bei sowas einfachem wie einer phpinfo Seite weit unterlegen war.

Da wir im ständigem Kontakt mit dem Kunden waren, haben wir diese neue Info an ihn kommuniziert. Wir sind somit dazu übergegangen, das Shopware System auf unserem Servern mit größtmöglicher Performance zur Verfügung zu stellen und haben aufgehört die Problem des anderen Anbieter zu suchen da sich dieser offenbar wenig lösungsorintiert gezeigt hat.

Auch Tests ohne Redis Cache zeigten, dass unser System mit einer durchschnittlichen Ladezeit von weit unter einer Sekunde theoretisch auch ohne Cache in der Lage wäre, eine große Anzahl von Kunden zu bedienen. Dies wird ggf. notwendig wenn aufgrund einen Produktupdates ein löschen des Caches im Betrieb notwendig ist. In dem Fall müssen die Seiten schnell aufgebaut werden können um den Cache schnell zu erneuern.

Test mit 250 Clients / Minute ohne aktiviertem Cache auf unserem System

Im weiteren Verlauf wurde bei unseren Tests langsam die Anzahl der Benutzer pro Minute erhöht. 250 Benutzer pro Minute sollten eigentlich noch keine große Herausforderung für ein vernünftig konfiguriertes Shop Hosting System sein.

Bei 400 Benutzer pro Minute mit aktiviertem Redis Cache sieht noch alles gut aus:

400 Clients / Minute mit aktiviem Redis auf unserem Server

Bei 600 Clients pro Minute und deaktiviertem Cache sieht die Sache schon anders aus:

Bei 600 Clients / Minute ohne Cache, merkt man das sich DB Server und Webserver gegenseitig behindern

So sahen die Prozesse bei dem Test mit 600 Clients / Minute auf dem Server aus

Hier zeigt sich, dass ein System mit DB- und Webserver sich gegenseitig behindert. Ohne Cache wird der DB Server intensiv genutzt. Die Performance, die hier benötigt wird, fehlt dem Webserver, Am Ende steht das System. Dies ist auch nur bedingt durch mehr Kerne oder mehr RAM aufzufangen. Am Besten trennt man die beiden Systeme und verwendet zwei Server. So ist eine gegenseitige Behinderung ausgeschlossen. Da unsere Cloudserver sowohl intern als auch extern hochperformante 10GBit Verbindungen verwenden ist sichergestellt, dass die Daten der Datenbank mit bestmöglicher Geschwindigkeit zum Webserver geliefert werden. Ebenfalls hilft die Trennung von Web-und DB Server bei späteren Skalierungen, weitere Webserver über einen Loadbalancer zu installieren.

600 Clients / Minute bei getrennten Web- und Datenbankserver, ohne Cache

Nach der Installation des dedizierten DB Servers lief auch der Test mit 600 Clients / Minute ohne Cache problemlos durch. So stellen wir uns das bei einem Hosting Spezialisten und Shopware Hosting Paket vor. Auch der Kunde war begeistert.

Nach der Aktivierung des Caches ergaben sich wirklich sehr gute Ladezeiten:

Nach dem bis jetzt alles super lief, wollten wir unser Glück herausfordern und versuchten eine Test mit 1000 Clients / Minute:

1000 Client / Minute auf unserem Shopware optimierten Cloudserver

Hier liegen offenbar die Grenzen des Systems. Ab 1000 Clients / Minute muss über ein Lastenausgleich nachgedacht werden d.h. es werden mehrere Webserver installiert, die im Backend auf den DB Server zugreifen.

Dies entspricht auch der heutigen Philosophie. Man versucht seine Systeme nicht mehr in die Höhe wachsen zu lassen sondern in die Breite. Lieber 2 Webserver mit je 12 Kernen statt ein Webserver mit 32 Kernen. Es gibt Komponenten im System, die können mit zusätzliche CPUs und RAM nicht hoch skaliert werden (Controller, Bussystem etc.).

Wenn der Kunde diese Zugriffszahlen erreicht sind wir gerüstet das System schnell auf ein Loadbalancing aufzurüsten.

Wir freuen uns, dass wir den Kunden auf diese Weise wieder in unser Rechenzentrum zurückholen und mit unserem Service und System zeigen konnten, dass wir in einer höheren Liga spielen als selbsternannte norddeutsche Spezialisten für NGinx Hosting.

Wenn auch Sie unzufrieden mit Ihren Shopware Hosting sind oder Fragen zu professionellen und performanten Shop Hosting Servern haben, kommen Sie gerne auf uns zu. Wir freuen uns über Ihre Anfrage und stellen Ihnen gerne ein Demosystem zum Testen zur Verfügung.

Magento mit SSL und Varnish

Varnish arbeitet ausschliesslich mit HTTP Verbindungen. Um Magento mit Turpentine und Varnish mit SSL Verschlüsselung zu verwenden sind einige Eingriffe notwendig. Wir gehen hier von einem NGinx frontend Server und einem Apache2 backend Server aus. 1. Im NGinx zusätzlich zu der Varnish Proxy konfiguration der Parameter Ssl-Offloaded „1“ gesetzt werden: 2. In der .htaccess Datei von magento wird der Header abgefragt: 3. Im Magento unter System-> Configuration -> Web -> Secure muss der Offloader header Wert auf HTTP_SSL_OFFLOADED gesetzt werden. Die Base URL muss das https Protocoll verwenden.  

Upgrade von Redmine

Redmine ist ein, auf Ruby on rails baiserendes, Projektmanagement und Ticketsystem.

Es ist opensource und erfreut sich allgemeiner Beliebtheit.

Da Redmine sehr intensiv weiterentwickelt wird kommt es häufig vor, dass Updates eingespeilt werden müssen.

Um ein Upgrade von Redmine durchzuführne geht man wie folgt vor:

  1. Sourcecode auf den aktuellen Stad bringen
    Wer den Quellcode per svn ausgecheckt hat kann sich glücklick schätzen denn hier ist das Upgrade sehr einfach:
    Damit wird Redmine auf den aktuellen Stand Ihrer Vollversion aktualisiert z.B. von 3.1.1 auf 3.1.2
    Wenn Sie auf eine aktuelle Vollversion aktualisieren möchten verwenden Sie den switch Befehl:
    Hiermit werden alle Dateien auf den Stand der derzeit aktuellen 3.1 Version aktualisiert. Ihre settings werden dabei nicht überschrieben.
    Wer kein Subversion verwendet hat, kann z.B. fertige Pakete herunterladen und die in einen neuen Ordner entpacken. Danach /files, /plugins und Konfigurationdateien aus dem alten Ordner kopieren.
  2. Nun müssen die notwendigen Gems nachinstalleirt bzw. aktualisiert werden
    Das Bundle Script aktualisiert bzw. installiert
  3. Aktualisieren der Redmine Datenbank
    Führt das Script zum Migrieren der Datenbank aus
  4. Aktualisieren der Redmine Plugin Datenbanken
    Migriert die Datenbanken der Plugins
  5. Temporäre Dateien löschen
    Dadurch werden temporäre Sessions gelöscht.
  6. Redmine Instanz neu starten

 

HHVM schickt PHP Webseiten auf die Überholspur

Über 80% aller Webseiten weltweit werden mit PHP betrieben.

Der schnelle Einstieg in die Programmiersprache sorgt für eine große Beliebtheit bei den Programmierern. Ob quick&dirty oder sauber objektorientiert. Alles ist möglich.

Große CMS oder Shopsysteme nutzen PHP. Module für verschiedene Datenbanksysteme stehen zur Verfügung um Daten aus PHP heraus zu verwalten.

Mit fast jedem PHP Update wurde die Programmiersprache schneller aber um gruße Shop mit tausenden von einzelnen PHP Dateien zu betreiben fehlt es teilweise doch noch an der nötigen Performance. Denn im Netz gilt: Je schneller eine Seite desto geringer die Absprungrate der Besucher.

Also wird um jede Millisekunde gefeilscht.

Es gibt verschiedene Ansätze um die Geschwindigkeit von PHP Anwendungen zu steigern:

  1. Optimieren von Code
  2. Caching von Daten
  3. Caching von Code

Wir gehen davon aus, dass der Code optimal läuft da wir uns nur mit 1 und 2 beschäftigen wollen.

Caching von Daten

Um Daten zu cachen gibt es verschiedene Möglichkeiten. Anwendungen legen Daten im Dateisystem oder Speicher ab und greifen auf diese zu um sie nicht erneut berechnen zu müssen. Memcached wird dazu gerne verwendet. PHP kann über Memcached Daten im RAM Speicher ablegen und sehr schnell darauf zugreifen.

Varnish ist ebenfalls ein beliebter Seitencache. Damit brauchen Webseiten nicht bei jedem Aufruf neu berechnet zu werden sondern werden aus einem Cache heraus ausgeliefert.

Caching von Code

Eien PHP Datei wird vor jedem Ausführen in einen Bytecode übersetzt. Wenn man nun eine PHP Datei häufig benötigt könnte man diesen Bytecode auch in einen Cache ablegen um die Zeit des Übersetzens zu sparen (OpCode Cache).

Die PHP Beschleuniger können neben dem Cachen des Bytescodes auch noch Optimierungen vornehmen und die Geschwindigkeit nochmals zu steigern. Es gibt verschiedene OpCode Caches (eAccelerator, APC, Zend OpCache).

Was ist nun HHVM?

HHVM (HipHopVirtualMachine) ist ein eigenständiges Programm welches PHP Dateien zunächst in einen ByteCode übersetzt (HHBC). Dieser ByteCode wird dynamisch zur Laufzeit durch eienn  Jit Compiler in Maschinencode compiliert. Da HHVM hierzu eine eigene PHP Implementation hat werden ggf. nicht alle Funktionen der normalen PHP Version unterstützt.

Auf diese Weise kann eine PHP Anwendung innerhalb von HHVM um ein vielfaches schneller und ressourcensparender laufen als innerhalb eines normalen PHP Interpreters.

Möchten Sie einen HHVM Server nutzen? Kein Problem. Auf unseren Root-, Managed, SVN- und Git sowie Shophosting Servern können wir Ihnen gerne einen HHVM einrichten.

Wenn Sie Fragen haben schreiben Sie uns

Fehlermeldung: Server sent unexpected return value (413 Request Entity Too Large) in response

Der Apache Server gibt den Fehler 413 zurück wenn die Größe der Anfrage (RequestBody) den angegebenen Wert in der Konfiguration überschreitet.

Daher sollte bei einem SVN Hosting Server in der Apache Konfiguration folgendes gesetzt sein:

Somit sollten keine HTTP 413 Fehler mehr auftreten.

Löst Ruby langsam aber sicher PHP ab?

Löst Ruby langsam aber sicher PHP ab? subversion hostingRuby ist praktisch genauso alt wie PHP, aber dennoch hat die Sprache trotz aller Vorteile lange Zeit ein eher unbeachtetes Nischendasein geführt. Die übliche Wahl für webbasierte Lösungen heißt auch heute noch meist PHP, seltener Java oder Perl. Seit einiger Zeit ändert sich dies aber zunehmend – Webentwickler lernen die vielen Vorzüge kennen und schwenken auf die neue Plattform um. Da Entwickler sich häufig untereinander austauschen und meist generell neugierig sind, nimmt Ruby immer mehr Fahrt auf. Gerade das Framework „Ruby on Rails“ bietet dem Einsteiger viele Möglichkeiten, die Leistungsfähigkeit von Ruby zu erfahren.

Der Knackpunkt ist bisher beim Hosting zu suchen: PHP ist bei praktisch jedem Hoster auch im kleinsten Paket vertreten, Hoster mit Ruby im Angebot gehören immer noch ins Segment Profi Webhosting. Dieses Ungleichgewicht verändert sich nur langsam, da der Markt bisher noch keinen ausgeprägten Bedarf an Ruby-Hostern zeigt. Das liegt teilweise sicher auch daran, dass Ruby nicht so „nachsichtig“ ist wie PHP. Programmierer, die dank PHP einen eher laxen Programmstil entwickelt haben, können sich mit Ruby schwer tun. Andererseits führt der höhere Anspruch, den Ruby an die Entwickler stellt, auch zu qualitativ besseren Programmen.

Natürlich kann Ruby kein Allheilmittel für die Sicherheit und Stabilität webbasierter Anwendungen sein, aber auf jeden Fall stellt es einen nützlichen Baustein einer robusten, verlässlichen Infrastruktur dar – wenn man den richtigen Anbieter wählt. Im Profi Webhosting zeigt sich dank seiner höheren Komplexität bislang noch nicht der massive Preisdruck wie beim „normalen“ Webhosting. Spezialitäten wie Ruby Hosting oder auch Kombinationen von Webhosting und Entwicklungsumgebung, zum Beispiel Eclipse, Bugzilla und SVN Hosting als Komplettpaket fordern auch den Hoster heraus.

Hoster in der Zwickmühle

Über den Preis kann sich der Anbieter beim Profi Webhosting also nicht von der Konkurrenz absetzen. Die logische Konsequenz: Starke Kundenorientierung und hohe Flexibilität sind das A und O für einen erfolgreichen Hoster in diesem Segment. Auch die Mitarbeiter im Support sehen sich hohen Anforderungen gegenüber. Zum einen erwarten Kunden bedingt durch den höheren Preis einen erstklassigen Service, zum anderen stellt sich auch das Niveau der eingehenden Fragen und Problemberichte als deutlich gehoben dar. Immerhin sind die Nutzer in der Regel selber Entwickler und so in der Lage, viele Probleme selbst zu beheben. Für den Hoster verbleiben dann „nur noch“ die hartnäckigen Probleme, deren Lösung durchaus auch für den Support eine Herausforderung darstellen kann.

Für den Entwickler selbst stellt solch ein Profi Webhosting Anbieter eine wahre Fundgrube neuer Möglichkeiten dar: Die Kombination von Laufzeitumgebung, Entwicklungsumgebung und Webhostingpaket bietet die Möglichkeit, die gesamte Entwicklung webbasiert zu gestalten. Damit wird die Bindung an einen bestimmten Arbeitsplatz weitgehend aufgehoben und auch die Bildung von internationalen Arbeitsgruppen ist durch das überall verfügbare Internet machbar. Allerdings haben viele Firmen diese erheblichen Vorteile bislang noch nicht erkannt – die Vorreiter in diesem Bereich sind Einzelentwickler, Teams aus Enthusiasten und Open-Source-Entwicklern sowie kleine, agile Softwareschmieden. Die erfolgreiche Besetzung zahlreicher kleiner Marktnischen ist der Lohn für den Mut, neue Wege zu beschreiten.

Ob Java, Git oder Ruby – ein passender Hoster erspart viel Stress und Aufwand

Ob Java, Git oder Ruby – ein passender Hoster erspart viel Stress und Aufwand subversion hostingWer sich intensiv mit dem Internet beschäftigt, fängt früher oder später auch damit an, eigene Web-Anwendungen zu entwickeln, deren Leistungsumfang über klassische Websites weit hinaus geht. Vieles lässt sich dabei auf der sogenannten Client-Seite lösen, also direkt im Browser des Anwenders, nicht immer ist dieser Weg aber auch sinnvoll. Beispielsweise sollte die Überprüfung von Zugangsdaten nicht lokal erfolgen sondern auf dem Server – sonst ist dem Missbrauch Tür und Tor geöffnet.

Dabei erreicht man schnell die Grenzen herkömmlicher Hosting-Angebote – oder stößt in ganz neue, ungeahnte Preisregionen vor, wenn einem gleich ein kompletter Rootserver verkauft wird –  obwohl man bei einem vernünftigen Anbieter aus der Sparte Profi Webhosting ein wesentlich günstigeres und besser auf die eigenen Anforderungen abgestimmtes Paket erhalten könnte. Wie so oft im Leben gilt es also auch hier, zunächst möglichst viele Informationen einzuholen und sich über die eigenen Anforderungen bewusst zu werden.

Dazu gehört nicht nur eine Bestandsaufnahme des aktuellen Bedarfs sondern auch ein kleiner Blick in die Zukunft. Nicht alles ist planbar, soviel ist sicher – dennoch bringt die Einbeziehung der Entwicklungsrichtung klare Vorteile mit sich. Beispielsweise lässt sich von vorn herein ein Hostingpaket wählen, dass einen guten Kompromiss zwischen Kosten und Erweiterbarkeit bringt. Gerade beim Profi Webhosting zeichnen sich gute Anbieter durch flexible Migrationsmöglichkeiten aus – ohne viel Umstände kann bei Bedarf variabel auf- und abgerüstet werden. Möglich machen dies vor allem cloudbasierte Dienste, mit denen auch Spezialitäten wie Subversion Hosting oder eine komplette webbasierte Entwicklungsumgebung reibungslos den aktuellen Anforderungen angepasst werden können.

Hostingdienste in Eigenregie

Natürlich lassen sich all diese Dienste auch in Eigenregie betreiben, das kostet auf den ersten Blick nur einmalig für die Anschaffung der Hardware. Vergessen wird dabei gerne, dass die Einrichtung ebenfalls Zeit benötigt, und auch während der gesamten Nutzungsdauer fortlaufender Wartungsaufwand erforderlich ist, um einen sicheren, stabilen Betrieb zu gewährleisten. So wird aus der „Kleinigkeit“ schnell ein Vollzeitjob, der die Konzentration auf die eigenen Kernkompetenzen stört und effektives Arbeiten nachhaltig behindert. Diese tatsächlich anfallenden Kosten werden gerne ignoriert, wenn es um die Abwägung geht, einen externen Dienstleister zu beauftragen oder eine eigene Lösung auf die Beine zu stellen.

Spätestens wenn durch einen Konfigurationsfehler wichtige Daten unwiederbringlich verloren gehen, kommt das böse Erwachen. In letzter Zeit häufen sich auch die virtuellen Einbrüche und Diebstähle bei Firmen, deren Server nicht ausreichend abgesichert sind. So können Firmengeheimnisse entwendet werden ohne dass es jemand bemerkt. Mit einem verlässlichen Partner, dessen Kernkompetenz das Profi Webhosting ist, lässt sich dieses Risiko zu sehr moderaten Kosten minimieren. Trotz des großen Leistungsumfangs sind die Preise dank eines gesunden Wettbewerbs in diesem Marktsegment erfreulich niedrig, so dass selbst für Einzelentwickler diese Alternative zum Eigenbetrieb immer attraktiver wird.

Dies gilt umso mehr für Entwickler, die hauptsächlich für Windows-Plattformen entwickeln, denn die meisten der gängigen Werkzeuge von Versionsverwaltung bis Bugtracker sind zwar theoretisch plattformunabhängig konzipiert, können aber ihre Wurzeln in der Welt von Linux, Unix und Co. Kaum verhehlen. Auch der Großteil aller verfügbaren Dokumentation orientiert sich in erster Linie an den dort etablierten Standards und Verfahrensweisen – zumindest was die Serverseite anbelangt. Bei den Clients, egal ob als eigenständige Anwendung oder in die Entwicklungsumgebung integriert, sieht es deutlich besser aus: Hier gibt es deutlich weniger Unterschiede im Komfort bei den unterschiedlichen Betriebssystemen.

Das richtige Hostingpaket für Programmierer

Das richtige Hostingpaket für Programmierer subversion hostingProgrammierer stellen nicht nur bestimmte Anforderungen an ihre Computer, auch in Sachen Webhosting stellen sie andere Ansprüche als Otto Normalbürger. Während den meisten Nutzern ein simples Hostingpaket mit Webspace, Datenbanken, einer Domain, PHP und E-Mailaccounts vollkommen ausreicht, so stoßen Entwickler häufig schnell an die Grenzen der Mainstream-Angebote. Hier lohnt sich dann ein Blick auf das Segment Profi Webhosting, denn hier bekommt der interessierte Kunde Pakete für praktisch jeden Geschmack angeboten. Ob für die Versionsverwaltung mittels Subversion oder für die Entwicklung und den Betrieb von Web-Applikationen, etwa als Java Hosting mit integrierter Entwicklungsumgebung, hier finden sich Anbieter, die ihre Marktposition nicht in erster Linie über den Preis, sondern über Leistung, Service und Betriebsstabilität definieren.

Was bedeutet das konkret für den Entwickler?

Der webbasierte Entwicklungswerkzeuge wie Eclipse oder Bugzilla einsetzen will? Zunächst erst einmal, dass er sich um viele Aspekte des Betriebs nicht mehr selbst kümmern muss. Dazu gehört zuallererst die Systemsicherheit. Computer, die über das Internet erreichbar sind – und sein müssen – stehen praktisch permanent unter Dauerfeuer von automatischen Scannern, die bei allen erreichbaren Systemen versuchen, bekannte Lücken auszunutzen. Selbst wenn keine ausnutzbaren Lücken auf dem angegriffenen Server vorhanden sind, so bedeutet dies dennoch eine gewisse Systemlast und auch eine Menge Datentransfer. Es ergeben sich also zwei Schlüsse: Zum einen sind Tarife mit unbegrenztem Inklusiv-Datentransfer positiv zu bewerten, und zum anderen bedeutet ein tüchtiger Hoster mit gut geschultem Personal besseren Schutz der eigenen Daten vor Angriffen Dritter.

Selbstverständlich kann der Hoster nicht verhindern, dass der Entwickler sich selbst sabotiert, beispielsweise durch die Nutzung schwacher Passwörter. Er kann aber sehr wohl dafür sorgen, dass der Server trotz laufender Angriffe gut verfügbar bleibt und steht sicherheitstechnisch auf dem neuesten Stand ist. Dies ist praktisch eine Vollzeitaufgabe, daher rentiert es sich für die allermeisten Entwickler, diese Aufgabe an einen verlässlichen Hoster zu delegieren. So kann mehr Zeit für die Kernkompetenzen genutzt werden, allem voran die Programmierung.

So lassen sich die Investitionen für das Profi Webhosting innerhalb kürzester Zeit wieder einspielen, denn trotz aller Leistungsfähigkeit gibt es auch in diesem Segment einen gesunden Wettbewerb, der zu konkurrenzfähigen Angeboten für die Nutzer führt. Bedingt durch die relativ hohen Anforderungen an Technik und Personal hat sich in diesem Bereich bislang noch kein ruinöser Wettbewerb ausgebreitet, was auch daran liegen mag, dass die Klientel recht gut über Aufwand und Preise Bescheid weiß. Spätestens wenn das Subversion Hosting mit Schnäppchenpreis zum Datengrab mutiert ist, wird sich auch der sparsamste Entwickler lieber für einen verlässlicheren Hoster entscheiden, und weniger auf den Preis schauen. 

Gerade bei der Versionsverwaltung lässt sich die Notwendigkeit hoher Verlässlichkeit und ausreichender Backupfrequenz nicht durch günstige Preise wegdiskutieren. Dabei macht es kaum einen Unterschied, ob es sich beim Kunden um einen ambitionierten Hobbyprogrammierer handelt oder ein multinationales Entwicklungsteam, das über den halben Erdball verteilt ist. In beiden Fällen ist die Sicherheit des Sourcecodes eine hohe Priorität – auch wenn sich die Motive durchaus unterscheiden mögen. Beim Hobbyprogrammierer mag der emotionale Wert der Daten überwiegen, bei einem Unternehmen kann der Verlust der Daten in der Versionsverwaltung schnell zu einer existenzbedrohenden Situation führen. Abhilfe ist hier nur durch eine gut durchdachte Backupstrategie zu schaffen – und einen Dienstleister, der sein Handwerk versteht.

Wenn die Platte zweimal klingelt – Entwickler und der Datenverlust

Wenn die Platte zweimal klingelt – Entwickler und der Datenverlust subversion hostingEin Festplattendefekt ist heutzutage praktisch das Schlimmste, was einem Computernutzer passieren kann. Während alle anderen Teile meist problemlos ersetzbar sind, sind mit der Ausfall der Festplatte oft auch mehr oder weniger viele Daten verloren. Nicht immer ist das Budget für eine professionelle Datenrettung vorhanden, die schnell vierstellige Summen kosten kann. Daher gibt es eigentlich nur eine einzige erschwingliche Alternative: Backups, Backups und nochmal Backups. Wichtige digitale Daten sollten mindestens in dreifacher Ausführung vorhanden sein, fällt eine Kopie dann weg, kann sie mit großer Wahrscheinlichkeit aus den verbliebenen Quellen wiederhergestellt werden – vorausgesetzt, diese weiteren Kopien sind nach einem ordentlichen „Katastrophenplan“ organisiert. Das bedeutet unter anderem, dass nicht alle Kopien durch ein örtlich begrenztes Ereignis ausgelöscht werden können – sprich je weiter die Kopien voneinander entfernt sind, desto besser. Am bequemsten funktioniert dies mit einem verlässlichen Anbieter aus der Sparte Profi Webhosting. Dort wird nicht mit dem letzten Cent kalkuliert um sich am Markt allein über den Preis gegen die Konkurrenz zu behaupten, sondern das Hauptaugenmerk auf stabilen Betrieb und hohe Ausfallsicherheit gelegt. Das sorgt für eine verlässliche Backup-Möglichkeit, die sich auch ganz nach den persönlichen Anforderungen mittels fortgeschrittener Methoden wie beispielsweise rsync nutzen lässt.

SVN/Git Hosting gegen Datenverlust

Ganz besonders wichtig ist für den Entwickler die Absicherung der Versionsverwaltung. Während bei klassischen Systemen ein zentrales Repository für die Verwaltung der Quelltexte sorgt, sind seit kurzem verteilte Systeme zur Versionsverwaltung der letzte Schrei. Beide Varianten lassen sich gut mit den anderen Elementen eines Katastrophenplans kombinieren, um auch bei seltenen, dafür um so gravierenderen Ereignissen nicht die Arbeit von Monaten oder gar Jahren zu verlieren. Im einfachsten Falle kann dies beispielsweise über ein Git Hosting verwirklicht werden. Git gehört zu den modernen verteilten Verwaltungssystemen, bei denen praktisch jeder Nutzer eine komplette Kopie des Repositorys lokal vorhält. Damit sind auch Teilausfälle recht einfach zu kompensieren. Wer ein älteres System zur Versionsverwaltung verwendet, wie beispielsweise Subversion, der kann auf zwei Arten zur Sicherheit seiner Daten beitragen: Entweder durch die Nutzung eines Anbieters für Subversion Hosting, zu dem dann das bisher lokal vorgehaltene Repository übertragen wird, oder durch Profi Webhosting als Backup zum lokalen Sourcecode-Archiv. Beide Varianten haben ihre Vor- und Nachteile, die Variante mit weniger Arbeit dürfte klar das Subversion Hosting sein. Dort kümmert sich der Hoster um alle Verwaltungsaspekte und legt auf Kundenwunsch auch regelmäßige Backups an. Lässt man sich diese auf den eigenen Webspace legen, kann man durch einfaches Herunterladen eine zusätzliche Backup-Instanz realisieren. Geparkt auf einer externen Festplatte, die nur bei Bedarf an den Rechner angeschlossen wird und ansonsten ohne Kabel an einem sicheren Ort, z.B. dem Keller oder bei einem Verwandten lagert, kann nur noch wenig schief gehen. Um in diesem Szenario die gesicherten Daten wirklich zu vernichten, müssten schon zahlreiche Ereignisse zusammentreffen. Fukushima hat zwar gezeigt, dass dies keine Unmöglichkeit ist, dennoch ist die Wahrscheinlichkeit für so ein Zusammentreffen äußerst gering. Hundertprozentige Sicherheit ist auch mit dem größtmöglichen Aufwand nicht zu erreichen, und der zusätzliche Aufwand für mehr Schutz steigt immer weiter an, je mehr Aufwand man bereits treibt. Unterm Strich ist man mit der Kombination aus Profi Webhosting und mehreren lokalen Kopien gegen die meisten Ausfallursachen gut gerüstet.

Konkurrenz für PHP: Mit Ruby gelingt RAD für Webanwendungen

Obwohl beide Sprachen gleich alt sind, führte Ruby gegenüber PHP lange Zeit ein Schattendasein. Mit dem Aufkommen komfortabler Frameworks wie dem beliebten Ruby on Rails ändert sich dieses jedoch seit einiger Zeit. Gegenüber PHP hat Ruby einige Vorteile, die dem Neueinsteiger die Arbeit mit der Sprache deutlich erleichtern, vor allem die schlichte Syntax und das Prinzip der geringsten Überraschung sind deutliche Pluspunkte für den Einsteiger. PHP-Neulinge können ein Lied davon singen, welche Überraschungen PHP für Anfänger bereit hält.

Konkurrenz für PHP: Mit Ruby gelingt RAD für Webanwendungen subversion hostingEbenso wie bei PHP benötigt man für Webanwendungen mit Ruby einen entsprechend ausgerüsteten Webserver. Bei den Billighostern sucht man entsprechende Angebote bislang meist vergebens, was sicherlich auch daran liegt, dass dort argumentiert wird, man habe ja PHP im Angebot. Taugliche Angebot mit Ruby an Bord finden sich meist im Segment Profi Webhosting, oft im Kielwasser weiterer spezialisierter Angebote, wie etwa Subversion zur Versionsverwaltung. Dort erhält man auch schon für kleines Geld ein gut abgerundetes Paket, mit dem die ersten Schritte in der neuen Sprache keine Probleme mehr aufwerfen.

Mit RubyGems Pakete installieren

Ein wichtiger Punkt gegenüber PHP ist das integrierte Paketsystem von Ruby, RubyGems oder kurz einfach Gems genannt. Ähnlich wie bei gängigen Linuxdistributionen lassen sich hier über ein standardisiertes System zusätzliche Module mit neuen Funktionen herunterladen und einbinden. So erspart man sich ein großes Versionschaos und ähnliche Probleme, wie sie bei Projekten ohne Paketsystem immer wieder auftreten. Bestenfalls kümmert sich der Anbieter im Hintergrund ohnehin darum, das System aktuell zu halten – Service wie man ihn bei Billighostern oft schmerzlich vermisst, wenn man ihn einmal braucht.

Zur Entwicklung der eigenen Webanwendungen empfiehlt es sich auf jeden Fall, von modernen Systemen zur Quellcodeverwaltung Gebrauch zu machen. Häufig findet man im Segment Profi Webhosting neben Angeboten für Ruby Hosting auch Angebote für weitere Sprachen und Webanwendungen, beispielsweise Java, Git oder Eclipse. Im Bereich der Versionsverwaltung ist hier häufig Subversion (SVN) vertreten, so dass man sich ein separates Paket für die Quellcodeverwaltung sparen kann und alles aus einer Hand erhält. Git Hosting wird zwar auch immer beliebter, ist für Einzelentwickler jedoch ein Kaliber, das durch seine Komplexität eher bremst als fördert. Für verteilte Teams ist es hingegen deutlich angenehmer in der Nutzung als Subversion. Die Empfehlung hier ist ganz klar: Einlesen und eine fundierte Entscheidung treffen.

Doch mit der Wahl zwischen SVN Hosting und Git Hosting ist noch nicht die letzte Entscheidung in Sachen Profi Webhosting gefallen. Ganz nach den individuellen Vorlieben können auch weitere Bausteine moderner Softwareentwicklung mit ins Paket aufgenommen werden: Etwa ein Bugtracker wie Bugzilla oder auch Werkzeuge zur Projektverwaltung wie Trac. Bei erstklassigen Anbietern in diesem Segment findet sich praktisch alles, was man sich wünschen kann, bis hin zum kompletten Hosting der Entwicklungsumgebung, zum Beispiel Eclipse samt Subversion-Plugin auf einem Server mit Java Hosting. Damit wäre die gesamte Entwicklung ins Web ausgelagert – und so bequem von jedem Internetanschluss aus nutzbar, ganz ohne lokale Installation. Gerade für größere Teams bringt dies erhebliche Vorteile, da sich Werkzeugkonfigurationen leichter konsistent halten lassen und so Umstellungen weniger Probleme verursachen können.