Kategorien
Infrastruktur Server Wunschthema

Einen eigenen Server betreiben

Einen eigenen Server zu betreiben ist für viele Menschen eine Aufgabe, die als sehr abstrakt und schwierig empfunden wird.
Vielen Personen ist dabei gar nicht klar, wozu man einen eigenen Server überhaupt gebrauchen könnte (Dieser Blog Post soll dazu beitragen, den Infomationsnebel ein wenig zu lichten :)).

Was versteht man unter einem Server?

Bevor wir klären, was so ein Server macht, zunächst eine Auflistung der „Dinge“ und „Software“, die man benötigt, um diesen Blog Post jetzt lesen zu können.

  • Um den Blog Post lesen zu können, benötigst du einen Client. Konkret heisst das, du benötigst du einen Browser (Firefox, Chrome, Safari, …) mit dem du direkt oder über einen Suchmaschine auf den Artikel zugreifen kannst.
  • Dieser Client (Browser) ist ein Software-Programm (auch App genannt), dass auf einem Betriebssystem installiert ist. Bekannte Betriebssysteme sind Microsoft Windows, Apple MacOS, Linux, Apple iOS, Google Android.
  • Ein Betriebssystem wird auf einem Stück Hardware installiert. Das kann ein Telefon, ein PC, ein Tablet, eine Uhr oder ein „Internet of Things“-Gerät wie beispielsweise eine intelligente Glühbirne oder eine Wetterstation mit Sensoren sein.
  • Die Hardware muss mit einem Netzwerk, dem Internet, verbunden sein, um andere Hardware ansprechen zu können

Soweit ist der Ablauf vermutlich bekannt, stellt er doch die Kundenseite dar und Kunden (Clients) sind wir schliesslich alle.

In der Informatik ist ein Server (englisch server, wörtlich Diener oder Bediensteter, im weiteren Sinn auch Dienst) ein Computerprogramm oder ein Gerät, welches Funktionalitäten, Dienstprogramme, Daten oder andere Ressourcen bereitstellt, damit andere Computer oder Programme („Clients“) darauf zugreifen können, meist über ein Netzwerk. Diese Architektur wird als Client-Server-Modell bezeichnet.

https://de.wikipedia.org/wiki/Server
Viele Clients greifen auf einen Server zu.
Photo von User:Mauro Bieg – derived from the Image:Computer n screen.svg which is under the GNU LGPL, LGPL, https://commons.wikimedia.org/w/index.php?curid=2551745

Wir alle befinden uns, wenn wir auf eine Website wie diesen Artikel zugreifen, in einem Client-Server Modell und kennen aus eigener Erfahrung die Seite des Clients recht gut.
Die Seite der Server (Dienste) ist dagegen eher unbekannt, weil es meistens sehr viel mehr Clients als Server gibt. Das ist wie im echten Leben. Es gibt normalerweise mehr Kund:innen als Cafés, mehr Fernsehzuschauer:innen als Fernsehsender, mehr Autofahrer:innen als Autohäuser … klar, was ich meine – oder?

Schauen wir uns die obige Auflistung der Dinge, die zusammenspielen müssen um eine Webseite lesen zu können, aus der Sicht des Servers an:

  • Um diesen Blog Post einem Client zur Verfügung stellen zu können, benötigst du einen Server. Konkret benötigst du einen Webserver (Apache, Nginx, …) der die Daten nach Anfrage eines Clients (s.o.) ausliefert.

  • Dieser Server (Webserver) ist ein Software-Programm (eher selten App genannt), dass auf einem Betriebssystem installiert ist. Als Betriebssystem kommt meistens Linux zum Einsatz. Ein Betriebssystem wird auf einem Stück Hardware installiert. Das kann ein Telefon, ein PC, ein Tablet, eine Uhr oder ein „Internet of Things“-Gerät wie beispielsweise eine intelligente Glühbirne oder eine Wetterstation mit Sensoren sein.

  • Die Hardware ist mit einem Netzwerk, dem Internet, verbunden, um andere Hardware ansprechen zu können

Hört sich doch recht ähnlich an, oder?

So prinzipiell lassen sich auf allen Geräten Clients und/oder Server installieren. Da ein Server möglichst rund um die Uhr aktiv sein sollte – es könnte ja ein Client vorbeikommen – gab es schon auf dem ersten Webserver des damals neuen World Web Webs einen entsprechenden Hinweiszettel.

