自拍偷在线精品自拍偷,亚洲欧美中文日韩v在线观看不卡

如何在三層架構(gòu)中使用VLAN或VPC保護應(yīng)用?

云計算
在當(dāng)今的容器和云環(huán)境中,我們可以很容易地將不同組件分離到不同系統(tǒng)中,而這樣做的好處也是很明顯的:輕松快速地構(gòu)建出更可靠、更安全、可擴展性更高的應(yīng)用程序。?

通過VPC實現(xiàn)網(wǎng)絡(luò)隔離能在安全性方面帶來很多好處,例如實現(xiàn)內(nèi)部協(xié)作以及妥善存儲敏感信息。

在開發(fā)工作方面,網(wǎng)絡(luò)隔離還可用于實現(xiàn)多層Web應(yīng)用程序的部署。通過對應(yīng)用進行分層,我們可以將能夠以及不能訪問公共互聯(lián)網(wǎng)的應(yīng)用劃分為不同的片段,例如通??梢酝ㄟ^這種方式將數(shù)據(jù)庫層與公共互聯(lián)網(wǎng)隔離,同時依然可以從上層拉取補丁和軟件更新,而不需要直接訪問公共互聯(lián)網(wǎng)。除了減小攻擊面,這種做法還有助于實現(xiàn)多區(qū)域部署。

延伸閱讀,了解Akamai cloud-computing

出海云服務(wù),選擇Akamai Linode!

我們可以通過多種方式來運行多層應(yīng)用,通常只需要依賴一些最基礎(chǔ)的形式即可獲得最大化的可擴展性、安全性以及可靠性。三層架構(gòu)是一種最常見的設(shè)計形式,這種形式在云端環(huán)境中尤為常見。

三層應(yīng)用程序通常由三個層組成,這些層往往位于不同服務(wù)器上,能夠分別以高度獨立的方式開發(fā)和維護。這三層分別是:

  • 表示層:管理用戶和應(yīng)用程序間通信的外部接口,通常由Web服務(wù)器組成,運行HTML和Web開發(fā)代碼。
  • 應(yīng)用程序?qū)樱?/span>一種自定義應(yīng)用程序,提供了必要的業(yè)務(wù)邏輯,借此將應(yīng)用程序“黏合”在一起。
  • 數(shù)據(jù)層:數(shù)據(jù)庫系統(tǒng),用于存儲和檢索應(yīng)用程序中使用的數(shù)據(jù)。

這三層內(nèi)容作為獨立的服務(wù),需要通過基于網(wǎng)絡(luò)的API進行通信。出于安全和性能方面的考慮,應(yīng)用程序?qū)雍蛿?shù)據(jù)層通常需要位于同一個本地網(wǎng)絡(luò)中,并且需要放置在同一個防火墻之后,但每一層的分離也使得我們可以將每個組件部署在不同硬件上,甚至部署到不同的地理位置。實際可以實現(xiàn)的靈活性主要取決于應(yīng)用程序的具體需求。

下圖展示了現(xiàn)實世界中一個最基礎(chǔ)的三層Web應(yīng)用程序。表示層的Web服務(wù)器在瀏覽器窗口中為用戶提供了交互界面;另一端的數(shù)據(jù)層則是一個數(shù)據(jù)庫,該數(shù)據(jù)庫可以是一個單獨的系統(tǒng),或是在網(wǎng)絡(luò)中用一個單一實體所代表的集群。數(shù)據(jù)庫層方面流行的開源選項包括MySQL、MariaDB、PostgreSQL for SQL、MongoDB以及Cassandra for NoSQL等。

圖1:三層架構(gòu)可將Web應(yīng)用程序拆分為表示層、應(yīng)用程序?qū)雍蛿?shù)據(jù)層

Web服務(wù)器和數(shù)據(jù)庫之間還有應(yīng)用程序?qū)?,我們的大部分開發(fā)工作可能都是圍繞這里進行的。應(yīng)用程序?qū)影?yīng)用程序?qū)崿F(xiàn)目標(biāo)所需的自定義代碼和業(yè)務(wù)邏輯。在前端,Web服務(wù)器會將查詢發(fā)送給應(yīng)用程序?qū)?,隨后應(yīng)用程序?qū)訒憫?yīng)Web服務(wù)器,并由Web服務(wù)器設(shè)置數(shù)據(jù)格式隨后展示給用戶。在后端,應(yīng)用程序?qū)訉⒉樵償?shù)據(jù)庫,接收數(shù)據(jù),隨后處理收到的數(shù)據(jù),產(chǎn)生用戶需要的信息或結(jié)果。

作為一個非常簡單的例子,我們可以將數(shù)據(jù)庫想象成存儲了公司銷售記錄的記錄冊。用戶輸入請求,希望得到一段時間內(nèi)某一特定商品在特定地點的平均日銷量。Web服務(wù)器會將請求發(fā)送給應(yīng)用程序?qū)?,?yīng)用程序?qū)訕?gòu)造數(shù)據(jù)庫查詢,接收原始數(shù)據(jù),執(zhí)行必要的計算,隨后將響應(yīng)發(fā)送回Web服務(wù)器。

圖2:用戶向表示層請求一系列信息,應(yīng)用程序?qū)涌蓪⒄埱筠D(zhuǎn)換為數(shù)據(jù)庫查詢

