Çevrimiçi ilk günler: sitenizi nasıl öldürmüyorsunuz


14

Diyelim ki çok sayıda veriyle (büyük resimler gibi) bu süslü yeni siteye sahipsiniz ve çevrimiçi hale getirmek üzeresiniz. "Çok fazla" tanıtım yaparsanız, ilk günlerde site isteklerle boğulur.

Bu riski nasıl azaltabilirim?

Düşündüm

  • SO ve SF gibi aşamalı olarak yayınlanacak: "özel" beta, genel beta, genel
  • X'e izin ver bağlantıları oturumlar eşzamanlı olarak, bu nedenle bağlı kullanıcı siteyle ilgili hala iyi bir deneyime sahiptir ve diğerlerinin hoş bir özür mesajı vardır.

Yapamam:

  • İlk günlerden sonra sitenin çok daha az trafiği olacağı için daha fazla sunucu satın alın :)

6
Benim 15 yıl dev ve serbest siteleri. Herkes böyle düşünüyor ... biz ve patlama üzerine yeni bir site koymak! Neredeyse asla olmaz. Genellikle beklediğinizden daha az alırsınız tersi. Ama heh, çok fazla kullanıcı olması iyi bir sorun;)
Chad Grant

1
Bu sorun vardı ve onun verry pleasent nokta değil ...
Gabriel Solomon

Yanıtlar:


11
  1. Mümkün olduğunca önbellekleyin. Dinamik olarak oluşturulan tüm sayfaların önbelleğe alınması gerekir, böylece kullanıcılar statik bir sürüm elde eder. Db sorgulayan sayfa bileşenlerinde de önbelleğe alınmalıdır.
  2. Görüntü ve multimedya sunmak için Amazon S3 gibi harici bir hizmet kullanmayı deneyin (veya siteye aniden bir ton trafik çarptığında kullanıma hazır olmasını sağlayın).

Jeff ve Joel'in bloglarının popülaritesi nedeniyle, halihazırda yerleşik tanıtım ve talepleri olduğu için yavaş yavaş SOF ve SF için çalışabilirler. Onlarınki gibi neredeyse garantili bir kullanıcı tabanınız yoksa, yavaş yavaş canlı yayın yapmak ölümcül olabilir.

Hareketsizliğin neden olduğu bir oturumun sonunu tanımlamak zor olduğundan, eşzamanlı oturumlarla sınırlanmaktan kaçınırım. Bir kullanıcı 15 dakika boyunca ayrılır ve sayfasını yeniden yüklemeye çalışırsa, yalnızca bir hata mesajı almak için - bir kullanıcıyı kaybettiniz.


Oturumlar demek istedim ama parmaklarım bağlantı demekti. Düzeltildi.
mathieu

5

Veri modelinize ne kadar planlama yapıldı? Pahalı sıralar, ikili sütunlar veya karmaşık birleşimler olmadan sorgu hacminizi artırmanıza izin verecek bir şema tasarladınız mı? Veritabanı arka ucunuzu ayarladınız mı (bir tane olduğunu varsayarak)?

'Büyük resimlerinize' nasıl hizmet ediyorsunuz? Bunu ayrı bir web sunucusu işlemine, hatta ayrı bir etki alanına ayırabilir misiniz?

Sisteminizi yük test ettiniz mi? ApacheBench ve Siege gibi araçlar paha biçilmezdir.

Tüm yapılandırmanız svn'de mi? Dağıtımınız otomatik mi? Uygulamamızı 2. sunucuya yaymanız gerektiğinde bundan memnun kalacaksınız.


yük testleri ile anlaştım, biz sıkı bir son tarihte olduğumuzu ve geri ve kıçımıza geri geldi çünkü biz testi atladı bir web sitesi vardı. Ve site canlıyken sunucu yükünü yönetilebilir bir duruma getirmek için biraz uğraşmak zorunda kaldık (4 CPU adanmış bir sunucu ile CPU yükünde% 200'e ulaştık)
Gabriel Solomon

1

Bir davetiye sistemi bazen bir sitenin kullanıcı alımını kontrol etmenin iyi bir yolu olabilir. Başlangıçta belirli sayıda davetiyeyi dağıtın, böylece site bunalmaz. Ardından her kullanıcıya, sitedeki kullanıcı sayısını yavaşça artırarak başkalarına geçmesi için birkaç davet verin. Bu şekilde, başlangıçta çok fazla kişinin siteye isabet etmesini sağlamazsınız ve yoğun bir trafik zirvesi elde edemezsiniz.

Tabii ki dezavantajı, başlangıçta davetiyeleri olmayan ve daha sonra geri dönmeyebilecek birçok kullanıcıyı geri çeviriyor olabilirsiniz. İnsanların kullanmak için çok heyecanlı olduğu gerçekten iyi bir siteniz yoksa, bu kötü bir hamle olabilir. Gerçekten siteye bağlıdır. Ayrıca, bir davetiye sistemi eklemek için biraz daha geliştirme zamanınız olması gerekir.


1

Lansmandan önce sağlam bir izleme altyapınızın bulunduğundan emin olurum. Kararlarınızı dayandıracak verilere sahip olmanız gerekir - bu, sunuculardaki CPU yükünü ölçmek, yükünüzün kutulara eşit olarak yayıldığını kontrol etmek ve bir şey erirse hangisinin olduğunu bilmek anlamına gelir.

Sorunun nerede olduğunu bilmek, yanıt verme süresini önemli ölçüde azaltacaktır. Yangın çıktıktan sonra daha sonra kurulacak olan herhangi bir izlemeden çok fazla sitenin açıldığını gördüm. Bu çok yanlış.


1

Amazon S3 gibi statik içerik barındıran üçüncü taraflara bakmak isteyebilirsiniz. Amazon EC2 kullanarak bazılarını (terimden nefret ettiğim kadar) bulutlamak da uygulamanıza bağlı olarak değerli olabilir.


Sitemizi kullandığınızda şunları okuyup anladığınızı kabul etmiş olursunuz: Çerez Politikası ve Gizlilik Politikası.
Licensed under cc by-sa 3.0 with attribution required.