Der erste Server des World Wide Webs am CERN. Ein Aufkleber weist darauf hin, dass es sich um einen Server handelt und dieser nicht heruntergefahren werden soll
„this machine is a server, do not power it down“.
Photo Zuzanna K. Filutowska,CC BY-SA 3.0

Erkenntnis: Der Unterschied zwischen Server und Client ist gar nicht gross. Auf Servern, die rund um die Uhr eingeschaltet und mit dem Internet verbunden sind, wird einfach andere Software installiert und benutzt als auf Clients. Hardware, Betriebsystem und Netzwerk können durchaus gleich sein, wie bei einem Client. Auch die Hardware ist ein wenig anders aufgebaut, denn bei Servern ist durch den 24/7 Betrieb der Stromverbrauch, die Wärmeentwicklung und die Haltbarkeit sehr wichtig.

Um es noch deutlicher zu sagen.

Jeder PC oder Laptop kann problemlos zu einem Server gemacht werden. Du musst einfach Serversoftware installieren!

Das passiert auch öfter als man denkt, beispielsweise bei der Benutzung von Software wie Skype (jeder Client ist auch ein Server) oder bei einer lokalen Entwicklungsumgebung wie XAMPP (man ist gleichzeitig Client und Webserver und kann so Websites lokal erstellen).

Server installieren und verwalten ist gar nicht schwer

Clients konsumieren etwas, Server bieten etwas an. Jeder Client kann auch ein Server sein und jeder Server kann auch Client sein – alles klar?

Wer also, gern etwas Kreatives anbieten möchte, der sollte sich durchaus mit Servern und Server-Software beschäftigen.

Die Anbieter des Radio Garden bieten auf ihrem Server Radioprogramme aus der ganzen Welt an. Alle kleinen grünen Pünktchen sind ein Radiosender mit einem Live-Stream. Ganz schön gute Idee – oder?

Konsumieren, in diesem Fall Radio hören, ist natürlich schon gut, sich so eine Anwendung auszudenken und auf einem Server anzubieten ist auch irgendwie interessant :).

Radio Garden

Shared Hosting

Nun ist die Radio Garden Anwendung natürlich kein komplett eigener Server, sondern ein Bestandteil eines Servers. Der Radio Garden ist eine Anwendung (eine Software, ein Skript), deren Daten von einem Webserver an einen Client ausgeliefert werden. Der Radio Garden ist halt etwas sehr Individuelles und Kreatives und soll hier nur als Beispiel dienen.

Prinzipiell verhält es sich mit millionenhaft verbreiteten Anwendungen wie WordPress, Joomla und Drupal genau wie mit dem Radio Garden. Es sind Anwendungen, deren Daten von einem Webserver ausgeliefert werden. Diese Anwendungen sind nicht so individuell wie der Radio Garden, sondern gewissermassen der kleinste gemeinsame Nenner, den man für den Betrieb einer Website benötigt. Das Blog hier benutzt das CMS WordPress. WordPress wird ein wenig angepasst (Logo, Farben) und schon kann ich etwas schreiben. Der Webserver liefert die fertigen Texte/Seiten dann bei Bedarf an die Kunden. Ich muss mir einmal eine Basis bauen und kann mich dann auf das Schreiben konzentrieren. Diese Konzentration auf das Wesentliche ist beim Shared Hosting ein wichtiges Feature.

Beim Shared Hosting teilen sich mehrere Personen oder Firmen einen physikalischen Server (also gewissermassen den PC auf dem die Serversoftware installiert ist). Die Verwaltung und Bereitstellung der Serversoftware und alle anderen Ressourcen übernimmt im Hintergrund in unserem Fall die Firma Novatrend.

In diesem Zusammenhang eine kurze Zusammenfassung, was ein Shared Hosting bei Novatrend eigentlich umfasst.

In den allermeisten Fällen ist das Shared Hosting optimiert auf den sogenannten LAMP Stack. Es geht also um statische HTML-Seiten oder PHP-Skripte, die meist in Zusammenarbeit mit einer MySQL/Maria Datenbank HTML-Seiten dynamisch erzeugen. Diese Technik ist stabil, erprobt und funktioniert gut.

