Apa praktik terbaik yang harus dilakukan untuk situs web yang perlu "ditingkatkan" untuk menangani kapasitas? Ini sangat relevan sekarang karena orang-orang mempertimbangkan cloud, tetapi mungkin kehilangan fundamentalnya.
Saya tertarik mendengar tentang apa pun yang Anda anggap praktik terbaik dari tugas tingkat pengembangan, infrastruktur, hingga manajemen.
web-development
cloud-computing
paas
scalability
goodguys_activate
sumber
sumber
Jawaban:
Desain untuk Konkurensi
Yaitu, saat Anda membuat kode, rencanakan untuk menjalankan beberapa utas. Rencanakan status bersama (seringkali hanya db). Rencanakan beberapa proses. Merencanakan distribusi fisik.
Ini memungkinkan Anda untuk mendistribusikan sistem Anda di beberapa mesin, dan di berbagai proses dengan load balancing. Ini memungkinkan Anda untuk menjalankan proses redundan jika terjadi kegagalan, dan jika Anda perlu memodifikasi sistem di tempat, Anda tidak perlu mematikan semua layanan untuk melakukannya.
sumber
Beberapa hal yang mungkin Anda pertimbangkan:
sumber
Bagikan arsitektur apa-apa.
Dengan pemikiran itu, dan bertentangan dengan apa yang mungkin Anda pikirkan, jangan langsung menuju solusi skala-out. Over-sistem overhead vs panggilan dalam-sistem tidak boleh di bawah-ditimbang. Misalnya, dibutuhkan BANYAK lebih lama untuk membuat koneksi DB di semua antarmuka jaringan daripada untuk membuat panggilan lokal. Anggaran berapa banyak waktu dalam manajemen, daya, dan upaya penyempurnaan diperlukan dalam skala-out vs $ ekstra untuk sistem besar yang sebenarnya.
Apapun, saya masih ada nilai besar dalam arsitektur "tidak berbagi apa-apa" dan Anda dapat lapisan dan skala-sistem Anda ketika saatnya tiba.
sumber
Paralelkan permintaan dengan beberapa nama host
Bagian dari standar HTTP adalah bagian yang mengatakan klien web akan meminta maksimum 2 sesi per Host DNS. Ini adalah solusi tempat Anda dan alias mengeluarkan www.domain.com dan mendapatkan konkurensi permintaan yang lebih tinggi, membuat laman Anda dimuat lebih cepat:
/programming/3653609/how-do-i-code-my-asp-net-page-to-parallelize-downloads-across-hostnames
Pada dasarnya ini melibatkan pengeditan ASP.NET HTTP Handler Anda untuk mengganti host target yang Anda kirimi klien, di mana setiap host adalah CNAME menjadi "www".
sumber
DNS yang Aman, Cepat, andal
Saya menemukan beberapa situs web berkapasitas tinggi menggunakan server DNS registrar, yang tidak memiliki SLA untuk uptime atau kinerja. Selain itu, server mereka berlokasi di India dan latensi saja meningkatkan kemungkinan spoofer DNS dapat meracuni pelanggan Anda, atau cache perantara ISP. Ini akan menyebabkan bahkan lalu lintas yang Anda lindungi SSL untuk dialihkan tanpa ada yang mengetahuinya.
Kecepatan DNS juga memengaruhi waktu muat awal server Anda, sebelum catatan di-cache.
Saya menggunakan DynDNS atau Neustar untuk sebagian besar pelanggan saya karena mereka memiliki infrastruktur DNS yang cukup solid (meskipun mahal dan saya tidak memiliki afiliasi lain dengan perusahaan-perusahaan itu).
sumber
Saya pikir kuncinya akan sederhana:
Memiliki kode sederhana. Itu berarti sesuatu yang Anda lihat dan pahami. Ketika Anda memperluas dan mengganti server, Anda perlu tahu apa yang sedang terjadi. Anda juga mungkin perlu menambahkan coders yang perlu dengan cepat mengerti. File kait dan XML yang memanggil kode acak yang tidak jelas sangat buruk.
Kemudian Anda dapat menguji dan menemukan masalahnya.
Lihat di sini: http://blog.servint.net/2013/08/27/going-big-how-to-scale-a-website-part-1-infrastructure-that-scales/
Kami di stellarbuild mencoba memastikan skala situs web kami tanpa down time. Itu berarti Anda harus dapat mengetahui apa kode Anda dan di mana ia melakukannya. Bahkan jika Anda menguji mesin yang berbeda, Anda tidak bisa terlalu lama untuk mengukur. Kebanyakan orang hanya memulai ketika hampir terlambat, dengan sedih. Anda dapat mengoptimalkan hanya sekali Anda melakukannya menurut saya.
sumber