對于應(yīng)用程序?qū)觼碚f,Apache Web服務(wù)器可能是最方便的表示層解決方案,而MongoDB可能是最方便的數(shù)據(jù)層解決方案。而應(yīng)用程序?qū)拥淖远x代碼通常會使用Python、PHP或Ruby等語言編寫。并且在一些現(xiàn)成的編程框架幫助下,我們可以更高效的開始編寫自己的代碼,例如Python開發(fā)可選擇Django,Ruby開發(fā)可選擇Rails,PHP開發(fā)可選擇Symfony。

理論上,應(yīng)用程序?qū)涌梢院捅硎緦咏Y(jié)合在一起,為此只需要向Web服務(wù)器提供直接查詢數(shù)據(jù)庫所需的必要代碼,但對于大多數(shù)復(fù)雜的業(yè)務(wù)邏輯來說,這種做法并不現(xiàn)實,并且也抵消了應(yīng)用程序劃分所帶來的好處。

上文提到的“好處”中最重要的一點是:可以減小攻擊面從而提高安全性。如圖1所示,三層解決方案最大限度減少了必須放置在防火墻之外的應(yīng)用程序組件。Web服務(wù)器可以通過安全的API進行通信,其他活動都發(fā)生在防火墻內(nèi)部,更重要的是,都發(fā)生在私有地址空間中,因此無法通過互聯(lián)網(wǎng)訪問,這樣即可遏制包括SQL注入在內(nèi)的很多隱患,畢竟SQL注入已經(jīng)是最常見,也最具破壞性的漏洞。好在這些隱患通??梢酝ㄟ^對數(shù)據(jù)庫進行隔離和保護所有直接通信等方式加以遏制。

三層應(yīng)用程序帶來的另一個好處是可靠性。當(dāng)每一層都運行在單獨的服務(wù)器上,運行在不同的物理硬件,甚至在完全不同的數(shù)據(jù)中心內(nèi)運行時,一層出現(xiàn)的故障就不太可能影響到其他層。這還有助于進一步提高可擴展性。因為這些獨立運行的組件也可以獨立進行擴展。舉例來說,如果數(shù)據(jù)庫訪問遇到性能瓶頸,即可向數(shù)據(jù)庫集群添加更多節(jié)點,這一過程對整體運行的影響也是最小的。

三層方法還有助于優(yōu)化開發(fā)流程。連接各層的API以一種支持高效分工的方式將不同組件分開,Web開發(fā)者和管理員可以操作和管理Web服務(wù)器,數(shù)據(jù)庫開發(fā)者和管理員可以運行數(shù)據(jù)庫系統(tǒng)。在這兩者之間,精通應(yīng)用程序?qū)铀每蚣芗夹g(shù)的專家可以只專注于應(yīng)用程序代碼。例如在DevOps場景中,應(yīng)用程序開發(fā)者可以用脫機的方式構(gòu)建并測試新版應(yīng)用程序代碼,并在保證對運行只產(chǎn)生最小影響的前提下輕松更改應(yīng)用代碼。

如果你要著手開發(fā)Web應(yīng)用程序,可以從一開始就考慮采用三層架構(gòu)。在當(dāng)今的容器和云環(huán)境中,我們可以很容易地將不同組件分離到不同系統(tǒng)中,而這樣做的好處也是很明顯的:輕松快速地構(gòu)建出更可靠、更安全、可擴展性更高的應(yīng)用程序。

這篇文章的內(nèi)容感覺還行吧?有沒有想要立即在 Linode 平臺上親自嘗試一下?別忘了,現(xiàn)在注冊可以免費獲得價值 100 美元的使用額度,快點自己動手體驗本文介紹的功能和服務(wù)吧↓↓↓

出海云服務(wù),選擇Akamai Linode!

歡迎關(guān)注Akamai,第一時間了解高可用的MySQL/MariaDB參考架構(gòu),以及豐富的應(yīng)用程序示例。


責(zé)任編輯:張燕妮
相關(guān)推薦

2013-10-31 09:16:44

Vlan三層交換機路由

2013-08-14 10:08:07

TrunkVLAN三層交換

2012-12-12 10:53:51

交換機VLAN

2017-03-20 17:00:44

交換機路由器VLAN

2011-08-08 14:14:03

架構(gòu)

2011-04-19 13:53:41

三層架構(gòu)

2012-02-03 09:44:33

.NET

2010-01-11 18:21:54

三層交換機企業(yè)VLAN

2010-02-22 14:05:33

三層交換機

2010-01-11 11:06:23

三層交換機

2013-01-09 11:00:20

架構(gòu)開發(fā)三層架構(gòu).NET架構(gòu)

2009-08-26 18:20:42

三層架構(gòu)

2010-03-15 13:41:49

交換機

2009-07-28 17:25:14

ASP.NET三層結(jié)構(gòu)

2010-01-26 10:53:59

三層交換機

2009-06-24 09:37:18

CCNPVLAN設(shè)置

2010-02-22 17:26:03

三層交換機

2009-04-30 15:56:50

三層架構(gòu)MVCMVP

2009-07-28 15:08:50

MVC三層架構(gòu)實例

2013-05-23 10:58:38

三層交換機vlanvlan通信
點贊
收藏

51CTO技術(shù)棧公眾號