Büyük Ölçekli PHP Projesi için gerekli altyapı

5 Cevap php

Benim ekibi PHP büyük bir müzik portalı geliştiriyor. Bu portal lansmanından bir yıl içinde 1 milyon + kullanıcıları olacağı ümit edilmektedir. Portal, kullanıcıların çalma, akışı ve müzik indirme oluşturmanızı sağlayacak.

Bugüne kadar, biz 1000 eşzamanlı kullanıcılar hakkında maksimum tarafından kullanılmış olan uygulamalar geliştirdik. Bu portal büyüklükte farklı düzeyindedir.

Ben donanım bellek gereksinimlerini ve bu tür büyük projeler için bant genişliği gereksinimlerini hesaplamak için kullanılabilir herhangi kriterler olup olmadığını bilmek istiyorum.

Gibi önbelleğe alma - - Bir içerik dağıtım ağı (CDN) tüm trafik ile ilgili sorunları ya da özel bir şey işleyebilir eğer Ayrıca, yapılması gerekiyor.

Uygun olacağını Hangi veritabanı? MySQL gibi yükleri işlemek için ya da başka bir şey gerekli olacaktır.

Teşekkürler

Vinayak

5 Cevap

Aslında kullanıcıların bu sayı elde edene kadar, bu konuda çok endişeli olmamalıdır. Programlama numaralı kurallarından biri aslında performans sorunlar kadar optimize değil, ve where performans sorunlar hakkında bilgisi olması kadar zaman bile, optimize kalmamasıdır. Şu anda, ya yok.

Bunu dedi ... evet, MySQL ölçekli yapılabilir. Evet, önbelleğe yapmanız gerekebilir. Evet, CDN yararlı olabilir.

Tek bir sunucu ile başlayın, ve siz bunun ötesine taşımak için ihtiyacınız varsa, darboğazlar nerede olduğunu bulmak ve oradan gitmek profili. Onlar eğer size yardım etmek için ne yaptığını bilen birisi olsun.

Herhangi bir düz cevap yoktur bu nedenle tüm uygulamalar büyük bir yük için farklı yanıt verir. Müzik akışı bant genişliği sorunları ancak disk GÇ de içine gelebilir ağırlıklı vurmak gerekir. Içerik sunucuları kullanılabilir bellek büyük miktarda olması bu aşabiliriz.

Düzgün ölçekli eğer MySQL yükü büyük miktarlarda işleyebilir. Wikipedia MySQL kullanımı ve isabet ciddi bir sayıda işleyebilir. Facebook MySQL kullanarak başka büyük hitter vardır.

Edit: http://highscalability.com/ başkalarının yaptıklarını görmek için büyük bir kaynaktır.

mySQL bu seviyeye dönüşebilecek, ancak oyunu 1 milyon kullanıcı ile 1000 kullanıcıların önemli ölçüde değiştirir. Eğer AWS gerektiği gibi ek donanım dönmesi mümkün kullanarak düşündünüz mü? Eğer olması gereken yere bulut olduğunu düşünüyorum, ve ben belki de bu yüzden düşünüyorsanız başlamak için burada bir PHP walkthrough for AWS bakın.

Bu müzik portalı olarak biz akarsu bir kontrole sahip olacak, böylece var bir "Virtual Private Server" ile başlamak söz konusu olduğunda, tamponlama yöntemleri, dosya formatlarını dönüştürme de biz açık kaynak kitaplıkları yüklemek için tam bir kontrole sahip olacak ölçeklenebilirlik ve performansı yönetmek.

As you aware the famous Youtube are using MySQL for storing and serving the data to large number of users. For more info regarding the scalability check out this link : High Scalability Youtube Architechture

Hedef kitle büyüdükçe daha büyük veritabanı kümeleme göç ve içeriğini önbelleğe edebilirsiniz.

Ölçeklenebilir sistemler oluşturmak doğru almak neredeyse imkansız gelecekteki tahmini bir derecesi ve dikkatle sonuçları sonsuza büyütmek için her şeyi Bina - genellikle - over-mimari.

Bunun yerine, aklımda genişleyen önümüzdeki birkaç aşamalarında inşa söylüyorlar, ve orada çalışmak istiyorum. Yani, örneğin, bir yüksek-içerik sitesi, bant genişliği ve depolama bina eğer düşük seviyeli chokepoint olması muhtemeldir, bu yüzden bir CDN geçerseniz, don, böylece tüm içerik URL'ler oluşturulan emin olun 't sitenin bir sürü kodlamak zorunda.

Ben tavsiye ederim şeylerden biri sadece okur ya da bu yolda çok daha kolay bir kopyalayan veritabanı modeline içine bölme kapalı yapacak gibi ihtiyaçlarının yanı sıra yazma erişimi olmadığı konusunda nedense bayraklı her veritabanı sorgu ile başlamak olduğunu.