《阿里雲運維架構秘籍》筆記


《阿里雲運維架構秘籍》

主要講述的是:基於阿里雲的雲服務器如何進行調優運維。

 

雲端最熱門的互聯網應用,當屬電商、游戲、移動社交、金融等。

在技術層面上,無非是java、php、python等開發語言,oraclemysqlsqlserver等關系型數據庫,以及mongodbredismemcache等非關系型數據庫。

架構層面,無非是集群、負載均衡、緩存、文件存儲、分布式等架構。

即使業務千奇百怪,回到架構層還是一樣的,只不過針對不同業務,在架構中的考量和偏移會有所不同。

雲端電商架構應用

業務特點:優惠活動、商品圖片(靜態資源幾乎占了業務請求流量的80%

技術特點:高並發

技術解決:彈性伸縮(解決促銷活動的時候,訪問人數、並發數量增大)、CND緩存(解決商品圖片、視頻比較多,變化不大,但經常訪問)

雲端移動社交

業務特點:海量(用戶、圖片、視頻)

技術特點:大量信息存儲

技術解決:非關系型數據庫存儲、OSS對象存儲分布式文件系統、CND緩存(全是為了解決圖片、視頻、文件等資源的存儲和訪問)

雲端金融架構應用

業務特點:安全

獨立公有雲,單獨部署金融雲(主要解決的是安全,其他方面根據實際業務調整)

 

阿里雲主要常用有5個雲產品

ECS(Elastc Compute Service)彈性雲服務器

RDS(Relational Database Service)關系型數據庫

SLB(Server Load Balance)負載均衡

OSS(Object Storage Service)對象存儲服務

VPC(Virtual Private Cloud)專有網絡

 

使用雲服務五個技術優勢

1 安裝配置方面

2 調優方面(比如mysql調優)

3 備份方面

4 高可用(比如ECSOSS都是三副本的數據冗余)

5 安全性方面(不用考慮攻擊)

 

指標

計算周期

含義

PV

Page View的簡寫,頁面瀏覽量或點擊量。一般指web類業務一天內頁面的訪問次數。每打開或刷新一個頁面,就算一個PV

UV

UVUnique Visitor簡寫,獨立訪客數。Web類業務一天內訪問站點的用戶數(以Cookie為依據)。如果更換了IP但不清除cookies,再訪問相同網站,UV是不變的。如果不保存cookies訪問/清除了cookies,計數會加10000-2400內相同客戶端多次訪問一個網站只計為1個訪客。

IP

Web類業務一天內有多少獨立的ip瀏覽了頁面,即統計不同的IP瀏覽用戶數量。同一IP不管訪問了幾個頁面,獨立IP數均為1;不同的IP瀏覽頁面,計數會加1IP是基於用戶廣域網IP地址來區分不同的訪問者的,所以,多個用戶(多個局域網IP)在同一個路由器(同一個廣域網IP)內上網,可能被記錄為一個獨立IP訪問者。

用戶數

 

一般指業務系統的注冊用戶數

活躍用戶數

按天

指注冊用戶數中,一天中實際使用了業務系統的用戶數量,跟UV差不多

在線用戶數

按天

指一天的活躍用戶數中,用戶在一定的時間段內的在線數量

並發用戶數

 

指在線用戶數基礎上,某一時刻同時向服務器發送請求的用戶數

 

一個網吧里有5台電腦使用同一個IP,此時五個人同時打開同一個網站,並且每個人都刷新了2次。這種情況,網站的數據為:10PV5UV1IP

 

一天的80%業務請求主要發生在40%的時間內,這成為我們計算PV值對應請求的依據。

PV請求計算模型如下:

每秒處理請求數量=80%*PV量)/24小時*60*60*40%

用戶數、活躍用戶數、在線用戶數計算模型:

