Tech Stack (Technologie-Stack)

Was ist ein Tech Stack? 🤔

Ein Tech Stack, kurz für Technologie-Stack (im Deutschen manchmal auch Technologie-Stapel oder Technologie-Kombination), bezeichnet die spezifische Kombination von Programmiersprachen, Frameworks, Bibliotheken, Datenbanken, Servern, Werkzeugen und anderen Software-Technologien, die zur Entwicklung, Bereitstellung und zum Betrieb einer bestimmten Anwendung, eines Systems oder einer digitalen Plattform verwendet werden. Er repräsentiert die verschiedenen ""Schichten"" (Layers) der Technologie, die zusammenwirken, um die Funktionalität zu ermöglichen.

Der Begriff ""Stack"" (Stapel) visualisiert, wie diese Technologien oft aufeinander aufbauen – beispielsweise eine Datenbank als unterste Schicht, darauf ein Backend-Framework, darüber ein Frontend-Framework und alles auf einem bestimmten Betriebssystem und Webserver laufend. Die Wahl des Tech Stacks ist eine grundlegende Architekturentscheidung, die weitreichende Konsequenzen für die Entwicklung, Performance, Skalierbarkeit, Wartbarkeit und die benötigten Entwickler-Skills hat.

Komponenten eines Tech Stacks

Ein Tech Stack umfasst typischerweise Komponenten aus verschiedenen Kategorien, wobei die genaue Zusammensetzung stark vom Anwendungsfall abhängt:

  • Client-Seite (Frontend): Technologien, die im Browser des Nutzers ausgeführt werden.
    • Sprachen: HTML, CSS, JavaScript (oder darauf basierende Sprachen wie TypeScript).
    • Frameworks/Bibliotheken: React, Angular, Vue.js, Svelte, jQuery (seltener bei Neubauten).
    • CSS-Frameworks: Bootstrap, Tailwind CSS, Foundation.
  • Server-Seite (Backend): Technologien, die auf dem Server ausgeführt werden, um Geschäftslogik zu verarbeiten und Daten zu verwalten.
    • Programmiersprachen: Node.js (JavaScript/TypeScript), Python, Java, Ruby, PHP, C#, Go, Elixir etc.
    • Frameworks: Express.js, NestJS (Node.js); Django, Flask, FastAPI (Python); Spring Boot, Jakarta EE (Java); Ruby on Rails (Ruby); Laravel, Symfony (PHP); ASP.NET Core (C#).
  • Datenbanken: Systeme zur Speicherung und Verwaltung von Daten.
    • Relational (SQL): PostgreSQL, MySQL, MariaDB, Microsoft SQL Server, Oracle Database.
    • NoSQL: MongoDB (Dokument), Redis (Key-Value/Cache), Cassandra (Wide Column), Elasticsearch (Suche/Analyse).
  • Server & Infrastruktur: Die Umgebung, in der die Anwendung läuft.
    • Betriebssysteme: Linux (Ubuntu, CentOS etc. - sehr häufig), Windows Server.
    • Webserver: Nginx, Apache HTTP Server.
    • Containerisierung: Docker.
    • Orchestrierung: Kubernetes.
    • Cloud-Plattformen: AWS, Microsoft Azure, Google Cloud Platform (GCP), Heroku.
  • APIs & Kommunikation: Technologien für den Datenaustausch.
    • REST, GraphQL, gRPC, WebSockets.
  • Weitere Werkzeuge: Versionskontrolle (Git), CI/CD-Tools (Jenkins, GitLab CI, GitHub Actions), Monitoring (Prometheus, Grafana, Datadog), Caching (Redis, Memcached).

Bekannte Tech Stacks und Auswahlkriterien

Es gibt einige bekannte Akronym-basierte Tech Stacks, die gängige Kombinationen beschreiben:

  • LAMP: Linux (OS), Apache (Webserver), MySQL (Datenbank), PHP/Perl/Python (Sprache). Ein klassischer und immer noch verbreiteter Stack.
  • LEMP: Ähnlich wie LAMP, aber mit Nginx (Engine-X) als Webserver anstelle von Apache.
  • MEAN: MongoDB (Datenbank), Express.js (Backend-Framework), Angular (Frontend-Framework), Node.js (Laufzeitumgebung). Ein Full-Stack-JavaScript-Ansatz.
  • MERN: Ähnlich wie MEAN, aber mit React als Frontend-Bibliothek anstelle von Angular.
  • MEVN: Ähnlich wie MEAN, aber mit Vue.js als Frontend-Framework.
  • JAMstack: JavaScript, APIs, Markup. Architektur für schnelle, statische Webseiten mit dynamischen Funktionen über APIs (oft mit Static Site Generators wie Next.js, Gatsby, Hugo).

Die Auswahl des richtigen Tech Stacks ist entscheidend und hängt von vielen Faktoren ab:

  • Projektanforderungen: Art der Anwendung (Web, Mobile, API), Performance-Bedarf, Skalierbarkeitsziele, Echtzeit-Anforderungen.
  • Team-Know-how: Vorhandene Kenntnisse und Erfahrungen im Entwicklungsteam.
  • Community & Ökosystem: Größe und Aktivität der Community, Verfügbarkeit von Bibliotheken, Werkzeugen und Dokumentation.
  • Kosten: Lizenzkosten (für proprietäre Komponenten), Hosting-Kosten, Entwicklungskosten.
  • Time-to-Market: Wie schnell muss die Anwendung entwickelt werden? (Manche Stacks ermöglichen schnellere Entwicklung).
  • Wartbarkeit & Skalierbarkeit: Wie gut lässt sich die Anwendung langfristig warten und weiterentwickeln?
  • Sicherheit: Sicherheitsmerkmale der gewählten Technologien und bekannte Schwachstellen.

Bedeutung für die Entwicklung

Der Tech Stack bildet das technologische Fundament einer Anwendung. Die Wahl beeinflusst:

  • Entwicklungsgeschwindigkeit und -kosten: Vertraute Stacks und solche mit hoher Produktivität (z.B. durch Frameworks) können die Entwicklung beschleunigen.
  • Performance und Skalierbarkeit: Die Leistungsfähigkeit der einzelnen Komponenten (z.B. Datenbank, Backend-Sprache) und ihre Fähigkeit zur Skalierung sind kritisch.
  • Wartbarkeit: Ein gut gewählter, konsistenter Stack mit etablierten Technologien erleichtert die Wartung.
  • Personalbeschaffung: Die Popularität eines Stacks beeinflusst die Verfügbarkeit von Entwickler*innen mit den benötigten Kenntnissen.
  • Sicherheit: Jede Komponente im Stack kann potenzielle Sicherheitsrisiken mit sich bringen.
  • Zukunftsfähigkeit: Die Wahl etablierter, aktiv gepflegter Technologien reduziert das Risiko, auf veraltete Systeme angewiesen zu sein.

Ein klar definierter Tech Stack hilft Teams, konsistent zu arbeiten und technologische Entscheidungen zu treffen.

Zurück

Wie können wir Ihnen helfen?

Die Potenziale digitaler Möglichkeiten sind riesig. Das Allermeiste, was Sie sich vorstellen können, können wir für Sie entwickeln. Glauben Sie nicht? Dann sollten wir reden. Sonst natürlich auch gerne.

Mathias Münzner

Geschäftsführer

06221-1878440

Kontakt

cortona GmbH

Margot-Becke-Ring 8

69124 Heidelberg

T: +49 (0) 6221 18 78 440

E: info@cortona.de