Zurück zur Übersicht Zurück zur Übersicht

Anna-Maria Schmider - 25. October 2017 - 10 Minuten fürs Lesen


Was ist ein Backend?

Frontend und Backend sind bekannte Schlagwörter in der Entwicklungswelt. Was sich hinter diesen Begriffen verbirgt und welche verschiedenen Backend Möglichkeiten es gibt, wollen wir im heutigen Blogpost genauer erklären.

Ein Frontend ist das, was der Besucher einer Website oder Anwendung wahrnimmt. Dazu gehören alle sichtbaren Inhalte wie beispielsweise das Design der Website oder Texte und Bilder. Definiert werden kann das Frontend als Oberfläche einer Software.

Das Backend hingegen ist für den Teil “hinter den Kulissen” verantwortlich und somit für den Nutzer nicht sichtbar. Hier werden die Funktionen einer Website oder einer Software entwickelt und festgesetzt. Neben den technischen Aspekten wird ebenfalls die Gestaltung des Frontends geregelt, mediale Elemente eingefügt oder Verbindungen zu Datenbanken hergestellt.

Wichtig zu wissen ist, dass jede Software ein Frontend und auch ein Backend besitzt.

Eigenes Backend entwickeln

Hierbei erfolgt eine eigene Implementierung des Backends für eine Anwendung. Die Installierung dieses Backends findet auf einem dedizierten Server statt – ein Server, der nur für einen bestimmten Service zur Verfügung steht und die gesamte Leistung bzw. die Ressourcen hierfür bereitstellt. Für diesen Vorgang werden eigene Entwickler benötigt, die das Backend aufbauen und betreuen. Hierzu gehört unter anderem die Herstellung und Kontrolle von Datenbankanbindungen an den Server. Bei einem dedizierten Server sind Kosten sehr gut zu kalkulieren, da ein fixer Preis für eine Leistung festgelegt wird. So sind Größe des Datenbankspeichers und die Menge des inkludierten Datentransfers in Gigabyte bekannt.

In Puncto Datenschutz ist die Sicherheit mit der Entwicklung eines eigenen Backends gewährleistet. Die Kontrolle über den Server und darüber, wie Datensicherungen durchgeführt werden und wann diese stattfinden, ist hier garantiert. Eine individuelle Backend Entwicklung bringt ebenfalls mit sich, dass keine Abhängigkeit von Drittanbietern existiert und selbst gewählt werden kann, welcher Serverstandort am geeignetsten ist.

Skalierbarkeit vom eigenen Backend

Ein Server hat nur eine begrenzte Kapazität – übersteigt das Datenaufkommen und die Anzahl der Anfragen die Kapazitäten, muss dieser horizontal und vertikal skaliert werden. So werden zum Beispiel für eine größere Anzahl von Usern mehrere Server benötigt, die sich um die Web Requests kümmern. Ebenso muss beim Speichern der Daten skaliert werden. Hier sind mehrere Storage Server notwendig, um eine große Datenmenge verarbeiten zu können. Kein Server ist vor einem Ausfall geschützt, daher muss bereits bei der Planung mit Backup Server und Disaster Recovery gerechnet werden.

Der Serverstandort spielt ebenfalls eine große Rolle – wird eine App erstellt, die vorwiegend in Deutschland und Amerika verwendet wird, müssen Server vor Ort in beiden Ländern betrieben werden. Ansonsten warten Benutzer unter Umständen lange Zeit auf logische Abläufe innerhalb der Apps, was zu Frustrationen führt.

Backend as a Service

Der neueste Trend geht immer mehr in Richtung Backend as a Service (BaaS) beziehungsweise mobile Backend as a Service (mBaaS). Doch was genau wird unter dem englischen Begriff verstanden?

Es handelt sich um eine gehostete Backend Infrastruktur von Drittanbietern, mit der Entwickler von Anwendungen (mBaaS) oder Websites (BaaS) in wenigen Handlungen ein individuelles Backend erstellen können. Mit Hilfe von bereitgestellten APIs oder REST-Schnittstellen können Entwickler einfach den gehosteten Server ansprechen. Es kann sehr viel Zeit gespart werden, da einige Funktionen bereits inkludiert sind. Möchten Entwickler schnell zum Resultat kommen oder Prototypen bzw. Minimal Viable Products (MVP) in kurzer Zeit präsentieren können, ist BaaS bzw. mBaaS eine gute Lösung.

Anbieter und Services von BaaS / mBaaS

