Zastanawiam się jak taki serwis jak hejto powinien podejść do kwestii trzymania obrazków userów żeby nie pójść z torbami po miesiącu i mam parę przemyśleń, ale chciałbym posłuchać innych #programista30k jak by to zrobili.
Jedna z opcji mikhail-bialkov-style czyli serwerownia i dużo dysków. Niskie HA, duży upfront cost, potrzeba zatrudnić admina do utrzymania i opłacić prąd/najem, ale za to małe koszty trzymania i serwowania contentu.
Opcja 2, czyli S3. Tak jak jest to zrobione teraz ale z dodatkowym cechowaniem (teraz linki do obrazków wyglądają jakby leciały bezpośrednio do S3 bez cloudfronta i nie przez cloudflare, więc egress zje w tym miesiącu wszystkie rogale). Niski upfront, ale wysokie koszty miesięczne trzymania i serowowania danych (z tym drugim może pomóc wstawienie cloudfronta i cloudflare, pierwszy ogranicza koszty zapytań do s3 i egressu, drugi jeszcze bardziej ogranicza platny egress i ilosc requestow, latencja nie ma takiego znaczenia więc dodatkowy hop nie zaboli).
Opcja 3, alternatywy dla S3, np R2. Wydają się być lepsze kosztowo tak na pierwszy rzut oka, szczególnie że R2 ma darmowy egress (ale za to tylko jeden tier storageu), więc to czy by się to opłacało bardziej niż Opcja 2 zależy od tego jak często starsze obrazki były by wczytywane, bo cold storage tańszy na S3.
Hybryda R2 +S3 z ręcznym tieringiem danych z R2 na Glaciera IR/GCS Archive Storage, niższe koszty, więcej roboty.
Może pracował ktoś kiedyś nad czymś takim albo zna kogoś kto pracował ( ͡° ͜ʖ ͡°) I wie jakie są sprawdzone sposoby na robienie tego w dużej skali? Jakieś inne usługi albo inne pomysły, może jakiś fajny artykuł na ten temat ktoś zna?
#programowanie #programista15k
Jason_Stafford

@MatXXX nic nie rozumiem co do mnie mówisz, ale myślę że to ma sens ( ͡° ͜ʖ ͡°)

ujdzie

@MatXXX ja bym w ogóle zaczął od optymalizacji.

  1. rozdzielczości - chyba nie są tworzone miniatury tylko idą oryginalne wymiary

  2. formatów - sporo z tego co widzę to pełnokolorowe png, które w webp ważyłyby 1/5 oryginału

MatXXX

@ujdzie celowo nie poruszalem tego tematu, żeby skupic sie na storage'u, ale zgadzam sie w pełni. Widzę że kosmonauta w goracych ma 1.8MB, a po konwersji do webp ~1/3 tego i nie widzę na oko spadku jakosci, więc niezły zysk.

ujdzie

Widzę że kosmonauta w goracych ma 1.8MB


@MatXXX Bogactwo część główna...

BrodatyChleb

@MatXXX ciekawy temat, nigdy sie nie zaglebialem w to, bo to nie moja rola. Jeżeli ma ktos jakies zródla do poczytania to chetnie coś przygarne ( ͡° ͜ʖ ͡°)

oiron666

@MatXXX może niech bot postuje na wykopie i hostuje z wykopu

axo

Pracowałem przy czymś podobnym skalą którą mam nadzieje, że hejto osiągnie i rozwiazywaliśmy to tam poprzez kilka bucketów na GCP z różnymi typami - cache był pod tierem instant access, a rzeczy które były rzadko requestowane w cold storage (różnica w kosztach jest kolosalna). Buckety były dalej dystrybuoowane jako różne pseudo "CDNy", ale o tym już decydował gateway. W tle był proces który raz na pare dni przenosił dane z instant do cold.


Rozwiązanie z cloudflarem jest ok (ba, nawet we free tierze dostarczają ci CDN), o ile nagle nie zrobi ci cache'u treści niedozwolonej. Wtedy pomimo tego, że usuniesz go z serwera to dalej cache go będzie wyświetlał dopóki nie zrobisz hard resetu w panelu CL

MatXXX

@axo dzieki o treściach niedozwolonych nie pomyślałem, ale z tego co widzę to CF ma API że szczordym rate limitem, więc dało by się to zautomatyzować.

badfunkydog

Finansowo to chyba najlepiej sprzedać się Orlenowi, a problem dać do rozwiązania jakiemuś praktykantowi.


Cyk, pora na CSa.

axo

@MatXXX Pytanie czy to API zezwala na usuniecie cache danego zasobu czy robi hard reset calosci i od nowa zbiera cache. Jak o tym pomyślałem to jest temat rzeka by mieć coś dobrego za małą kasę. Chyba, że robimy ekstremalnie już to wtedy może obrazki byłyby kompresowane maksymalnie i front pobierałby i odkompresowywał? Albo pliki trzymane na IPFSsie gdzie część node'ów stałoby u jakichś dobrodusznych userów hejto, mogli by za to dostać rangę jakąś, bo to można nawet u siebie na kompie odpalić

MatXXX

@axo pozwala na invalidację konkretnego urla, do 1k linków na minutę we free tierze, czyli idealny do tego use case'u.


Kompresja już działa dokladnie tak, png albo jpg się to nazywa ( ͡~ ͜ʖ ͡°) i pewnie ciężko było by wiecej ugrać bez batchowania obrazków do kompresji (no, chyba że wspomniany webp, ale idea ta sama)


Pomysł z IPFS ciekawy, chociaż równie partyzancki co hosting przez wykop

globalbus

@MatXXX obrazki można sobie w tle kompresować na nieco mniejsze, na przykład w nocy (ja tak robię do swoich bieda zastosowań). Wada, że zmienia się suma kontrolna i Etag nie będzie taki sam.

PNG nie ma złych kompresji dla grafik, ale nie na defaultowych heurystykach.

tatarysh

@MatXXX cloudinary polecam, ja tego użyłem, chwałę sobie - ma również transformację on the fly

Zaloguj się aby komentować