青雲QingCloud 在不同場景化中的雲端計算應用

arron劉發表於2016-04-20

大家好,我是青雲解決方案的陳柏文,感謝大家留到現在聽我的演講。前面是開發工程師,他們主要寫code,我來自於解決方案部門,我的主要職責是生產解決方案以及解決方案搬運工。我的演講主題比較輕鬆,主要談談很多雲端計算功能的應用。

首先,我們在雲端架構應用時要考慮到很多資料包,如何快速把資料包上傳到雲端?每個人都有自己的解決辦法。比如我在雲端搭一個FTP或是使用傳輸工具傳輸,這可能很麻煩。在青雲如何很方便的把大資料傳到雲端?這裡介紹一種方式,透過我們的物件儲存。正如Osier剛才所說,我們內部主機訪問物件儲存時走的是內網。

圖中是我在物件儲存裡放的影片,之前我訪問的時候是公開只讀,現在設為私有。我想把它上傳到雲端,再從雲端下載到主機。最方便的方式是把這個應用先上傳到物件儲存,物件儲存是一個彈性擴充套件的架構。你的頻寬有多大,我的物件儲存可以接多大的請求。比如我的頻寬20兆,傳輸速度到物件儲存是20兆。你可以先把資料包上傳到物件儲存,再從內網主機透過物件儲存拿資料的時候可以走內網。我在內網主機訪問域名時,解析的是內網地址,並且內網地址請求速度非常快,是49.1MB(Byte),相當於乘以8之後,超過300兆。這是我們非常好的方式。

現在把資料上傳到雲端,如何預測我們的業務需要多大的頻寬,一般情況下我們需要一個很有經驗的工程師,他計算高峰併發時有1000個使用者,假設我有200兆的檔案,200兆乘以1000使用者,轉換算出頻寬,這需要一個很專業的工程師做這個事。如何在青雲上很方便的完成這個工作,而不需要一個很專業的工程師呢?我們的公網IP支援流量計費,你可以不需要知道你的頻寬多大,到底是20兆、50兆或是100兆。你可以直接開100兆,我執行一段時間(一星期),執行後發現我的頻寬平時峰值是30-50兆,這時候可以按頻寬收費,不需要按流量收費,切換非常方便。我把它調成流量計費,其他友商需要包月或者包年,青雲是按秒計費,它的好處是我的頻寬可以不按我的峰值計費,按照我的常量計費。比如我每天的峰值時間可能只有4小時,這4小時我需要100兆,其他20小時都不是峰值,只需要10兆頻寬。青雲有自動伸縮功能,透過自動伸縮功能可以讓公網IP頻寬自動調節,不需要任何人為干預。

選好頻寬後,需要架構應用,面臨的問題是如何保證應用的可用性。大家知道負載均衡,名字聽起來主要做流量轉發,其實負載均衡還有一個更重要的功能叫健康檢查。負載均衡可以探測後端應用是否可用,這種探測不僅僅探測埠是否可用,更重要的是可以模擬使用者請求,探測後端應用是否可用。例如訪問百度,開啟百度首頁,負載均衡可以模擬使用者的請求,發一個七層的模擬使用者請求的動作探測後端應用是否可用。當應用出現問題時,負載均衡可以及時隔離。

有了健康檢查,下一步考慮的問題是如何更好的提高應用的訪問速度,我們有很多方案。結合負載均衡,使我的叢集足夠大;輸出有點緩慢,可以加上快取,還可用有面向服務的架構。我可以給大家提供另一種選擇——策略轉發。當大家架構網站的時候,通常網站開啟比較慢,不是因為頻寬和後端業務的問題。主要因為瀏覽器,單獨一個瀏覽器對於一個網站的併發連線是6-8個。比如京東首頁有三、四百個檔案,如果我們只有一個域名,比如  ,這個檔案有三、四百個。我除以每秒6個併發連線,它肯定會非常慢。如何解決問題,最好的辦法是做域名拆分。我把我的主頁有300個資源,將它拆成50個域名,每個瀏覽器對於每個域名都會有6-8個併發,我一次請求可以把300個檔案的資源都蓋下來。我們做域名拆分時需要很多IP解決問題,在青雲上不需要。青雲的負載均衡支援一個功能叫策略轉發。用比較專業的詞叫host switch,比如很多域名,我把這些域名解析成同一個IP地址。如何區分這麼多域名對應的IP地址,可以透過負載均衡識別,負載均衡可以支援七層流量轉發,可以探測使用者訪問到底是哪個域名。雖然是不同的瀏覽器,但解析的是同一個域名。

