什麼是創建大型網站骨幹的「最佳」方式?包含服務的Webstack佈局(SOA)
目前我們的網頁由許多不同的應用程序組成,如博客wordpress,購物車和其他不基於服務的非互用軟件。我們想改變這一點。
在我看來,基於服務的方法聽起來很有前途,我們網站提供的每個功能都由一個或多個服務(例如REST或SOAP)提供支持。那麼棧看起來是這樣的:
- Web服務器(Apache的+ PHP)從服務
- 服務的提供商,其提供的功能(REST,SOAP)
- 內的每個所消耗的數據的HTML渲染服務,例如mysql數據庫,solr搜索實例等。
這個概念有沒有真正的缺陷?
第1層和第2層之間進行通信的「最佳」方式是什麼?
有沒有關於此主題的任何來源(書籍,會談等)?
UPDATE1:
要優化我的問題,這裏是我們的目標:
用戶應該能夠釋(博客)的文章,管理訂閱電子報,搜索我們的產品,配置產品,購買,評價和評論,提交問題(和回答他人)等。基本上是一個網上商店,許多附加功能適合我們的業務。這些功能應互相融合,並提供已有軟件無法提供的附加功能。
當然,我們可以開始在PHP中用一個框架(如symfony)對一個數據庫編寫everthing,並且它可以用於10個同時使用的用戶。但是如果我們的用戶基礎增長超過普通服務器的容量,我們需要擴展我們的應用程序呢?
如果我們「添加」與不同服務(可以緩存,分片和分離,如果需要)通信的更多(相同)Web服務器,或者爲我們隨時添加的功能添加其他服務,
希望這有助於使我的問題更加交代:-)
我懷疑即使是一個編碼不好的PHP/MySQL應用程序也適用於10個以上的併發用戶。如果你知道如何正確地優化數據庫(主鍵等)和你的PHP(APC或memcached),你將能夠利用更多的體面服務器。 –