Ben tek bir bilgisayarda çalışan bir web uygulaması için bir mimari dizayn

2 Cevap php

Ben tek bir bilgisayarda bir web uygulaması çalıştıran inşa etmek ve mümkün olduğunca verimli olarak donanım kaynaklarını sömürmek için planlıyorum. App mantığı karmaşık olmayacaktır. Aşağıdaki benim tasarımım:

OS: Linux (CentOS 5)

Web Sunucusu: Nginx

Web komut: PHP

Veritabanı: Tokyo kabine + Tokyo Tyrant

İçindekiler: Sfenks

Ben dizinleyicisine (Sfenks) ile anahtar-değer mağaza (Tokyo dolap) düşünüyorum nedeni de MySQL daha iyi performansa sahip, normal bir web uygulaması dağıtmak için tüm ihtiyaçlarını karşılayacak, MySQL gibi RDBMS'yi kullanmak için gitmiyorum.

Benim soru: bu tasarım tek bir bilgisayar için etkili bir mimari olmak nedir? Ya da nasıl geliştirilir?

(Bu soru öznel olması olabilir biliyorum ama ben gerçekten yardıma ihtiyacım var)

~ Çok teşekkür ederim

EDIT:

Ben benim app ev sahipliği gidiyorum bilgisayar, ben "ölçeklenebilirlik" dikkate almak gerekmez düşünüyorum vb 8GB ~ 16GB bellek, 500G ~ 1TB Sabit disk gibi, normal bir PC. Bir web uygulaması her ilk adım bir makineden başladı ve bu başlangıç ​​her zaman olacaktır.

2 Cevap

Choice of DB

Ben yapmak veritabanı türü seçimi sistem üzerinde barındırılan kaç bilgisayar üzerinde daha az bağlı olduğunu düşünüyorum. Ben bu istediğiniz veri kalitesinin daha bir fonksiyonu / korumak için ihtiyaç olması gerektiğini düşünüyorum.

Eğer bir müşteri için nakliye adreslerini saklamak gerekiyorsa Örneğin, size depolama yapısı bunun için hesap gerekir. Bir isim değer çifti ile başlamak için yeterince kolay bir yapıya görünebilir, ama Aşağıdakilerden herhangi öngörüyoruz varsa, standart bir veritabanı sistemi için hareketli düşünmelisiniz

  • değişiklikleri takip
  • faaliyet / raporları raporlama
  • eşzamanlı kullanıcı

Performance

Bu kod bağlıdır, görsel, içerik, önbelleğe alma, vb gibi çok sizin veritabanı üzerinde olduğu gibi.

well, one way to see is to load test it: http://grinder.sourceforge.net/

Ben Tokyo kabine ile hiç çalışmadım, ama işlevsel olarak yeterli ise, o zaman muhtemelen bir DB sonra önemli ölçüde daha hızlı olacak.

Eğer bu kutuya ötesinde ölçek başladığınızda olsa uzun vadede, bir kutu üzerinde çalışmak için app tuning tarafından fark herhangi bir tasarruf hızla kaybolur. önbelleğe bir sürü eklemek için çalışıyor, ve daha hızlı olması için app almak için kesmek ancak bir noktaya kadar gidecek. Daha da önemlisi size çeşitli katmanları ayrıştırarak nasıl kolayca düşünmeye çalışmalısınız.