亞馬遜雲服務(AWS)是全球最大的雲服務提供商,目前它在全球擁有24個地理區域,77個可用區(AZ)。如此龐大的雲基礎設施是如何運維的,一直以來都備受業界關注,而多年來AWS很少談及這個話題。
在今年的亞馬遜re:Invent在線峰會上,AWS首次揭開了自己雲基礎設施的神秘面紗,從數據中心的供電管理系統,雲數據中心的延遲,到晶片的研發等等,雖然只是冰山一角,但可以從不同的視角更加直觀、清晰的了解AWS是如何修煉「內功」的。
讓深度睡眠不再「奢侈」
在AWS全球基礎架構和客戶支持資深副總裁Peter DeSantis看來,「AWS保持如此龐大、複雜的雲基礎設施的穩定性和可靠性沒有捷徑,是靠一步一步的積累走出來的,必須對每個細節進行研究」。
對於負責數據中心運維的工程師而言,充分的睡眠是相當「奢侈」的東西,因為他們會時刻收到來自數據中心基礎設施中的各項報警郵件、簡訊等信息,Peter也不例外。
Peter通過數據中心的配電系統和UPS管理來展示其如何通過良好的數據中心運維手段來保證自己的睡眠質量,十分形象。圖上的橫軸為雲數據中心的複雜度,縱軸是破壞半徑,當AWS雲數據中心的發電機、配電系統和UPS複雜度越高,破壞半徑係數越高的時候,Peter的睡眠質量就處於Insomnia的失眠狀態;而當Peter通過優化AWS雲數據中心基礎設施之後,其睡眠質量得到了明顯改善,處於了Deep Sleep深度睡眠的狀態。
Peter是如何做到的?總體來看,關於AWS雲數據中心運維可總結為可靠可控,降低管理複雜度。
AWS雲數據中心的供電系統由發電機組、配電系統和UPS等組件構成。AWS為其發電機組配備了冗餘的發電機來提升可靠性。
相比於發電機可以通過冗餘來作為基礎的思考,配電系統和UPS就要複雜的多。「不論是GE、ABB還是施耐德,它們的配電開關系統功能都很完善,但挑戰是對於AWS這樣的超大規模雲數據中心而言,並不是每個功能都適用」,Peter坦言。
說白了就是配電開關的嵌入式軟體束縛了AWS數據中心運維的手腳,而AWS憑藉多年的運維經驗很清楚哪些功能適合,哪些根本不需要。比如有的功能,AWS不需要;而有的,AWS有更加優化的方案。
Peter總結了三個方面:第一,當發現軟體系統的Bug,AWS工程師的響應很快,而等配電供應商去修改周期更長;第二,有些功能與實際用途不匹配;第三,AWS需要經常優化自己的管理系統、流程等,嵌入式軟體無法保證可控性。
基於此,AWS重寫了配電控制系統,從而為其配電系統帶來了可控性,運維也更加簡單。
同樣對UPS的控制系統,AWS也通過重寫UPS控制系統來滿足自身對功能的需求。Peter特別介紹了如何為UPS電池減重,從而大大降低了UPS電池管理的複雜度。
標準的一兆瓦UPS電池重達12000磅,AWS重新定製了UPS電池,做成了5000瓦一個,可插拔的放入到機架中,並通過專有控制系統來對UPS進行管理。這樣做的好處的顯然的,「UPS電池單元體積和重量降低後,破壞半徑會降低,可插拔的方式讓工程師可秒級換掉損壞的UPS,運維複雜性大大降低」,Peter說。
「這些是AWS設計基礎架構中最重要的思維模式,思考它的破壞半徑大概有多大,同時它的複雜度有多大,從這兩個維度想辦法去提升運維穩定性」,Peter總結說。這也讓AWS雲數據中心的UPS的冗餘系統擁有了7個9的可用性,遠超行業的平均水平。
「一毫秒」是關鍵
從電商業務起家的亞馬遜,最早的數據中心位於美國西雅圖,隨著業務的發展,亞馬遜開始在美國多地建立數據中心,以滿足不斷增長的數據規模和業務需要。
在數據中心的地理位置選擇上,亞馬遜會綜合考慮諸多自然條件因素,比如雷電、龍捲風、海嘯、地震等,這就使得數據中心的之間的距離較遠。Peter說,早期亞馬遜的數據中心之間有70毫秒的延遲,如何將數據中心之間的延遲降低?於是,亞馬遜考慮到數據中心之間數據傳輸,以及自然條件的因素,找到了平衡的區域AZ概念,即在同一區域部署多個數據中心。
於是亞馬遜在2003年開始著手考慮雲業務AWS的時候,首次提出了區域(Region)和可用區(AZ)的概念。區域英文名稱Region,是指雲提供商的基礎設施所覆蓋的範圍,比如你的雲數據中心位於北美或者亞太,抑或歐洲。在《Gartner的雲基礎設施和平臺服務魔力象限》報告中,如果要參與評估,會要求雲提供商在說明格式中表述關於位置的要求:「按國家、公司開展業務所用的語言和可提供技術支持的語言所劃分的數據中心位置,供應商必須在至少三個大洲擁有經過ISO27001審核(或同等標準)的數據中心。」所以在一個區域,雲提供商會建設一組數據中心。
可用區英文簡稱AZ是指一個數據中心,即在一個區域(Region)中可包含多個可用區(AZ),AWS為每個區域標配至少三個可用區,比如AWS位於中國的北京區域(光環新網運營)和寧夏區域(西雲數據運營),至少就有6個數據中心。
「AZ之間的距離在若干英裡或幾十英裡之間,這樣的距離是保持數據中心延遲在一毫秒的關鍵」,Peter說。
也就是說在保證一毫秒關鍵的前提下,讓數據中心之間的距離拉遠,來減小數據中心的相互幹擾,甚至是雷電等不可預測因素同時給相近的數據中心帶來相互影響。
在AZ的設計上,AWS為數據中心配置獨立的網絡,供配電系統,配線系統等。
所以,AZ之間儘量的互不幹擾,獨立系統,以及低延遲等嚴苛因素的配置,不僅帶來的更好的冗餘,也將破壞半徑的影響再次降低。
如圖中所示,一個AWS區域,配備了3個獨立的可用區,以及兩個網絡接入點(Transit Center)。
「目前,AWS在24個地理區域擁有77個可用區,並已公布計劃在澳大利亞、印度、印度尼西亞、日本、西班牙和瑞士新建6個AWS區域、18個可用區」,Peter說。
同時,除了可用區架構之外,AWS也會充分考慮人對數據中心的影響。AWS數據中心執行嚴格的保密制度,「AZ所在的位置是嚴格保密的,比如所有運往AZ的硬體設備,都會首先運達一個中轉中心,再由那裡運往AZ所在的位置」,AWS大中華區產品部計算與存儲總監周舸如是說。
雲端「適用」的晶片設計
自從2015年亞馬遜收購Annapurna labs後,AWS雲上的晶片研發就在加速奔跑。如今,其自研的Graviton2處理器已經上市,同時Nitro系統也演進了到了第四代。
「AWS是目前在雲端唯一能夠提供支持英特爾、AMD、英偉達和ARM處理器的雲提供商,Nitro系統起了非常關鍵的作用」,Peter說。
正是如此廣泛的晶片支持,使得Amazon EC2計算實例,從2019年的270種跨越到了現在超過400種,並不斷給用戶帶來更具性價比的計算實例選擇。
在今年的re:Invent大會上,AWS發布了Amazon EC2 Mac實例,來支持2800萬Apple開發者在雲端構建macOS環境,並可以動態擴容,按需付費;基於AWS Graviton 2處理器的C6gn實例,可提供100 Gbps的網絡性能,與當前基於x86的同類實例相比,性價比提高了40%。
而且,在Nitro系統的加持下,AWS專門為機器學習推出了滿足模型訓練和推理的高性價比晶片,比如使用AWS自研AWS Inferentia晶片的Inf1實例,為機器學習推理帶來最優的性價比;以及剛剛發布的全新機器學習訓練晶片AWS Trainium,與標準的AWS GPU實例相比,可帶來30%的吞吐量提升,以及降低45%的單次引用成本。
為什麼AWS自研了基於Arm架構的晶片後,Graviton2很快在雲端獲得了諸多用戶的青睞?
「Graviton 2處理器跨越到了更多的領域,激活了整個生態系統,很多基於Linux系統的應用都可以快速、簡單的轉到Graviton上」,Peter說。
AWS在晶片設計上有自己的理解,「AWS要做的是真正滿足雲端性能而且省電的處理器,這是關鍵」,Peter解釋說,「所以我們自研處理儘量做到多核,以及滿足微服務的發展。」
近年來,AWS在晶片上的每一次迭代,都會給用戶帶來更優的計算實例性價比,性能提升的同時,整體成本也大幅降低。
在給用戶帶來高性價比晶片的同時,通過自研晶片的發展,AWS大大降低了其雲數據中心的碳排放,降幅達88%。
結語
Peter還提及了數據中心採購供應鏈的多元化,以及數據中心的可再生能源對AWS雲基礎設施的影響。在2015年,AWS雲數據中心中4個關鍵組件的供應商來自4個國家和地區的29個供應商,而在2020年已經變成7個國家和地區的86個供應商,多元化夯實了AWS抵禦風險的能力;同時AWS也積極擁抱再生能源,如今的規模已經達到每年6.5GW,並承諾在2025年實現100%使用再生能源。