隨著業務的增大,我們的業務轉換成面向服務的架構。我們可以基於不同的模組、不同的壓力擴充套件叢集的大小。假設我有一個URL壓力非常大,我們可以把這個URL單獨拿出來。比如它原來和其他URL可能在一臺主機上處理,我們把它單拿出來後,放在一個叢集,這個叢集只處理這個URL的請求,這個技術叫URL Switch。我可以識別不同的URL,轉發到不同的後端伺服器上。

下面解決如何提高業務的安全性的問題。比如我現在有200臺主機,200臺主機有不同的管理部門,有專門管網路、應用的等等,我們如何更好的管理叢集的安全性問題,大家現在訪問百度,原來百度是HTTP,現在我們訪問百度會發現,雖然我輸入  ,它會自動重定向到HTTPS,這是一個加密的請求。我會在HTTP協議中封裝SSL,我把它做加密。很多人可以在後端伺服器上直接做,為什麼有一種東西叫HTTPS解除安裝呢?如果我把加密放在後端伺服器上直接做的話會帶來一個問題,使用者的請求到後端伺服器,這段請求是加密的。如果請求資料包中有攻擊的話,中間的WAF起不到任何作用,意思是七層防護裝置起不到任何作用。如何解決這個問題,青雲提供非常好的解決方案,我們有HTTPS解除安裝,我可以把加解密的請求用負載均衡來做,負載均衡和後端伺服器跑明文流量,首先使用者訪問我們的頁面是安全的,使用者請求的資料可以透過WAF做防護控制,同時減輕後端伺服器的壓力。

使用者的後端伺服器可能是HTTP的,我們現在幫它做HTTPS的解除安裝後,他可能不想改動程式碼。我們如何很方便的,只要使用者訪問過來的請求是HTTP的,我把它重定為HTTPS,在使用者無感知的情況下,青雲有很好的解決方案。我們有HTTPS重定向,不需要使用者在UI輸入HTTPS的域名,只需要按照之前的習慣輸入HTTP就可以了。

除此之外,還可以獲取客戶端地址。比如我們在做網際網路金融或是與金融相關的業務,如果用到負載均衡,現在很多負載均衡方式直接做轉換,我會隱藏客戶端源地址,後端審計不知道這個到底來自於哪,我看到的都是負載均衡過來的。這會帶來安全性問題,一旦一個使用者有攻擊,我們查不到源地址,根本無法追溯。青雲提供非常好的功能,我可以把客戶端源地址直接插在IP包或者HTTP包裡,讓後端應用可以從包裝去打,起到安全作用。

如何提高業務的彈性?負載均衡可以自己擴充伺服器大小,如何提高業務彈性。正常情況下有10臺主機提供服務,突然高峰來了,可能需要100臺,中午12點正在吃飯,業務正好來了,我得蹲在前面守著。我如何使這個動作自動化執行,青雲有一個功能叫做自動伸縮,我的負載均衡可以探測客戶端併發請求。比如客戶端併發請求是100的時候,後端伺服器1臺就夠了。1000的時候可能有10臺,100000的時候可能要100臺。這些動作可以設定成策略,只要併發請求達到觸發條件後,整個叢集會自動擴充套件。不僅可以自動擴充套件,還可以自動伸縮。比如業務高峰過去了,不需要人為把機器關掉,只需要透過自動伸縮就可以自動的把資源清除掉。前提是做到Web前端無狀態,這才能使得整個叢集的伸縮擴充套件。

還有一個功能叫固定數量,比如整個叢集有10臺主機提供服務,我們業務量不會有特別明顯的波峰波谷,可能10臺就夠了。面臨的問題是我的程式碼有Bug或者應用有問題,可能會造成其中2臺伺服器當機了,剩下8臺提供服務。這8臺不足以支撐整個叢集的請求量,我們有非常好的解決方案。我有一個固定數量,我把固定數量升成10,只要有2臺當機後,立馬起2臺,使這個叢集的規模始終是10臺,能達到承載我們業務量壓力的叢集大小。一是可以調的,二是可以疊加的。你可以對一個叢集設成多個策略,你想要多大的叢集,可以疊加多大的策略。

