時速雲CEO:相對於IaaS和PaaS,未來CaaS將如何定位?

容器在國內的火熱程度毫不亞於國外,這從基於容器的創業公司的數量上就能看出來。而大部分容器相關的創業公司都瞄準了同一個方向:CaaS(容器即服務)。時速雲就是這樣的一家公司,他們基於Docker、Kubernetes、Mesos等開源技術實現了大規模容器集羣的調度、部署和管理。目前他們的容器雲平臺上已經運行了上萬個容器,並且非常穩定。爲了瞭解時速雲的創業背景以及他們的容器雲平臺的架構等細節,InfoQ記者採訪了時速雲CEO黃啓功。另外,時速雲CTO王磊也將在8月28日舉行的CNUTCon全球容器技術大會上分享題爲《時速雲基於Kubernetes打造容器雲平臺的實踐》的演講,敬請關注。

InfoQ:時速雲的定位和願景是什麼?爲什麼當時會選擇創業以及選擇Docker創業?

黃啓功:時速雲TenxCloud是一家雲計算領域的初創公司,我們的定位是輕量級的容器雲平臺(Container as a Service)。CaaS很好的結合了IaaS和PaaS兩者的優勢,我們以Docker爲代表的容器技術作爲切入點,整個雲平臺都是以容器化應用作爲交付的標準。TenxCloud目前立足於公有云,爲開發者和企業提供了一個快速構建、集成、部署、運行容器化應用的平臺,幫助開發者和企業提高應用開發的迭代效率,簡化運維環節,降低運維成本。 我們希望可以爲容器技術在中國的發展貢獻我們的力量,惠及更多的開發者和企業,與各界合作伙伴一起打造一個健康的、快速增長的容器雲生態。

談到創業的初衷,就要說起我在IBM期間的工作了。在IBM的幾年,剛好經歷IBM從傳統的IT服務商擁抱雲計算的戰略轉型,我有幸從事過各種類型的雲計算產品。 IaaS解決了資源的問題,但應用的構建、部署、運維等並沒有得到很好的解決。Docker的出現讓我們看到了希望,Docker的部署速度比虛擬機高出一個量級,佔用資源極少,共享HostOS,秒級部署,Namespace隔離以及集裝箱的理念很好的解決了環境構建的問題,加上我本身在做IBM Bluemix PaaS平臺,我們當時研究過國內外主流的PaaS平臺,以及分析他們爲什麼沒有起來的原因,感覺到以Docker爲代表的容器技術未來在雲計算領域會有很大的機會,CaaS很有可能會改變用戶使用IaaS和PaaS的方式, 於是決定基於Docker創業做些事情。
InfoQ:時速雲使用了哪些技術棧?目前的架構是怎麼樣的?

黃啓功:目前時速雲使用的技術棧比較多樣化。基於Docker給我們帶來的輕量級、自滿足的打包特性,很好的消除了不同技術棧之間的差異,並以微服務形式進行封裝,互相提供服務接口,可以簡化一些開發技術上的問題。主要涉及Node.js和Golang,以及一些Python、 Ruby、Shell腳本的使用,根據不同的使用場景使用不同的技術,滿足快速開發、方便維護、容易擴展的需求。在設計和實現上,嚴格遵循了微服務的理念,比如每個模塊儘量實現單一服務功能,服務之間的通信接口儘量簡單輕量,每個服務可以比較輕鬆的實現橫向伸縮等。
目前的架構可以分爲4個大的區域:

容器集羣管理主要由Kubernetes作爲基礎服務,並進行了很多優化,包括替換相關表現不佳的組件、對系統進行性能調優、系統的自動伸縮等;
鏡像服務採用類似Docker Hub的架構,分佈式的鏡像存儲後端,提供豐富和穩定的鏡像服務;
對 CI/CD 的支持,實現從代碼到部署上線的一站式服務;
對私有主機的集羣管理。通過集羣化管理用戶的實體主機、虛擬機或者雲主機上的資源,合理規劃和充分利用現有的計算和存儲資源,同時把我們平臺的技術和優勢傳遞給用戶,爲用戶提供集羣的部署、管理和監控的一整套解決方案。架構上既要考慮上面這些功能獨立運作的能力,也要清晰定義彼此之間的交互接口,形成一個有機的整體。
InfoQ:你認爲時速雲產品中,最吸引人的特性有哪些?

黃啓功: 1. 國內首個跨IaaS的容器雲平臺。時速雲北京2區開放,率先支持跨集羣、跨底層IaaS提供鏡像和容器服務的能力。同時,2區使用了更先進的底層技術,包括更大規模的集羣支撐、分佈式的數據存儲等等,將提速整個平臺的運行效率和穩定性。

