tft每日頭條

 > 科技

 > 網站系統架構設計三層架構的優點

網站系統架構設計三層架構的優點

科技 更新时间:2024-07-24 21:14:36
技術架構的基本思路

技術架構既要清晰地劃分功能模塊或子系統,又要對整個網站系統的技術邏輯有清晰的認知。龐大的技術架構确實會讓人望而卻步,架構設計也變得無從入手。

如果把一個龐大的技術架構分成獨立的幾部分,然後再逐一深入的話,那麼一個龐大的技術架構也不是不可理解的

分層思想

架構設計一般被認為是普通編碼的進階,因此我們先從熟悉的編程思想講起。想必讀者一定了解過面向過程和面向對象編程,無論是面向過程編程還是面向對象編程,都需要關心整個業務流程。很多時候,一些重複、通用的步驟會影響我們對整體業務結構的理解,會不自然地産生一種結構混亂的感覺。

除了面向過程和面向對象的編程思想外,當然還有很多其他編程思想,其中面向切面的編程思想也逐漸在網站技術中得到重用。這種編程思想是想通過抽離重複可用的代碼(如日志、用戶權限等),讓開發人員隻關注核心代碼,而忽略相同且瑣碎的部分。不同編程思想下的業務代碼對比如圖2.9所示。

網站系統架構設計三層架構的優點(在架構師的角度去看大型網站架構面臨的挑戰)1

圖2.9 不同編程思想下的業務代碼對比

從圖2.9中可以看出,在面向過程和面向對象的編程思想下,我們需要關心整個業務流程,因此不得不用“認證用戶-修改信息-日志記錄”和“認證用戶-修改密碼-日志記錄”來描述業務結構;而在面向切面的編程思想下,可以清晰地看到一種層次感,由于這種層次感,我們可以把業務結構簡單地歸納為“認證用戶-具體業務-日志記錄”。

面向切面的編程思想能讓我們更輕松地理解業務結構,就是因為這種“層次感”。那麼,對于大型網站技術架構而言,如果把龐大的網站系統架構分成獨立的幾層,用分層的思維去理解龐大的架構,那麼設計大型網站技術架構就不再無從下手了。因此,對于大型網站技術架構的設計而言,首先需要有分層思想,然後再對其分而治之。

IaaS、PaaS和SaaS分層管理

一般來說,用分層思想來理解大型網站系統,目前比較公認的架構分層是基礎設施服務層(IaaS,Infrastructure as a Service)、平台服務層(PaaS,Platform as a Service)和軟件服務層(SaaS,Software as aService)。例如,視頻網站在IaaS、PaaS和SaaS分層下的技術架構如圖2.10所示。需要注意的是,這裡省略了應用程序部分和很多技術細節。

網站系統架構設計三層架構的優點(在架構師的角度去看大型網站架構面臨的挑戰)2

圖2.10 視頻網站在IaaS、PaaS和SaaS分層下的技術架構

IaaS層主要包括服務器、存儲設備和網絡設備等,即所有物理硬件都屬于這一層。大型網站系統的物理設備可以是公有雲的服務器(如阿裡雲服務器),也可以是購買的本地服務器。但無論是何種形式,對這一層的管理,并不是安排線路或者電源,而是估算每一個獨立虛拟機的物理配置、磁盤大小及網絡帶寬等。

PaaS層主要包括一些公共軟件,也可以說是大型網站系統的運行環境,如操作系統、分布式數據庫和分布式文件系統等。我們對這一層的管理主要是選擇需要的軟件服務,如數據庫和操作系統等。IaaS和PaaS層已經決定了網站系統的運行環境,SaaS層才是需要開發的部分。這裡先将SaaS層的内部稱為應用程序,具體内容在下面會詳細說明。

前端、後端和雲計算服務分層開發

本小節繼續讨論2.3.2小節中提到的SaaS層中的應用程序。在這一部分,我們不僅要對其分層,而且要對其劃分功能模塊或子系統。

在第1章中講過,大型網站一般以B/S架構為主,因此我們可以把應用程序進一步細分成前端、後端和雲計算服務。而子系統的劃分一般是根據業務架構而定的。以一個視頻網站為例,前端、後端和雲計算服務分層的技術架構如圖2.11所示,其中前端部分的頁面可能會使用多個子系統的功能。

網站系統架構設計三層架構的優點(在架構師的角度去看大型網站架構面臨的挑戰)3

圖2.11 前端、後端和雲計算服務分層的技術架構

前端指的是視圖層,其作用是交互和展示,一般指的是網頁。一些網站系統也有App或者PC軟件,如果按照本小節的分層思路,其實它們也算是前端的一部分,不過很少有人這麼說。後端指的是業務處理層,其作用是處理前端發送的請求,并且在處理後返回給前端。一些時候,後端也會接收非前端的請求(開放的API接口),不過後端處理的都是一些業務請求,如數據庫操作和雲計算任務調度等。

雲計算服務受後端軟件調度。這一部分一般是指運行時間較長或者需要持續運行的軟件服務,如視頻轉碼服務和爬蟲服務等。在圖2.11中,雲計算服務被分成兩部分,一部分是自身系統提供的雲計算服務,另一部分是第三方雲計算服務,它們是由第三方平台提供的。這兩部分不一定同時存在,需要根據具體項目情況而定。

我們把IaaS、PaaS和SaaS分層架構與前端、後端和雲計算服務分層架構合并,并加上一些技術說明(技術說明是參照1.2.7小節中的圖1.11添加的),就可以得到一個完整的技術架構,如圖2.12所示。

網站系統架構設計三層架構的優點(在架構師的角度去看大型網站架構面臨的挑戰)4

圖2.12 完整的技術架構

圖2.12基本能表述清楚一些必要的技術細節、系統邏輯和子系統劃分,具體項目可以根據實際需要補充或省略一些細節。但這樣的架構圖隻是架構設計的一部分,一般還需要使用其他輔助文檔進一步明确細節。不過對架構有了清晰的理解後,其他文檔的編寫并不複雜。

本文給大家講解的内容是大型網站架構面臨的挑戰:技術架構的基本思路
  1. 下篇文章給大家講解的内容是大型網站架構面臨的挑戰:大型網站技術架構的核心問題
  2. 覺得文章不錯的朋友可以轉發此文關注小編;
  3. 感謝大家的支持!
,

更多精彩资讯请关注tft每日頭條,我们将持续为您更新最新资讯!

查看全部

相关科技资讯推荐

热门科技资讯推荐

网友关注

Copyright 2023-2024 - www.tftnews.com All Rights Reserved