Människor efterfrågade en säker mekanism för att utbyta filer. Idag är vi stolta att kunna presentera den nya öppna källkodsmodulen för filserver. Som den senaste komponenten i Psono-ekosystemet löser den flera problem:
Och där kommer Psono in i bilden. Psono designades med alla dessa problem i åtanke och är extremt flexibel.
Ok, så hur ser det ut för användaren undrar du. Enkelt.
Så enkelt är det hoppas jag.
Under huven gör klienten några mer komplexa steg, men alla är dolda för användaren:
Med denna mekanism kan vi lösa alla filstorleksproblem, eftersom filer delas upp i bitar. Vi kan fördela uppladdningar över flera servrar även för en enda fil. Alla filer är (som allt annat på psono) krypterade innan de lämnar klienten och skickas till servern.
Den övre delen visar en typisk setup. En reläserver (en enkel omvänd proxy) betjänar några statiska filer (webbklienten). Webbklienten betjänas till webbläsaren, som sedan kallar REST API-endpunkter på servern. Servern använder en Postgres-databas för att lagra all persistent data. Psono webbklient och Psono-server kan betraktas som tillståndslösa, all data lagras i Postgres-databasen.
Om du vill ansluta en filserver nu måste du först skapa en shard- och klusterkonfiguration på servern, som du sedan kan använda för att konfigurera den faktiska filservern. När filservern startar upp registrerar den sig automatiskt och fortsätter att meddela sin tillgänglighet i 10 sekunders intervaller. Skulle en filserver dö, kommer servern att känna igen detta och sluta skicka klienter till den döda servern. När den kommer tillbaka registrerar den sig automatiskt igen och börjar ta emot förfrågningar från klienter. I bilden ovan, lagrar vi alla bitar i lokal lagring och har en reläserver (kan vara samma som för den normala servern, webbklienten i små miljöer) för SSL-offload.
Förutom lokal lagring kan du använda olika lagringsbackend och till och med blanda dem.
För närvarande stöds (förutom lokal lagring) Amazon S3, GCP Cloud Storage och Azure Blob Storage.
Du kan använda flera filserverar för att lösa till exempel prestandaproblem på grund av bandbreddsbegränsningar. Du kanske har personer som arbetar på distans men bara en mycket tunn internetanslutning på ditt kontor. Ett annat användningsfall kan vara att du vill skydda lokala filer ännu bättre och
En setup som löser prestandaproblemet och ger dig en bättre isolering kan se ut så här:
Denna setup delar all trafik från "extern" shard mellan platser tvåvägs, vilket tillåter externa att ladda upp filer som sedan kan laddas ner av anställda och vice versa.
Den lokala skärvan å andra sidan synkroniseras aldrig till den avlägsna platsen och förblir bättre skyddad. Eftersom filer i den "externa" skärvan bara synkroniseras en gång, när de ändras kan du ha 100 anställda som får tillgång till filen från denna skärva utan att behöva ladda ner den 100 gånger från den avlägsna platsen. Eller om du laddar upp en fil kan du dela den med 100 externa personer utan att behöva ladda upp den 100 gånger.
Bandbreddsövertaget kan också användas för att koppla samman avlägsna platser med en setup som denna:
I denna setup har varje plats en egen filserver och alla filer delas mellan platserna. Skrivningar görs endast till en specifik shard, vilket tillåter en enkelriktad synkronisering av varje shard. Denna setup skulle låta personer i New York komma åt filer utan någon fördröjning.
Nästa stora punkt är lastbalansering. Allt detta är bra om du bara har några anställda som inte mättar din bandbredd. Om du har 1000 anställda, alla som får tillgång till filservern regelbundet, då kommer detta att orsaka bandbreddsbegränsningar för en enda server. Men lyckligtvis kan Psono hantera detta. Här är två alternativ som erbjuds av Psono's filserver för lastbalansering.
Du kanske redan har en lastbalanserare som du vill använda, då kan din setup se ut så här:
I denna setup används en lastbalanserare för SSL-offload. Två filserverar som sitter bakom används för att hantera de faktiska förfrågningarna. Båda meddelar samma shard, så de behöver antingen synkronisera sharden eller ha någon form av delat lagringsutrymme. Man kan använda GlusterFS eller enkel rsync.
Alternativet skulle vara att tillåta klienten att lastbalansera allt och spara lite setup och kostnader. En setup utan en extra lastbalanserare kan se ut så här.
Alla dessa setuper kan staplas, t.ex. 3 kluster med 2 servrar vardera. Varje kluster betjänar samma shard och har en synkroniserad (eller delad) lagring under.
Jag hoppas att jag kunde ge dig en bra uppfattning om kapaciteterna hos Psono's nya och kraftfulla filservermodul.