Was ist ein Technologiestapel?

Auf dieser Seite erfahren Sie, warum es so wichtig ist, die richtigen Schichten in Ihrem Technologiepaket zu haben:

Ein Technologiestapel (Tech Stack) ermöglicht es Ihnen, Software, Tools und Dienste zu kombinieren, um eine Web- oder mobile Anwendung zu erstellen. Jede Schicht eines typischen Technologiestapels ist für eine bestimmte Art von Aufgabe zuständig, entweder für die Präsentation, die Anwendungslogik oder die Persistenz.

 
Woher kommen die Technikstapel?

Das Konzept eines Technologiestapels gibt es schon seit den Anfängen des Internets. Die frühesten Webseiten waren einfache "statische Inhalte". Um Inhalte abzurufen, verwendeten die Webseiten eine rudimentäre Methode, ein externes Programm namens Gemeinsame Gateway-Schnittstelle (CGI). Ein CGI-Skript würde es dem Webserver ermöglichen, ein Programm zur Bearbeitung von Benutzeranfragen auszuführen. Viele dieser frühen Programme wurden von Hand in der Programmiersprache C erstellt.
Fast sofort begannen die ersten Webentwickler, mit besseren Frameworks und Abstraktionen für die Erstellung von Web-Software zu experimentieren. Perl entpuppte sich als einfachere und zugänglichere Sprache zum Schreiben dieses Codes. Aber es war noch nicht ganz ein Tech-Stack.
Nach weiteren Innovationen und Weiterentwicklungen entstanden verschiedene Technologiepakete. Anstatt HTML von Hand zu schreiben, wurden Bibliotheken und Frameworks für Seitenvorlagen für die Präsentationsschicht Logik wurde allmählich üblich, während der Rest des Programms frei gestaltet war. Dinge wie relationale Datenbanken boten eine klare Möglichkeit, den Datenzugriff für App-Entwickler zu verwalten und auszudrücken, so dass die Persistenzschicht und es entstanden Konzepte wie Verbindungspools.

 
Schichten des Technologiestapels

Die Leute verwenden unterschiedliche Bezeichnungen für dieselben Stapelschichten, daher werden wir sie für unsere Zwecke einfach als oberste Schicht, mittlere Schicht und unterste Schicht bezeichnen. Wichtiger ist die Aufgabe, für die jede Schicht zuständig ist, und wir werden diese Aufgaben von oben nach unten durchgehen.

Oberste Schicht des Technologiestapels: Präsentation

Die Präsentationsebene eines technischen Stapels ist der Ort, an dem Formatierung und Lokalisierung stattfinden. Eine Website kann zum Beispiel ein Logo und eine Reihe von Farben haben, aber wenn sich die Stile ändern, möchten Sie vielleicht das Aussehen und die Handhabung ändern. Ein weiteres Beispiel für den Einsatz der Präsentationsschicht ist die Personalisierung. Wenn eine Browser-Anfrage aus einem Land kommt, in dem die Benutzer die Temperatur in Celsius statt in Fahrenheit angezeigt haben möchten, werden die Informationen anders dargestellt.

Mittlere Schicht des Technologiestapels: Anwendungslogik

Die Anwendungslogik befindet sich in der mittleren Schicht Ihres technischen Stacks. Die Webbrowser-Anfrage kann beispielsweise einen Standort (z. B. Austin, Texas) und eine Zeitzone (Central) enthalten, die die Anwendungslogik in die richtige Datenbankabfrage auflösen muss.
Die mittlere Schicht kann mit Hilfe einer auf Microservices basierenden Architektur verteilt werden, die es ermöglicht, verschiedene Anwendungsteile unabhängig voneinander über gut beschriebene Dienstschnittstellen zu implementieren.

Unterste Schicht des Technologiestapels: Persistenz (oder Datenbank)