隨著我們的業務量的增大,我們有一個主賬號,負責我們的核心業務,我們還有很多周邊業務,需要用子賬號部署其他的業務。主賬號和子賬號之間有訪問請求需要建立,如果大家是青雲的使用者,肯定知道青雲有一個GRE功能。我這邊介紹另一個功能,青雲上可以子賬號和主賬號混合組網。大家知道VPC的概念,其中一個子網分給一個子賬號,這個子賬號可以把私有網路連線到VPC中,起到混合組網作用。主賬號和子賬號可以直接透過內網通訊,不需要透過路由器,直接點對點的通訊,效能非常高。

我們運維管理如何加強安全性。青雲提供資源協作的功能,比如我有100臺主機,我有網路組、運維組等,我的VPC、網路配置給網路組使用。其他的主機給運維組使用,同時他們不能互相干擾,網路組一旦有誤操作會影響我的線上應用。如果我只是想把某些資源固定給某個子賬號或者同級別的賬號,可以透過資源協作的功能。資源協作來自共享,這是主賬號,這是子賬號,子賬號只能看到主賬號已經分配給他的資源,我們可以對資源做細粒度的管理,比如你只能管理、Read,或是可以Read、擴充大小,但不能刪除,或是你有所有的許可權,非常詳細的管理都可以做到。

此外,我們還要保證主機訪問的安全性。大家比較方便的使用習慣是把1臺主機暴露到公網上,把22埠開啟,透過SSH直接登陸。這非常不安全。有人說使用者密碼不安全,我可以透過金鑰,金鑰可能是足夠安全的。雖然金鑰足夠安全,但它不足夠方便。比如我有100臺主機,你把100臺主機都連到公網上,這是非常麻煩的,如何解決這個問題。可以透過VPN,青雲支援Open VPN、PPTP,可以先撥號到管理路由器上,然後管理路由器透過內網地址訪問主機,不需要把主機的埠暴露在公網上,同時可以透過SSH金鑰登陸,這會足夠安全。

除了安全性要考慮,下一個要考慮的是已經上線了,執行非常良好,我估計下一階段要做宣傳活動,我預期活動會有兩、三倍的增加,我目前的架構能否足以支撐我的業務增長兩、三倍之後的量呢?我們需要完整的測試環境。在青雲上提供一種功能,非常方便構建完整的測試環境——拓撲。我們可以把現在已有的所有功能元件,包括主機、路由器、資料庫等,直接把它組成拓撲模板,直接把它編排成拓撲模板。我可以基於拓撲模板建立一個和現在執行生產環境完全一樣的測試環境,我們可以在測試環境上做壓力測試,我們不僅可以方便構建環境,同時對現有的業務不會產生任何影響。

我們在雲端架構了一個非常棒的架構,我們如何快速構建混合雲。本來我自己的資料中心有一些裝置,公有云主要用來消峰,傳統的企業架構的IT一定是按照峰值規劃的。比如我預測可能有1000萬個併發量,IT資源量肯定要足以支撐這1000萬併發的。如果我只按500萬併發的資源買硬體或者資源量,肯定扛不住。我們如何解決這個問題,按峰值規劃勢必會帶來一個問題,我的資源利用很低,大部分時間可能不超過5%,如何解決問題,可以透過構建混合雲的方式達到成本的降低。

青雲提供了非常好的方式構建混合雲,青雲直接支援IPSec或GRE模式,你可以拉專線,但相對費用比較高。青雲支援虛擬專線的方式。我們VPN不僅支援模式,它適合什麼場景,比如我有很多分支機構,我想把主站點放在雲端,我不想分支機構透過公網,而是透過加密隧道訪問進來,同時分支機構IP地址可能會變動,雖然會變動,但可以直接連到我的主站點。同時我們的負載均衡支援後端式寫IP,而不是負載均衡只能把流量轉發到雲內主機,還可以轉發到自己資料中心的主機上,只要隧道打通後,IP地址可達,我的資料怎麼轉發都可以。

如何管理海量資源。現在有500個主機,裡面有各種各樣的業務,如果我們點開首頁一看有500臺主機,這些主機都幹嘛,非常麻煩的管理,青雲提供非常好的方式。透過標籤,我可以基於業務設定不同的標籤,把不同的資源放在不同的標籤裡,點選標籤後可以基於業務看到哪些資源,這些資源利用率、使用情況怎麼樣,都可以非常方便去看。

