Definitionen durchsuchen :
Definition

Software-Stack

Mitarbeiter: Margie Semilof

Ein Software-Stack ist eine Sammlung unabhängiger Komponenten, die zusammenwirken, um die Ausführung einer Anwendung zu unterstützen. Die Komponenten, zu denen ein Betriebssystem, Architekturschichten, Protokolle, Laufzeitumgebungen, Datenbanken und Funktionsaufrufe gehören können, werden in einer Hierarchie übereinander gestapelt (auf Englisch: stacked). In der Regel interagieren die Komponenten der unteren Ebene in der Hierarchie mit der Hardware, während die Komponenten der höheren Ebene in der Hierarchie bestimmte Aufgaben für den Endbenutzer ausführen. Die Komponenten kommunizieren direkt mit der Anwendung über eine Reihe komplexer Anweisungen, die den Stack durchlaufen.

Beispiele für Software-Stacks

LAMP (Linux, Apache, MySQL, PHP) ist ein bekannter Software-Stack für die Webentwicklung. Die unterste Schicht der Stack-Hierarchie ist das Linux-Betriebssystem. Die oberste Schicht der Hierarchie ist die Skriptsprache – in diesem Fall PHP. (Manchmal steht das P in LAMP auch für Python oder Pearl). LAMP-Stacks sind beliebt, weil sämtliche Komponenten Open Source sind und der Stack auf handelsüblicher Hardware laufen kann. Im Gegensatz zu monolithischen Software-Stacks, die oft eng gekoppelt und für ein bestimmtes Betriebssystem gebaut sind, ist ein LAMP-Stack lose gekoppelt. Das bedeutet, dass die Komponenten zwar ursprünglich nicht für die Zusammenarbeit konzipiert wurden, sich aber als komplementär erwiesen haben und häufig zusammen verwendet werden. Heute sind LAMP-Komponenten in fast allen Linux-Distributionen enthalten.

MEAN (MongoDB, Express, Angular und Node) ist ein Stack von Entwicklungswerkzeugen, die dafür bekannt sind, Sprachbarrieren zu beseitigen, die oft bei der Softwareentwicklung auftreten. MongoDB, ein NoSQL-Dokumenten-Datenspeicher, ist die Grundlage von MEAN. Express ist der HTTP-Server und Angular ist das Framework für Front-End-JavaScript. Die höchste Schicht des Stacks ist Node, eine Plattform für serverseitiges Skripting.

Apache CloudStack ist ein Open-Source-Cloud-Management-Stack, der von großen Unternehmenskunden und Service-Providern verwendet wird, die Infrastructure as a Service (IaaS) anbieten. CloudStack bietet Entwicklern mehrere Schichten optionaler Dienste sowie Unterstützung für eine Vielzahl von Hypervisoren und APIs (Programmierschnittstellen).

Software-Stack einfach erklärt

Vorteile und Herausforderungen von Software-Stacks

Wenn Stack-Komponenten über offene und Standardprotokolle und Programmierschnittstellen kommunizieren, können sie durch andere Komponenten ausgewechselt werden, wenn diese dieselben APIs verwenden. Das ermöglicht es zum Beispiel einer virtuellen Maschine (VM), die unter Linux läuft, auch auf einem Windows-Betriebssystem zu laufen und von einem LAMP-Stack zu einem virtuellen WAMP-Stack zu wechseln. Wenn ein Stack lose gekoppelt ist, kann es jedoch eine Herausforderung sein, die Leistung zu optimieren, denn dann muss jede Komponente individuell analysiert und abgestimmt werden.

Front-End, Back-End und vollständige Software-Stacks

Stellenausschreibungen für Software-Stack-Entwickler suchen oft nach Kandidaten, die sich mit einer bestimmten Schicht eines bestimmten Stacks auskennen. So kann eine Stellenausschreibung für einen Front-End-LAMP-Entwickler erfordern, dass der Kandidat über HTML5, Cascading Styles Sheets (CSS), Asynchronous JavaScript und XML (AJAX) und JSON Bescheid weiß. Eine Position als Backend-LAMP-Entwickler hingegen kann serverseitige Skripting-Kenntnisse wie PHP erfordern, aber auch Kenntnisse über objektorientierte Programmierung (OOP), die Optimierung von Datenbanken für schreibintensive Anwendungen oder das Schreiben von RESTful APIs.

Eine Ausschreibung für einen Full-Stack-LAMP-Entwickler erwartet in der Regel, dass der Kandidat für alles verantwortlich ist, vom Patchen des Betriebssystems bis zur Übersetzung der Wireframe-Designs des User-Experience (UX)-Teams in den Code. Diese Art von Arbeit kann sehr anspruchsvoll sein, da sie vom Kandidaten verlangt, dass er mit jeder Schicht des Stacks sehr vertraut ist.

Diese Definition wurde zuletzt im April 2020 aktualisiert

ComputerWeekly.de

Close