Google Firebase

  1. Realtime Database
    Die Google Firebase Realtime Database ist eine cloud-basierte NoSQL-Datenbank, mit der Daten von Nutzern in Echtzeit gelagert und synchronisiert werden können. Die Realtime Synchronisation ermöglicht es den Usern, auf ihre Daten von verschiedenen Devices aus (Web oder Mobile) zugreifen zu können und mit anderen Nutzern einfach zusammenzuarbeiten. Entwickler werden von Google mit SDKs für Smartphone Plattformen und Web Frameworks unterstützt und können somit Daten, ohne einen eigenen Server zu benötigen, speichern. Optimiert wird hier auch für eine Offline Nutzung von Smartphone Apps. Wenn User mit ihrer Anwendung offline gehen, greifen die Realtime Database SDKs auf den lokalen Device-Cache zu, um dort Daten zu sichern und zu speichern. Geht das mobile Endgerät wieder online, werden die lokalen Daten automatisch im Hintergrund synchronisiert.
  2. Authentication
    Mit Firebase Authentication ist es einfach möglich, sichere Authentifizierungssysteme zu erstellen. Zur Verfügung gestellt wird die Option einer Ende-zu-Ende-Verschlüsselung (end-to-end identity solution) und Auswahlmöglichkeiten wie die Anmeldung via E-Mail und Passwort, Phone Authentication oder Social Media Logins. Seit kurzem können auch Handynummern über eine SMS verifiziert werden lassen.
  3. Cloud Functions
    Logische Abläufe können über die Cloud Functions bei Google gespeichert und auf deren Servern ausgeführt werden.

Amazon

  1. Amazon S3
    Amazon bietet mit Amazon S3 einen Service an, mit dem beliebig große Datenmengen gespeichert und abgerufen werden können. Speicherorte sind Websites und mobile Apps, aber auch IoT-Geräte oder Unternehmensanwendungen. Amazon S3 ist eine Cloud-Speicherplattform, mit der große Daten Analysen ausgeführt werden können, ohne die Daten hierfür in ein anderes Programm exportieren zu müssen.
  2. Amazon Cognito
    Mit Amazon Cognito können Benutzeranmeldungen und Registrierungen in Apps eingefügt werden. Ein Beispiel ist hier die Authentifizierung von Usern per Social Identity – also durch Facebook, Twitter oder auch Amazon. Das lokale Speichern von Daten auf den Geräten ist ebenfalls mit Amazon Cognito möglich – so gibt es in der Funktionsweise von Apps keine Einschränkungen, falls die verwendeten Geräte offline sein sollten. Ein weiteres Feature ist die Synchronisation von Daten auf allen Devices eines Users, wodurch dieser auf jedem seiner Geräte die App gleich nutzen kann.
  3. Amazon EC2
    Amazon Elastic Compute Cloud ist ein Hosting Dienst, der Server-Instanzen gegen Miete zur Verfügung stellt. Auf diesen Instanzen können Entwickler ihre Backend Services laufen lassen. Die Server-Kapazitäten können individuell konfiguriert bzw. angepasst werden und auch eine vollständige Kontrolle der Rechenressourcen ist gewährleistet.

Wie können die Vorteile beider Welten vereint werden?

Oftmals ist es bei der Backend Entwicklung hilfreich, einen Hybridansatz zu verwenden. Dies bedeutet, dass Teile von der Logik auf das eigene Backend ausgelagert werden – beispielsweise sollten die Authentifizierungsdaten auf dem eigenen Server liegen, um die Datensicherheit zu gewährleisten. Für die Skalierbarkeit von Bildern kann Amazon S3 verwendet werden, da dies der günstigste Datenspeicher ist. Google bietet hingegen eine sehr gute Möglichkeit der Datenskalierung mit der Google Firebase Realtime Database, da die Skalierung hier automatisch in Echtzeit erfolgt. Diese Auslagerung von Daten ist bei großen Anwendungen meist unumgänglich, da ein Server ab einer bestimmten Datenmenge nicht mehr ausreicht.

Wir entscheiden nach den Bedürfnissen unserer Kunden, wie das jeweilige Backend entwickelt werden soll.

Interesse?

Sie wollen ein eigenes Backend entwickeln lassen?

Wir beraten Sie, welche Arten und Services für Sie am Besten funktionieren. Unsere Experten helfen Ihnen gerne weiter!

Kontaktieren Sie uns telefonisch oder per E-Mail.



Zurück zur Übersicht Zurück zur Übersicht