Die Wahl des richtigen CMS Systems

Ich finde es sinnvoll an dieser Stelle damit zu beginnen wie ich dazu gekommen bin das jetzige Setup für diesen Blog zu wählen.

Als Software-Entwickler der auch gerne die DevOps Strategie verfolgt hat in der Vergangenheit standen mir eigentlich wirklich alle Möglichkeiten offen.

Anforderungen

Wichtig für die Wahl des richtigen CMS zum Bloggen ist das Definieren von Anforderungen an das System. Für mich waren folgende Punkte wichtig:

  • Schöne URLs
  • einfaches Backend / Erstellung von Content und Beiträgen
  • Grundlagen für SEO

Eigenentwicklung

Klar, ein Content Management System selber zu schreiben ist immer eine Option. Ist meine Anforderung an ein System doch überschaubar, war auch das selber Entwickeln eine Option. Was mich hier einfach abgeschreckt hat: Ich schreibe nun lieber Beiträge als noch mal 1-2 Tage für die Umsetzung des Tools zu verwenden. Sicherlich ist es schön ein solches Tool selber zu schreiben, gerade auch um wirklich die vollständige Kontrolle zu haben. Aber für mich lohnt sich dies zu diesem Zeitpunkt einfach nicht.

Jeder der gerade versucht eine Programmiersprache zu lernen sollte sich aber sehr gut überlegen ob das schreiben eines Content Management Systems / Blog nicht eine gute Übung wäre. Denn es kommt nicht von ungefähr das ein Großteil von Entwicklern schon mal ein eigenes System geschrieben haben.

Plattformen

Ich bin selber ein großer Freund von Plattformen, ich zahle gerne jemandem einen Monatlichen Beitrag für eine Software und muss mich dann praktisch um nichts mehr kümmern. Dafür müssen aber die Rahmenbedingungen stimmen und auch die Möglichkeiten. Im Umfeld vom Blogging gibt es dafür jede Menge:

  • wordpress.com
  • medium.com
  • blogger.com
  • ghost.org
  • tumblr.com

Trotz meiner Begeisterung für solche Plattformen wurde ich mit diesen irgendwie nicht warm. Teilweise störten mich die Kosten, dann fragte ich mich welchen Mehrwert mir diese Plattformen liefern. Und bei Lösungen wo es um Subdomains geht war ich gleich raus. An dieser Stelle kam für mich eine weitere Anforderung hinzu: Kontrolle. Ich habe keine Angst davor das ein Dienst schließt und der Inhalt weg ist. Aber wirklich freie Auswahl hat man bei den Diensten dann häufig auch nicht. Funktionieren manche PlugIns einfach nicht, oder es können bestimmte Dienste nicht genutzt werden. Oder es wird einfach wirklich für jedes Feature Geld verlangt.

Software

Neben der Eigenentwicklung gibt es auch die Möglichkeit auf bereits fertige Software zu setzen. In dem CMS Umfeld sind dort für mich folgende Systeme etabliert:

  • WordPress
  • Drupal
  • Ghost

Aber es gibt tausende weitere, für jeden Anwendungsfall für jeden Bereich gibt es spezial Lösungen. In jeder nur erdenklichen Sprache und Form..

Unumstritten an Platz eins ist WordPress. Das System hat praktisch den Massenmarkt für Blogging eröffnet und hat somit eine User Base die nicht zu unterschätzen ist. Das kommt dem Eco System sehr zu gute, die Anzahl an Themes ist unglaublich, die Möglichkeiten im Plugin Bereich fast unbeschränkt. Doch gerade diese Beliebtheit macht insbesondere WordPress immer wieder zum Ziel von Angriffen, denn es ist natürlich sehr Lohnenswert eine Lücke in einer der am meisten verwendeten Systeme zu finden.

Drupal ist ein weiteres bereits sehr etabliertes System. Soweit ich denken kann liefern sich WordPress und Drupal in dem Bereich einen Kampf. Für mich beschreibt folgendes die Situation ganz gut:

