Hari pertama online: bagaimana cara tidak membunuh situs Anda


14

Misalkan Anda memiliki situs baru yang mewah ini, dengan banyak data (seperti gambar besar), dan Anda akan membuatnya online. Jika Anda melakukan publisitas "terlalu banyak", selama hari-hari pertama, situs tersebut akan dipenuhi dengan permintaan.

Bagaimana saya bisa mengurangi risiko ini?

Saya sudah memikirkan

  • akan hidup secara bertahap, seperti SO dan SF: beta "pribadi", beta publik, publik
  • izinkan X koneksi sesi secara bersamaan, sehingga pengguna yang terhubung masih memiliki pengalaman yang baik dari situs, dan yang lain memiliki pesan permintaan maaf yang bagus

Saya tidak bisa:

  • beli lebih banyak server, karena setelah hari-hari pertama, situs ini akan memiliki lalu lintas jauh lebih sedikit :)

6
Dalam 15 tahun saya dev dan merilis situs. Inilah yang dipikirkan semua orang ... letakkan situs baru di kami dan boom! Hampir tidak pernah terjadi. Biasanya kebalikannya yang Anda dapatkan kurang dari yang Anda harapkan. Tapi heh, terlalu banyak pengguna adalah masalah BAIK untuk dimiliki;)
Chad Grant

1
Saya punya masalah itu, dan itu bukan tempat yang sangat menyenangkan untuk menjadi ...
Gabriel Solomon

Jawaban:


11
  1. Tembolok sebanyak yang Anda bisa. Setiap halaman yang dibuat secara dinamis harus di-cache sehingga pengguna akan mendapatkan versi statis. Dalam komponen halaman yang meminta db juga harus di-cache.
  2. Coba gunakan layanan eksternal seperti Amazon S3 untuk menyajikan gambar dan multimedia (atau siapkan digunakan jika situs tiba-tiba mendapatkan banyak lalu lintas).

Going live secara bertahap dapat bekerja untuk SOF dan SF karena mereka sudah memiliki publisitas dan permintaan bawaan, karena popularitas blog Jeff dan Joel. Jika Anda tidak memiliki basis pengguna yang hampir dijamin seperti yang mereka miliki, maka tayang secara bertahap bisa berakibat fatal.

Saya akan menghindari membatasi dengan sesi bersamaan, karena sulit untuk menentukan akhir sesi yang disebabkan oleh tidak aktif. Jika pengguna pergi selama 15 menit dan mencoba memuat ulang halaman mereka, hanya untuk mendapatkan pesan kesalahan - Anda baru saja kehilangan pengguna.


Saya bermaksud sesi, tetapi jari saya berarti koneksi. Dikoreksi.
mathieu

5

Berapa banyak perencanaan masuk ke model data Anda? Sudahkah Anda merancang skema yang akan memungkinkan Anda meningkatkan volume kueri tanpa jenis mahal, kolom biner, atau gabungan kompleks? Sudahkah Anda menyetel backend basis data Anda (dengan asumsi Anda memilikinya)?

Bagaimana Anda melayani 'gambar besar' Anda? Bisakah Anda memecahnya menjadi proses server web yang terpisah, bahkan domain yang terpisah?

Sudahkah Anda memuat menguji sistem Anda? Alat seperti ApacheBench dan Siege sangat berharga.

Apakah semua konfigurasi Anda di svn? Apakah penyebaran Anda otomatis? Anda akan senang ketika Anda harus meluncurkan aplikasi kami ke server ke-2.


Saya setuju dengan tes beban, kami memiliki situs web yang kami lewati pengujian karena kami berada di tenggat waktu yang ketat dan yang datang kembali dan melihat pantat kami. Dan harus melakukan beberapa mengutak-atik sementara situs itu hidup untuk mendapatkan beban server ke negara dikelola (kita memukul 200% pada beban CPU dengan 4 CPU dedicated server)
Gabriel Solomon

1

Sistem undangan terkadang bisa menjadi cara yang baik untuk mengontrol penggunaan situs oleh pengguna. Bagikan sejumlah undangan di awal, agar situs tidak kewalahan. Kemudian berikan setiap pengguna beberapa undangan untuk dibagikan kepada orang lain, perlahan-lahan tingkatkan jumlah pengguna di situs. Dengan begitu Anda tidak akan mendapatkan terlalu banyak orang yang memukul situs pada awalnya, dan Anda tidak mendapatkan puncak lalu lintas yang besar.

Kelemahannya tentu saja adalah bahwa Anda mungkin menolak banyak pengguna di awal yang tidak memiliki undangan, dan yang mungkin tidak kembali lagi nanti. Kecuali Anda memiliki situs yang benar-benar bagus sehingga orang-orang sangat bersemangat untuk menggunakannya, maka ini bisa menjadi langkah yang buruk. Itu tergantung pada situsnya kok. Plus, Anda sebenarnya harus memiliki waktu pengembangan ekstra untuk menambahkan sistem undangan.


1

Saya akan memastikan bahwa Anda memiliki infrastruktur pemantauan yang kuat sebelum diluncurkan. Anda perlu memiliki data untuk mendasarkan keputusan Anda - ini berarti mengukur beban CPU di seluruh server, memeriksa apakah beban Anda tersebar secara merata di seluruh kotak, dan jika ada sesuatu yang meleleh, Anda tahu yang mana.

Mengetahui di mana masalahnya adalah secara dramatis akan mengurangi waktu yang dibutuhkan untuk merespons. Saya telah melihat terlalu banyak situs diluncurkan tanpa pengawasan dalam bentuk apa pun, dengan maksud bahwa itu akan diatur kemudian ... setelah api padam. Ini sangat salah.


1

Anda mungkin ingin melihat hosting konten statis pihak ketiga seperti Amazon S3. Mungkin layak tergantung pada aplikasi Anda juga cloud beberapa (sebanyak saya benci kata kunci) menggunakan Amazon EC2.


Dengan menggunakan situs kami, Anda mengakui telah membaca dan memahami Kebijakan Cookie dan Kebijakan Privasi kami.
Licensed under cc by-sa 3.0 with attribution required.