天天看點

(大型)應用平台的基礎架構

(大型)應用平台的基礎架構,筆記摘錄自---極客時間  李運華  從0開始學架構。

0、首先是架構模型:

(大型)應用平台的基礎架構

1、存儲層

可以分成兩類,SQL資料庫,NoSQL資料庫。

SQL:一般使用MySQL。業務到一定規模後,需要分庫分表。這個要自動化,實力雄厚的大公司此時一般都會在 SQL 叢集上建 SQL 存儲平台,以對業務透明的形式提供資源配置設定、資料備份、遷移、容災、讀寫分離、分庫分表等一系列服務,例如淘寶的UMP (Unified MySQL Platf, rm) 系統。

NoSQL:一定規模後,同樣會有分庫分表問題。需要封裝成存儲平台,友善使用。

小檔案存儲:一般就使用開源平台,起步時使用雲平台更友善。

2、開發層(類似于底層作業系統平台)

盡量選擇問題域内成熟架構、和開發語言關聯的伺服器。

開發架構:一般和解決的業務問題、使用的開發語言關聯。例如:SSH、ThinkPHP等。公司内針對同一問題域應統一.

伺服器:web伺服器等

容器:虛拟機雖然跨平台,但并不如Docker在網際網路領域真正得到廣泛應用。

3、服務層(支撐服務,而非業務服務)

配置中心、服務中心、消息隊列(如Kafka)。

開發層+服務層  ,應該叫公共支撐或支撐服務層,有點類似于SOA中的ESB。

4、網絡層(參見高可靠性、可用性擴充設計)

a、負載均衡:保證性能和可用性。常見方案:DNS(HTTP-DNS),其實可以了解成根據IP位址hash來配置設定業務量;

Nginx、LVS等軟體均衡方案;F5等硬體方案。

b、CDN

c、多機房/多中心

5、使用者層、業務層

a、使用者管理:單點登入技術 / 第三方接入-授權登入 b、消息推送:一般用開源的  c、存儲雲、圖檔雲:針對小圖檔存儲。

6、平台技術

a、運維平台:  

運維平台核心的職置分為四大塊:配置、部署、監控、應急。

運維平台的核心設計要素是  “四化”:标準化(不相同的系統,封裝成規範接口)、平台化(不同系統的不同操作盡量內建到一個運維系統,該系統就是運維平台)、自動化(自動采集、歸總、重新整理)、可視化(儀表盤)

b、測試平台:自動化、對相關的用例、資源、資料和測試管理內建到一起。

c:資料平台:采集、管理分析、應用等內建到一起。

d:管理平台:核心就是權限管理,實質是身份認證、權限控制。