Ludzie pytali o bezpieczny mechanizm wymiany plików. Dziś z dumą ogłaszamy nowy moduł serwera plików open source. Jako najnowszy komponent w ekosystemie Psono rozwiązuje wiele problemów:
I tu wkracza Psono. Psono zostało zaprojektowane z myślą o wszystkich tych problemach i jest niezwykle elastyczne.
Ok, więc jak to wygląda dla użytkownika, pytasz. Prosto.
To na tyle proste, mam nadzieję.
Pod maską klient wykonuje kilka bardziej skomplikowanych kroków, ale wszystkie są ukryte przed użytkownikiem:
Dzięki temu mechanizmowi możemy rozwiązać każdy problem z rozmiarem pliku, ponieważ pliki są dzielone na fragmenty. Możemy rozproszyć przesyłanie plików na serwery nawet dla jednego pliku. Wszystkie pliki (tak jak wszystko inne w Psono) są szyfrowane przed opuszczeniem klienta i przesłaniem na serwer.
Górna część pokazuje typową konfigurację. Serwer przekierowujący (proste odwrotne proxy) obsługuje niektóre statyczne pliki (klienta internetowego). Klient internetowy jest przekazywany do przeglądarki, która następnie wywołuje punkty końcowe REST API na serwerze. Serwer używa bazy danych Postgres do przechowywania wszystkich trwałych danych. Klient internetowy Psono i serwer Psono można uznać za bezstanowe, wszystkie dane są przechowywane w bazie danych Postgres.
Jeśli teraz chcesz dołączyć serwer plików, musisz najpierw utworzyć konfigurację fragmentu i klastra na serwerze, którą następnie możesz użyć do skonfigurowania rzeczywistego serwera plików. Po uruchomieniu serwera plików automatycznie zarejestruje się i będzie ogłaszał swoją dostępność co 10 sekund. Jeśli serwer plików umrze, serwer to rozpozna i przestanie wysyłać klientów na martwy serwer. Po ponownym włączeniu automatycznie zarejestruje się ponownie i rozpocznie przyjmowanie żądań od klientów. Na powyższym obrazku przechowujemy wszystkie fragmenty w pamięci lokalnej i mamy serwer przekazujący (może to być ten sam, co dla normalnego serwera, klienta internetowego w małych środowiskach) do rozładowania SSL.
Oprócz pamięci lokalnej można używać różnych backendów magazynowych, a nawet je mieszać.
Obecnie obsługiwane (oprócz pamięci lokalnej) są Amazon S3, GCP Cloud Storage i Azure Blob Storage.
Można użyć kilku serwerów plików, aby rozwiązać na przykład problemy z wydajnością z powodu ograniczenia przepustowości. Możesz mieć osoby pracujące zdalnie, ale tylko bardzo cienkie połączenie internetowe w swoim biurze. Innym przypadkiem użycia może być to, że chcesz lepiej chronić lokalne pliki i
Konfiguracja, która rozwiązuje problem wydajności i zapewnia lepszą izolację, może wyglądać następująco:
Ta konfiguracja dzieli cały ruch „zewnętrznego” fragmentu między lokalizacje dwukierunkowo, umożliwiając zewnętrznym przesyłanie plików, które następnie mogą być pobierane przez pracowników i odwrotnie.
Z drugiej strony fragment lokalny nie jest synchronizowany ze zdalną lokalizacją i pozostaje lepiej chroniony. Ponieważ pliki w „zewnętrznym” fragmencie są synchronizowane tylko raz, gdy się zmieniają, można sprawić, że 100 pracowników uzyska dostęp do pliku z tego fragmentu bez konieczności pobierania go 100 razy ze zdalnej lokalizacji. Albo jeśli przesyłasz plik, możesz go udostępnić 100 zewnętrznym osobom, bez potrzeby przesyłania go 100 razy.
Zaletę przepustowości można również wykorzystać do połączenia zdalnych lokalizacji za pomocą podobnej konfiguracji:
W tej konfiguracji każda lokalizacja ma własny serwer plików, a wszystkie pliki są udostępniane między lokalizacjami. Zapis następuje tylko na określony fragment, co pozwala na jednokierunkową synchronizację każdego fragmentu. Ta konfiguracja pozwoliłaby ludziom w Nowym Jorku uzyskać dostęp do plików bez żadnych opóźnień.
Kolejnym dużym punktem jest równoważenie obciążenia. Wszystko to jest miłe, jeśli masz tylko kilku pracowników, którzy nie wyczerpują twojej przepustowości. Jeśli masz 1000 pracowników, wszyscy regularnie uzyskujących dostęp do serwera plików, to spowoduje to ograniczenia przepustowości dla pojedynczego serwera. Na szczęście Psono może sobie z tym poradzić. Oto dwie opcje oferowane przez serwer plików Psono do równoważenia obciążenia.
Możesz już mieć równoważnik obciążenia, którego chcesz użyć, więc twoja konfiguracja może wyglądać następująco:
W tej konfiguracji równoważnik obciążenia jest używany do rozładowania SSL. Dwa serwery plików umieszczone za równoważnikiem są używane do obsługi rzeczywistych żądań. Oba ogłaszają ten sam fragment, więc muszą synchronizować fragment lub mieć jakieś udostępnione miejsce magazynowe. Można użyć GlusterFS lub prostego rsync.
Alternatywą byłoby umożliwienie klientowi równoważenia obciążenia wszystkiego i zaoszczędzenie na konfiguracji i kosztach. Konfiguracja bez dodatkowego równoważnika obciążenia mogłaby wyglądać następująco.
Wszystkie te konfiguracje można układać w stosy, np. 3 klastry po 2 serwery każdy. Każdy klaster obsługuje ten sam fragment i ma zsynchronizowaną (lub udostępnioną) pamięć poniżej,
Mam nadzieję, że mogłem dać Ci dobrze wrażenie o możliwościach nowego i potężnego modułu serwera plików Psono.