Wer benötigt dann überhaupt einen eigenen Server?

Kurze Antwort:

Alle, die etwas anderes als einen LAMP Stack benötigen und alle, die gern selbst Verantwortung übernehmen wollen.

Ausführliche Antwort:

Nehmen wir an,

  • Du möchtest dein eigenes Startup gründen und so etwas wie Skype bauen oder dein eigenes Facebook, Instagram, WhatsApp, Netflix, Twitter, Mastodon, Bitcoin, Discord, Signal, Telegram, Ebay, PayPal oder was auch immer. In solchen Fällen wirst du vielleicht andere Programmiersprachen und Architekturen wie einen LAMP-Stack nutzen. Im einfachsten Fall ist es vielleicht ein Jamstack. Es könnte aber auch BCHS, ELK, Ganter, GLASS, GRANDstack, LAPP, LEAP, LYME, MEAN, MERN, PERN, SMACK oder etwas ganz anderes sein (Übersicht über Solution Stacks).
  • Du möchtest deine privaten Daten auf deinem eigenen Server haben. Zum Beispiel alle deine Fotos und Dateien oder auch deine E-Mails. Ob dieser Server bei dir zuhause oder in einem Rechenzentrum stehen soll, ist dabei zunächst egal.
  • Du möchtest selbst Dienste anbieten, beispielsweise einen Bitcoin-Node, einen Mindcraft Server, die Instagram Alternative Pixelfed oder ein Videoportal wie YouTube (alternativ PeerTube).

Es gibt wirklich die unterschiedlichsten und verrücktesten Ideen, warum man einen Server benötigt und welche Services darauf laufen sollen.

Solche Ideen, ich nenne sie mal „Sonderwünsche“, sind für einen Hosting Anbieter wie Novatrend (und alle anderen natürlich auch) schwieriger abzubilden, als ein „Industrie-konformer“ LAMP-Stack. Oftmals ist es technisch sehr aufwendig oder gar nicht möglich eine Shared-Hosting Umgebung für „Sonderwünsche“ anzubieten.

Daher bieten wir (und viele andere natürlich auch) sogenannte Root-Server an. Diese „Geräte“ werden meistens „nur“ als Rechner mit einem Betriebssystem nach Wahl angeboten. Ich schreibe „Geräte“ in Anführungszeichen, weil es sich nicht unbedingt um ein „physikalisches Gerät“ handeln muss. Es ist möglich, sogenannte virtuelle- oder Cloud-Server anzubieten, die sich für dich als Kunden zwar anfühlen, wie ein einziges und echtes „Gerät“ mit Root-Konto, in Wirklichkeit aber auch nur ein konfiguriertes Stück Software sind.

Der genaue Aufbau solcher Cloud-Server Infrastrukturen würde den Rahmen des Artikels nun tatsächlich sprengen und ist an dieser Stelle auch nicht relevant.
Relevant sind die beiden folgenden Punkte:

  • Nachteil: So ein Root-Server erfordert ein höheres Mass an Wissen um die Konfiguration und Verwaltung als ein betreutes Shared Hosting mit dem LAMP-Stack.
    Ganz konkret sieht das so aus:
    Du meldest du dich bei deinem Server an und siehst dann so etwas:
    Last login: Wed Dec 15 11:56:52 2021
    root@meet:~# 

    Hier kannst du nun die Befehle eingeben, die aus dem neuen „Gerät“ einen Server mit den von dir gewünschten Diensten machen, der in der Lage ist, 24/7 Kunden zu bedienen.
  • Vorteil: Du kannst unter unter einer festen IP-Adresse (wenn der Server in einem Rechenzentrum steht) buchstäblich alles installieren und anbieten, was du willst. Wenn du so willst, ist der oben beschrieben Nachteil ein Vorteil 🙂

Fazit

An dieser Stelle ist es Zeit für eine kleine Pause. Ich hoffe das es mir zunächst gelungen ist, den „was ist ein Server?“-Nebel ein wenig zu lichten. Im Teil 2 zeige, wie sich so ein Server mit einem Projekt wie Yunohost verwalten lässt.


tl;dr: Ein eigener Server ist immer eine Überlegung wert

Von hagengraf

Ich erstelle bequeme und benutzerfreundliche Orte in virtuellen und physischen Umgebungen.

Schreibe einen Kommentar

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