如何評價 hyper_?

官網:Hyper - Make VM run like Container

根據官網所說,hyper_ 貌似是一個基於 VM 的分層系統,比 Docker 共享 Kernel 更加安全,但是比一般的 VM 系統快得多,能做到秒級啟動,而且本身非常精簡。

不知道有沒有大牛已經用過了或者感興趣,對它的評價是怎樣的?


為啥沒人邀請我?雖然我在知乎上一直專註於無線通信相關問題,不過,我確實是 Hyper_ 的聯合創始人和主要作者之一。

前兩天, Docker 的 @Honglin Feng 在某群里跟我說知乎的廣告效果不錯,我還說「我都是回答的那些神馬在學校的時候學的,沒來得及忘掉,也不會用到的東西,廢物利用」,沒想到今天就有人給我這個親手打廣告的機會,不由得還真是有點激動呢。而且這個題居然不是我們自己人提的,頗感意外啊。

先從整體上說一下。剛才 @Gnep 提到,可以關注 HYPER_ 這個我們自己做的基於 HyperContainer 的容器雲。是的,提到我們 Hyper_ ,大致可以提兩件事情 ——

  • 一是,我們的容器技術 HyperContainer,就是題主寫到的「Make VM run like Container」,或者叫「Secure as VM, Fast as Container」,這個我們是開源的,位於 Hyper_ · GitHub ,簡單地說是結合了 hypervisor 和 Docker Image 的一種更強調隔離的 App Container,和我們很相似的技術是 Intel 的 Clear Container,我們是同一個星期 Release 的(2015年5月),並沒有互相參考,思路暗合;
  • 二是基於我們的容器技術做的容器雲 Hyper_ ( HYPER_),因為我們的底層隔離了,上層可以做得更簡潔,完全去掉了一般公有服務里的基於虛機的資源池這一層,讓用戶可以像在一台無限大、永遠在線的個人電腦上跑 Docker 一樣,直接創建並運行 Container。因為沒有資源池這一層,需要初始化的東西很少,所以可以在三秒鐘左右的時間裡(這個和 container 包含不包含額外的卷有關係,有額外的數據卷需要的時間要長一點)跑起一個虛擬機,並且每個用戶的網路和容器都是完全隔離、互不干擾的。而且,因為真的很快,所以秒級計費是有實際意義的哦。

----&>8------進入細節的分割線----&>8------

以上和以下提到的 Docker 均為 Docker Inc 的商標,屬於 Docker 公司的知識產權。

首先從開源項目的由來說起,在最近的兩三年中,容器成為雲計算領域了最熱門的話題。回顧歷史,從FreeBSD Jail 算起容器技術出現在*nix領域中已經發展了接近二十年了,致力於在操作系統中進行更強的運行時隔離。

然而,Docker容器與以往不同,不僅在於運行時隔離,更在於對應用及其依賴環境的標準化封裝,從而做到跨部署環境的不變性(immutable)和一致性(consistency)。可以說,這是一種新型的應用容器。

這些應用容器對應用運維的方式帶來了顛覆性的效果,然而,運行時容器技術並不足以面對多租戶的環境。Linus 在2015年的 LinuxCon 上也坦陳,安全性問題常常是個Bug的問題,而犯錯不可避免,所以,要想達到好的安全性,只靠安全加強是不夠的,多一層的封裝才是解決之道。在這種背景下,自然地期待保持應用容器的用法,引入虛擬化的強隔離。

HyperContainer就是這樣一種技術,結合了虛擬化的強隔離和容器的輕量級——Secure as VM, Fast as Container。HyperContainer 並非是簡單在虛機里放一個 Docker Daemon,而是用 hypervisor 替換掉了基於 namespace 的 runtime,在虛機裡面並沒有 daemon,也沒有完整的 guest distro,而是直接將 Docker Image 放在定製的 Guest Kernel 上執行的,所以可以做到很快。並且如其他的回答提到的,從用法上說,我們和 Docker 等容器技術是一致的。時間線大致如下——

  • 我們從2015年初開始做這個項目
  • 2015年5月以開源項目的形式發布
  • 7月,隨著 LinuxFoundation 宣布了開放容器促進組織,Hyper_ 將 HyperContainer 的運行時部分分離為 runV 項目,列為 OCI 的參考實現之一(runtime-spec/implementations.md at master · opencontainers/runtime-spec · GitHub)
  • 2015年10月,又發布了Hypernetes項目,結合了 HyperContainer 容器技術,Kubernetes 調度引擎以及OpenStack 的 Neutron 和 Cinder 等,成為一個多租戶的 Kubernetes 發布。

