Berikut adalah daftar pengaturan server yang umum digunakan, dengan deskripsi singkat masing-masing, termasuk pro dan kontra. Ingatlah bahwa semua konsep yang dibahas di sini dapat digunakan dalam berbagai kombinasi satu sama lain, dan bahwa setiap lingkungan memiliki persyaratan yang berbeda, sehingga tidak ada konfigurasi tunggal yang benar.
1. Semuanya di satu Sever
Seluruh lingkungan berada pada satu server. Untuk aplikasi web biasa, itu akan termasuk server web, server aplikasi, dan server database. Variasi umum dari pengaturan ini adalah tumpukan LAMP, yang merupakan singkatan dari Linux, Apache, MySQL, dan PHP, pada satu server.
Use Case : Baik untuk mengatur aplikasi dengan cepat, karena ini adalah pengaturan paling sederhana yang mungkin, tetapi menawarkan sedikit cara skalabilitas dan isolasi komponen.
Pro :
- Sederhana
Kekurangan :
- Aplikasi dan basis data
berpendapat untuk sumber daya server yang sama (CPU, Memori, I / O, dll.)
Yang, selain dari kemungkinan kinerja yang buruk, dapat menyulitkan untuk
menentukan sumber (aplikasi atau database) dari kinerja yang buruk
- Tidak mudah diskalakan secara horizontal
2. Pisahkan Server Database
Sistem manajemen basis data (DBMS) dapat
dipisahkan dari lingkungan lainnya untuk menghilangkan pertentangan sumber daya
antara aplikasi dan basis data, dan untuk meningkatkan keamanan dengan
menghapus basis data dari DMZ, atau internet publik.
Use Case :
Baik untuk mengatur aplikasi dengan cepat, tetapi menjaga aplikasi dan database
dari memperebutkan sumber daya sistem yang sama.
Pro :
- Tingkatan aplikasi dan basis
data tidak bersaing untuk sumber daya server yang sama (CPU, Memori, I /
O, dll.)
- Anda dapat secara vertikal
skala masing-masing tingkat secara terpisah, dengan menambahkan lebih
banyak sumber daya ke server mana saja yang membutuhkan peningkatan
kapasitas
- Bergantung pada pengaturan
Anda, ini dapat meningkatkan keamanan dengan menghapus basis data Anda
dari DMZ
Kekurangan :
- Setup sedikit lebih kompleks daripada
server tunggal
- Masalah kinerja dapat muncul jika koneksi jaringan antara dua server adalah latensi tinggi (yaitu server secara geografis jauh satu sama lain), atau bandwidth terlalu rendah untuk jumlah data yang ditransfer
3. Load Balancer (Reverse Proxy)
Load balancers dapat ditambahkan ke lingkungan
server untuk meningkatkan kinerja dan keandalan dengan mendistribusikan beban
kerja di beberapa server. Jika salah satu server yang memuat seimbang
gagal, server lain akan menangani lalu lintas masuk sampai server gagal menjadi
sehat kembali. Ini juga dapat digunakan untuk melayani beberapa aplikasi
melalui domain dan port yang sama, dengan menggunakan proxy reverse layer 7
(layer aplikasi). Contoh perangkat lunak yang mampu membalikkan penyeimbangan beban
proxy: HAProxy, Nginx, dan Varnish.
Use Case :
Berguna dalam lingkungan yang membutuhkan penskalaan dengan menambahkan lebih
banyak server, juga dikenal sebagai penskalaan horizontal.
Pro :
- Mengaktifkan penskalaan
horizontal, yaitu kapasitas lingkungan dapat ditingkatkan dengan
menambahkan lebih banyak server ke dalamnya
- Dapat melindungi dari serangan
DDOS dengan membatasi koneksi klien ke jumlah dan frekuensi yang masuk
akal
Kekurangan :
- Load balancer dapat menjadi
hambatan kinerja jika tidak memiliki sumber daya yang cukup, atau jika
dikonfigurasi dengan buruk
- Dapat memperkenalkan
kompleksitas yang memerlukan pertimbangan tambahan, seperti tempat
melakukan penghentian SSL dan cara menangani aplikasi yang memerlukan sesi
tempel
- Penyeimbang beban adalah satu titik kegagalan; jika turun, seluruh layanan Anda bisa turun. Pengaturan ketersediaan tinggi (HA) adalah infrastruktur tanpa titik kegagalan tunggal. Untuk mempelajari cara menerapkan pengaturan HA, Anda dapat membaca bagian Cara Menggunakan IP Mengambang ini .
4. HTTP Accelerator (Caching Reverse Proxy)
Akselerator HTTP, atau caching HTTP reverse proxy, dapat digunakan untuk
mengurangi waktu yang dibutuhkan untuk menyajikan konten kepada pengguna
melalui berbagai teknik. Teknik utama yang digunakan dengan akselerator
HTTP adalah caching tanggapan dari web atau server aplikasi dalam memori,
sehingga permintaan masa depan untuk konten yang sama dapat dilayani dengan
cepat, dengan interaksi yang tidak perlu dengan web atau server aplikasi. Contoh
perangkat lunak yang mampu melakukan percepatan HTTP: Varnish, Squid, Nginx.
Use Case :
Berguna di lingkungan dengan aplikasi web dinamis konten-berat, atau dengan
banyak file yang biasa diakses.
Pro :
- Meningkatkan kinerja situs
dengan mengurangi beban CPU pada server web, melalui caching dan kompresi,
sehingga meningkatkan kapasitas pengguna
- Dapat digunakan sebagai
penyeimbang beban proxy terbalik
- Beberapa perangkat lunak
caching dapat melindungi dari serangan DDOS
Kekurangan :
- Perlu penyetelan untuk mendapatkan kinerja terbaik darinya
- Jika cache-hit rate rendah, itu bisa mengurangi kinerja
5. Replika Database Prime-Replika
Salah satu cara untuk meningkatkan kinerja sistem database yang
melakukan banyak pembacaan dibandingkan dengan menulis, seperti CMS, adalah
dengan menggunakan replikasi database replikasi primer. Replikasi
membutuhkan satu simpul primer dan satu atau lebih simpul replika. Dalam
pengaturan ini, semua pembaruan dikirim ke simpul utama dan bacaan dapat
didistribusikan di semua simpul.
Use Case : Baik untuk meningkatkan kinerja baca untuk tingkat basis data
aplikasi.
Berikut adalah contoh pengaturan replikasi replika primer, dengan simpul
replika tunggal:
Pro :
- Meningkatkan kinerja membaca
basis data dengan menyebarkan membaca di seluruh replika
- Dapat meningkatkan kinerja
penulisan dengan menggunakan primer secara khusus untuk pembaruan (tidak
menghabiskan waktu melayani permintaan baca)
Kekurangan :
- Aplikasi yang mengakses basis
data harus memiliki mekanisme untuk menentukan simpul basis data mana yang
harus dikirimi pembaruan dan dibaca permintaannya
- Pembaruan untuk replika tidak
sinkron, sehingga ada kemungkinan isinya sudah kedaluwarsa
- Jika primer gagal, tidak ada pembaruan dapat dilakukan pada database sampai masalah diperbaiki
- Tidak memiliki built-in failover jika terjadi kegagalan simpul primer
Dimungkinkan untuk memuat keseimbangan server caching, selain server
aplikasi, dan menggunakan replikasi basis data dalam satu
lingkungan. Tujuan dari menggabungkan teknik-teknik ini adalah untuk
menuai manfaat dari masing-masing tanpa memperkenalkan terlalu banyak masalah
atau kompleksitas. Berikut adalah diagram contoh dari apa yang tampak
seperti lingkungan server:
Tidak ada komentar:
Posting Komentar