Konzept für Ablage der Anhänge auf dem Dateisystem
User Story
Konzept für
- Als PO
- möchte ich dass für die Speicherung von Anhängen die technisch beste Lösung zum Einsatz kommt
- um eine skalierbare, schnellstmögliche und zuverlässige Speicherung der Anhänge zu ermöglichen.
Warum?
Anhänge spielen bei FIT-Connect eine große Rolle und es ist davon auszugehen, dass die Anforderungen an die zu unterstützende Dateigrößen kontinuierlich steigen werden. In dieser Story soll ein Konzept erstellt werden, welches langfristig eine gute und stabile Lösung für die aktuellen und kommenden Anforderungen darstellt. Maximale Up-/Downloadgeschwindigkeit ist anzustreben und sämtliche Löschszenarien umfangreich zu testen.
Relevante Links und Bemerkungen
Aktuell
-- Datei erstellen:
-- cd /var/lib/mysql-files/
-- fallocate -l 500M test500.bin
-- 1 GibiByte (2^30 bytes)
SET GLOBAL max_allowed_packet = 1073741824;
-- Tabelle bauen
Create table if not exists Foobar
(
id bigint primary key auto_increment,
data longblob
);
-- Einfügen (dauer: 7-8s)
insert into Foobar(data)
values (load_file('/var/lib/mysql-files/test500.bin'));
-- Länge prüfen
SELECT OCTET_LENGTH(data) as size
from Foobar;
- 7 Sekunden zum Speichern einer lokal vorliegenden Datei (500MB) ist zu lang.
Akzeptanzkriterien
-
Konzept für die Umgestaltung des Umgangs mit den Anhängen ist erstellt und abgestimmt. Eine zugehörige Story ist dazu erstellt -
Im Konzept wurde die Nutzung einer s3 API und einem externen gemounteten Volumes (auf allen Umgebungen) bewertet und beschrieben -
Der Ansatz ist mit Team Infrastruktur abgestimmt -
Der Ansatz ist mit ITN abgestimmt (bietet ITN vielleicht direkt einen S3 Service an)? -
Löschszenarien (Konsistenz mit DB) sind in dem Konzept zusammengestellt -
zu prüfen: Upload wird nicht In-Memory gehalten und dann in einem Rutsch gespeichert sondern ins Dateisystem gestreamt
Durchführungsplan (von Entwickler:in bei Umsetzungsplanung auszufüllen)
-
... -
... -
... -
Definition of Done wurde geprüft
Edited by Wojciech Gdaniec