Definition „Software Stack“

Was ist ein Solution Stack?

| Autor / Redakteur: chrissikraus / Stephan Augsten

Der Stack defniert sich durch die Komponenten, die für die Erstellung und den Betrieb einer Software benötigt werden.
Der Stack defniert sich durch die Komponenten, die für die Erstellung und den Betrieb einer Software benötigt werden. (Collage: Mysticsartdesign / Bru-nO - Pixabay.com / CC0)

Der Software- oder Solution-Stack beschreibt genau, welche Technologien in welcher Kombination zusammenarbeiten müssen, um eine spezialisierte Plattform für bestimmte Anwendungen zu bilden. Dies reicht in der Regel vom Betriebssystem bis hin zu den benötigten Programmiersprachen.

Ein Software Stack oder Solution Stack fasst alle Softwarekomponenten zusammen, aus denen eine spezifische Plattform besteht. Dieses Programmpaket liefert eine fest strukturierte Konfiguration an Technologien, die zum Ausführen einer Anwendung benötigt wird. In der Regel ist der Stack aus mehreren unterschiedlichen Komponenten zusammengebaut. Dazu können folgende Komponenten gehören:

  • Betriebssystem
  • (Web-)Servertechnologie
  • Datenbanktechnologie
  • Laufzeitumgebung / Frameworks
  • Programmiersprachen

An erster Stelle steht normalerweise die unterste Schicht der Plattform, auf der alle weiteren Komponenten aufbauen. Häufig handelt es sich um das Betriebssystem, manchmal auch um eine spezifische Laufzeitumgebung oder ähnliches. Darauf folgt beispielsweise eine Webservertechnologie, dann eine Datenbanktechnologie, dann eine Laufzeitumgebung.

Ein Stack gibt also immer Auskunft darüber, welche Technologien eine Anwendung mindestens benötigt, um fehlerfrei zu funktionieren. Das Ergebnis ist zum Beispiel eine Plattform, auf der eine Webseite bereitgestellt werden kann.

Etablierte Stacks vereinfachten Kommunikation

Es gibt einige Software Stacks, die sich als praktische und elegante Lösung für bestimmte Szenarien erwiesen haben. Sie haben sich als eine Art Standard für gewisse Anwendungsfälle etabliert und sind entsprechend weit verbreitet. Daher gibt es für diese speziellen Kombinationen inzwischen feste Namen, zum Beispiel XAMPP, LAMP oder WINS. Diese Namen sind meist ein mehr oder weniger exaktes Akronym für die Technologien, die im Allgemeinen an dem jeweiligen Stack beteiligt sind.

Beispiele bekannter Stacks:

XAMPP:

  • Betriebssystem: Cross("X")-Plattform
  • Webserver: Apache
  • Datenbank: MariaDB / MySQL
  • Programmiersprache: PHP
  • Programmiersprache: Perl (bzw. Python)

LAMP / WAMP:

  • Betriebssystem: Linux (LAMP) / Windows (WAMP)
  • Webserver: Apache
  • Datenbank: MariaDB / MySQL
  • Programmiersprachen: PHP / Perl / Python

WINS:

  • Betriebssystem: Windows Server
  • Webserver: Internet Information Services
  • Framework: .NET
  • Datenbank: SQL Server

Wenn also beispielsweise die Rede von WINS ist, weiß jeder Entwickler auch ohne langatmige Erklärung, dass es sich um ein .NET-Projekt handelt, das auf einem System mit Windows Server und IIS ausgeführt wird und SQL Server als relationales DBMS nutzt. Es ist direkt ersichtlich, welche Frameworks und Software benötigt wird, um die entsprechende Anwendung auszuführen.

Implizit lassen sich häufig weitere Informationen abschätzen, zum Beispiel, welche Programmiersprachen und Entwicklungsumgebungen für das Projekt infrage kommen. Da WINS das .NET-Framework von Microsoft nutzt, könnte es sich um ein Projekt handeln, das in Visual Studio erstellt wurde und in C#, F# oder VB.NET programmiert wurde.

Aufgabenteilung per Software Stack

Vor allem bei größeren Projekten arbeitet ein einzelner Entwickler nicht gleichzeitig mit allen Teilen des Stacks, sondern ist auf einen bestimmten Teil konzentriert. Meist ist er stark auf diesen Aufgabenbereich spezialisiert und kennt sich besonders gut mit den damit verbundenen Technologien und Vorgehensweisen aus. Mehrere Entwickler mit verschiedenen Kompetenzen arbeiten in unterschiedlichen Bereichen des Stacks auf ein gemeinsames Ziel hin.

Für solche Projekte muss der einzelne Entwickler also theoretisch nur die Technologien beherrschen, die in seinen Aufgabenbereich fallen. Im Team könnten zum Beispiel ein Datenbank-Entwickler, ein Backend-Entwickler und ein Frontend-Entwickler gemeinsam an den jeweiligen Teilbereichen einer Webseite arbeiten.

Wenn eine Person nicht ausschließlich auf einen Bereich spezialisiert ist, sondern bei Bedarf an jedem beliebigen Teil des Stacks vollwertig arbeiten könnte, spricht man daher von einem Full Stack Entwickler, Einzelunternehmer oder Programmierer von kleinen Projekten müssen zum Beispiel häufig weitestgehend alleine an einer Anwendung arbeiten und deshalb den gesamten Software Stack selbst abdecken.

Kommentare werden geladen....

