Obrázky v databázi rubrika: Návrh

8 Občan
položil/-a 25.3.2015

Případ: vyšší návštěvnost, potřebuji škálovat, použít, co nejméně VM strojů, stovky souborů, nepoužít Amazon S3. Takže řeším teoretickou možnost dávat soubory do PG databáze, ale nemám z toho dobrý pocit. Máte někdo reálnou zkušenost, co to může přinést za komplikace. Ano, je zde možnost přidat ještě další databázoví stroj specializovaný na soubory, ovšem to bych rád dělal až si budu plně jist, že to potřebuji.

Komentáře

  • Anonym : Obrazky v DB je strasna otrava. Co takto zverit tuto ulohu cloud providerovi - cloudinary. 25.3.2015
  • Anonym : binární data v databázi je tak rok 2000, ne? rozhodně radím subdoménu, nasadit CDN cache a případně více VM + rsync, CloudFlare je zdarma, a i blbý round robin ti pomůže 8.10.2015
odkaz
Anonym
odpověděl/-a 27.3.2015

Obrázky, jakékoliv soubory, ukládám do MongoDB (GridFS), vedle které si udržuji collection s meta daty o souboru, včetně návštěvnosti, tagy, přístupovými právy a v podstatě další aplikační data a podobně.

Servery mám 3 a tvoří mi MongoDB ReplicaSet. Všechny data jsou paralelně ukládány na všechny servery nezávisle. Na každém serveru je levný SSD disk. Strach o data nemám. Až disk odejde, vypnu server a vyměním ho. Běží mi další servery a až opravený server nahodím, automaticky se data bez zásahu zpět zreplikují (teda jen musím Mongu říct, kam se má připojit...).

A aby to bylo opravdu hezké, pak jde server postavit fyzicky úplně jinam a tak se bránit i potopám. A vrcholem pak je, že na nějakém replikačním serveru můžu říct, že mi poběží např s 24 hodinovým zpožděním a to mi umožňuje obnovovat smazaná nebo modifikovaná data.

A to vše bez jakéhokoliv programování. Jen se to jednou nastaví a jede to... :)

Z pohledu aplikace je vše triviální:
client = MongoReplicaSet("s1:27009,s2:27009,s3:27009")
client["db"]["collection"].insert(file)

Klient ví o všech serverech a driver se stará o fyzická data.
Aplikaci ani nemusím říct, že jsem shodil nějaký server. Dokud mi aspoň 1 běží, je vše OK.

Dříve jsem tohle měl na FTP (vsFTP). Dneska bych se k tomu už nevrátil.

Pro zobrazení všech 22 odpovědí se prosím přihlaste:

Rychlé přihlášení přes sociální sítě:

Nebo se přihlaste jménem a heslem:

Zadejte prosím svou e-mailovou adresu.
Zadejte své heslo.