文 / 郭雪梅算法
雖然道歉沒法彌補給你們帶來的麻煩,可是,咱們能夠用更快的訪問速度,更好的用戶體驗,更貼心的體驗去彌補,雖然故障的事實沒法改變,但咱們的努力能夠創造更少故障的將來! 數據庫
—杜勇《進步集》安全
2014年10月15日,北京飛往杭州的飛機上,絕大多數乘客都是中國的一線開發者。他們和個人目標同樣,向着同一個地方:杭州轉塘,參加2014阿里雲開發者大會。安靜的路途中,不時能聽到關於創業、產品、技術、實踐的輕聲討論。個人腦海中盤旋的也是與多位2014阿里雲開發者大會的演講嘉賓溝通時提到的阿里雲近期發佈的新技術和他們極有表明性的實踐建議。有意思的是,不管是普通參會者仍是演講嘉賓,你們都不多提到雲服務。服務器
確實,自2013年5月大掌門與阿里雲和解等事件之際,王堅博士帶領阿里雲團隊與出現問題的客戶深刻溝通、聽取客戶的問題與建議,直接敦促提高服務質量以來,阿里雲的服務口碑有了極大提高。今年,咱們也曾深刻走訪阿里雲,感覺到了其極爲強大的服務措施和實施目標。但即便這樣,我也沒能預料到服務在阿里雲將來發展規劃中是如此重要——10月16日飛天大會場的主題是「服務不是口號,是承諾!」網絡
是的,「服務」是2014阿里雲開發者大會最爲重要的主題詞。10月16日,面對現場8000餘位開發者,阿里雲技術領軍者飛天負責人唐洪、技術保障負責人劉振飛、產品負責人張東暉直面阿里雲在服務上出現的問題,並分別從技術、運維安全保障、產品等維度坦率地講述發生問題的緣由所在,以及阿里雲將如何經過種種努力來落實對客戶的服務承諾。坐在旁邊的一位移動開發者激動地對我說:「沒說大話,說了實話。咱們能理解並尊重阿里雲的努力,你們都期待之後能更好。」架構
飛天:雲計算是一門實踐科學,自研路上關鍵技術挑戰運維
飛天是阿里雲自主研發的核心繫統,是真正在阿里雲背後爲用戶提供通用雲計算服務的平臺。飛天系統最底層是Linux集羣,沒有使用任何高端的存儲及服務器,其上包含多個模塊:分佈式文件系統盤古(Pangu),任務調度和資源管理模塊伏羲(Fuxi),從底層上監視和處理致使集羣性能降低的集羣診斷系統華佗(Huatuo),網絡鏈接的模塊夸父(Kuafu),監控系統神農(Shennong),集羣部署大禹(Dayu)和安全管理,其上承載ODPS、ECS/SLB、OSS、OTS、RDS等雲計算產品,並經過服務的方式對外輸出雲計算能力。 分佈式
阿里雲飛天負責人唐洪工具
飛天的研發路程註定不會平坦,在自主研發的路上,沒有成功的經驗能夠借鑑。在阿里雲資深總監唐洪看來,「雲計算是課本上學不到的,就靠分析一張張工單,一個個事故,看到一個藍屏和閃斷等問題以後,纔會明白雲計算的挑戰在哪裏。咱們惟一能作的就是努力,努力作好雲計算,用200%的努力來實踐。」性能
阿里雲的飛天平臺從第一行代碼開始,到支持超過百萬雲上客戶的業務,發展到今天,仍然面臨不少挑戰,而這些挑戰也是唐洪帶領的飛天團隊正在努力去解決的。分析研發中的最關鍵的技術挑戰,唐洪認爲有三點: 第一,小几率故障成爲常態;第二,怎麼樣可以下降人在服務鏈條裏面的負做用;第三,解決多租戶下性能影響的問題。
■ 小几率故障成爲常態:分佈式計算集羣裏面有成千上萬臺,幾十萬臺甚至上百萬臺服務器,每一個服務器都有不少組件,因此任何小几率事件都會被放大。如磁盤的故障,磁盤是服務裏面最容易發生故障的問題,SATA磁盤的年故障率是3%,這樣一來,5K機器天天壞4塊,100K機器每小時壞4塊。再如機器的異常,一些常見的問題有內存ECC錯誤、根分區只讀問題等等。若是有5K機器,天天壞一臺,100K機器每小時壞一臺。還有網絡故障,雖然比較可靠,但還會發生丟包、時斷時連等故障,阿里雲集羣受影響時間大約是每一年每集羣1小時。可用性不僅僅是一個機率,用戶受影響的程度並不能用機率或受影響的時間來衡量,如企業網盤,對這種業務類型的客戶來講,從分鐘到秒的距離就是生與死的界限。爲此,飛天團隊研發了名爲「華佗」的系統模塊,進行快速甄別和自動化處理,從系統層面上儘快發現並根本解決底層的故障。(詳情可參閱《凌雲》第4期《走近華佗,解析自動化故障處理系統背後的祕密》)。
■ 人是最薄弱的環節:在重複事件執行上,機器比人可靠,然而在當下飛天的運營環節中,還存在大量的人爲因素,好比配置錯誤;代碼修改後,操做流程沒有同步更新;操做流程二義性;很是規操做流程缺乏驗證;人爲操做失誤等都會形成故障。因此,在飛天后續服務中,將進一步下降人在服務鏈條中的負做用。如熱升級、御風項目來解決人爲參與比率、工做量,提高過程當中的自動化和可控性;經過搭建全部雲產品的最小化測試環境「麻雀」來減小測試盲區。
■ 多租戶環境的性能隔離:後臺負載干擾在線服務,多種環境下性能隔離的問題從系統層面根本解決是很複雜的事情。多租戶隔離能夠幫助提高彈性和成本效益,但一樣存在反面制約,若是平臺作不到不一樣用戶之間的隔離,一個用戶的應用可能就會影響到另外的用戶。好比因爲快照形成ECS和I/O性能較慢的問題。因此,要實現平衡,須要對全局進行控制,如I/O進程、網絡和單機的流控,此外還須要開發諸如影子拷貝等新手段來實現。
「困知,勉行」是唐洪心路歷程的寫照,這四個字歸納了他和他的團隊是如何理解客戶的痛點,如何理解雲計算技術,如何去作好雲計算技術的。唐洪堅信:與客戶一塊兒面對挑戰,用200%的努力實踐。只有這樣,才能作好雲計算的服務。
技術保障:作可信賴的運維與安全服務
阿里集團包括阿里雲、天貓、淘寶、支付寶、小貸在內的各項業務,以及近幾年雙11、飛天5K等諸多奇蹟的背後,阿里的技術保障部都發揮了關鍵性的基礎支撐做用。其負責人是擔任阿里巴巴集團副總裁的劉振飛,談到服務,一貫直率的振飛也有苦惱。「在咱們的服務分析中,故障和Bug的佔比大約佔四分之一,這是個人責任。但我一直困惑的是,這些年咱們將淘寶、支付寶的穩定性都能作得比較好,通過五年的雙十一,這麼大的活動也不會出現問題,卻服務很差阿里雲上看起來很是小的一個客戶。」
阿里技術保障部負責人劉振飛
想不明白的劉振飛查看了最近幾個月的投訴單,那一瞬間,劉振飛知道了緣由:雲計算有數以百萬計的客戶,業務千差萬別,產生的問題大不同;淘寶與支付寶等阿里內部的業務活動是可預知的,可以提早預判來進行風險防範,但云平臺的客戶分佈在各行各業,雲上客戶的業務高峯和低谷沒法預知,應用模式沒法判斷;淘寶、支付寶的應用開發與內部的運維密切合做,可以各自遷就互補,但咱們對雲上客戶的應用開發、部署一無所知。這些緣由使得即便雲計算平臺上一個很小的客戶,也能「搞得咱們很是狼狽。但若是我是客戶,我也會抱怨。由於確實是監控、排查工做不足」。
面對最真實的用戶聲音,他們選擇從思想上根本轉變,真正站在用戶的角度思考問題。大會現場,劉振飛表明技術保障部承諾完全解決「服務器宕機和閃斷、各地訪問雲機房的網絡質量、DDoS攻擊誤殺以及用戶服務器安全等問題」。
■ 解決服務器宕機:從供應鏈的源頭上控制服務器的質量;增強機房管理,造成標準的配置和標準的變動流程;當故障沒法避免時,儘可能將故障快速遷移。
■ 解決閃斷問題:完善產品性能;作部署的優化和網絡的排雷,對全部雲機房進行排查,尋找隱藏的盲點進行改進,從硬件上和網絡環境上減小閃斷的可能。
■ 各地訪問雲機房的網絡質量:對骨幹路由進行優化,和運營商一塊兒努力來提升服務網絡水平;作全面的網絡監控,增強排查能力,保證網絡既通又快。
■ DDoS的攻擊誤殺問題:利用阿里不斷提高的大數據處理能力改進流量清洗模型,儘量更加智能,減小誤殺,並在遇到攻擊時,第一時間通知咱們的客戶,和客戶一塊兒合做。
■ 用戶雲服務器安全:預計在11月底,推出雲服務器防禦產品,減小入侵的可能性。
劉振飛對技術保障團隊,也對全部開發者說:「咱們對本身的最新定位是作技術驅動的商業基礎設施服務商。咱們將和產品技術一塊兒努力,提供更加及時、性能更高、質量更好、價格更低、彈性和穩定性更強、更加劇視用戶體驗的雲計算服務。」
產品:打造穩定易用的產品體驗
目前,阿里雲已經對外提供了包含彈性計算、數據庫、存儲與CDN、大規模計算、安全和管理、應用服務等20項產品,以及鏡像、工具、運維服務等13項服務。但產品自己以及不一樣產品之間確實還須要打磨,要保證完整而細膩的產品體驗,穩定易用是第一關。阿里雲產品負責人張東暉認爲「不用高大上的話語,踏踏實實地作出真正以客戶導向的產品很關鍵」。
要實現「客戶導向的產品改進」這一點,首先要創建更有效的客戶溝通渠道,深刻理解客戶的需求和產品的問題;其次要千方百計爲開發者提供更加完整的開發體驗,例如:文檔準確性、API/SDK完整性、控制檯體驗等;最後是解決基礎產品的穩定性、性能和關鍵需求,尤爲是針對ECS、RDS、OSS、SLB開發者最依賴的四大件進行持續優化和改進。
對於開發者最關心的基礎產品體驗改進,張東暉從知足ECS高性能磁盤I/O需求,改進RDS穩定性,優化OSS+CDN全鏈路體驗,支持高可用應用架構等方面進行了深刻分析。
阿里雲產品負責人張東暉
知足ECS高性能磁盤I/O需求:數據可靠性和I/O性能的矛盾是雲計算的核心技術挑戰,阿里雲始終高度關注客戶數據的可靠性;針對遊戲和企業關鍵應用對高性能臨時磁盤需求強烈,阿里雲讓客戶有能力作主備;同時基於SSD的高性能臨時磁盤也將推出,適合MongoDB、PostgreSQL等數據庫,磁盤IOPS在10000以上;並不斷持續優化雲磁盤的I/O,以知足ECS高性能磁盤I/O需求。
■ 改進RDS穩定性:提升鏈接穩定性,杜絕閃斷;下降資源爭搶,提升性能穩定性,好比高吞吐量的實例爭搶CPU所形成的影響,會自動作熱點遷移,並作CPU隔離,對客戶應用無影響;增強實例空間和SQL診斷優化,提升應用穩定性。好比將自動檢查SQL是否包含子循環等,將阿里雲的DBA的經驗可以用起來。
■ 優化OSS+CDN全鏈路體驗:OSS和RDS不一樣,因爲系統不穩定,用戶常常會遇到一些性能毛刺,阿里雲針對分佈式文件系統和服務層作了深度的優化,能夠將長尾和毛刺等慢請求總體降低2-3個數量級;因爲域名劫持致使OSS存儲不可用,針對這點,阿里雲作了全鏈路監控,保證能夠儘早發現和解決域名劫持問題;客戶促銷觸發流量清洗,致使網站不可用,阿里雲會經過調整、改善流量清洗算法,避免過分防護。
■ 支持高可用應用架構:大多數基於雲的應用程序在設計時並未考慮到傳統數據中心架構,因此阿里雲要主動作到更多。大中型互聯網應用高度依賴虛擬網絡,ECS、SLB、RDS將逐步支持VPC;全面支持可用區,ECS、SLB、RDS、OCS支持可用區,並解決可用區售賣資源不足的問題;解決企業應用上雲的擋路問題,如ECS鏡像、快照跨Region遷移,ECS帳號資源轉移和共享,ECS、RDS、OSS支持主子帳號。
不斷的優化,不斷的挑戰,不斷的主動出擊,張東暉對全部雲上的開發者承諾將「產品設計從‘平臺導向’轉向‘用戶導向’」,把先進的技術轉化爲細膩的產品體驗的同時,和開發者們一塊兒打造一個穩定易用的平臺。
新的起點
夕陽西下。在參加10月16日開發者之夜的活動時,偶然看到剛剛重回阿里團隊,並負責安全的吳翰清發出的幾句感慨:
「會前各部門準備演講的時候,王堅博士把每一個Speaker叫到一塊兒,一個字一個字地摳PPT,並明確強調此次大會誰都不準吹牛,只許講用戶的痛點,而後要講對用戶承諾什麼。因此咱們私下裏都開玩笑說此次大會咱們是來認慫的,是個批鬥本身的大會。不少部門Leader所以很苦惱,不知道該怎麼講,但博士大筆一揮,該怎麼講就怎麼講。這很有點顛覆個人世界觀,由於以往參加各類大會,都是想怎麼吹就怎麼吹,而產品和服務有些瑕疵的地方,通常都不會刻意提起。但阿里雲大會此次反其道行之,自曝其短,實際上是至關須要勇氣的。這讓我想到Salesforce在解決用戶信任問題時,也採用了一樣的方法,把本身全部服務器的宕機時間都公開告訴用戶,最後贏得了尊重。我想這樣的作法,才能叫作真誠。」
而我想,將本身放得很低的阿里雲已經找到了新的起點。
從2006年雲計算在全球首次被提出,到2009年阿里雲計算正式成立,到2012年護航電商展示雲力量,再到2013年實現飛天5K……以技術驅動服務的阿里雲一路發展跌宕起伏,使人應接不暇。這其中,規模和服務、技術與實踐的矛盾衝突更是在曲線發展中交互輝映。現在,雲計算的技術力量已經被產業所承認,並逐步在更多傳統領域迅猛發展,阿里雲計算承載了更多客戶的創新與夢想,站在了一個新的起點上。而逐步參與到世界雲計算產業競爭的中國雲計算企業若是能以更加踏實的服務心態,更加開放的技術理念,優化生態系統,求同存異,取法中道。東風西漸,也許就在不遠的未來。