时速云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的使用過程中,你們做了哪些重點優化?
資源限制,嘗試了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等方式,而且每種方式都碰到一些坑,在穩定性和可用性上也掙扎了一段時間。最后的解決方案是在不同場景下應用不同的存儲方式,以達到功能和性能的平衡。
集群調度效率不高,資源分配不合理的問題。改進調度算法,結合資源預約和機器實際資源使用情況來共同決定容器的部署節點,考慮節點上非容器進程的資源占用情況,既要充分利用機器資源,又要避免節點過載而失效。并根據節點的資源情況動態遷移節點,最終實現節點資源的高利用和穩定性。
容器中數據的持久性和可操作性。對于容器中需要做持久化的數據,我們也嘗試了不同的方式,包括共享網絡磁盤、容器中自動掛載等等,最終確保數據跟隨容器可以隨意遷移到不同節點,以及數據的高可用。同樣,也要考慮數據的備份、回滾,讓用戶輕松管理自己的數據。
總結
以上是生活随笔為你收集整理的时速云CEO:相对于IaaS和PaaS,未来CaaS将如何定位?的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 信息收集学习笔记
- 下一篇: 一场农业“人机”对战,能否凿开农村致富新