我們如何智慧監控,比如現在要監控流量,正常情況下頻寬峰值是50兆,如果將近100兆,這可能是業務量突增,我要實時感知和獲取。比如我們業務量都是白天比較大,晚上兩、三點業務量突然變成200兆,我們不太在意。我們需要時間的維度觸發的報警,而不是隻要有報警就立馬給我。青雲提供了一個非常詳細的設定,我可以設定我們的報警生效時間,我可以設定中午生效或者晚上生效。

最後一個問題:如何省錢。我們在雲上構建很多業務系統,青雲所有的資源都是秒級計費,比如業務高峰時期需要100臺主機,業務過了高峰時期或許只需要10臺,我們可以透過定製把不需要的資源關機,關機後這些資源只有硬碟收費,CPU、記憶體不再收費。

大資料應用,比如Hadoop是專門做離線資料處理,我的業務模式是白天收集資料,晚上12點把資料匯入Hadoop叢集,算到早上6點。在這個時間段才需要Hadoop整個叢集的利用,其他時間段是不需要的。這時候可以透過定時器定時開Hadoop,用完可以把Hadoop整個叢集停掉。帶來最大的好處是經濟成本非常低。

以上是我對於各種場景的表述,大家有疑問可以溝通。

—————————————————————————————

提問:LB最大的併發數,併發數是硬體還是軟體?

陳柏文:因為我的主題主要是場景,做LB沒有系統介紹。我們LB叢集的概念是單個點的併發是10萬,如果叢集兩個結點是20萬,十個結點是100萬,一百個結點是1000萬。LB支援叢集,你看到的是單個LB結點。

提問:如果只用單個,它的併發數超過5000,還是可以超過5000?
陳柏文:這是理論值。其實沒有限制,超過5000後,整個響應速度可能會因為LB而變慢。

提問:混合雲只談了LB部分,你的混合雲如何支援儲存部分。

陳柏文:混合雲方面,從簡單到複雜分為多層,一是隻做資料轉發層面,我在雲端只負責做前端轉發,後端所有資料還是放在自己資料中心或者我自己資料中心只負責前端轉發;二是這種方式主要負責前端,同時可以在雲端架構快取層,一些熱點資料或者訪問比較頻繁的資料直接到雲端拿,比較冷的資料可以透過隧道方式去自己的資料中心拿;三是我可能在雲端架構完全一樣的環境,這勢必會帶來資料一致性等方面的問題,肯定會有其他的解決方案。

提問:現在支援嗎?

陳柏文:支援。所謂同構和異構,最後傳輸是IP層,只要IP可達都是可以處理。

提問:現在有案例嗎?

陳柏文:比如混合雲,我們最大的案例是九鼎借貸寶。不知道對它有沒有了解,剛上線第一天下載量超過300萬,上線第一週是3000萬,現在註冊量過億,在APP Store全球排名前20。它是混合雲架構,它會把很多網際網路相關的業務,包括搶紅包等放在雲端,自己核心跟錢相關的業務放在混合雲中。這種混合雲都是基於青雲搭建的。

提問:談到LB對HTTPS的解除安裝,解除安裝後伺服器之間明文可以加WAF,在雲的環境裡如何加WAF。

陳柏文:比如Nginx有一些外掛,AppCenter裡面也會有,青雲自己也會做WAF產品上線,相當於串聯放在中間,所有資料經過它進行檢測,再到後端伺服器。

提問:LB定時開關,LB是客戶還是公用的?

陳柏文:首先,青雲所有資源是軟體定義SDN,這是資源是你自己的,跟其他人沒有任何關係。

提問:使用者有虛擬負載均衡系統。

陳柏文:不僅可以有一個,可以由多個,這相當於一個個獨立資源,相當於主機,VM可以有1臺、10臺、100臺,LB也是一樣。

提問:如果把它關閉了,LB的配置呢?

陳柏文:配置不會丟,它是關閉,而不是刪除。如果刪除了,肯定沒有了。青雲提供一個很好的功能是資源回收,我有回收站,刪除後資源會保持兩小時,兩小時會找回來。

提問:LB是自己做的還是?

陳柏文:自己做的,我們LB有一個透明代理功能,首先需要資料請求經過LB,回報資料請求也在LB,但主機閘道器並不在LB上,如果要實現這個一定要透過SDN解決方式,LB是我們自己做的,我們LB和SDN實現流量的自定義控制。

提問:是一個服務鏈?

陳柏文:對。

來自 “ ITPUB部落格 ” ,連結:http://blog.itpub.net/26916835/viewspace-2084457/,如需轉載,請註明出處,否則將追究法律責任。

相關文章