Drupal kommt aus dem CMS Umfeld, hat also in erster Linie seine Stärken eine Sammlung von Seiten zu verwalten. WordPress hingegen kommt aus dem Umfeld der Blogs und hat seine Stärken im Bereich der kontinuierlichen Erstellung von Beiträgen. Beide Systeme nähern sich zunehmend an, wird WordPress also zunehmend auch als CMS verwendet und Drupal erhält die Möglichkeiten von Nachrichten.

Ghost hingegen ist sehr nah an WordPress, doch der Anspruch ist hier ein anderer, wurde WordPress gerade durch die immer größere Funktionsvielfalt auch schwergängiger. Versucht Ghost sich auf das wesentliche zu beschränken, hier steht das Erstellen des Inhalts im Vordergrund. Elemente die stören oder ablenken wurden entfernt und den ursprünglichen Bloggern ein Tool an die Hand gegeben mit dem sie endlich wieder ihrem Hobby nachgehen konnten ohne sich mit der Softwarepflege zu beschäftigen.

Hosting

Die Software alleine reicht nicht, es wird auch immer ein Hosting benötigt. Hier gibt es mehrere Wege:

Shared Hosting

Schnelle simple Lösung bei der ein Speicher gemietet wird und man sich um technische Belange praktisch nicht kümmern muss. Diese Lösung ist gerade für den Einstieg eine oft genommene weil die Kosten überschaubar und die Setup Zeit sehr gering ist. Allerdings bekommen die Hoster auch zunehmend Probleme die Last entsprechend gut zu verteilen. Hat man Pech und landet auf einer Physikalischen Maschine die sehr stark ausgelastet ist leidet auch der eigene Webseiten Auftritt darunter.

Dedicated Hosting

Wer die totale Kontrolle haben möchte und sich insbesondere auch um die Administration selber kümmern möchte kann sich beim Dedicated Hosting umschauen. Anbieter wie Hetzner vermieten hier komplette Systeme ohne das man sich diese mit jemandem teilen muss. Nachteil ist hier sicherlich die Verwaltung die zwangsläufig vollständig bei einem selbst liegt. Dafür kann man den Server auch für weitere Dinge nutzen und ist so recht flexibel.

Cloud Hosting

Ich bin mir nicht sicher ob man Cloud immer noch als Buzzword sehen soll, ist doch die dahinter liegende Technologie schon etabliert und schon lange kein Marketing mehr. Unter Cloud Hosting versteht man an dieser Stelle das Hosten der Software in einer für den außenstehenden nicht mehr richtig zu erkennenden Wolke. Die frühere Unterteilung nach Servern wurde hier aufgeweicht. Dies hat den Vorteil der Flexibilität, man bekommt sehr schnell solche Systeme hochgefahren und skaliert. Das ermöglicht es klein zu starten und dann mit der Zeit zu wachsen. Ein Punkt der gerade beim Dedicated Hosting immer wieder zu Problemen führt.

PAAS

Platform as a service, der größte Anbieter in diesem Bereich ist wohl Amazon. Die bieten die gesamte Infrastruktur an und ermöglichen so schnell und flexibel Lösungen anzubieten die für jeden Kunden passen. Dazu kommen die überschaubaren Kosten und eine ständige Erweiterung und Entwicklung.

Besonders spannend für unseren Anwendungsfall sind hier Dienste wie: Google App Engine, Amazon Web Services – Elastic Beanstalk oder aber Heroku. Bei diesen Anbietern kann während des Betriebes skaliert werden, die Kosten liegen hier etwas höher dafür kann man so auch mal für ein wenig mehr Traffic am Wochenende einige zusätzliche Ressourcen hinzufügen.

 

Und was ist nun meine Lösung?

Ich habe mich am ende für WordPress als Software entschieden und als Hoster DigitalOcean. Das hatte für mich den Vorteil von geringen Kosten (10$ / Monat), der Möglichkeit einer Skalierung wenn auch nur durch Neustart. Und die vollständige Kontrolle über den Server.

Dazu kommt natürlich das DigitalOcean es versteht durch One-Click-Apps die Installation von WordPress in einer Geschwindigkeit zu ermöglichen das ich innerhalb weniger Minuten Startbereit war.