阿里云:大型互聯網應用架構之分發和存儲實踐
發布時間:2015/2/6 9:42:00 訪問次數:1001
1月31日,阿里云課堂在北京再次開課,聚焦于“大型互聯網應用架構之分發和存儲”的技術和實踐分享。由阿里云web平臺組研發專家姚偉斌(花名:文景)和阿里云飛天存儲服務研發高級專家李文兆擔任講師。14:00點不到,架構師、工程師和實踐用戶已經將260人的會場擠的滿滿當當,最后進來的小伙伴們只好站在了后排的通道中。現場為何如此火爆?這
- 51電子網公益庫存:
- MC9S08LG32CLH
- MPVZ4006GW7U
- MC908QC8CDXE
- MC908QC16CDRE
- MC9S08SH32CTL/R
- MC908QY4ACPE
- MC9S08AC16CFGE
- SCS8AC60EACFGE
- MC9RS08KA2CDB
- MCIMX257CJM4
- MC34704BEP/R2
- SGTL5000XNLA3/R2
cdn如此重要。以至于在最初的圖片cdn應用之后,2008年淘寶已著手建立自己的cdn。多年積累下來,一線機房布局完整,技術也比較成熟。2014年3月,阿里云正式商用cdn時,已經發展至數百節點,覆蓋30多個國家,單節點10臺機器擁有40gbps吞吐能力。海外也已經有30多個節點。微博、唱吧、雪球都是cdn服務的典型用戶,效果對比極為明顯。2015年,姚偉斌表示:“圖片cdn和阿里云cdn,邏輯配置和節點都已經共享,一切都在云上。”
仔細看cdn關鍵組件,可以分為以下幾個部分:ip庫:apnic、maxmind等數據源多樣,通過淘寶收貨的ip地址進行校正;ecs?用戶可以免費調?用。
調度系統:通過地域和監控實現調度。
節點緩存系統:內存、ssd、sata三級緩存,支持各種尺寸的文件,熱點實現自動遷移,訪問速度快。
配置系統:按需加載、更新,10萬域名的配置約消耗500m內存,全網分鐘級別的配置?生效,高可靠、可運維。
刷新系統:notify機制,利用cache下載,自定義hash key,支持多副本刷新等。
日志系統:支持多臺目標服務器負載均衡,10分鐘左右即可將線上日志傳到oss,每天數百t的離線日志寫入odps進行數據分析。姚偉斌還重點介紹了應用加速方案,包含tcp協議棧優化,動態內容加速(內容優化、路由優化),視頻和大文件,無線加速等。值得注意的是,cdn和安全往往密不可分。在4層和7層ddos攻擊防御時,cdn和云盾(阿里云安全服務)的配合尤為密切。姚偉斌舉了一個7層攻擊的案例:“日前,針對一個小站突然遭受了攻擊,響應約15kb,規模約15萬qps,阿里云抵擋了99.4%的攻擊,節省了17g的流量,有效保證了用戶的服務。”開放存儲架構以及應用實踐作為阿里云最基礎的云服務之一,開放存儲服務(oss)是基于飛天平臺,提供“高可用性、高可靠性,海量的對象數目,任意大小數據對象,公共服務,安全”的存儲服務。李文兆在題為“開放存儲架構和應用實踐”的分享中,重點談到了oss的設計原則:硬件故障透明,數據的多份拷貝分布在不同機架/機房,易擴展(容量擴容,自動應對爆發式訪問),各層都要考慮到安全。http://kfx.51dzw.com/
開放存儲服務架構是用戶請求到云盾,再到負載均衡,然后是前端的協議接入層(協議處理、訪問控制、qos),數據訪問層(分區、索引),持久存儲層(持久、冗余、容錯)。其中主要概念有四個:service:oss提供給用戶虛擬存儲空間,每個用戶擁有一個到多個bucket(普通用戶最多10個)。
bucket:bucket是oss的命名空間,bucket name在整個oss具有全局唯一性。
object:在oss中,每個文件都是一個object。
accesskeyid、accesskeysecret:安全標識,為訪問oss做簽名驗證。具體來看:bucket在功能方面,包含創建/修改/讀取/刪除,acl(私有、開放讀,開放讀寫),防盜鏈,訪問日志歸檔,異地數據容災(如杭州、青島、北京、香港等數據中心都部署了oss,在某地創建之后,部署到其他節點)等。
object在功能方面,也包含創建/修改/讀取/刪除,multipart object與斷點續傳,url簽名,put與post不同使用場景等。為了加深大家對oss的使用感受,李文兆特別舉了一個例子:
一家互聯網創業企業,業務是手機端圖片云存儲。比如幫助用戶在本地存儲縮略圖,節省手機空間;提供云照片沖印等。創業之初,他們的it架構很簡單,通過阿里云的虛擬機,搭建web app server,最初2-3臺的時候可以,但擴展到40-50臺的時候,計算資源和存儲節點都不夠用(因為云磁盤限制在8tb,數據在向上擴展,需要繼續橫向擴展磁盤)。而最初他們的架構這方面考慮的不多,如果在云磁盤的基礎上增加,一方面存儲容量擴容有限,另一方面存儲性能擴展需要修改,最關鍵的是圖片尺寸和類型各異帶來處理極為費勁。這樣情況下,通過oss和技術上的優化,實現了架構的改變。數據直接從用戶端上傳到oss,appserver只是控制流,所以帶寬可以節省下來。通過url簽名,帳號密碼等都存儲在app server上,用戶需要服務的時候,app server在幾秒鐘或者幾分鐘有效的方式,返回到手機端,通過手機端寫入,非常安全,而且節省帶寬。當用戶數量越來越多,為節省資源提升服務,可以做讀寫分離,讀通過cdn和存儲,實現圖片壓縮和類型轉化。
總結下來就是:用oss解決存儲瓶頸;
用圖片動態服務生成各種圖片;
讀寫分離;
弱安全容器訪問oss;
表單提交和跨域訪問;
數據單走oss減少vm臺數;
cname屏蔽oss域名,保持了切換的靈活性。不止如此,通過阿里云的北京、青島、杭州、深圳、香港的數據中心,企業還能輕松實現異地容災和就近回源。事實上,oss作為阿里云的基礎服務,目前已經應用的十分廣泛:不僅有微盟、有道、得圖這樣的創業公司,還有聯想、宏基這樣的傳統企業,以及公安部、貴州政務系統等。精彩問答阿里云課堂為架構師、工程師和實踐用戶們留下了充足的與講師的互動時間。在提問環節,小伙伴們的問題質量都很贊,專家們的回答同樣極為精彩。
問:cdn如何支持游戲架構?沒有對特定行業做優化?
答:目前阿里云cdn更多是針對場景來做的產品,比如分發,動態鏈路優化等。是針對手游、頁游、端游等游戲,其中如安裝包下載(流量大),網頁的動態加速,四層攻擊的防御等都是共性需求而涉及的。
問:服務上線之前都需要做測試。阿里云的產品測試是用迭代壓力還是線上來做?設計的架構是怎么樣的?
答:在研發方面都需要測試。開發軟件要有單元測試的覆蓋率,要到50-60%。開發做測試后,會提交給qa進行黑盒測試,然后放到日常環境(完全測試環境),用應用來做流量測試。最后才會放到線上,做幾個幾點的灰度測試,看功能;然后節點慢慢增多,最終做到全網。
問:面對可以預計的劇增的訪問量,如何在上線之前,保證架構設計的彈性?有沒有什么經驗可以分享?
答:在系統設計之初,要預留一個一個數量級來準備。比如cdn刷新系統,幾千的量級,但可支持到幾萬。在配置系統方面,1-2w,而跑到100w是可以的。cdn能否服務1000個節點,100萬的用戶等,要用目標來設計系統。而隨著用戶的增多,一些特殊需求也要持續優化。比如淘寶cdn重視的是穩定性和服務能力,而阿里云面對海量用戶,設計點是不同的。所以攝制之初,要有預留。
問:cdn和云盾的關系?
答:架構是一致的。尤其是在防4層,500gb以上的攻擊規模。cdn前面是有特殊設備做抵擋的,發現攻擊做清洗后才會轉到cdn上。7層,云盾也和cdn密切配合。waf也是。
問:cdn服務如何計費?是分發區域,文件大小,帶寬占用等么?
答:我們是按照流量計費和按照峰值帶寬兩種計費模式。
問:流媒體,傳統cdn做靜態視頻放到cdn上。直播類的場景如何解決?
答:m318和ts文件。對延遲較為敏感。預設到cdn中。rtmp等方式也在測試中。
問:存儲方面有沒有其他的文件轉換服務?比如pdf轉成ppt,還有視頻轉化服務?
答:圖片轉換服務是有的。圖片轉碼服務已經在公測,很快會對外商用。pdf轉成word等,還沒有,但要看需求,后面會考慮。
問:怎么看待tfss?
答:tfss在業內也有很多企業在用。我知道的就有企業自己搭建的tfss用了一百來臺這樣的機器。但隨著規模的擴大確實遇到了一些問題,現在和我們溝通,想遷移到oss上。
問:s3實現了弱一致性。而oss是三份寫入實現強一致性。如何考慮的?
答:我們確實做到的了強一致。就是說寫下去以后它的數據就是一致的。寫是一個過程,要注意提高它的存儲和數據寫入的一致性。當寫到數據中心的時候,已經有3份備份了。比如說我們的城市被光纜因為各種原因被斷了,可以將數據從杭州同步到北京,或者更遠同步到美國來保證數據的安全。
問:服務器ecs是否建立在存儲上面?磁盤的性能包括存儲的性能,他們中間的讀寫是多少?有沒有限制?比如說在ecs限制上是多少?
答:我試著回答一下,最好是到阿里云官網直接找客服。ecs不是建立在oss之上的,其是建立在一套類排骨的,可以隨機插寫的一套分布式文件上面,也就是說它的虛擬機本身的存儲是建立在類排骨的分布式文件系統上面的,oss是http的協議出去的。那套類排骨的文件系統可以理解為直接加載進去就是快設備,所以其性能跟oss的性能是無法比較的。
1月31日,阿里云課堂在北京再次開課,聚焦于“大型互聯網應用架構之分發和存儲”的技術和實踐分享。由阿里云web平臺組研發專家姚偉斌(花名:文景)和阿里云飛天存儲服務研發高級專家李文兆擔任講師。14:00點不到,架構師、工程師和實踐用戶已經將260人的會場擠的滿滿當當,最后進來的小伙伴們只好站在了后排的通道中。現場為何如此火爆?這
- 51電子網公益庫存:
- MC9S08LG32CLH
- MPVZ4006GW7U
- MC908QC8CDXE
- MC908QC16CDRE
- MC9S08SH32CTL/R
- MC908QY4ACPE
- MC9S08AC16CFGE
- SCS8AC60EACFGE
- MC9RS08KA2CDB
- MCIMX257CJM4
- MC34704BEP/R2
- SGTL5000XNLA3/R2
cdn如此重要。以至于在最初的圖片cdn應用之后,2008年淘寶已著手建立自己的cdn。多年積累下來,一線機房布局完整,技術也比較成熟。2014年3月,阿里云正式商用cdn時,已經發展至數百節點,覆蓋30多個國家,單節點10臺機器擁有40gbps吞吐能力。海外也已經有30多個節點。微博、唱吧、雪球都是cdn服務的典型用戶,效果對比極為明顯。2015年,姚偉斌表示:“圖片cdn和阿里云cdn,邏輯配置和節點都已經共享,一切都在云上。”
仔細看cdn關鍵組件,可以分為以下幾個部分:ip庫:apnic、maxmind等數據源多樣,通過淘寶收貨的ip地址進行校正;ecs?用戶可以免費調?用。
調度系統:通過地域和監控實現調度。
節點緩存系統:內存、ssd、sata三級緩存,支持各種尺寸的文件,熱點實現自動遷移,訪問速度快。
配置系統:按需加載、更新,10萬域名的配置約消耗500m內存,全網分鐘級別的配置?生效,高可靠、可運維。
刷新系統:notify機制,利用cache下載,自定義hash key,支持多副本刷新等。
日志系統:支持多臺目標服務器負載均衡,10分鐘左右即可將線上日志傳到oss,每天數百t的離線日志寫入odps進行數據分析。姚偉斌還重點介紹了應用加速方案,包含tcp協議棧優化,動態內容加速(內容優化、路由優化),視頻和大文件,無線加速等。值得注意的是,cdn和安全往往密不可分。在4層和7層ddos攻擊防御時,cdn和云盾(阿里云安全服務)的配合尤為密切。姚偉斌舉了一個7層攻擊的案例:“日前,針對一個小站突然遭受了攻擊,響應約15kb,規模約15萬qps,阿里云抵擋了99.4%的攻擊,節省了17g的流量,有效保證了用戶的服務。”開放存儲架構以及應用實踐作為阿里云最基礎的云服務之一,開放存儲服務(oss)是基于飛天平臺,提供“高可用性、高可靠性,海量的對象數目,任意大小數據對象,公共服務,安全”的存儲服務。李文兆在題為“開放存儲架構和應用實踐”的分享中,重點談到了oss的設計原則:硬件故障透明,數據的多份拷貝分布在不同機架/機房,易擴展(容量擴容,自動應對爆發式訪問),各層都要考慮到安全。http://kfx.51dzw.com/
開放存儲服務架構是用戶請求到云盾,再到負載均衡,然后是前端的協議接入層(協議處理、訪問控制、qos),數據訪問層(分區、索引),持久存儲層(持久、冗余、容錯)。其中主要概念有四個:service:oss提供給用戶虛擬存儲空間,每個用戶擁有一個到多個bucket(普通用戶最多10個)。
bucket:bucket是oss的命名空間,bucket name在整個oss具有全局唯一性。
object:在oss中,每個文件都是一個object。
accesskeyid、accesskeysecret:安全標識,為訪問oss做簽名驗證。具體來看:bucket在功能方面,包含創建/修改/讀取/刪除,acl(私有、開放讀,開放讀寫),防盜鏈,訪問日志歸檔,異地數據容災(如杭州、青島、北京、香港等數據中心都部署了oss,在某地創建之后,部署到其他節點)等。
object在功能方面,也包含創建/修改/讀取/刪除,multipart object與斷點續傳,url簽名,put與post不同使用場景等。為了加深大家對oss的使用感受,李文兆特別舉了一個例子:
一家互聯網創業企業,業務是手機端圖片云存儲。比如幫助用戶在本地存儲縮略圖,節省手機空間;提供云照片沖印等。創業之初,他們的it架構很簡單,通過阿里云的虛擬機,搭建web app server,最初2-3臺的時候可以,但擴展到40-50臺的時候,計算資源和存儲節點都不夠用(因為云磁盤限制在8tb,數據在向上擴展,需要繼續橫向擴展磁盤)。而最初他們的架構這方面考慮的不多,如果在云磁盤的基礎上增加,一方面存儲容量擴容有限,另一方面存儲性能擴展需要修改,最關鍵的是圖片尺寸和類型各異帶來處理極為費勁。這樣情況下,通過oss和技術上的優化,實現了架構的改變。數據直接從用戶端上傳到oss,appserver只是控制流,所以帶寬可以節省下來。通過url簽名,帳號密碼等都存儲在app server上,用戶需要服務的時候,app server在幾秒鐘或者幾分鐘有效的方式,返回到手機端,通過手機端寫入,非常安全,而且節省帶寬。當用戶數量越來越多,為節省資源提升服務,可以做讀寫分離,讀通過cdn和存儲,實現圖片壓縮和類型轉化。
總結下來就是:用oss解決存儲瓶頸;
用圖片動態服務生成各種圖片;
讀寫分離;
弱安全容器訪問oss;
表單提交和跨域訪問;
數據單走oss減少vm臺數;
cname屏蔽oss域名,保持了切換的靈活性。不止如此,通過阿里云的北京、青島、杭州、深圳、香港的數據中心,企業還能輕松實現異地容災和就近回源。事實上,oss作為阿里云的基礎服務,目前已經應用的十分廣泛:不僅有微盟、有道、得圖這樣的創業公司,還有聯想、宏基這樣的傳統企業,以及公安部、貴州政務系統等。精彩問答阿里云課堂為架構師、工程師和實踐用戶們留下了充足的與講師的互動時間。在提問環節,小伙伴們的問題質量都很贊,專家們的回答同樣極為精彩。
問:cdn如何支持游戲架構?沒有對特定行業做優化?
答:目前阿里云cdn更多是針對場景來做的產品,比如分發,動態鏈路優化等。是針對手游、頁游、端游等游戲,其中如安裝包下載(流量大),網頁的動態加速,四層攻擊的防御等都是共性需求而涉及的。
問:服務上線之前都需要做測試。阿里云的產品測試是用迭代壓力還是線上來做?設計的架構是怎么樣的?
答:在研發方面都需要測試。開發軟件要有單元測試的覆蓋率,要到50-60%。開發做測試后,會提交給qa進行黑盒測試,然后放到日常環境(完全測試環境),用應用來做流量測試。最后才會放到線上,做幾個幾點的灰度測試,看功能;然后節點慢慢增多,最終做到全網。
問:面對可以預計的劇增的訪問量,如何在上線之前,保證架構設計的彈性?有沒有什么經驗可以分享?
答:在系統設計之初,要預留一個一個數量級來準備。比如cdn刷新系統,幾千的量級,但可支持到幾萬。在配置系統方面,1-2w,而跑到100w是可以的。cdn能否服務1000個節點,100萬的用戶等,要用目標來設計系統。而隨著用戶的增多,一些特殊需求也要持續優化。比如淘寶cdn重視的是穩定性和服務能力,而阿里云面對海量用戶,設計點是不同的。所以攝制之初,要有預留。
問:cdn和云盾的關系?
答:架構是一致的。尤其是在防4層,500gb以上的攻擊規模。cdn前面是有特殊設備做抵擋的,發現攻擊做清洗后才會轉到cdn上。7層,云盾也和cdn密切配合。waf也是。
問:cdn服務如何計費?是分發區域,文件大小,帶寬占用等么?
答:我們是按照流量計費和按照峰值帶寬兩種計費模式。
問:流媒體,傳統cdn做靜態視頻放到cdn上。直播類的場景如何解決?
答:m318和ts文件。對延遲較為敏感。預設到cdn中。rtmp等方式也在測試中。
問:存儲方面有沒有其他的文件轉換服務?比如pdf轉成ppt,還有視頻轉化服務?
答:圖片轉換服務是有的。圖片轉碼服務已經在公測,很快會對外商用。pdf轉成word等,還沒有,但要看需求,后面會考慮。
問:怎么看待tfss?
答:tfss在業內也有很多企業在用。我知道的就有企業自己搭建的tfss用了一百來臺這樣的機器。但隨著規模的擴大確實遇到了一些問題,現在和我們溝通,想遷移到oss上。
問:s3實現了弱一致性。而oss是三份寫入實現強一致性。如何考慮的?
答:我們確實做到的了強一致。就是說寫下去以后它的數據就是一致的。寫是一個過程,要注意提高它的存儲和數據寫入的一致性。當寫到數據中心的時候,已經有3份備份了。比如說我們的城市被光纜因為各種原因被斷了,可以將數據從杭州同步到北京,或者更遠同步到美國來保證數據的安全。
問:服務器ecs是否建立在存儲上面?磁盤的性能包括存儲的性能,他們中間的讀寫是多少?有沒有限制?比如說在ecs限制上是多少?
答:我試著回答一下,最好是到阿里云官網直接找客服。ecs不是建立在oss之上的,其是建立在一套類排骨的,可以隨機插寫的一套分布式文件上面,也就是說它的虛擬機本身的存儲是建立在類排骨的分布式文件系統上面的,oss是http的協議出去的。那套類排骨的文件系統可以理解為直接加載進去就是快設備,所以其性能跟oss的性能是無法比較的。
上一篇:蘋果新產品發布時間曝光