如今是網(wǎng)站和應(yīng)用程序數(shù)量爆炸的時代。如果您是企業(yè),您需要一個相關(guān)的 Web 平臺。應(yīng)用程序使您能夠輕松地向目標客戶營銷和交付您的服務(wù)。
無論創(chuàng)建Web 應(yīng)用程序的原因如何,您都需要確定如何構(gòu)建它。在部署服務(wù)器時,您有許多選項。您選擇的服務(wù)器部署方案將決定您如何運行和管理環(huán)境中的所有內(nèi)容。
如何 為業(yè)務(wù)制定 服務(wù)器 部署方案 ?
首先,您需要考慮您的 Web 應(yīng)用程序有哪些要求,必須包含哪些功能。例如,應(yīng)用程序需要易于擴展,或者,需要您的應(yīng)用程序在PC端和移動設(shè)備上都可以順利工作。同時,您的預(yù)算可能也是您最關(guān)心的問題。
無論您的要求是什么,您都應(yīng)該知道,您可以為應(yīng)用程序制定自定義的方案策略。在本文中,恒創(chuàng)科技將探索 Web 應(yīng)用程序的各種類型的服務(wù)器。我們將討論各種使用案例,以及何時最好使用某種部署方案。為幫助您決定是否適合您,我們還將提供每種服務(wù)器部署方案的一些優(yōu)點和缺點。
一、將所有環(huán)境放在 一臺服務(wù)器 中
您將整個環(huán)境加載到一臺服務(wù)器中。該環(huán)境將包括您的 Web 服務(wù)器、應(yīng)用服務(wù)器以及數(shù)據(jù)庫服務(wù)器。例如,LAMP(Linux、Apache、MySQL和PHP ) 堆棧配置。
● 適用場景:如果您時間不足,這種類型的安排效果最好。這是最簡單、最快速的部署方案,它適用于簡單化的 Web 應(yīng)用程序。
● 優(yōu)點:簡單易懂,易于理解和實施;只需很少的時間即可部署全部內(nèi)容。
● 缺點:不允許水平可擴展性;在組件隔離方面提供很少;由于處于同一臺服務(wù)器中,應(yīng)用程序和數(shù)據(jù)庫本質(zhì)上是在爭奪相同的資源;可能遇到不佳的應(yīng)用程序運行表現(xiàn)。
二、獨立 數(shù)據(jù)庫服務(wù)器
使用單臺服務(wù)器的主要問題是對有限資源的競爭。這種部署方案旨在解決此問題。在這里,數(shù)據(jù)庫管理系統(tǒng)(DBMS)與應(yīng)用程序服務(wù)器保持獨立。數(shù)據(jù)庫服務(wù)器位于內(nèi)網(wǎng)中,并擁有自己的資源。這可以提高性能并提高安全性。
● 適用場景:如果您擔心數(shù)據(jù)庫和應(yīng)用程序在相同的資源上競爭,這是理想的解決方案。同樣,配置也非常簡單。
● 好處:應(yīng)用程序和數(shù)據(jù)庫相互獨立,使用單獨專用的系統(tǒng)資源,包括 CPU、內(nèi)存、I/O 等;在任何一個應(yīng)用程序和數(shù)據(jù)庫層中都具有更大的可擴展性潛力;您可以根據(jù)需要添加和刪除資源;即使您從公共互聯(lián)網(wǎng)上刪除數(shù)據(jù)庫,您也可以保持安全性。
● 缺點:比單臺服務(wù)器的部署稍微復(fù)雜一點;兩臺服務(wù)器之間的低帶寬或高延遲網(wǎng)絡(luò)連接可能會產(chǎn)生性能問題。
三、 反向代理或負載平衡
負載平衡器通常用于服務(wù)器環(huán)境,以提高性能和可靠性。他們通過"平衡負載"來做到這一點:即在多臺服務(wù)器之間分配工作負載。
● 適用場景:負載平衡器對于您需要執(zhí)行水平縮放非常有用。水平縮放基本上意味著向環(huán)境中添加更多的服務(wù)器。您還可以使用應(yīng)用層反向代理同時使用一個域名和端口為多個應(yīng)用程序提供服務(wù)。Nginx就是性能非常好的反向代理服務(wù)器,用來做負載均衡。
● 好處:如果線路中的一臺服務(wù)器出現(xiàn)故障,其他服務(wù)器會通過平衡工作負載來補償其功能;允許您執(zhí)行水平縮放以增加或減少環(huán)境容量;它還可以限制提供防止 DDOS 攻擊的客戶端連接。
● 缺點:如果系統(tǒng)資源不足,負載平衡器可能會限制應(yīng)用的性能;需要適當?shù)呐渲脕泶_保適當?shù)男阅?比單臺服務(wù)器或單獨的服務(wù)器部署復(fù)雜得多;您需要考慮諸如 SSL 終止和需要粘性會話的應(yīng)用程序等因素;使用負載平衡器的主要關(guān)注點是它是一個故障點。這意味著,如果負載平衡器無法工作,您的整個服務(wù)將下降。
四、 HTTP 加速器或緩存反向代理
您可以通過這種部署方案,來提高您為應(yīng)用程序用戶提供內(nèi)容的速度。當用戶第一次請求時,HTTP 加速器會保存其中的內(nèi)容。此后,當任何類似的請求進來時,它會快速為內(nèi)容提供服務(wù),而無需與應(yīng)用程序服務(wù)器交互。我們可以使用 Nginx 實現(xiàn) HTTP 緩存加速。
● 適用場景:這種部署方案最適合用戶非常頻繁地請求的文件和內(nèi)容。它也非常適用于內(nèi)容密集的動態(tài) Web 應(yīng)用程序。
● 好處:緩存和壓縮可以顯著提高應(yīng)用程序和請求處理的速度;減少 CPU 的負載,也會提高站點性能;您也可以將此用作反向代理負載平衡器。
● 缺點:你必須調(diào)整好它,以提取其最佳性能;如果緩存準確率較低,您可能會遇到不良性能。
五、 數(shù)據(jù)庫 主從 復(fù)制 架構(gòu)
主從數(shù)據(jù)庫復(fù)制類型的服務(wù)器架構(gòu),對于執(zhí)行讀數(shù)大于寫入的系統(tǒng)通常非常有用。例如,內(nèi)容管理系統(tǒng)可以真正利用這樣的架構(gòu)。您需要一個主節(jié)點和一個或多個復(fù)制節(jié)點進行復(fù)制。它將讀數(shù)分布在所有節(jié)點上。更新僅轉(zhuǎn)到主節(jié)點。
● 適用場景:正如我們提到的,基于復(fù)制的數(shù)據(jù)庫部署方案有助于提高系統(tǒng)的讀取性能。您可以將其用于CMS等應(yīng)用程序。
● 好處:它提高了數(shù)據(jù)庫的讀取性能,因為它將其傳播到副本中;如果您僅使用主節(jié)點進行更新,您還可以提高寫入性能。
● 缺點:任何嘗試訪問數(shù)據(jù)庫的應(yīng)用程序必須能夠決定向哪個節(jié)點發(fā)送更新和閱讀請求;如果主副本發(fā)生故障,則更新將停止。您必須解決問題才能繼續(xù)更新;沒有故障轉(zhuǎn)移機制來適應(yīng)潛在的主節(jié)點故障。
六、 使用 多種組合部署 服務(wù)器
你也可以結(jié)合各種技術(shù)和架構(gòu),以獲得預(yù)期的結(jié)果。這意味著您可以在單個環(huán)境中加載應(yīng)用程序服務(wù)器負載均衡與緩存服務(wù)器,并復(fù)制數(shù)據(jù)庫。這樣做可以讓您利用兩臺服務(wù)器的功能。但是,它不會使部署更加復(fù)雜或麻煩。例如下圖所示環(huán)境:
在這樣的環(huán)境中,負載平衡器將向緩存服務(wù)器發(fā)送靜態(tài)請求。靜態(tài)內(nèi)容包括CSS、圖像和Javascript等。它將將任何其他類型的內(nèi)容請求直接發(fā)送到應(yīng)用程序服務(wù)器。
假設(shè)用戶正在從環(huán)境中請求一些靜態(tài)內(nèi)容,服務(wù)器的反應(yīng)如下:
● 負載平衡器將首先確定內(nèi)容是緩存命中還是緩存誤用。緩存命中的內(nèi)容存在于緩存中,而緩存未命中的內(nèi)容不存在。它通過檢查緩存后端來做到這一點。
● 如果緩存命中,負載平衡器會將內(nèi)容發(fā)送給用戶;
● 如果緩存錯過,緩存服務(wù)器將請求轉(zhuǎn)發(fā)到應(yīng)用程序的后端。
● 應(yīng)用后端將從數(shù)據(jù)庫中查找和發(fā)送內(nèi)容。
● 緩存后端接收負載平衡器中的內(nèi)容。它還在將其返回到負載平衡器之前緩存此內(nèi)容。
● 后者然后轉(zhuǎn)發(fā)給用戶的響應(yīng)。
另一方面,如果用戶請求動態(tài)內(nèi)容,將會發(fā)生如下情況:
● 請求將從用戶到負載平衡器。
● 此請求請訪問應(yīng)用后端。
● 應(yīng)用后端定位所請求的內(nèi)容并將其返回到負載平衡器。
● 用戶接收內(nèi)容。
這種綜合環(huán)境的主要好處之一是它更可靠。不僅如此,它還具有卓越的性能能力。但是,仍有兩個故障點:負載平衡器和主數(shù)據(jù)庫服務(wù)器。
結(jié)論
您可以在您的環(huán)境中自行使用相應(yīng)的服務(wù)器部署方案。同時,您也可以將其中幾個組合在一起,創(chuàng)建個性化的解決方案。這完全取決于您希望從架構(gòu)中獲得的功能。了解每種服務(wù)器部署方案的工作原理,將有助于您為自己的應(yīng)用程序做出決策。最好的辦法就是從小型架構(gòu)開始做起,在獲得經(jīng)驗時不斷增加設(shè)置的復(fù)雜性。
申請創(chuàng)業(yè)報道,分享創(chuàng)業(yè)好點子。點擊此處,共同探討創(chuàng)業(yè)新機遇!