Die Persistenzschicht ist in der Regel die unterste Schicht des Stacks und kann so einfach sein wie ein Satz von Dateien in einem Dateisystem. Die Verwaltung von Daten in einem einfachen Dateisystem erfordert jedoch, dass ein Entwickler selbst Möglichkeiten zur Indizierung und zum Zugriff auf die Daten entwickelt - eine gewaltige Aufgabe.
Stattdessen entscheiden sich die meisten Entwickler für eine Datenbank. Ursprünglich war die bevorzugte Datenbank eine relationale Datenbank weil sie am weitesten verbreitet waren. Mit der Zeit jedoch, NoSQL-Datenbanken sind aufgrund der Flexibilität, der Skalierbarkeit und der breiteren Möglichkeiten von NoSQL eine weitere beliebte Option für Entwickler geworden.

 
Was sind die verschiedenen Technologiestufen?

Der LAMP-Stack (bestehend aus Linux, Apache, MySQL und PHP) wurde zu einem der ersten populären Stacks. Linux wurde zum meistgenutzten Betriebssystem, Apache zum meistgenutzten Webserver, MySQL zur meistgenutzten Datenbank und PHP zur meistgenutzten Seitenvorlagen- und Programmiersprache.

Tech Stack Beispiele

Die folgende Liste ist nur ein Beispiel dafür, wie vielfältig und interoperabel Technologie-Stacks sein können:

WIMP

Windows-Betriebssystem, IIS-Webserver, MySQL-Datenbank und PHP-Anwendungsschicht

MAMP

Mac OS, Apache-Webserver, MySQL-Datenbank und PHP-Anwendungsschicht

FAMP

FreeBSD-Betriebssystem, Apache-Webserver, MySQL-Datenbank und PHP-Anwendungsschicht

LAPP

Linux-Betriebssystem, Apache-Webserver, PostgreSQL-Datenbank und PHP-Anwendungsschicht

LNMP

Linux OS, NGINX Webserver, MySQL Datenbank und PHP Anwendungsschicht

MEAN

MongoDB-Datenbank, Express.js-App-Controller, Angular.js-App-Präsentation und Node.js

LYME

Linux OS, Yaws Webserver, Mnesia Datenbank und Erlang Anwendungsschicht

LYCE

Linux OS, Yaws Webserver, CouchDB Datenbank und Erlang Anwendungsschicht

ELK

Elasticsearch-Suche/Statistik-Aggregator, Logstash-Protokollabfrage, Kibana-Grafikdarstellung

Jamstack

JavaScript-Präsentation, APIs für den Datenzugriff und Markup (statische oder Vorlageninhalte)

 
Couchbase Technologie Stacks

Als Cloud-Datenbank-Plattform, Couchbase spielt eine entscheidende Rolle in Technologie-Stacks. Da Couchbase eine Reihe von Datenzugriffs- und -verwaltungsfunktionen integriert, die von App-Entwicklern häufig benötigt werden, erleichtert es die Skalierung und das Wachstum.

Der CEAN-Stapel

Dieser Stack verwendet Couchbase, Express, Angular.js und Node.js. Er ist dem MEAN-Stack ähnlich, verwendet aber stattdessen Couchbase als Datenbank. CEAN hat sogar ein Community-getriebenes Projektgerüst-Tool.

Der COdE-Stapel

Dieser Stack verwendet Couchbase für die Datenbank, Ottoman.js für den Object Document Mapper (eine Software, die es einfacher macht, Programmierstrukturen in Datenbanken abzubilden) und Express.js für das App-Routing.

 
Schlussfolgerung

Es kann hilfreich sein, die Anwendung oder den Dienst, den Sie für Ihre Benutzer entwickeln, als einen technischen Stapel zu betrachten. Dies ist ein guter Weg, um jede einzelne Komponente sorgfältig zu betrachten - und was noch wichtiger ist: Indem Sie die Verantwortlichkeiten jeder Schicht separat betrachten, können Sie eine flexiblere Systemarchitektur mit austauschbaren Komponenten aufbauen.