2.TenxCloud推出了國內首個Docker容器主機集羣管理混合雲服務。這是我們基於容器技術在混合雲方面的探索和嘗試,可以幫助企業輕鬆的搭建基於容器技術的私有主機集羣,並提供和公有云平臺一致的容器管理服務。

3.更易於微服務和服務編排的實現。由於底層技術的差別,時速雲在微服務架構和服務編排的實現上更有優勢。用戶之間的服務會有安全的隔離,平臺內部通過自組網絡進行安全通信,用戶服務之間通過環境變量獲取互相的信息,用戶只需在一個服務中引用其他服務即可。

4.本地代碼直接構建鏡像支持。如果用戶的代碼沒有託管到GitHub或者BitBucket等代碼託管平臺上,只有本地的代碼或者可部署的應用,時速雲同樣支持從代碼到鏡像的構建。並且具有以下優勢:支持 Windows、Linux和 Mac 三種平臺;無需關聯代碼託管服務;如同使用本地Docker一樣的體驗;不需要打包源代碼文件,保證用戶的源代碼安全。

5.完整的開放API,可以供開發者和SaaS廠商自由調度和連接。
InfoQ:在Docker的使用過程中,你們做了哪些重點優化?

         黃啓功:在TenxCloud時速雲的平臺構建中,我們對Docker本身並沒有修改,而是對與之相關的技術進行了深入的研究和嘗           試,比如以下幾個方面:

資源限制,嘗試了Docker的各種存儲driver,爲了做到存儲空間限制和避免一些潛在問題;然後對內存、CPU、硬盤、可用進程數、磁盤讀寫等進行控制,避免多租戶情況下產生資源衝突和相互干擾。
剔除Docker本身的網絡,搭建自己的自組網絡,做到Docker容器的跨機器通信。
實現自己的存儲管理,做到跨機器掛載到相應Docker容器,隨容器自由移動,保證數據和容器的一致性;對用戶數據進行分佈式存儲,做到容器數據的高可用。
鏡像存儲同樣採用分佈式,保證用戶鏡像的安全高可用,並動態調整後端存儲的容量。
上面幾個問題只是冰山一角,在容器雲平臺的構建中會遇到各種各樣的挑戰,在以後我們的線下活動中再慢慢和大家分享。

InfoQ:如何解決容器的安全問題?

黃啓功:容器部署運行上有輕量快速的特點,而它的內核共享的特性可能會給宿主機及網絡環境帶來安全問題。對於開發及運維人員,我們需要以容器特性爲出發點,可以從以下幾方面改善容器的安全問題:

權限及資源限制
限制用戶運行特權及訪問資源。對於多租戶應用,不同的容器共享同一主機的資源和環境,普通用戶權限的惡意提升將會使宿主主機完全處於被非法操控的險境,而對於用戶的合法操作,大量的資源申請也會將主機推向崩潰的編譯。因此,有必要對用戶權限進行限定,避免根權限的賦予,進而減少主機暴露的攻擊面和潛力。同時,在CPU、內存及進程數等資源方面,限定用戶在單一容器中的可用配額,來防止惡意的無限資源申請給整體系統帶來的破壞。
鏡像及製作管理
對容器的鏡像來源進行審覈。容器鏡像製作的簡化讓用戶可以輕而易舉的創建自定義的應用鏡像,但製作的應用程序千差萬別,功能完整性和測試完整性參差不齊。這讓用戶鏡像的產生面臨存在衆多漏洞的風險,因此需要對鏡像的製作過程儘量規範化,對放置的應用程序儘量做到測試完備並符合安全標準,從源頭上減少漏洞鏡像的生成。而在創建容器過程中,避免使用不受信任的鏡像及應用程序,採用標準及合格廠商如時速雲的鏡像服務mirror,從而保證容器運行時的正規及安全。
日誌安全審計及升級補丁
對容器及系統中宿主機進行定期安全檢查及漏洞補丁升級。定期針對容器及所在宿主機的網絡環境進行滲透安全測試,及時發現可疑容器或危險服務端口。對主機內核及原始鏡像進行定時更新,及時修補公開漏洞。在應用層次,收集及檢測容器的安全日誌,統計監督應用的運行過程,及時發現服務異常。
InfoQ:Kubernetes已經發布了1.0版本,你們有了很多的Kubernetes和Mesos的使用經驗。它們目前是否已經成熟可用?相比於Mesos,Kubernetes有什麼優勢和缺點嗎?使用場景有什麼不同?

