| Cloud-, HostingHostingHosting bezeichnet die Bereitstellung und den Betrieb von IT-Infrastruktur und Rechenressourcen, um Websites, WebApps, Datenbanken und andere Anwendungen zugänglich zu machen. Hierfür werden meistens Server verwendet. Beim Self-Hosting (de: selbst hosten, Eigenhosting) betreibt und wartet man selbst nötige Infrastruktur und Anwendungen. Beim Managed Hosting übernimmt ein externer Anbieter den Betrieb und die Wartung der Infrastruktur und Anwendungen. Unabhängig davon, wer das Hosting übernimmt, spielt auch das “Wo” eine Rolle – die benötigten Rechenressourcen können entweder in der Cloud liegen (Cloud Computing, z.B. ein virtueller Server) oder physisch vor Ort sein (“on premise”, z.B. Server in einem eigenen Data-Center oder in einem separaten Raum im Büro). Mit der zunehmenden Verfügbarkeit von Cloud Computing und damit verbundenen Geschäftsmodellen nimmt der Anteil von Hosting in der Cloud in den letzten Jahren stetig zu.- & Infrastruktur-Provider |
Beantwortet die Frage: Wo läuft die Anwendung? Statt „ServerServerServer-Client-Modell Server und Client sind zwei zentrale Konzepte in der IT, die das Verhältnis zwischen zwei Systemen beschreiben: Der Client ist das Gerät oder das Programm, das eine Anfrage stellt (z. B. ein Webbrowser). Der Server ist das Gerät oder das Programm, das die Anfrage bearbeitet und dem Client die gewünschten Daten oder Dienste bereitstellt (z. B. ein Webserver-Programm). Diese Kommunikation findet in vielen digitalen Anwendungen statt, von Websites bis zu Cloud-Diensten. Ihr könnt euch einen Server wie eine zentrale Telefonauskunft vorstellen: Sie hat Zugriff auf Informationen und ist dafür da, Anfragen zu beantworten. Die Clients sind wie die Menschen, die bei der Auskunft anrufen: Sie stellen eine konkrete Anfrage und bekommen eine Antwort. Die Auskunftszentrale kann dabei parallel mehrere Anrufe entgegennehmen und Informationen bereitstellen. Server als Rechner Was manchmal zu Verwirrung führen kann: der Begriff “Server” bezeichnet sowohl den Rechner als auch die Server-Programme, die auf ihm laufen. So könntet ihr auf einem Server (Rechner) euren Webserver (Programm), E-Mail Server (Programm) und einen API-Server (Programm) betreiben. im Keller“ werden Server häufig bei einem Cloud Provider gemietet, oft als VPS (Virtual Private Server). Je nach Wahl ist man selbst für Betriebssystem, Administration und Teile der Infrastruktur verantwortlich. |
|
| Object Storage & Dateiablage für Infrastruktur |
Ergänzt die Infrastruktur um Speicherorte für Dateien, Backups, Exporte oder Modelle. Wichtig ist dabei auch die Datenschutzfrage: Wo werden Daten gespeichert und wer hat theoretisch Zugriff? |
|
| PaaS (Platform-as-a-Service), Serverless & Managed Deployment |
PaaS bedeutet, dass Deployment und Betrieb stärker abstrahiert werden: Man deployt Code oder Anwendungen, ohne alles auf Serverebene selbst zu administrieren - eine Alternative zum Self-Hosting. |
|
| Self-Hosting-Plattformen & fertige Betriebsumgebungen |
Self-Hosting ist die Verwaltung von SoftwareSoftwareWährend Hardware die physischen Bestandteile eines Computers beschreibt, wie zum Beispiel eine Festplatte, wird der Begriff Software für die Programme eines Computers verwendet, die ihn funktionsfähig machen, wie zum Beispiel das Betriebssystem. und Diensten auf eigenen oder gemieteten Servern und bedeutet, dass die Verantwortung stärker bei einem selbst liegt. Dadurch gibt es weniger Abhängigkeiten von externen Betreibern, für die Sicherheitsvorkehrungen muss aber auch selbst gesorgt werden. |
|
| Containerisierung & Orchestrierung |
Anwendungen laufen heute häufig in Containern statt direkt auf dem Server. Der Vorteil: Eine containerisierte Anwendung läuft auf jedem Betriebssystem gleich; bei mehreren Containern, z. B. (zum Beispiel) App, DatenbankDatenbankEine Datenbank ist ein System zur Speicherung und Verwaltung von Daten. Es handelt sich um eine Softwareanwendung, die strukturierte Daten in Tabellen (Spalten und Zeilen) organisiert und effiziente Abfragen und Transaktionen ermöglicht. Datenbanken werden in zahlreichen Bereichen eingesetzt, um große Mengen an Informationen sicher und zugänglich zu halten. und Cache, braucht es Werkzeuge, die sie zusammenhalten und ihren Lebenszyklus administrieren. |
|
| Infrastructure as Code & Server-Konfiguration |
Kernidee: Infrastruktur wird als Code beschrieben, statt manuell geklickt. Das macht Umgebungen reproduzierbar, nachvollziehbar und versionierbar via GitGitGit ist ein Programm zur Versionskontrolle. Es ermöglicht es Entwickler*innen, Änderungen an Code und anderen Dateien zu verfolgen, zu verwalten und zu koordinieren. Git ist wie ein Logbuch für eure Dateien. Es ist ein Werkzeug, das alle Änderungen an euren Dokumenten aufzeichnet und speichert, sodass ihr: sehen könnt, wer was wann geändert hat zu früheren Versionen zurückkehren könnt gleichzeitig an denselben Projekten arbeiten könnt, ohne euch gegenseitig zu überschreiben Programmierprojekte werden häufig mit Git verwaltet und auf Plattformen wie GitHub, GitLab oder Gitea bereitgestellt.; Terraform/OpenTofu beantworten eher „Was soll existieren?“, Ansible eher „Wie soll es konfiguriert sein?“. |
|
| Code-Repositories & Open-Source-Veröffentlichung |
Repositories machen Code nachvollziehbar, gemeinsam bearbeitbar und veröffentlichbar. Sie sind auch Grundlage für versionierte Infrastruktur, automatisierte Deployments und Open-Source-Veröffentlichung. |
|
| CI/CDCI/CDCI/CD beschreibt einen automatisierten Prozess in der Softwareentwicklung, bei dem neue Änderungen der Software regelmäßig zusammengeführt (continuous integration), getestet und den Nutzer*innen der Software bereitgestellt (continuous deployment) werden. CI/CD ist eng mit dem Konzept des Deployments verknüpft, da es diesen letzten Schritt der Entwicklung einer Software - die Bereitstellung der Software für die Nutzer*innen - stark vereinfacht und durch Automatisierung beschleunigt. Als Teil des DevOps-Ansatzes trägt CI/CD dazu bei, Software schneller, zuverlässiger und mit weniger manueller Arbeit in Betrieb zu nehmen. Während DevOps der übergeordnete Ansatz ist, der Entwicklung und Betrieb zusammenbringt, beschreibt C/CD die konkreten Prozesse und Werkzeuge, mit denen dieser kontinuierliche Fluss von Änderungen automatisiert wird. Die folgende Grafik zeigt den grundsätzlichen Ablauf eines CI/CD Prozesses: (Continuous Integration/Continuous Deployment) & Deployment-Automatisierung |
Deployment ist keine einmalige Aktion, sondern eine kontinuierliche Tätigkeit. Automatisierung hilft, neue Features, Bugfixes, Updates und Deployments kontrolliert aus dem Repository heraus umzusetzen. |
|
| Webserver, Reverse Proxy & Webzugriff |
Ein Webserver akzeptiert Anfragen von User Agents und schickt eine Antwort zurück. Zusätzlich muss eine lesbare Adresse wie eine Domain mit der Server-IP (Internet Protocol-Adresse) verknüpft werden (DNSDNSDas DNS (Domain Name System) ist wie ein riesiges Telefonbuch für das Internet. Es enthält Einträge (en: Records) für jede Internetadresse (de: Domäne, en: Domain, z.B. google.com oder cdl.dev). Das DNS verwendet die Records, um für die Internetadresse/Domain Informationen (z.B. IP-Adressen) “nachzuschlagen”, die Computer verstehen und die für das Funktionieren des Internets relevant sind. Das DNS ist ein weltweit verteiltes Netz aus Servern, das speziell für diese Aufgabe existiert . (Domain Name System) Management). |
|
| Programmiersprachen & Laufzeitumgebungen |
Diese Bausteine betreffen den eigenen Code, der deployed wird. Sie bestimmen, in welcher Umgebung Anwendungen, APIs (Application Programming Interfaces), Skripte oder Webdienste laufen. |
|
| Backend-Frameworks & App-Entwicklung |
Diese Werkzeuge helfen, eigene Anwendungen oder Services zu bauen, die später auf Servern laufen und über das Internet erreichbar sind. Sie gehören zum Bereich „Deployment von eigenem Code“. (GitHub) |
|
| Datenbanken für Anwendungen |
Datenbanken gehören oft zur Anwendung selbst, etwa als zusätzlicher Container neben App und Cache. Sie speichern die Daten, die eine Anwendung dauerhaft braucht. (GitHub) |
|
| Analytische Datenbanken & lokale DatenanalyseDatenanalyseDatenanalyse ist der Prozess der (systematischen) Untersuchung von Daten, um Erkenntnisse zu gewinnen. Sie umfasst Techniken wie deskriptive, explorative und inferentielle Analysen und unterstützt datenbasierte Entscheidungen. Datenanalyse findet Anwendung in Bereichen wie Wirtschaft, Gesundheitswesen, Marketing und Wissenschaft. Deskriptiv: Die beschreibende Statistik hat zum Ziel einen Überblick über die Daten zu bekommen. Dabei wird vor allem mit (Häufigkeits-)Tabellen gearbeitet oder Kennwerten wie Mittelwert, Median, Standardabweichung und Varianz berechnet. Deskriptives Vorgehen: Die beschreibende Statistik hat zum Ziel einen Überblick über die Daten zu bekommen. Dabei wird vor allem mit (Häufigkeits-)Tabellen gearbeitet oder Kennwerten wie Mittelwert, Median, Standardabweichung und Varianz berechnet. Exploratives Vorgehen: Bei der als auch erforschenden Statistik bezeichneten Methode, steht die Sammlung von Information im Vordergrund zudem es bisher kein oder wenig Wissen gibt. Es werden zum Beispiel noch keine Hypothesen aufgestellt. Inferentielle Statistik: Auch als schließende Statistik bezeichnet, beschreibt den statistischen Prozess, von den Ergebnissen einer Stichprobe auf die Grundgesamtheit zu schließen. |
Diese Kategorie umfasst Werkzeuge, mit denen Daten analysiert, abgefragt oder lokal verarbeitet werden. Sie ist besonders relevant, wenn aus Daten Anwendungen, Dashboards oder Auswertungen entstehen. |
|
| Datenplattformen, Query Engines & Data LakeData LakeEin Data Lake ist ein zentrales Speichersystem, das große Mengen strukturierter und unstrukturierter Daten in ihrem Rohformat speichert. Im Gegensatz zu traditionellen Data Warehouses, die Daten vor der Speicherung verarbeiten und strukturieren, nimmt ein Data Lake Daten in ihrem ursprünglichen Format auf, die Analyse erfolgt zu einem späteren Zeitpunkt. Tools |
Diese Werkzeuge sind für größere oder verteilte Datenbestände gedacht. Sie helfen dabei, Datenquellen abzufragen, Datenstände zu organisieren oder analytische Plattformen aufzubauen. |
|
| Datenpipelines & Workflow-Orchestrierung |
Diese Tools unterstützen wiederkehrende Abläufe, Datenjobs und Automatisierung. Sie passen zur Idee, dass Deployment und Betrieb kontinuierliche Tätigkeiten sind und regelmäßig gepflegt werden müssen. (GitHub) |
|
| BI (Business Intelligence), Dashboards & DatenvisualisierungDatenvisualisierungDatenvisualisierung beschreibt die grafische Darstellung von Daten und Informationen. Sie umfasst Methoden und Techniken zur Erstellung von Diagrammen, Grafiken und interaktiven Visualisierungen, um Muster und Trends in Daten schnell erkennen zu können. Datenvisualisierung unterstützt Entscheidungsprozesse und fördert das leicht zugängliche Verständnis komplexer Zusammenhänge. |
Diese Werkzeuge machen Daten für Teams sichtbar und nutzbar. Sie helfen dabei, Ergebnisse aus Anwendungen, Datenbanken oder Datenpipelines in Dashboards und Auswertungen zu übersetzen. |
|
| Monitoring, Logging & Observability |
Wie merke ich bei einer laufenden Anwendung, wenn etwas schiefläuft? Dazu gehören Uptime Monitoring, Ressourcen-Monitoring für CPU (Central Processing Unit), RAM (Random Access Memory) und Speicher sowie Notifications, wenn eine Anwendung nicht erreichbar ist. |
|
| Identität, Zugriff, Netzwerk & Security Governance |
Wer darf auf die Anwendung oder den Server zugreifen? Dazu gehören sichere Zugänge mit Admin-Oberflächen und internen Diensten, aber auch Firewalls, klare Regeln für Logins, Access Management und Policy-Regeln bei Anwendungen, die offen im Internet zu erreichen sind. |
|
| Open Source Anwendungen |
Das sind Open-Source- und offene Fachanwendungen, die selbst gehostet werden können. |
|
| KI-/LLM (Large Language Model)-Infrastruktur & lokale Modelle |
Diese Werkzeuge betreffen Anwendungen, deren Antworten oder Inhalte z. B. durch Large Language Models automatisch erzeugt werden. Das Grundprinzip fürs Deployment ist vergleichbar zu anderen: Anfragen werden angenommen und Antworten zurückgeschickt, nur mit deutlich anderen Anforderungen an Ressourcen. |
|
| KI-Prototyping & Daten-App-Oberflächen |
Diese Tools helfen, Daten- oder KI-Anwendungen schnell als Weboberfläche nutzbar zu machen. Sie gehören zum Deployment von eigenem Code oder Prototypen, die über das Internet oder intern erreichbar werden sollen. |
|
| Lokale Hardware & Edge-Betrieb |
Entspricht dem niedrigsten Abstraktionslevel: Der Server besteht in eigener Hardware statt gemieteter Cloud-Infrastruktur. |
|
| Shell, Betrieb & manuelle Serverarbeit |
Diese Werkzeuge gehören zur praktischen Serveradministration. Sie werden wichtig, wenn man selbst für Betriebssystem, Updates, Requirements und Wartung verantwortlich ist. |
|