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

Was ist ein Cloud Native Stack?

Defintion „Cloud-nativer Solution Stack“

Was ist ein Cloud Native Stack?

Der Begriff „Cloud Native Stack“ bezeichnet einen Stapel aufeinander aufbauender Tools, der die Grundlage für die Entwicklung Cloud-nativer Anwendungen bildet. Er ermöglicht es, Microservices zu einem System zu bündeln. Dies bietet einige Vorzüge, ist allerdings nicht ganz trivial. lesen

Perforce hilft beim Technologie-Stack-Aufbau

OpenLogic Stack Builder verfügbar

Perforce hilft beim Technologie-Stack-Aufbau

Mit dem OpenLogic Stack Builder bietet Perforce ab sofort ein kostenloses Online-Tool für die Einführung von Open-Source-Software an. Es hilft beim Bau von Technologie-Stacks und stellt dazu einen interaktiven Fragenkatalog und Ratschläge bereit. lesen

Appian hat RPA fest integriert

Low-Code-Plattform Version 20.1 remote vorgestellt

Appian hat RPA fest integriert

Low-Code-Plattformen in Verbindung mit Robotic Process Automation, kurz RPA, können laut Gartner die „digitale Gewandtheit“ im Unternehmen steigern. Appian trägt dieser Empfehlung offenbar Rechnung: Version 20.1 seiner „Appian Platform“ schließt RPA-Funktionen ein. lesen

Netzwerk und Rollen für Kubernetes aufsetzen

Container-Orchestrierung mit AWS EKS, Teil 1

Netzwerk und Rollen für Kubernetes aufsetzen

Der Amazon Elastic Kubernetes Service, kurz EKS, ist einer von zwei verwalteten Container-Cluster-Managern auf AWS. In diesem dreiteiligen Workshop bringen wir eine Container-Anwendung zum Laufen, hierfür beginnen wir mit den Vorbereitungen zum Betrieb eines EKS-Clusters auf AWS. lesen

Stack Overflow integriert Jira, GitHub und Teams

Tools für besseren Entwickler-Workflow unter einer Oberfläche

Stack Overflow integriert Jira, GitHub und Teams

Um Stack Overflow for Teams zur umfassenden Kommunikationszentrale für Entwickler auszubauen, hat der Hersteller einige Integrationen vorgenommen. Feste Bestandteile sind nunmehr Jira, GitHub und Okta, Schnittstellen zu Microsoft Teams und Slack finden sich sogar in der Basis-Version. lesen

Erste Schritte mit Git und GitHub

Effektive Zusammenarbeit im Development-Team

Erste Schritte mit Git und GitHub

Git ist seit Jahren eines der bekanntesten Versionskontrollsysteme für Entwickler. Mit der Lösung können Teams gemeinsam an Projekten arbeiten und Quellcode-Versionen effektiv verwalten, auch in Kombination mit GitHub. lesen

Makrotrends in der Technologiebranche 2020

Randthemen aus dem ThoughtWorks Technology Radar

Makrotrends in der Technologiebranche 2020

Bei der Erstellung des Technology Radars führen wir auch immer wieder interessante Gespräche über zahlreiche Themen, die wir nicht aufnehmen können. Also, was tut sich gerade in der Welt der Software? lesen

Welche Entwickler-Plattformen in der Cloud gibt es?

Marktübersicht zu Cloud Native Development

Welche Entwickler-Plattformen in der Cloud gibt es?

Vor der Cloud-Native-Entwicklung steht die Auswahl einer entsprechenden Plattform. Neben den großen Playern Amazon, Google und Microsoft gibt es eine Reihe Alternativen, die durchaus einen Blick wert sind. lesen

Europäisches Projekt SmartCLIDE forciert Cloud-Einsatz

Mehr Clouds für Unternehmen und die öffentliche Verwaltung

Europäisches Projekt SmartCLIDE forciert Cloud-Einsatz

Im Januar ist unter Führung des Bremer Instituts für angewandte Systemtechnik ATB das europäische Projekt SmartCLIDE gestartet. Die von der europäischen Kommission geförderte Forschungsarbeit hat das Ziel, den Einsatz von Cloud-Services in Unternehmen und öffentlichen Verwaltungen zu fördern. lesen

copyright

Dieser Beitrag ist urheberrechtlich geschützt. Sie wollen ihn für Ihre Zwecke verwenden? Kontaktieren Sie uns über: support.vogel.de/ (ID: 45620021 / Definitionen)