Ayakaleaf Pro mendukung penskalaan horizontal. Kami telah menguji dan memverifikasi bahwa Ayakaleaf Pro berjalan dengan benar dengan beberapa replika.
Mulai dari Server CE/Server Pro
5.0.3, variabel lingkungan telah diganti namanya dari SHARELATEX_* menjadi OVERLEAF_*.Jika Anda menggunakan versi 4.x (atau yang lebih lama), pastikan variabel diberi prefiks yang sesuai (misalnya SHARELATEX_SITE_URL alih-alih OVERLEAF_SITE_URL)Persyaratan

Penyimpanan data eksternal terpusat
Penyimpanan data di Server Pro dapat dibagi menjadi empat penyimpanan data:-
MongoDB
- Sebagian besar data disimpan secara persisten di MongoDB.
- Kami mendukung instans lokal maupun instans eksternal, seperti MongoDB Atlas (layanan MongoDB yang dikelola sepenuhnya dan berjalan di dalam infrastruktur AWS).
-
Redis
- Redis menyimpan data sementara, seperti pembaruan dokumen yang tertunda sebelum di-flush ke MongoDB.
- Redis digunakan untuk mengomunikasikan pembaruan dokumen antar layanan yang berbeda dan memberi tahu editor tentang perubahan status dalam suatu proyek.
- Redis digunakan untuk menyimpan sesi pengguna.
- Kami mendukung instans lokal maupun instans eksternal.
-
File proyek dan file History
- File proyek yang tidak dapat diedit disimpan di luar MongoDB. Sistem riwayat proyek yang baru (Server Pro 3.5 dan seterusnya) juga menyimpan riwayat di luar MongoDB.
- Untuk instans tunggal yang kecil, kami mendukung sistem file lokal (yang dapat didukung oleh SSD lokal, NFS, atau EBS) maupun sistem penyimpanan data yang kompatibel dengan S3.
-
Untuk penskalaan horizontal, kami hanya mendukung sistem penyimpanan data yang kompatibel dengan S3.
-
File sementara (ephemeral)
- Kompilasi LaTeX perlu berjalan pada disk lokal yang cepat untuk kinerja optimal. Output kompilasi tidak perlu disimpan secara persisten atau dicadangkan.
- Buffering unggahan file baru dan pembuatan file zip proyek juga mendapat manfaat dari penggunaan disk lokal.
Kami sangat menyarankan penggunaan disk lokal. Menggunakan jenis disk jaringan apa pun (seperti NFS atau EBS) dapat mengakibatkan error kompilasi yang tidak terduga dan masalah kinerja lainnya.
Git-bridge
Git-bridge tersedia di Server Pro mulai dari versi 4.0.1.
- instans MongoDB terpusat yang dapat diakses dari semua instans Server Pro
- instans Redis terpusat yang dapat diakses dari semua instans Server Pro
- backend penyimpanan terpusat yang kompatibel dengan S3 untuk file proyek dan file riwayat
- disk lokal di setiap instans untuk file sementara
- disk lokal di instans yang meng-host kontainer git-bridge untuk data git-bridge
Persyaratan load balancer
-
Routing persisten, misalnya menggunakan cookie
Persyaratan ini berasal dari komponen-komponen berikut:
- Kemampuan penyuntingan real-time di Server Pro menggunakan WebSockets dengan fallback ke XHR polling. Setiap sesi penyuntingan memiliki state lokal di sisi server dan permintaan dari suatu sesi penyuntingan harus selalu dirutekan ke instans Server Pro yang sama. Fitur kolaborasi menggunakan Redis Pub/Sub untuk berbagi pembaruan antar beberapa instans Server Pro.
- Kompilasi LaTeX menyimpan output dan cache kompilasi secara lokal untuk kinerja yang optimal. Setelah mengirim permintaan kompilasi ke satu instans Server Pro, permintaan unduhan PDF/log berikutnya harus dirutekan ke instans Server Pro yang sama.
- Batas waktu permintaan yang panjang untuk mendukung kompilasi dokumen LaTeX yang besar
- Dukungan WebSocket untuk kinerja optimal
- Ukuran payload POST sebesar 50MB
-
Batas waktu keep-alive harus lebih rendah dari batas waktu keep-alive Server Pro
Batas waktu keep-alive di Server Pro dapat dikonfigurasi menggunakan variabel lingkungan
NGINX_KEEPALIVE_TIMEOUT. Nilai default-nya adalah 65 detik. Dengan nilai default, batas waktu keep-alive 60 detik pada load balancer akan berfungsi. DenganNGINX_KEEPALIVE_TIMEOUT=120, load balancer dapat menggunakan 115 detik. -
IP klien
Atur header permintaan
X-Forwarded-Forke IP klien. -
Saat mengakhiri SSL (SSL termination)
Load balancer perlu menambahkan header permintaan
X-Forwarded-Proto: https.
Contoh konfigurasi HAProxy
Contoh konfigurasi HAProxy
Konfigurasi Server Pro
Secret Instans-instans Server Pro perlu menggunakan secret bersama yang sama:WEB_API_PASSWORD(autentikasi web api)STAGING_PASSWORDdanV1_HISTORY_PASSWORDdengan nilai yang sama (autentikasi history)CRYPTO_RANDOM(untuk cookie sesi)OT_JWT_AUTH_KEY(autentikasi history)
/dev/urandom (256 bit acak).
OVERLEAF_MONGO_URL (SHARELATEX_MONGO_URL untuk versi 4.x dan yang lebih lama) ke instans MongoDB terpusat.
Redis
Arahkan OVERLEAF_REDIS_HOST (SHARELATEX_REDIS_HOST untuk versi 4.x dan yang lebih lama) dan REDIS_HOST ke instans Redis terpusat.
Penyimpanan yang kompatibel dengan S3 untuk file proyek dan file riwayat
Silakan lihat dokumentasi tentang penyimpanan yang kompatibel dengan S3 untuk detailnya.
File sementara (ephemeral)
Bind-mount default dari SSD lokal ke /var/lib/overleaf (/var/lib/sharelatex untuk versi 4.x dan yang lebih lama) sudah cukup. Pastikan untuk mengarahkan SANDBOXED_COMPILES_HOST_DIR ke titik mount di host.
Kami sangat menyarankan penggunaan disk lokal. Menggunakan jenis disk jaringan apa pun (seperti NFS atau EBS) dapat mengakibatkan error kompilasi yang tidak terduga dan masalah kinerja lainnya.
- Atur
OVERLEAF_BEHIND_PROXY=true(SHARELATEX_BEHIND_PROXYuntuk versi4.xdan yang lebih lama) untuk mendapatkan IP klien yang akurat. - Atur
TRUSTED_PROXY_IPSke IP load balancer (beberapa CIDR dapat ditentukan, dipisahkan dengan koma).
Git-bridge tersedia di Server Pro mulai dari versi 4.0.1.
-
Atur
GIT_BRIDGE_ENABLEDke'true' -
Atur
GIT_BRIDGE_HOSTke<git-bridge container name>, misalnyagit-bridge -
Atur
GIT_BRIDGE_PORTke8000 -
Atur
V1_HISTORY_URLkehttp://<server-pro sibling container name>:3100/api. Catatan: Ini hanya diperlukan pada kontainer pendamping untuk kontainer git-bridge. Instans lainnya dapat menggunakan URL localhost, yang merupakan nilai default.
- Atur
GIT_BRIDGE_API_BASE_URLkehttp://<server-pro sibling container name>/api/v0, misalnyahttp://server-pro-ha-1/api/v0 - Atur
GIT_BRIDGE_OAUTH2_SERVERkehttp://<server-pro sibling container name>, misalnyahttp://server-pro-ha-1 - Atur
GIT_BRIDGE_POSTBACK_BASE_URLkehttp://<git-bridge container name>:8000, misalnyahttp://git-bridge:8000 - Atur
GIT_BRIDGE_ROOT_DIRke disk data git-bridge yang di-bind-mount, misalnya/data/git-bridge
Contoh konfigurasi docker-compose.yml
Contoh konfigurasi docker-compose.yml
Konfigurasi berikut menunjukkan penyiapan yang mandiri (self-contained). Agar demo berfungsi, Anda perlu menyediakan kunci/sertifikat SSL yang valid dan menyesuaikan
OVERLEAF_SITE_URL (SHARELATEX_SITE_URL untuk versi 4.x dan yang lebih lama). Untuk penyiapan sungguhan, Anda harus mengganti secret contoh dengan secret yang sebenarnya seperti yang dicatat di dalam konfigurasi. Untuk penyiapan sungguhan, Anda perlu memindahkan setiap kontainer ke node khusus dan menyesuaikan alamat IP dengan penyiapan jaringan lokal Anda.Perangkat keras
Kami menyarankan penggunaan spesifikasi perangkat keras yang sama untuk semua instans Server Pro yang terlibat dalam penskalaan horizontal. Rekomendasi umum tentang spesifikasi perangkat keras untuk instans Server Pro tetap berlaku.Meningkatkan Server Pro
Sebagai bagian dari proses peningkatan, Server Pro secara otomatis menjalankan migrasi database. Migrasi ini tidak dirancang untuk dijalankan dari beberapa instans secara paralel. Migrasi harus selesai sebelum aplikasi web yang sebenarnya dimulai. Anda dapat memeriksa log untuk entriFinished migrations atau menunggu hingga aplikasi menerima lalu lintas.
Prosedur peningkatan terlihat seperti ini:
- Jadwalkan jendela pemeliharaan
- Hentikan semua instans Server Pro
- Buat cadangan yang konsisten seperti yang dijelaskan dalam dokumentasi
- Jalankan satu instans Server Pro dengan versi baru
- Validasi bahwa instans baru berfungsi seperti yang diharapkan
- Jalankan instans-instans lainnya dengan versi baru