Kommentar zu diesem Artikel

Der Kommentar wird durch einen Redakteur geprüft und in Kürze freigeschaltet.

Anonym mitdiskutieren oder einloggen Anmelden

Avatar
Zur Wahrung unserer Interessen speichern wir zusätzlich zu den o.g. Informationen die IP-Adresse. Dies dient ausschließlich dem Zweck, dass Sie als Urheber des Kommentars identifiziert werden können. Rechtliche Grundlage ist die Wahrung berechtigter Interessen gem. Art 6 Abs 1 lit. f) DSGVO.
  1. Avatar
    Avatar
    Bearbeitet von am
    Bearbeitet von am
    1. Avatar
      Avatar
      Bearbeitet von am
      Bearbeitet von am

Kommentare werden geladen....

Kommentar melden

Melden Sie diesen Kommentar, wenn dieser nicht den Richtlinien entspricht.

Kommentar Freigeben

Der untenstehende Text wird an den Kommentator gesendet, falls dieser eine Email-hinterlegt hat.

Freigabe entfernen

Der untenstehende Text wird an den Kommentator gesendet, falls dieser eine Email-hinterlegt hat.

Aktuelle Beiträge zu diesem Thema

K8s feiert auf KubeCon + CloudNativeCon

5. Geburtstag der Container-Wundertüte Kubernetes

K8s feiert auf KubeCon + CloudNativeCon

Die vom 20. bis 23. Mai in Barcelona ausgerichtete KubeCon + CloudNativeCon Europe 2019 war gleichsam eine Art Geburtstagsparty für die 2014 erschienene Container-Orchestrierungs-Lösung Kubernetes. 7.700 Besucher feierten eine geradezu wuchernde Plattform der Plattformen. lesen

PHP-Tools für Entwickler

Programmieren mit PHP, Teil 9

PHP-Tools für Entwickler

Für PHP gibt es eine Reihe nützlicher Werkzeuge, mit denen Entwickler einfacher Programme schreiben und mit PHP arbeiten können. Neben Entwicklungsumgebungen und Editoren stellen wir in diesem Beitrag auch andere Zusatztools vor. lesen

Projekt Eirini bringt Cloud Foundry Apps in Kubernetes-Cluster

Ankündigungen des Cloud Foundry North American Summit 2019

Projekt Eirini bringt Cloud Foundry Apps in Kubernetes-Cluster

Zum North American Summit 2019 haben zahlreiche Mitglieder der Cloud Foundry Foundation ihre Neuerungen angekündigt, darunter auch Technologievorschauen für das Projekt Eirini. Mit Accenture und HCL wurden zudem erste zertifizierte Systemintegratoren vorgestellt. lesen

Entwicklerkonferenz mit über 10.000 IT-Experten

WeAreDevelopers World Congress 2019 in Berlin

Entwicklerkonferenz mit über 10.000 IT-Experten

Unter dem Motto „People – Code – Future“ tagt der WeAreDevelopers World Congress 2019 in Berlin. Der PHP-Erfinder Rasmus Lerdorf gehört ebenso wie der Spieledesigner John Romero zu den hochkarätigen Sprechern. lesen

TextMate und Sublime Text für macOS

Beliebte Code-Editoren, Teil 3

TextMate und Sublime Text für macOS

Die meisten Code-Editoren, die unter Linux und Windows zum Einsatz kommen, sind auch für macOS erhältlich. Doch das Apple-Betriebssystem hat eigene Favoriten: Das exklusive TextMate und das kostenpflichtige Sublime Text. lesen

XAMPP als Solution Stack für PHP-Entwickler

Programmieren mit PHP, Teil 7

XAMPP als Solution Stack für PHP-Entwickler

PHP-Entwickler benötigen eine Umgebung, in der sich der Code und die fertige Applikation möglichst produktionsnah testen lassen. XAMPP ist eine optimale Lösung dafür. Wir zeigen die Möglichkeiten und die Installation. lesen

IntelliJ IDEA und Vim unter Linux

Beliebte Code-Editoren, Teil 2

IntelliJ IDEA und Vim unter Linux

IntelliJ IDEA und Vim gehören unter GNU/Linux zu den populärsten Development-Tools. Beide Werkzeuge haben ihre eigenen Vor- und Nachteile, wir sehen uns die Funktionen im Folgenden näher an. lesen

Data-Management-Automatisierung als Antwort?

Steigende Anforderungen an Test/Dev im Jahr 2019

Data-Management-Automatisierung als Antwort?

Automatisiertes Datenmanagement unterstützt die Umsetzung von DevOps. Test/Dev-Umgebungen werden damit generell dynamischer und fit für die Hybrid-Cloud-Ära gemacht, wie wir im Folgenden zeigen. lesen

Hyperledger kündigt Grid-Framework an

Supply-Chain-Lösungen aus dem Baukasten

Hyperledger kündigt Grid-Framework an

Supply Chains, oder auch Lieferketten, lassen sich besonders gut mit Blockchain-Technologien abbilden. Das Open-Source-Projekt Hyperledger hat mit „Grid“ ein Framework angekündigt, das passende Tools sowie Best Practices in einem Ökosystem vereinen und Standards schaffen soll. lesen

copyright

Dieser Beitrag ist urheberrechtlich geschützt. Sie wollen ihn für Ihre Zwecke verwenden? Infos finden Sie unter www.mycontentfactory.de (ID: 45620021 / Definitionen)