Welche der folgenden Aussagen beschreibt korrekt die "Codebase" in der 12-Faktoren-Methode? A. Jede Anwendung sollte aus mehreren Codebases bestehen, die unabhängig voneinander versioniert werden. B. Die Codebase umfasst alle Elemente, die für die Entwicklung und das Deployment einer Anwendung notwendig sind. C. Die Codebase sollte keine Frameworks oder Bibliotheken enthalten. D. Änderungen in der Codebase sollten in einer Produktionsumgebung direkt vorgenommen werden. ANSWER: B Wie werden Abhängigkeiten in der 12-Faktoren-Methode behandelt? A. Abhängigkeiten sollten direkt im Anwendungscode integriert sein. B. Abhängigkeiten werden mithilfe von Umgebungsvariablen definiert. C. Abhängigkeiten werden mit Dependency-Management-Systemen deklariert und isoliert. D. Es wird auf systemweite Tools wie ImageMagick zurückgegriffen. ANSWER: C Welche Phase gehört nicht zu den definierten Phasen einer Anwendung laut der 12-Faktoren-Methode? A. Build B. Init C. Release D. Run ANSWER: B Warum sollten Konfigurationsdaten einer Anwendung in der 12-Faktoren-Methode aus Umgebungsvariablen bezogen werden? A. Um Linux-kompatibel zu sein. B. Um eine bessere Portabilität und Skalierbarkeit zu ermöglichen. C. Um sicherzustellen, dass alle Entwickler dieselbe Entwicklungsumgebung nutzen. D. Um die Abhängigkeiten der Anwendung zu minimieren. ANSWER: B Was ist das Ziel des Faktors "Processes" in der 12-Faktoren-Methode? A. Prozesse sollten den Zustand der Anwendung lokal speichern. B. Prozesse sollten stets mit der gleichen Anzahl Instanzen laufen. C. Prozesse sollen stateless (zustandslos) ausgeführt werden. D. Prozesse sollten komplexe Abhängigkeiten zwischen sich teilen. ANSWER: C Welche Technik ermöglicht die horizontale Skalierung von Anwendungen gemäß der 12-Faktoren-Methode? A. Die Verwendung von Multi-Stage Builds. B. Das Starten zusätzlicher Prozessinstanzen. C. Das Erhöhen der Hardwareleistung einer einzelnen Instanz. D. Das Starten zusätzlicher Virtueller Maschinen. ANSWER: B Welche Aussage beschreibt korrekt die Bedeutung von "Logs" in der 12-Faktoren-Methode? A. Logs sollten direkt in Dateien auf der lokalen Festplatte gespeichert werden. B. Logs werden als strukturierte Ereignisströme auf stdout ausgegeben. C. Logs müssen stets mithilfe OCI-konformer Logging-Libraries erstellt werden. D. Logs sind nur in der Entwicklungs- und Testumgebungen notwendig. ANSWER: B Warum ist die Trennung von Build-, Release- und Run-Phasen in der 12-Faktoren-Methode wichtig? A. Um sicherzustellen, dass Entwickler keine Fehler im Code machen. B. Um eine klare Trennung der Aufgaben und Verantwortlichkeiten zu gewährleisten. C. Um die Anwendung schneller skalieren zu können. D. Um sicherzustellen, dass jede Phase in unterschiedlichen Umgebungen genutzt werden kann. ANSWER: B Welche Eigenschaft sollte die Codebase gemäß der 12-Faktoren-Methode aufweisen? A. Die Codebase sollte für jede Umgebung (Entwicklung, Test, Produktion) unterschiedlich sein. B. Die Codebase sollte aus einer einzigen Quelle der Wahrheit bestehen. C. Jede Abteilung eines Teams sollte ihre eigene Codebase pflegen. D. Die Codebase sollte nur Frameworks enthalten, keine Applikationslogik. ANSWER: B Warum ist es wichtig, eine Codebase nach der 12-Faktoren-Methode in einem Versionskontrollsystem zu verwalten? A. Um sicherzustellen, dass jeder Entwickler eigene Versionen der Anwendung erstellen kann. B. Um die Anwendung direkt in verschiedenen Umgebungen bereitzustellen. C. Um Änderungen rückverfolgbar zu machen und allen Entwicklern eine konsistente Arbeitsbasis zu bieten. D. Um Abhängigkeiten automatisch aufzulösen. ANSWER: C Welche der folgenden Aussagen widerspricht den Prinzipien der 12-Faktoren-Methode in Bezug auf die Codebase? A. Änderungen an der Anwendung werden direkt in der Produktionsumgebung durchgeführt. B. Alle Abhängigkeiten der Anwendung sind in der Codebase dokumentiert. C. Die Anwendung wird aus einer einzigen, versionierten Codebase erstellt. D. Entwickler arbeiten auf der gleichen Version der Codebase wie die Produktionsumgebung. ANSWER: A Warum ist die explizite Deklaration von Abhängigkeiten in der 12-Faktoren-Methode wichtig? A. Damit die Anwendung keine externen Dienste benötigt. B. Um sicherzustellen, dass die Anwendung unabhängig von der Ausführungsumgebung funktioniert. C. Damit Abhängigkeiten automatisch in Produktionsumgebungen installiert werden. D. Um die Portabilität der Anwendung zwischen verschiedenen Betriebssystemen sicherzustellen. ANSWER: B Welche der folgenden Praktiken widerspricht den Prinzipien der 12-Faktoren-Methode in Bezug auf Abhängigkeiten? A. Nutzung eines Dependency-Management-Systems wie Maven oder pip. B. Installation von benötigten Tools über die Build-Pipeline der Anwendung. C. Nutzung von standardisiert installierten Betriebssystem-Tools wie curl oder wget. D. Dokumentation der Abhängigkeiten im Versionskontrollsystem. ANSWER: C Wie sollten Abhängigkeiten gemäß der 12-Faktoren-Methode verwaltet werden? A. Abhängigkeiten sollten direkt in der ausführbaren Datei der Anwendung enthalten sein. B. Abhängigkeiten sollten deklarativ und innerhalb der Codebase spezifiziert werden. C. Abhängigkeiten sollten automatisch durch das Betriebssystem installiert werden. D. Abhängigkeiten sollten ausschließlich in Entwicklungsumgebungen verwaltet werden. ANSWER: B Was ist das Hauptziel von Multi-Stage Builds in Docker? A. Die Reduktion der Build-Zeit durch parallele Prozesse. B. Die Minimierung der Image-Größe, indem unnötige Artefakte aus dem endgültigen Image entfernt werden. C. Das gleichzeitige Erstellen mehrerer Container-Images für horizontale Skalierung. D. Das gleichzeitige Erstellen mehrerer Container-Images für unterschiedliche Betriebssysteme und Prozessorarchitekturen. ANSWER: B Welche der folgenden Maßnahmen trägt zur Umsetzung des Image-Shrinking-Patterns bei? A. Nutzung eines Basis-Images wie "Alpine" oder "Scratch". B. Aufnahme aller Systemtools, die möglicherweise benötigt werden, in das Image. C. Vermeidung von Chaining bei RUN-Befehlen im Dockerfile. D. Installation aller verfügbaren Pakete ohne Einschränkungen. ANSWER: A Wie helfen Multi-Stage Builds, den Entwicklungsprozess zu optimieren? A. Indem alle notwendigen Entwicklungswerkzeuge im finalen Image enthalten sind. B. Indem unnötige Build-Artefakte nicht ins finale Container-Image übernommen werden. C. Indem die Konfiguration ausschließlich auf die Produktionsumgebung abgestimmt wird. D. Indem Abhängigkeiten systemweit installiert werden, um sie für andere Images nutzbar zu machen. ANSWER: B Warum sollte die Installation von Paketen in Dockerfiles in einer einzigen RUN-Anweisung erfolgen? A. Um die Lesbarkeit des Dockerfiles zu verbessern. B. Um die Anzahl der Layer im Image zu reduzieren und die Cache-Nutzung zu optimieren. C. Um sicherzustellen, dass alle Pakete in der gleichen Reihenfolge installiert werden. D. Um Konflikte zwischen verschiedenen Abhängigkeiten zu vermeiden. ANSWER: B Welche Best Practice wird bei der Installation von Paketen in Dockerfiles empfohlen? A. Nach der Installation von Paketen immer den Cache zu löschen. B. Mehrere RUN-Befehle zu verwenden, um Pakete getrennt zu installieren. C. Abhängigkeiten in einer separaten Datei außerhalb des Dockerfiles zu speichern. D. Keine spezifischen Versionen von Paketen zu definieren. ANSWER: A Wie können volatile Änderungen im Dockerfile minimiert werden? A. Indem Konfigurationen und Abhängigkeiten am Anfang des Dockerfiles definiert werden. B. Indem häufig geänderte Schritte möglichst am Ende des Dockerfiles platziert werden. C. Indem alle Konfigurationsdaten in einer separaten Datei außerhalb des Dockerfiles gespeichert werden. D. Indem nur feste IP-Adressen und Ports in den Konfigurationsschritten verwendet werden. ANSWER: B Warum sollten Konfigurationsdaten gemäß der 12-Faktoren-Methode über Umgebungsvariablen verwaltet werden? A. Um sicherzustellen, dass die Anwendung nur in einer Entwicklungsumgebung lauffähig ist. B. Um die Portabilität und einfache Anpassung der Anwendung in verschiedenen Umgebungen zu gewährleisten. C. Um sicherzustellen, dass die Anwendung unabhängig von einer Versionierung funktioniert. D. Um die Sicherheit der Anwendung durch die direkte Speicherung von Zugangsdaten im Code zu erhöhen. ANSWER: B Welche der folgenden Aussagen widerspricht den Prinzipien der 12-Faktoren-Methode zur Konfiguration? A. Konfigurationsdaten werden in Umgebungsvariablen gespeichert. B. Zugangsdaten werden direkt in den Anwendungscode eingebettet. C. Kubernetes ConfigMaps werden verwendet, um Konfigurationsdaten bereitzustellen. D. Änderungen an Konfigurationsdaten erfordern keine Änderungen am Anwendungscode. ANSWER: B Wie können Konfigurationsdaten in Kubernetes bereitgestellt werden, um die Prinzipien der 12-Faktoren-Methode einzuhalten? A. Durch direkte Einbindung der Konfigurationsdaten in das Container-Image. B. Durch Verwendung von ConfigMaps und Secrets, die in Umgebungsvariablen eingebunden werden. C. Durch die Verwendung eines festen Config-Files innerhalb des Containers. D. Durch das Hardcoding von Konfigurationswerten in der Anwendung. ANSWER: B Welche Vorgehensweise entspricht den Prinzipien der 12-Faktoren-Methode in Bezug auf Backing Services? A. Backing Services sollten über Umgebungsvariablen in die Anwendung eingebunden werden. B. Backing Services müssen direkt im Code der Anwendung fest definiert sein. C. Backing Services sollten ausschließlich in der Produktionsumgebung konfiguriert werden. D. Backing Services müssen im selben Container wie die Anwendung laufen. ANSWER: A Warum ist Port Binding ein essenzieller Bestandteil der 12-Faktoren-Methode? A. Es ermöglicht Anwendungen, direkt über einen Webserver wie Apache oder Nginx bereitgestellt zu werden. B. Es macht Anwendungen unabhängig von spezifischen Ausführungsumgebungen, da sie ihre Dienste über Ports bereitstellen. C. Es ermöglicht die direkte Kommunikation zwischen Anwendungen ohne zusätzliche Konfiguration. D. Es ersetzt die Notwendigkeit von Backing Services, da Dienste über Ports gebunden werden können. ANSWER: B Wie wird ein Backing Service korrekt gemäß der 12-Faktoren-Methode bereitgestellt? A. Der Backing Service wird fest im Anwendungscode integriert. B. Der Backing Service wird über eine Konfigurationsdatei im Container definiert. C. Der Backing Service wird durch eine Umgebungsvariable referenziert, die seine URL oder Zugangsdaten enthält. D. Der Backing Service wird während der Laufzeit der Anwendung manuell gestartet. ANSWER: C Was beschreibt das Pattern "Image Metamorphosis" im Zusammenhang mit Docker? A. Die Nutzung mehrerer Images für verschiedene Umgebungen. B. Die Veränderung eines Docker-Images in unterschiedlichen Umgebungen. C. Die Verwendung von Multi-Stage Builds zur Optimierung von Images. D. Die Bereitstellung eines Images mit vordefinierten Konfigurationen. ANSWER: B Welche der folgenden Maßnahmen hilft, die sogenannte "Image Metamorphosis" zu vermeiden? A. Images für jede Umgebung (z. B. Entwicklung, Test, Produktion) separat erstellen. B. Alle Konfigurationsdaten fest in das Image integrieren. C. Ein einzelnes, unveränderliches Image für alle Umgebungen nutzen und Konfigurationen extern bereitstellen. D. Images direkt in der Zielumgebung erstellen, um sie anzupassen. ANSWER: C Warum ist das Container-Pattern "Image Metamorphosis" problematisch? A. Es führt dazu, dass Images nicht mehr zwischen Umgebungen konsistent genutzt werden können. B. Es reduziert die Flexibilität bei der Konfiguration von Umgebungen. C. Es verhindert, dass Images externe Abhängigkeiten nutzen können. D. Es erhöht die Größe der Images, was zu längeren Build-Zeiten führt. ANSWER: A Welche Aussage beschreibt korrekt das Prinzip von "Dev/Prod Parity" in der 12-Faktoren-Methode? A. Entwicklungs- und Produktionsumgebungen sollten unterschiedlich sein, um Fehler frühzeitig zu identifizieren. B. Entwicklungs- und Produktionsumgebungen sollten so ähnlich wie möglich sein, um unerwartete Fehler zu vermeiden. C. Entwickler sollten nur in der Produktionsumgebung testen, um reale Bedingungen zu simulieren. D. Unterschiede zwischen Entwicklungs- und Produktionsumgebungen fördern die Skalierbarkeit der Anwendung. ANSWER: B Warum sollten Logs gemäß der 12-Faktoren-Methode auf stdout ausgegeben werden? A. Um sicherzustellen, dass sie nur in der Entwicklungsumgebung sichtbar sind. B. Damit Logs einfach von der Ausführungsumgebung erfasst und weitergeleitet werden können. C. Um die Abhängigkeit von externen Logging-Services zu vermeiden. D. Damit Logs direkt in einer Datei gespeichert und später analysiert werden können. ANSWER: B Was ist ein Vorteil der "Dev/Prod Parity" (12 Faktoren)? A. Die Entwicklungsumgebung kann schneller auf andere Hardware migriert werden. B. Änderungen, die in der Entwicklungsumgebung funktionieren, haben eine hohe Wahrscheinlichkeit, auch in der Produktion zu funktionieren. C. Logs müssen in der Produktionsumgebung nicht zentralisiert werden. D. Entwickler können unterschiedliche Framework-Versionen in jeder Umgebung nutzen. ANSWER: B Warum wird in der 12-Faktoren-Methode empfohlen, Logs als strukturierte Ereignisströme auszugeben? A. Um Logs direkt auf einem Server in Log-Dateien zu speichern. B. Damit Logs maschinenlesbar und leicht weiterverarbeitbar sind. C. Um Logs effizienter zwischen verschiedenen Containern zu teilen. D. Damit die Anwendung ohne Log-Management-System betrieben werden kann. ANSWER: B Welche Technik wird für strukturiertes Logging in der 12-Faktoren-Methode empfohlen? A. Die Verwendung vom JSON-Format zur Ausgabe der Logs. B. Die Verwendung vom YAML-Format zur Ausgabe der Logs. C. Die Aggregation von Logs mithilfe von Cron-Jobs. D. Die Ausgabe von Logs ausschließlich in Klartext auf stdout. ANSWER: A Welche der folgenden Aussagen entspricht den Prinzipien der 12-Faktoren-Methode in Bezug auf Logging? A. Logs sollten direkt in Dateien geschrieben werden, um später analysiert zu werden. B. Logs sollten als Datenströme auf stdout ausgegeben werden, um eine zentrale Verarbeitung zu ermöglichen. C. Logs müssen auf die Umgebung der Anwendung abgestimmt werden und in der Cloud gespeichert werden. D. Logs sind in der Testumgebung nicht notwendig, da sie nur in der Produktion relevant sind. ANSWER: B Welche Eigenschaft sollten Prozesse gemäß Faktor 6 (Processes) der 12-Faktoren-Methode aufweisen? A. Prozesse sollten ihren Zustand lokal speichern, um Leistung zu optimieren. B. Prozesse sollten zustandslos (stateless) sein und alle Daten extern speichern. C. Prozesse sollten ihre Konfigurationen direkt im Anwendungscode verwalten. D. Prozesse sollten synchronisiert arbeiten, um die Konsistenz sicherzustellen. ANSWER: B Wie trägt die Skalierung durch Nebenläufigkeit (Faktor 8: Concurrency der 12-Faktoren-Methode) zur Robustheit einer Anwendung bei? A. Indem die Hardware-Anforderungen für die Anwendung reduziert werden. B. Indem zusätzliche Prozessinstanzen gestartet werden, um die Last zu verteilen. C. Indem eine einzelne Prozessinstanz alle Aufgaben übernimmt und dadurch weniger verteilte Komponenten benötigt. D. Indem Prozesse vertikal skaliert werden, um die Rechenleistung zu erhöhen und Netzwerklast zu reduzieren. ANSWER: B Was ist ein Beispiel für die Umsetzung von Nebenläufigkeit (Faktor 8: Concurrency der 12-Faktoren-Methode)? A. Das Hinzufügen von Ressourcen wie RAM zu einer einzelnen Instanz der Anwendung. B. Das Starten zusätzlicher Instanzen eines Prozesses, um Lastspitzen zu bewältigen. C. Das parallele Ausführen von Abhängigkeiten innerhalb eines Containers. D. Das Kombinieren aller Prozesse in einer einzigen ausführbaren Datei. ANSWER: B Warum ist es wichtig, dass Prozesse gemäß Faktor 9 (Disposability der 12-Faktoren-Methode) schnell stoppen können? A. Um sicherzustellen, dass Logs ordnungsgemäß geschrieben werden. B. Um kurze Reaktionszeiten während Updates oder Skalierungen zu ermöglichen. C. Um die lokale Speicherung von Daten zu ermöglichen. D. Um die CPU-Auslastung während der Laufzeit zu reduzieren. ANSWER: B