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

Moderne Windows-API für WinUI und WinRT

Win32 weiterhin als Legacy-Plattform unterstützt

Moderne Windows-API für WinUI und WinRT

Auf der Ignite-Konferenz hat Microsoft WinUI in Version 3.0 als das ideale Werkzeug für Desktop-Entwickler bezeichnet. Die Uno-Plattform von „nventive“ wird als Option für Windows 7 oder Web-Bereitstellung empfohlen. lesen

Low-Code oder Pro-Code?

Warum IT-Leiter weder noch ausschließen können

Low-Code oder Pro-Code?

IT-Abteillungen haben es schwer, den Bedarf an Software und Apps zu decken. Low-Code-Lösungen scheinen der ideale Weg, um Anwendungen mit geringem Programmieraufwand und in kürzester Zeit zusammenzustellen. Doch kann Low-Code tatsächlich halten, was es verspricht? lesen

Was Entwickler (wirklich) wollen

Stimmungen aus der deutschen IT-Szene

Was Entwickler (wirklich) wollen

Entwickler können bei der Jobsuche wählerisch sein. Wer aber sind die Developer in Deutschland und was wünschen sie sich von ihren (potenziellen) Arbeitgebern? Eine aktuelle Studie der Entwicklerplattform Stack Overflow gibt Antworten darauf, wie es um die Gemütslage der deutschen Developer bestellt ist. lesen

Entwickler wählen Tools, Container-Hype stagniert

Weltweite Umfrage der Cloud Foundry Foundation

Entwickler wählen Tools, Container-Hype stagniert

Entwickler werden bei steigender IT-Komplexität im Unternehmen mehr in die Entscheidungsfindung mit einbezogen. Ihr eigenes Credo lautet dann: „Mehr Abstraktion und weniger Komplexität“, sagt die Cloud Foundry Foundation mit Blick auf die jüngste „Global Perception Study“. lesen

Bytecode mit WebAssembly erzeugen

Webanwendungen mit Performance nativer Apps

Bytecode mit WebAssembly erzeugen

Wer seinen Web-Apps schon immer zur Leistung nativer Desktop-Anwendungen verhelfen wollte, kann jetzt aufatmen. Ein binäres Befehlsformat namens WebAssembly übernimmt die Schwerstarbeit. lesen

Amazon forciert Nutzung von Rust

AWS EC2, S3 und Lambda sollen stärker profitieren

Amazon forciert Nutzung von Rust

Viele Dienste in AWS, zum Beispiel EC2, S3 und Lambda, profitieren von Rust. Amazon will die Programmiersprache noch stärker einsetzen und zudem Förderkredite vergeben. lesen

Networking in der DevOps-Ära

Alles dreht sich um Software

Networking in der DevOps-Ära

In einem modernen Unternehmen dreht sich alles um Software. Unternehmensfunktionen, die früher manuell und zeitaufwändig waren, werden heute automatisiert, virtualisiert und von Endanwendern bei Bedarf genutzt. Tatsächlich stehen wir am Anfang einer radikalen Umwälzung, die im Wesentlichen von den Entwicklern Cloud-nativer Anwendungen angetrieben wird. lesen

Läuft Go bald Java den Rang ab?

Golang für Cloud-native Entwicklung

Läuft Go bald Java den Rang ab?

Verteilte Anwendungsarchitekturen überfordern traditionelle Programmiersprachen. Entwickler von Microservices suchen händeringend nach besseren Alternativen. Kann Go die Platzhirsche ablösen? lesen

Die andere Art der Karriere mit DevOps

Eine nordische Perspektive von Petteri Ahonen

Die andere Art der Karriere mit DevOps

Die Lust auf neue Herausforderungen und lebenslanges Lernen ist eine Grundvoraussetzung, wenn man als IT-Berater Karriere machen möchte. Doch was hat DevOps damit zu tun? 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)