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

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

Hart umkämpft – Von Open Source bis zur Cloud

CloudBees-Prognosen für das Jahr 2019

Hart umkämpft – Von Open Source bis zur Cloud

Neues Jahr, neue Technologien: Immer schneller sprießen neue Produkte hervor, und ganze Industrien werden sich neu erfinden müssen. In der Technologiebranche gibt es zwei Bereiche für Veränderung – durch Technologie selbst und durch Fusionen. lesen

Apache ServiceComb bereit für produktiven Einsatz

Open-Source-Framework für Microservices

Apache ServiceComb bereit für produktiven Einsatz

Wer sich mit der Entwicklung von Microservices beschäftigt, sollte einen genauen Blick auf Apache ServiceComb werfen. Das Projekt wurde im Dezember von der Apache Software Foundation zum Top-Level-Produkt erhoben. lesen

Elastic Stack 6.5 überwacht auch Serverless-Infrastrukturen

Neue Visualisierungs- und Kollaborationswerkzeuge

Elastic Stack 6.5 überwacht auch Serverless-Infrastrukturen

Der Such- und Analyse-Experte Elastic hat mit Elastic Stack 6.5 die neuesten Versionen seiner Open-Source-Dienstprogramme veröffentlicht. Außerdem stellt das Unternehmen im Elastic-APM-Tool Infrastrukturüberwachung, Distributed Tracing Support und Java- und Go-Agenten vor. lesen

Chef-Server fürs Konfigurationsmanagement aufsetzen

AWS OpsWorks for Chef Automate, Teil 1

Chef-Server fürs Konfigurationsmanagement aufsetzen

Der verwaltete Config-Management-Service von AWS hört auf den Namen OpsWorks. Dieser Workshop beschreibt, wie man mit OpsWorks einen Chef-Server aufsetzt und dann einen existenten Host zum Chef-verwalteten Knoten macht, um auf diesem per Rezept eine Webanwendung zu bootstrappen. lesen

Bietet Stream Processing für Entwickler Vorteile?

Näher am Geschehen mit Echtzeit-Analyse von Datenströmen

Bietet Stream Processing für Entwickler Vorteile?

Stream Processing erlaubt Echtzeit-Datenanalysen in hochskalierbaren Umgebungen. Doch sowohl auf Seiten der Entwickler als auch bei Bestandsdaten und -anwendungen erfordert die Adaption eine Neuausrichtung. lesen

OpenStack gibt neue Version Rocky frei

Für die Großen und die Kleinen

OpenStack gibt neue Version Rocky frei

Die 18. Version von OpenStack bringt vordergründig viel für Bare-Metal-Clouds und damit für Großanwender. Aber auch für kleinere Umgebungen und Anwender mit wenig Personal ist etwas dabei, das die OpenStack-Nutzung sehr erleichtern wird. lesen

IaC mit AWS OpsWorks implementieren

Konfigurationsmanagement in AWS

IaC mit AWS OpsWorks implementieren

„Wir würden gerne die Konfiguration unserer Server in AWS automatisieren. Welche Möglichkeiten existieren für die Umsetzung von Infrastructure as Code?“ 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)