青云QingCloud作為一家國(guó)內(nèi)云計(jì)算提供商,其最大的特色就是追求技術(shù)的卓越。三名創(chuàng)始人都是比較偏技術(shù)派,注重后端技術(shù)開發(fā)。青云QingCloud CEO黃允松主要是負(fù)責(zé)整體的框架設(shè)計(jì),而aaS偏后端的部分主要由甘泉負(fù)責(zé),他也是青云QingCloud整個(gè)技術(shù)的領(lǐng)導(dǎo)者。而今天接受我們采訪的青云QingCloud聯(lián)合創(chuàng)始人兼架構(gòu)師林源則主要負(fù)責(zé)中間層,主要是API層。
在近日召開的青云QingCloud Redis緩存集群服務(wù)媒體溝通會(huì)上,林源為我們?cè)敿?xì)講解了青云QingCloud推出Redis緩存服務(wù)的來龍去脈,由此我們也可以窺見青云QingCloud對(duì)于未來云計(jì)算趨勢(shì)的思考。
在2014年12月18日,QingCloud推出了Redis緩存服務(wù)。QingCloud此次推出的Redis高性能緩存集群包含多個(gè)緩存節(jié)點(diǎn),支持一主一從和一主多從的架構(gòu),并提供可持久化和自動(dòng)備份服務(wù),確保用戶數(shù)據(jù)的快速讀寫和高可用性。Redis是QingCloud推出的第一款緩存服務(wù),搭建在QingCloud穩(wěn)定、可靠、安全的IaaS之上。
林源表示,QingCloud擁有的功能更多的還是集中在IaaS層,就是最基礎(chǔ)的計(jì)算、存儲(chǔ)、網(wǎng)絡(luò)和安全,但這些對(duì)用戶來說是遠(yuǎn)遠(yuǎn)不夠的。除了計(jì)算資源外,他們還要在上面搭建自己的服務(wù),對(duì)用戶來說門檻最高的是跟數(shù)據(jù)相關(guān)的東西。比如前端的Web、Apache很簡(jiǎn)單,用戶自己可以解決,但是跟數(shù)據(jù)相關(guān)的,比如數(shù)據(jù)庫層面的技術(shù)會(huì)比較難。
從今年下半年QingCloud開始提供PaaS服務(wù),最新上線的、偏PaaS的第一個(gè)產(chǎn)品就是RDS(關(guān)系型數(shù)據(jù)庫服務(wù)),即MySQL服務(wù),就是要解決用戶比較困難的問題。有了數(shù)據(jù)庫只解決一半的問題,因?yàn)閿?shù)據(jù)庫最終還是會(huì)依賴磁盤讀數(shù)據(jù),所以它是有瓶頸的。一套完整的架構(gòu),除了數(shù)據(jù)庫之外,中間還需要緩存,我們需要把產(chǎn)品做的更全面。所以QingCloud推出了Redis緩存服務(wù)。
林源接下來詳細(xì)講解了QingCloud Redis集群服務(wù)的特點(diǎn),首先QingCloud提供的Redis是一個(gè)標(biāo)準(zhǔn)的版本,版本號(hào)是2.8.17版本,跟之前推出的MySQL服務(wù)一樣,我們提供的是標(biāo)準(zhǔn)版本,用戶之前就用Redis的話,他可以完整遷移過來。我們做的事情是給他提供了一個(gè)更好的Redis服務(wù),如果他不用我們的服務(wù),就意味著他需要自己搭建一個(gè)Redis、自己維護(hù),這是需要很高技術(shù)門檻、耗費(fèi)很大精力的事情。我們所做的就是給他提供一個(gè)高可用的、穩(wěn)定的Redis服務(wù),而且我們可以在整個(gè)運(yùn)行期間提供各種各樣的監(jiān)控和管理手段,降低他們?cè)谶@方面運(yùn)維的開銷和成本,讓用戶最終可以花更多的時(shí)間在更有意義的事情上(比如業(yè)務(wù)本身)。
總結(jié)一下QingCloud Redis緩存集群服務(wù)的特點(diǎn):
一是我們提供的Redis是一個(gè)集群服務(wù)。用戶得到的Redis是有集群概念的,集群的節(jié)點(diǎn)可以任意選擇,可以有一個(gè)主節(jié)點(diǎn)和多個(gè)從節(jié)點(diǎn)。它的目的是可以隨著負(fù)載增長(zhǎng),用戶可以隨時(shí)擴(kuò)張或者收縮節(jié)點(diǎn)的個(gè)數(shù),以滿足業(yè)務(wù)需求。
二是擴(kuò)容,我們提供了在線擴(kuò)容的能力。在運(yùn)行過程中,Redis的工作壓力可能會(huì)增長(zhǎng),主要會(huì)涉及到兩方面的擴(kuò)容,一個(gè)是橫向擴(kuò)展,另一個(gè)是縱向擴(kuò)展。橫向擴(kuò)展很簡(jiǎn)單,我們是集群服務(wù),它可以增加節(jié)點(diǎn)擴(kuò)充它讀的能力。還有一種就是內(nèi)存不夠,想增加怎么辦?可以在線擴(kuò)容,叫縱向擴(kuò)展。我們把這兩種擴(kuò)容能力提供給用戶,相當(dāng)于用戶可能在界面上通過簡(jiǎn)單的操作,甚至直接通過API的方式就可以讓整個(gè)系統(tǒng)在線上的運(yùn)維變得非常簡(jiǎn)單。
三是備份。所有數(shù)據(jù)庫,包括緩存、MySQL,它都跟數(shù)據(jù)有著緊密的關(guān)系,數(shù)據(jù)對(duì)于用戶來說是很重要,所以我們提供了備份功能,既有自動(dòng)備份,也有手動(dòng)備份,完全看用戶的需求進(jìn)行選擇。我們通過多節(jié)點(diǎn)的方式保證集群的可用性,同時(shí)我們通過備份的方式,避免客戶在生產(chǎn)過程中的誤操作造成災(zāi)難的發(fā)生,以確保數(shù)據(jù)的安全。
談到安全性,備份是其中一點(diǎn),安全涉及到數(shù)據(jù)安全和業(yè)務(wù)安全。數(shù)據(jù)安全我們通過備份方式解決;業(yè)務(wù)安全,我們知道QingCloud有一項(xiàng)比較有特點(diǎn)的功能,就是私有網(wǎng)絡(luò),我們?cè)诠性粕峡梢越o客戶提供二層隔離的私有網(wǎng)絡(luò),它跟其他用戶的網(wǎng)絡(luò)是100%二層隔離的。我們的Redis集群,包括之前提到數(shù)據(jù)庫的集群都要運(yùn)行在私有網(wǎng)絡(luò)里。所以在業(yè)務(wù)安全的層面,我們可以通過私有網(wǎng)絡(luò)做到保障。
對(duì)數(shù)據(jù)的保護(hù),QingCloud有兩個(gè)層面的方式,對(duì)于用戶所有落地的東西,QingCloud會(huì)保證你的數(shù)據(jù)都在。因?yàn)樗新涞氐臄?shù)據(jù)不單單存在當(dāng)前的物理機(jī),還是依賴我們的塊存儲(chǔ)存放的,會(huì)有多個(gè)副本,在災(zāi)難的情況下,我隨時(shí)可以恢復(fù)你的數(shù)據(jù),保證你數(shù)據(jù)不丟。備份解決的問題是什么?誤刪。這是兩個(gè)層面的問題。我們不會(huì)認(rèn)為用戶的數(shù)據(jù)是不重要的。
用戶所有的存儲(chǔ)數(shù)據(jù),最終肯定落到虛擬磁盤上。在我們物理級(jí)的層面來說,虛擬磁盤都是塊設(shè)備,都是二進(jìn)制的文件,從我們自己QingCloud的管理員來看,我們無法看到里面的數(shù)據(jù),這保證了安全。從用戶層面來看,我們一直強(qiáng)調(diào)要提供私有網(wǎng)絡(luò)和二次隔離的功能。用戶不需要對(duì)外開放的業(yè)務(wù),都應(yīng)該放在二層網(wǎng)絡(luò)隔離起來。比如數(shù)據(jù)庫跟web之間的交互,沒有必要放在公網(wǎng)上進(jìn)行,可以在私網(wǎng)就行了。你需要開放的僅僅是80端口而已,這樣的話多了一層保障。沒法100%保證安全問題,只能在我們想到的范圍內(nèi),我們把能做的事情都做了。
剩下就是跟監(jiān)控相關(guān)的,運(yùn)行過程中肯定需要監(jiān)控,我們提供大量的實(shí)時(shí)數(shù)據(jù)(如上圖)(每10秒鐘刷新一次)。一般用戶在Redis運(yùn)行過程中感興趣的數(shù)據(jù),比如內(nèi)存使用量、QPS的情況、每種類型Key的個(gè)數(shù)、操作次數(shù)、網(wǎng)卡進(jìn)出流量,總之用戶所想到和關(guān)心到的所有數(shù)據(jù),我們都通過圖表的方式展現(xiàn)出來。用戶可以通過API的方式,也可以在我們后臺(tái)上查看,可以隨時(shí)隨地知道Redis當(dāng)前運(yùn)行的狀況。有了監(jiān)控肯定不夠,還要加上告警,用戶可以對(duì)每種關(guān)心的維度或者meters設(shè)置各種各樣的閾值,當(dāng)觸發(fā)閾值的話,可以通過短信或者郵件的形式給用戶通知。接下來我們會(huì)做一件事情,我們要提供Auto Scaling的服務(wù),這是一個(gè)通用的框架,在告警之外有了Auto Scaling的功能之后,我們可以做更多的事情,比如可以觸發(fā)集群的擴(kuò)容等。
還有,如果把我們上線的Redis成為1.0的話,我們這幾天要發(fā)布1.1的版本,增加一個(gè)數(shù)據(jù)遷移的功能。用戶總有現(xiàn)有的數(shù)據(jù)要遷到Redis集群上,我們會(huì)提供一個(gè)很方便的工具,幫用戶做這個(gè)遷移,他們現(xiàn)有的數(shù)據(jù)很容易遷到我們的集群上。Redis緩存集群服務(wù)從特點(diǎn)和特性就是以上這些。
林源在介紹完青云QingCloud Redis緩存服務(wù)后,也談了QingCloud未來的開發(fā)計(jì)劃。他表示,因?yàn)閮H有IaaS是不夠的,QingCloud還要在PaaS上做更多產(chǎn)品出來。QingCloud現(xiàn)有的服務(wù)是MySQL和Redis的服務(wù),這肯定是不夠的。在現(xiàn)有的數(shù)據(jù)庫層面,我們要補(bǔ)充更多的服務(wù)。我們接下來要做的PostgreSQL,預(yù)計(jì)到2015年1月就會(huì)提供相應(yīng)的RDS。除了Redis外,還有一種大家經(jīng)常用的緩存是Memcached,也會(huì)在一月份上線,我們會(huì)補(bǔ)齊現(xiàn)有的數(shù)據(jù)庫產(chǎn)品。這些是跟數(shù)據(jù)相關(guān)的。
第二個(gè),我們會(huì)提供Auto Scaling服務(wù),功能跟AWS一樣,但是我們會(huì)做得比他們更強(qiáng)大。還有,Oracle RAC也將在未來一段時(shí)間提供。由于Oracle RAC的性能優(yōu)化需要與SAN存儲(chǔ)相結(jié)合,據(jù)稱,青云將在2015年1月左右發(fā)布一個(gè)名為Virtual SAN的IaaS服務(wù)。這是一個(gè)將青云中的特定存儲(chǔ)資源視作一個(gè)塊設(shè)備提供給數(shù)據(jù)庫應(yīng)用。
第三個(gè)是跟數(shù)據(jù)處理相關(guān)的。用戶使用云服務(wù)首先消耗計(jì)算資源,再落地存儲(chǔ)。在此基礎(chǔ)上我們會(huì)給用戶提供大數(shù)據(jù)分析的工具,就是一整套大數(shù)據(jù)分析的框架,可能包括Zookeeper、隊(duì)列服務(wù)(Queue Service)、Hadoop集群。
林源強(qiáng)調(diào),QingCloud是國(guó)內(nèi)唯一一家把Redis搭建在自己的IaaS上的。包括我們的數(shù)據(jù)庫也是一樣,提供這種服務(wù)的廠商也有一些,他們很多的做法是直接在硬件上做Redis或者M(jìn)ySQL,我們的方式不太一樣。因?yàn)槲覀兊腎aaS已經(jīng)做得很好了,我們的性能足夠支撐,所以我們的Redis和MySQL應(yīng)該直接在虛擬化層面做,可以利用虛擬化層面的高可用特性。而且QingCloud可以將虛擬化的磁盤、內(nèi)存等性能做到物理資源的水平,而且虛擬化的好處是更富彈性,在擴(kuò)展性和可用性方面的優(yōu)勢(shì)是巨大的。
林源最后表示,QingCloud愿意跟第三方合作,包括安全廠商、CDN廠商。跟我們底層系統(tǒng)耦合緊的,比如IaaS級(jí)別的VM監(jiān)控,QingCloud就自己做。在涉及到業(yè)務(wù)層面的監(jiān)控,跟我們系統(tǒng)不是特別耦合的,合作伙伴擅長(zhǎng)的,就會(huì)跟第三方合作;他們擅長(zhǎng)的是很多應(yīng)用層面的監(jiān)控,而且他們做得很通用,就完全可以接進(jìn)來。比如Redis監(jiān)控,合作伙伴做得比我們好,用戶可以直接用他們的,不用我們的。QingCloud始終保持開放的態(tài)度。