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