Sangat mudah untuk berpikir bahwa melayani khalayak dalam jumlah besar memerlukan ruang server sebesar gudang. Namun, hal ini tidak selalu terjadi. Jika situs Anda statis, mesin kecil dapat menangani ratusan ribu pengunjung. Bayangkan Celeron 500MHz sederhana yang menjalankan Linux dan Apache. Hubungkan ke jalur T3 (45 juta bit per detik). Pengaturan ini menangani lalu lintas dalam jumlah yang sangat besar. ISP menyewa seluruh pengaturan dengan harga kurang dari $1.000 per bulan.
Tapi inilah masalahnya. Situs terpopuler tidaklah kecil. Mereka dengan cepat menabrak tembok. Satu kotak tidak dapat diperluas tanpa batas waktu.
“Jika Anda harus berurusan dengan jutaan pengunjung dan konten dinamis, mesin Anda akan rusak.”
Batasan muncul ketika ambang batas tertentu tercapai. Pertama, Anda mungkin harus mendukung jutaan pengunjung setiap hari. Sebuah CPU tunggal memiliki keterbatasan. Yang kedua adalah kegagalan perangkat keras. Jika salah satu server Anda mati, situs Anda akan menjadi gelap sampai Anda menggantinya dengan yang baru dan mengkonfigurasinya kembali. Ketiga, halaman yang besar atau kompleks menghabiskan sumber daya dengan cepat. Keempat, jika halaman harus berubah secara dinamis untuk setiap pengguna, server harus bekerja lebih keras. Terakhir, pemrosesan latar belakang menambah latensi. Sebagian besar lokasi besar memenuhi semua kriteria ini dan oleh karena itu memerlukan infrastruktur yang luas.
Tiga strategi penskalaan yang paling penting
Jika anggaran memungkinkan, para insinyur dapat memilih tiga rute utama selama lalu lintas puncak.
- Beli mesin besar dengan daya dan redundansi tak terbatas.
- Bagilah beban ke beberapa mesin yang lebih kecil.
- Gabungkan kedua metode tersebut.
Pendekatan terdistribusi paling umum pada aplikasi web besar. Anda bahkan mungkin pernah melihat ini beraksi tanpa menyadarinya. Jika URL sedikit berubah setiap kali Anda mengunjungi dan menyegarkan situs web (misalnya www1.xyz.com dan www2.xyz.com ), itu adalah petunjuknya. Situs ini menggunakan serangkaian komputer independen. Semua orang menggunakan perangkat lunak server web. Semuanya menggunakan salinan halaman situs web yang sama.
Keajaiban sebenarnya terletak pada cara permintaan masuk didistribusikan. Hal ini dapat terjadi melalui dua cara utama.
penyeimbangan beban berbasis DNS
Sistem Nama Domain (DNS) menerjemahkan nama yang dapat dibaca manusia menjadi alamat IP. Beberapa konfigurasi DNS menggunakan pendekatan round-robin. Server DNS menelusuri daftar alamat IP yang tersedia setiap kali permintaan diterima.
Ini secara alami mendistribusikan beban. Setiap server menerima sebagian dari lalu lintas. Mereka tidak berbicara satu sama lain tentang bebannya. Hanya menyediakan konten statis atau konten siap pakai yang dapat mereka akses.
Sakelar penyeimbang beban
Pendekatan yang lebih maju melibatkan penyeimbang beban. Semua lalu lintas jaringan pertama-tama mencapai saklar pusat. Mesin ini bertindak sebagai polisi lalu lintas. Meneruskan permintaan ke server yang tersedia.
Peralihannya tidak hanya menebak-nebak. Periksa setiap server untuk melihat mana yang paling tidak sibuk. Hal ini menjamin pembagian kerja yang merata. HowStuffWorks telah mengambil pendekatan ini. Penyeimbang beban perusahaan mendistribusikan lalu lintas antara tiga server web yang berbeda. Jika salah satu dari mereka gagal, dua lainnya akan menjaga situs tetap aktif. Tidak ada waktu henti bagi pengguna.
Konfigurasi redundan ini memiliki keuntungan yang jelas. Kegagalan satu mesin tidak menyebabkan kerusakan pada keseluruhan situs. Anda juga dapat meningkatkan kapasitas secara bertahap. Butuh lebih banyak kekuatan? Tambahkan kotak lain. Ini fleksibel.
Ada satu kelemahan. Mesin terdistribusi ini masih sering mengandalkan database terpusat untuk pemrosesan transaksi. Seiring pertumbuhan lalu lintas, database ini menjadi hambatan.
Satu mesin besar
Tidak semua orang mendistribusikan. TerraServer Microsoft mengambil rute “satu mesin besar”.
TerraServer menyimpan terabyte citra satelit. Ini menangani jutaan permintaan untuk data tersebut. ia menggunakan perangkat keras kelas perusahaan yang besar. Ambil Digital AlphaServer 8400 misalnya. Ia memiliki delapan prosesor 64-bit 440 MHz. Berisi 10 GB RAM yang diperiksa kesalahannya dan diperbaiki.
Itu adalah tenaga yang besar dalam satu sasis. Hal ini menghindari kerumitan koordinasi jaringan antara beberapa server. Tapi itu mahal. Jika salah satu AlphaServer gagal, layanan berhenti.
Pilihannya tergantung pada model bisnis Anda. Konten statis lebih menyukai pengaturan sederhana. Transaksi dinamis menuntut redundansi. Aplikasi intensif data mungkin memerlukan daya mentah.
Jika Anda ingin mempelajari lebih lanjut, ada banyak sumber. W3C menetapkan standar. Microsoft telah menerbitkan buku putih tentang penyeimbangan beban Windows NT. IBM memberikan buku merah tentang penyeimbangan server. Sebuah makalah tentang server web kolaboratif terdistribusi menjelaskan teori ini.
Namun realitas intinya tetap sederhana. Skala lalu lintas. Batasan perangkat keras. Insinyur membangun jembatan antara keduanya. Cara Anda membangunnya bergantung pada tujuan penggunaan situs web Anda.























