| Dienst | Service-Art |
|---|---|
| Datenbank | |
| Textverarbeitung im Browser | |
| DHCP-Server | |
| Proxy-Service | |
| E-Mail-Applikation |
| Beschreibung | Einzelpreis |
|---|---|
| Bereitstellung SQL-Datenbank je Monat | 12,00 € |
| Datensicherung je Monat | 9,00 € |
| Storage (GB je Monat) | 3,00 € |
| Datenabruf (MB) | 0,01 € |
Ihr Kunde rechnet aktuell mit einer Datenmenge von 0,8 TiB. Üblicherweise werden im Monat 2000 Abfragen durchgeführt, die durchschnittlich jeweils 200 kiB Daten übertragen.
Berechnen Sie die zu erwartenden Kosten für drei Jahre für das Datenbanksystem. (4 Punkte)
5 PunkteDie Daten zur Verwaltung der Lehrgänge und Teilnehmer werden aktuell in einer relationalen Datenbank gespeichert. Ihnen liegt hierzu folgendes Tabellenmodell vor.
b) In Zukunft sollen auch Informationen zu den Dozenten in der Datenbank gespeichert werden.
Erweitern Sie das bestehende Tabellenmodell in der dritten Normalform. Kennzeichnen Sie die Primär- schlüssel mit PK und Fremdschlüssel mit FK.
(6 Punkte)
Nennen Sie neben der zentralen Verteilung von Betriebssystemupdates drei weitere Funktionen, die
zentral administriert werden sollten. (3 Punkte)
Nennen Sie drei weitere technische oder organisatorische Maßnahmen, die Sie an den Clients implementieren können, und begründen Sie Ihre Wahl.
(6 Punkte)
db) Sprechen Sie eine begründete Empfehlung für eine Art des Hypervisors aus. (2 Punkte)Sie prüfen den Einsatz und die Nutzung von Containern beim Kunden.
a) Hierfür finden Sie beim Cloud-Anbieter folgenden Beschreibungstext:
Containerization is a way to package software applications and their dependencies so that they can run consistently and reliably across different computing environments. It offers a flexible and efficient way to package, deploy, and manage applications. It empowers developers and operations teams to build, ship and scale applications with speed, consistency, and reliability.
This technology provides various key features and advantages, like
Isolation
Containers provide a high level of isolation between applications and the underlying host system.
Each container has its own file system, processes, and network stack, which prevents conflicts and
ensures that applications run independently without interfering with each other. This isolation also
enhances security by limiting the impact of potential vulnerabilities.
Portability
Containers encapsulate all the dependencies and configuration required for an application to run.
This means you can create a container image on one machine and run it on another without worrying
about compatibility issues. It promotes consistency across different environments, such as development, testing, and production, making it easier to move applications between them.
Microservice Architecture
Containers are well-suited for building applications based on a microservices architecture. Each
microservice can be packaged as a separate container, enabling independent development, deployment, and scaling. This modular approach improves flexibility, maintainability, and fault tolerance of
applications.
Scalability
Container orchestration platforms, such as Kubernetes, provide powerful scaling capabilities. You can
easily scale up or down the number of containers running an application based on demand, ensuring
optimal resource allocation and efficient utilization of computing resources.
Nennen Sie den Socket, zu dem der Client die Verbindung aufbaut, wenn er auf Container A zugreifen
möchte, und begründen Sie Ihre Entscheidung. (3 Punkte)
c) Die Administration von Containern wird häufig über das Kommandozeilentool docker vorgenommen. Der Container soll über den Port 8001 von außen zugänglich sein, der Service selbst hört auf den Port 3306. Der Container wird an ein neues Netzwerk „mysql-network“ angebunden und mit dem image „mysql“ gebaut.
Syntax des docker run-Befehls:
| Option | Beschreibung |
|---|---|
| -- cpus | Number of CPUs |
| -- detach, -d | Run container in background and print container ID |
| -- ip | IPv4 address (e.g., 172.30.100.104) |
| -- name | Assign a name to the container |
| -- network | Connect a container to a network |
| -- publish [host port]:[container port] | Publish a container's port(s) to the host |
Erstellen Sie den Befehl zum Starten des Containers „mysqldb“. (4 Punkte)
Erstellen Sie für diesen Zweck den Pseudocode für ein geeignetes Skript. (4 8unkte)
db) Begründen Sie, ob Ihr Backup-Skript nach der Sicherungsart differentiell oder inkrementell arbeitet (2 Punkte)