黃啓功: Kubernetes的快速發展得益於開源社區衆多貢獻者的努力,Kubernetes 1.0的發佈,意味着這個容器集羣管理系統可以正式應用到生產環境。

Kubernetes與Mesos同是集羣管理系統,有着不同的應用場景和各自的優勢。Kubernetes作爲專門的容器集羣管理框架,其輕量級,易遷移,快捷部署的優點顯而易見。Kubernetes的靈感來源於Google的內部Borg系統,吸收了包括Omega在內的容器管理器的經驗和教訓,label、annotaion等功能的加入讓容器分類檢索信息標記管理更加便捷。在網絡方面,Kubernetes可以和多種解決方案自然融合,插件化的構成方式讓用戶可以很方便的使用自定義的網絡組件,進而解決了容器跨機通信的問題。在資源調度方面,Kubernetes目前以預測規劃的方式爲容器分配集羣資源,保證局部資源擁擠的發生,並提供調度接口,允許用戶使用定製的調度算法。

Mesos是Apache下的開源分佈式資源管理框架,被稱爲是分佈式系統的內核。其特點在於資源管理和調度,能夠消除集羣硬件的差異化。在使用場景上,Mesos可以作爲資源池提供分配給上層的框架,同時支持多種用途的數據應用框架比如Hadoop、Kafka、Spark等。而Kubernetes是專門的容器集羣管理器。它本身的服務代理可以在集羣範圍內探知用戶服務,同時提供多種方式的服務組合,再加上其模型本身允許多容器共享資源的特點,Kubernetes從設計之初便提供了微服務實現的架構模型。
InfoQ:你怎麼看CaaS的發展以及CaaS的未來?

黃啓功:近幾年雲計算技術飛速發展,不斷出現新的技術,從IaaS到PasS,再到SaaS,越來越多的廠商也意識到這些技術潛在的價值,而云計算作爲一種全新的低成本、高效率的IT服務方式必將帶來行業的變革和創新。CaaS作爲後起之秀,介於IaaS和PaaS之間,起到屏蔽底層系統(IaaS),支撐並豐富上層應用平臺(PaaS)的作用,可以解決IaaS和PaaS的一些核心問題。比如IaaS很大程度上仍然是提供機器和系統,用戶需要關心資源的管理、分配和監控,沒有減少用戶的使用成本,對各種各樣的業務應用支持有限;PaaS則重點提供對主流應用平臺的支持,但是沒有統一的服務接口標準,對用戶各種各樣的個性化需求不能很好的滿足。以容器爲中心的CaaS則可以很好的將底層的IaaS封裝成一個大的資源池,用戶只要把自己的應用部署到這個資源池中即可,不需要關心資源的申請、管理等與業務開發無關的事情;同時CaaS又有一套唯一標準的鏡像格式,可以把各種應用打包成統一的格式,並在任意平臺之間部署遷移,容器服務之間又可以通過地址、端口服務來互相通信,做到既有序又靈活,既支持對應用的無限定製,又可以規範服務的交互和編排。CaaS必然會很大程度上替代IaaS,並對PaaS提供更好的支持,未來雲服務將會以應用爲中心,並讓開發和運維人員更加關注業務上的改革和創新,而不用去擔心資源的事情。
InfoQ:目前技術上遇到的最大挑戰是什麼?準備如何解決?

黃啓功:在平臺搭建和優化過程中,確實碰到了很多棘手的問題,這裏分享幾個例子:

Docker的後端存儲方式,我們曾經嘗試過aufs、devicemapper、overlayfs、brtfs等方式,而且每種方式都碰到一些坑,在穩定性和可用性上也掙扎了一段時間。最後的解決方案是在不同場景下應用不同的存儲方式,以達到功能和性能的平衡。
集羣調度效率不高,資源分配不合理的問題。改進調度算法,結合資源預約和機器實際資源使用情況來共同決定容器的部署節點,考慮節點上非容器進程的資源佔用情況,既要充分利用機器資源,又要避免節點過載而失效。並根據節點的資源情況動態遷移節點,最終實現節點資源的高利用和穩定性。
容器中數據的持久性和可操作性。對於容器中需要做持久化的數據,我們也嘗試了不同的方式,包括共享網絡磁盤、容器中自動掛載等等,最終確保數據跟隨容器可以隨意遷移到不同節點,以及數據的高可用。同樣,也要考慮數據的備份、回滾,讓用戶輕鬆管理自己的數據。

發佈了36 篇原創文章 · 獲贊 1 · 訪問量 8522
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章