用戶數*業務因子(10%-30%=活躍用戶數

活躍用戶數*業務因子(10%-30%=在線用戶數

在線用戶數*業務因子(10%-30%=並發數 約=每秒請求數

1816G的雲服務器基本一天能處理web應用上百萬的請求,所以可以對應100PV。因此可以參加如下表:

PV量和服務器配置、RDS配置性能對應表

PV(萬)

服務器配置

RDS(數據庫服務器)配置

1

1/1G/1

10

2/4G/1

1/1G

50

4/8G/1

24G

100

8/16G/1

4/8G

500

8/16G/10

8/16G

1000

8/16G/20

16/64G

互聯網企業的服務器CPU利用率平均在10——20%,磁盤空間的利用率在20%——30%。在雲端,80%企業存在資源核存儲閑置浪費的現象。

阿里雲最常見的配置是11G12G24G48G416G816G832G1664G16128G等。不管多少核多少GCPU核數與內存大小的比是11121418。他們的應用場景及適合部署的軟件服務匯總如下:

CPU與內存資源配比11

適用於個人網站、官網等小型網站部署,一般低配機器中,如11G22G。基於雲端實踐,很少看到基於44G88G1616G的配比。

CPU與內存資源配比12

12的處理器與內存配比可獲得最優計算資源性價比,不管是線下IDC的物理服務器,還是雲端ECS服務器的配置,12均為黃金比例。比如12G24G48G816G1632G,這些都是實踐中的黃金比例配置。12的配適用於絕大部分業務場景部署,尤其是需要消耗高資源的計算。如端游、頁游、手游。在電商類高並發、秒殺活動類應用中使用得也特別廣泛。使用最多的是816G816G這個偏向與中大型web服務器/應用類部署。Tomcat適合中低配24G或者48G。因為Tomcat是單進程多線程的模式,是個輕量級且並發求請求數最多只能跑到1000左右。所以單台高配置的Tomcat的服務器並不能跑滿服務器性能,會造成很大資源浪費。如果想跑滿,常規做法是一台服務器上部署多個Tomcat

CPU與內存資源配比14

比如28G416G832G。這類配比的配置偏向與內存,特別適合數據庫類的應用。14尤其適合型數據庫。832G是保障數據庫具有良好性能的經典配置。但數據庫數據是需要持久化,也就是寫在硬盤上面的。需要SSD雲盤提供高存儲低讀寫延時。所以數據庫對服務器首先要求的是I/O,其次才是內存。高內存會有效提升數據庫的緩存性能,很大程度上提升數據庫的性能。數據庫其實對CPU要求並不高,所以偏向內存的配置,適合數據庫部署。

CPU與內存資源配比18

比如216G432G864G。這類是高內存資源占比。尤其適合內存型數據庫應用,比如redismemcache的部署。在實踐中,如果用816G部署一台Redis,會造成性能過剩。redis是單進程單線程模式,對多核利用得不太好,所以適合向14或者18的高內存資源配比考慮。如果想要redis把多核性能利用好,可以考慮一台機器上多部署幾個redis

磁盤空間選擇參考如下

如果沒有文件存儲,只有linux系統日常基礎日志存儲,系統磁盤就足夠了。

如果是部署代碼的應用(如Java編寫后生成的jar包或者war包放到tomcat上面),一般tomcat要輸出日志,程序本身也有日志輸出。所以系統盤默認的40G容量空間不夠,一般選用100G-300G磁盤空間是標配。如果還需要存儲用戶上傳的文件,可根據具體情況在評估。數據庫類的應用,磁盤空間一般需求較大,都是500G以上。要存儲數據庫的Binlog、數據文件、備份等。數據庫需要對數據讀寫有要求,即對磁盤I/O要求,一般采用高效雲盤或者SSD雲盤。

通過實踐發現,100G300G500G存儲空間對企業服務器配置是標配,但80%企業服務器磁盤利用率僅在20%-30%

帶寬選擇8/2原則

很多人選擇固定帶寬。比如1Mbps2Mbps5Mbps10Mbps20Mbps,事實上,大多數情況沒有必要。80%應該選擇按量帶寬。20%選擇固定帶寬。如果每天按量下載的量合計費用超過帶寬平均每天費用,則使用固定帶寬。

DevOps發展的四個階段

1 人工階段

2 腳本階段

 3 平台化階段

4 智能化階段

雲端共享文件存儲的方法

1 Rsync文件共享部署

不是實時同步的,需要手動執行或者定時任務

Rsync只適合兩台服務器之間同步

2 Rsync+Inotify文件共享

Inotify是監控工具,監控目錄或文件的變化,然后調用Rsync進行數據同步。

Inotify實現工具工具有3款:Inotify本身、SersycnLsyncd。實踐中建議選擇Sersycn

3 NFC文件共享實踐

RsyncRsync+InotifySersycn更多應用於定時/實時單向同步,很少雙向。如果是墮胎機器的數據共享。一般建議NFSNetwork File System,網絡文件系統)。開源的解決方案中,NFC是標准的文件共享解決方案。

4 NAS文件共享(阿里雲)

5 OSS文件共享(分布式存儲)

監控方案一:Shell/Python

應用場景:通過Shell或者Python腳本完成監控。這個監控解決方案一般用於不懂運維的研發人員,他們一般沒聽說過監控系統,所以就用自己擅長的開發語言,來完成日常的監控需求。

功能特點:主要通過腳本編碼做些系統基礎監控指標(CPU/內存/網卡/磁盤)報警

缺點:缺乏中間件、應用層監控。缺乏監控數據存儲、數據查看等監控集中管理平台。

監控方案二:Nagios

物理機體系下,用的比較多的監控軟件是Nagios

應用場景:IT基礎架構監控,主要應用在主機系統、交換機路由等網絡設備的監控上。

功能特點:偏向主機系統、交換機路由器等網絡設備監控。

缺點:圖形化差、很多功能通過插件化來實現,對技術能力要求很高、偏向主機層監控,在NginxTomcat等應用中間件方面監控少

監控方案三:Nagios+Cacti

Cacti可以單獨部部署使用以監控網絡流量、監控數據圖形界面展現效果比較好。

應用場景:Nagios+Cacti是物理機階段最佳監控解決方案。

功能特點:Cacti良好的數據展示,彌補了Nagios監控軟件的不足。

缺點:對技術能力要求很高、偏向主機層監控,在NginxTomcat等應用中間件方面監控少

監控方案四:Zabbix

應用場景:企業級IT監控。

功能特點:主機、網絡、中間件、日志等性能監控成熟完善。詳細報表圖標繪制、支持自動發現網絡設備和服務、支持分布式集中管理、完善的API,支持企業定制化開發。

缺點:Zabbix用的是mysql為主的關系型數據庫,服務端數據庫有局限性。

需要在監控的目標主機中安裝Agent,存在安全隱患。

對容器監控支持的不太好。

監控方案五:阿里雲監控、駐雲監控

監控方案六:Prometheus+Alertmanager+Grafana

Prometheus主要監控容器

應用場景:監控系統、時序數據庫。只要有標准的HTTP協議的Metric數據,就能監控到Prometheus

功能特點:

基於時序數據庫(NOsql數據庫)的多維數據庫模型,同樣適用於物聯網海里數據存儲及監控。

靈活的數據模型,特別適用於對於動態靈活性高的容器監控。

不需要Agent,只要監控目標能安卓標准的HTTP協議提供數據,即可完成監控。

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM