Ölçeklenebilir bir web sitesi yazma Teknikleri

10 Cevap php

Ben web sitesi ölçeklenebilirlik alanda yeni duyuyorum. Kullanıcıların çok sayıda ölçeklenebilir bir web sitesi yapmak için bana bazı teknikleri önerebilirsiniz?

10 Cevap

Eğer sitenizin tek bir sunucunun yeteneklerinin ötesinde ölçek bekliyoruz eğer dikkatle planlamak gerekir. Tasarım çok aşağıdaki mümkün olacaktır: -

  • O yüzden veritabanı ayrı bir sunucu üzerinde olabilir yapmak. Bu normalde çok zor değildir.
  • Bu normalde sunucular kapalı yük çok çekecek gibi, tüm statik içerik CDN taşınmış olabilir emin olun.
  • Donanım üzerinde çok para harcamaya hazır olun. Daha fazla RAM ve daha hızlı diskler bir LOT yardımcı olur.
  • Birden çok sunucu için tek bir sunucudan veritabanı veya php ya bölmek, böylece, sizin kod, veritabanı şeması her şeyi optimize etmek gerektiğinde bu çok zor olur, sunucu yapılandırma ve başka bir şey bu son koymak düşünebilirsiniz mümkün olduğunca uzun süre için kapalı adım.

Bunun dışında yapabileceğiniz tüm stres, sitenizi test darboğazları nerede anlamaya ve denemek ve onları tasarım olduğunu.

  1. Ağır yük altında web sitenizi test edin.
  2. Tüm istatistikleri izlemek
  3. Darboğaz bulmak
  4. Darboğaz Fix
  5. 1'e geri git

iyi şanslar

Rasmus Lerdorf tarafından this talk Çıkış (PHP yaratıcısı)

Özel Page 8 ve ötesinde.

Eğer bu kaynak-highscalability.com bakmak isteyebilirsiniz.

Insan sayısı darboğazları tespit için araçlar söz var, ve tabii ki gereklidir. Bunu yavaş nerede olduğunu bilmeden bir şey hızlandırmak verimli zaman harcamak değil. Hedef ölçeklenebilirlik yatıyor ama bilmeniz gereken başka bir şey değildir. O İK üç kişi tarafından kullanılmak üzere gidiyor eğer Twitter gibi kullanıcıların aynı sayıda sitenizin ölçek yapma birkaç ay para harcamak için değer mi? Eğer ürün gereksinimleri, bilinen işlemlerin oranı, ya da yanıt gecikme, ya da kullanıcı sayısı var mı? Eğer öyleyse, optimizasyon stratejisi ile bu numaraları hedef. Değilse, find those out delikten aşağı performans sıçan kovalayan önce.

Çok benzer: How Is PHP Done the Right Way?

Ölçeklenebilirlik küçük bir konu ve kesinlikle makul bir tek söz kaplı olabilir daha malzemedir.

Örneğin, bazı uygulamaları türlü, (SQL) katılır önbelleğe alma ve sharding stratejilerinin her türlü getiriyor, hangi ölçekli değil.

Beanstalk yüksek performanslı bir PHP sitelerde başka ölçeklenebilirlik ve performans aracıdır. (Farklı bir tür) memcache gibi.

Ölçeklenebilirlik için büyük sorun genellikle DBMS yıllardan gibi kaynaklar paylaşılır. DBMS en genellikle tutarlılık garanti dinlenmek için hiçbir yolu yoktur, çünkü sorun ortaya çıkar.

Eğer MySQL gibi bir şey kullandığınızda ölçeklenebilirlik artırmak istiyorsanız tutarlılık dinlenmek için şema tasarımını değiştirmek zorunda.

Örneğin, yazma için normalize veri modeli için veritabanı şeması ayırabilirsiniz, ve okuma işlemlerinin% 90 için bir çoğaltılmış salt okunur denormalized parçasıdır. Salt okunur veri birkaç sunucuları üzerinden yayılmış olabilir.

Bir veritabanı ölçeklenebilirlik artırmak için başka bir yol veri, örneğin parçalamaktır Her bölüm için bir veritabanına veri ayırmak ve ORM veya DBMS ya onları bir araya.

Önem sırası içinde:

  1. PHP çalıştırırsanız, APC gibi bir opcode önbellek kullanırlar. (Bu yerleşik edilecek PHP nesil yeterince önemlidir.)

  2. YSlow veya Google Page Speed darboğazları tespit etmek kullanın. (Bu istemci ve sunucu performansını hem de etkileyebilir web sitesi ile yapısal sorunlar ortaya çıkaracaktır.)

  3. Web sunucusu tarayıcı düzgün önbelleğe böyle statik içerik (resim, JavaScript, CSS) için bir Expires Uygun başlık gönderir emin olun. (YSlow da, sizi bu konuda uyaracaktır.)

  4. Bu tür Varnish gibi bir HTTP hızlandırıcı kullanın. (This picture says it all - ve onlar already yerine bir HTTP hızlandırıcı vardı.)

Develop your site using solid OOP techniques. You will need your site to be modular as not all performance bottlenecks are obvious at the start. Be ready to refactor parts of your site as traffic increases. The first sentence I wrote will help you do it more easily and safely. Also, use test driven development, As refactor means new introduced bugs, and good TDD is good in catching them before they go into production.
Separate as much as possible client side code from server side code, as they will likely to be served from different servers, if your site traffic justify this.
Read articles (read the YSlow tips for instance).

GL

Diğer önerilere ek olarak, multitier architecture gibi, sıralar halinde sitelerini bölme içine bakmak. Doğru yapılırsa, daha sonra katman başına bir sunucuyu kullanabilirsiniz.