就社區而言,Hyper 作為一組中國人發起(但運行得略國際化)的開源項目,目前在國際上的影響還是略有一些的,除了上面提到的 OCI 之外,Hyper團隊正在和 Kubernetes 社區積極合作,Kubernetes 已經計劃在未來的版本中集成對 HyperContainer runtime 的支持;另一項由兄弟創業公司數人科技的 @肖德時 肖總推進,並有前阿里員工參與的工作([MESOS-3435] Add containerizer support for hyper)正在將 HyperContainer runtime 集成到 Mesos 項目中去。

----&>8------關於 https://www.hyper.sh 雲服務的分割線----&>8------

目前的容器雲服務有很多,大到 Google 的 GKE,新到國內的一系列雲,但 Hyper_ 有所不同,大部分 Docker 用戶都滿意 Docker 的命令行用戶體驗,然而,部署成服務的時候,卻需要先擁有一個虛機的資源池,並為這個資源池付費,而非實際跑的 Container。

而 Hyper_ 是直接基於 HyperContainer 和 Hypernetes 項目的,Container 的運行時隔離由 HyperContainer 保障,網路隔離由 SDN 完成,我們還做了一個新的 Image/Container 存儲引擎,讓集群的分散式對用戶完全透明,所以,用戶用起來和用自己的筆記本沒什麼不同,包括像 Docker Link 這樣的功能我們也是提供了的,而且在命令行和 API 上都和 Docker 一致。如果說和 本機有什麼不同的話,Hyper_ 上,用戶可以直接給容器關聯公網 IP,這是 Hypernetes 項目給我們帶來的額外好處。

從用戶體驗的角度看:

  • 一是簡單快速,沒有多餘的東西,虛機是什麼鬼,cluster 是什麼鬼,都不需要關心,更不用管調度器是土鱉還是高大上;
  • 二是隨時起停,當起停的時間很短的時候,起停都不是負擔,比如你在上面跑 s***socks 的時候,可以需要的時候跑,不需要的時候停,簡單綠色、低碳生活;
  • 三是可以按需使用,用更少的資源更少的錢,完成恰如所需的任務,不用跑不需要的服務。

當然,雖然我自己不太年輕了,但我們還是個年輕的開源項目、年輕的創業公司,項目還在快速發展,每天都有新的 PR 被 merge,有新的功能改進和 bug fix;雲上面,Compose 這些高級功能也很快就會提供。如果有問題,可以隨時在 github 上 file issue 或聯繫我們。


Hyper是基於Hypervisor的技術。

個人感覺這個東西跟VM和container都有區別,但是根據官方文檔的定義,可能還是更偏向於container多一點。

Hyper_ is a secure container cloud service


看了一下旭總的回答,感覺寫的這麼長,礙於同行關係又不敢大寫,不太給力。緒總一定是明白了為哈運營需要水軍了吧,因為說啥都不用負責哈。

作為一個Hyper自來粉(對其只有理論上的了解),雲計算的局外人,我來談談我對其的看法。

首先現在用DOCKER的越來越多,為哈?因為部署省事運維輕鬆,因為本地有一個DOCKER做開發,放到實際運維環境直接就部署了,多省事。更要說快速的部署,節省的成本。

不過這些都牛逼在標準和思想上,DOCKER這個軟體本身就給人感覺先天不足,後天遲鈍

客戶把東西放到雲主機上當然還是要安全,問題DOCKER因為虛機全跑在一個內核上,安全資源限制等等全是理論上,實際上么?呵呵!

但是因為這個牛逼的標準,所以DOCKER直接部署估計都是私有雲,共有雲要不然就是DOCKER跑在虛機上,要不然就是把你單獨部署在一個真機上,多麼高科技的玩法,這些讓DOCKER提倡的快速部署資源節省全成了笑談。

然後,就有了Hyper以及同類了的思想,既然Docker跑在VM上,乾脆融合下不就完了,於是就是VM上直接跑個Docker鏡像,然後專心把這個VM專心的做到最快,資源佔用最小,結了。


看看再說,別人先去踩坑,不那麼深了在下水


可以運行ss,現在都被用來科學上網了。。。


推薦閱讀:

如何通俗解釋Docker是什麼?
網易蜂巢的原理是什麼?通俗的舉例說明
VAGRANT 和 Docker的使用場景和區別?
Docker 有什麼優勢?
在雲環境中的應用部署方式上,Docker會不會取代KVM、Xen之類的虛擬機技術?

TAG:虛擬機 | 虛擬化 | 如何看待評價X | Docker | Kubernetes |