Banyak orang meminta mekanisme yang aman untuk bertukar file. Hari ini kami dengan bangga mengumumkan modul fileserver open source baru. Sebagai komponen terbaru di ekosistem Psono, modul ini menyelesaikan berbagai masalah:
Di sinilah Psono berperan. Psono dirancang dengan mempertimbangkan semua masalah tersebut dan sangat fleksibel.
Oke, jadi bagaimana tampilan untuk pengguna yang Anda tanyakan. Sederhana.
Saya harap itu cukup sederhana.
Di balik layar, klien melakukan beberapa langkah yang lebih rumit tetapi semuanya tersembunyi dari pengguna:
Dengan mekanisme ini kita dapat menyelesaikan masalah ukuran file apa pun, karena file dibagi menjadi pecahan. Kami dapat mendistribusikan pengunggahan di beberapa server bahkan untuk satu file. Semua file (seperti elemen lain di psono) dienkripsi sebelum meninggalkan klien dan dikirim ke server.
Bagian atas menunjukkan pengaturan yang umum. Server relay (sebuah reverse proxy sederhana) menyajikan beberapa file statis (klien web). Klien web disajikan ke browser, yang kemudian memanggil endpoint API REST pada server. Server menggunakan Database Postgres untuk menyimpan semua data persisten. Klien Web Psono dan Server Psono bisa dianggap stateless, semua data disimpan dalam database Postgres.
Jika Anda ingin menambahkan fileserver, pertama-tama Anda harus membuat konfigurasi shard dan cluster di server, yang kemudian dapat digunakan untuk mengkonfigurasi fileserver yang sebenarnya. Begitu fileserver aktif, ia akan secara otomatis mendaftar dan terus mengumumkan ketersediaannya dalam interval 10 detik. Jika sebuah fileserver mati, server akan mengenalinya dan berhenti mengirim klien ke server yang mati. Begitu kembali aktif, ia akan otomatis terdaftar lagi dan mulai menerima permintaan dari klien. Pada gambar di atas, semua pecahan disimpan dalam penyimpanan lokal dan memiliki server Relay (bisa juga sama seperti untuk server normal, klien web di lingkungan kecil) untuk penghapusan SSL.
Selain penyimpanan lokal, Anda dapat menggunakan berbagai backend penyimpanan dan bahkan mencampurnya.
Saat ini didukung (selain penyimpanan lokal) adalah Amazon S3, GCP Cloud Storage, dan Azure Blob Storage.
Anda dapat menggunakan beberapa fileserver untuk menyelesaikan masalah kinerja karena batasan bandwidth. Anda bisa saja memiliki orang yang bekerja jarak jauh namun hanya koneksi internet yang sangat tipis di kantor Anda. Kasus penggunaan lainnya mungkin, Anda ingin melindungi file lokal dengan lebih baik dan
Pengaturan yang menyelesaikan masalah kinerja dan memberikan isolasi yang lebih baik mungkin terlihat seperti ini:
Pengaturan ini membagikan semua lalu lintas dari shard "eksternal" antara lokasi secara bidirectional, memungkinkan pihak eksternal mengunggah file yang dapat diunduh kemudian oleh karyawan dan sebaliknya.
Shard on-premise di sisi lain tidak pernah disinkronkan ke lokasi jarak jauh dan tetap lebih terlindungi. Karena file dalam shard "eksternal" hanya disinkronkan sekali, kapan pun mereka berubah Anda bisa saja memiliki 100 karyawan mengakses file di shard tersebut tanpa perlu mengunduhnya 100 kali dari lokasi jarak jauh. Atau jika Anda mengunggah file, Anda dapat berbagi dengan 100 pihak eksternal, tanpa perlu mengunggahnya 100 kali.
Keuntungan bandwidth ini juga dapat digunakan untuk menghubungkan lokasi jarak jauh dengan pengaturan seperti ini:
Dalam pengaturan ini setiap lokasi memiliki fileservernya sendiri, dan semua file dibagikan antara lokasi. Penulisan hanya terjadi pada shard tertentu, yang memungkinkan sinkronisasi unidirectional dari setiap shard. Pengaturan ini akan memungkinkan orang di New York untuk mengakses file tanpa penundaan.
Poin besar berikutnya adalah penyeimbangan beban. Semua ini bagus jika Anda hanya memiliki beberapa karyawan yang tidak melebihi batas bandwidth Anda. Jika Anda memiliki 1000 karyawan, semua mengakses fileserver secara teratur, maka ini akan menghasilkan batasan bandwidth untuk satu server. Namun untungnya Psono dapat menangani ini. Berikut dua opsi yang ditawarkan fileserver Psono untuk penyeimbangan beban.
Anda mungkin sudah memiliki penyeimbang beban yang ingin Anda gunakan, maka pengaturan Anda bisa terlihat seperti ini:
Dalam pengaturan ini sebuah loadbalancer digunakan untuk penghapusan SSL. Dua fileserver yang berada di belakang digunakan untuk menangani permintaan yang sebenarnya. Keduanya mengumumkan shard yang sama, jadi mereka perlu menyinkronkan shardnya atau memiliki beberapa penyimpanan bersama. Seseorang bisa menggunakan GlusterFS atau rsync sederhana.
Alternatifnya adalah membiarkan klien menyeimbangkan beban semuanya dan menghemat beberapa pengaturan dan biaya. Pengaturan tanpa adanya penyeimbang beban tambahan bisa terlihat seperti ini.
Semua pengaturan ini bisa ditumpuk, misalnya 3 cluster masing-masing dengan 2 server. Dengan setiap cluster melayani shard yang sama dan memiliki penyimpanan yang disinkronkan (atau berbagi) di bawahnya.
Saya harap saya dapat memberikan Anda gambaran yang baik tentang kemampuan modul fileserver baru dan kuat dari Psono.