Docker生態不會重蹈Hadoop的覆轍

2021-08-19 12:44:46 字數 2636 閱讀 7236

2016-08-24 晏東 godocker

2. docker火爆的原因的不同見解

docker有很多的優勢,具體的我就不講了,如果不清楚的可以參照各大創業公司的步道meetup。但是《docker生態會重蹈hadoop覆轍?》中,把其歸納為1)開發者能使用docker;2)映象倉庫和開源,誰都可以用。

對於這兩點,我不敢苟同。眾所周知,iaas是乙個更偏底層的服務。基於hyper-v的虛擬化出現了aws, 阿里雲等公有雲的巨頭,也出現了很多私有雲解決方案,而docker的出現是為了改變整個雲計算的基礎架構,筆者認為這才是docker火的根本原因。

我們可以看到,整個docker的火爆,其實是伴隨著公有雲和混合雲的發展起來的。在公有雲環境中,入門資源看似便宜,但一旦量大了其實非常昂貴,所以真正用的比較多的是低配例項。而docker從技術層面賦予了公有雲這種更大化利用資源的能力,當然私有環境中同樣也有這種優勢。

另外,從第一天出現,docker就是為了標準化的應用交付,一旦乙個標準建立,就會帶動整個後續的產業發展。容器技術看似只是簡單的程序隔離技術,但帶來的將是巨大的變革。這一點,我經常將作業系統的保護模式和非保護模式進行模擬。在這種保護模式下,誕生了微軟帝國。

3. docker的應用場景

雖然我們也是一家docker的創業公司,但是我們從來沒有吹噓docker可以運用到所有場景,並取代虛擬化。(這裡我要吐個槽,之前參加業內有一家友商的meetup,確實是牛皮吹破了天,提出的口號是「一直被模仿,從未被超越」。然後還在某個聚餐時刻說某某公司抄襲他們的,但是要知道這個圈子其實是很小的。我想問一下tutum放在什麼地方呢?)。

話說回來,到底docker能應用到哪些地方呢?——我的答案是所有基於linux的服務型應用。

因為docker容器本身就是linux程序,執行服務型的,沒有桌面的應用是最好的。雖然包括docker官方都在吹噓對windows的支援,但是很多人都是斷章取義,在windows上裝個虛擬機器或者輕量級linux虛擬機器能叫支援嗎?真正的支援是在容器中執行windows應用程式,微軟一直在做這個事情,也放出了demo版,但是一旦容器執行的是windows程式,那麼整個現有docker生態裡的映象都將不可用。所以一定要區分,在容器裡面執行windows程式和在windows系統上執行容器。另外,容器從程序模型上看是daemon派生出來的子程序,是共用的作業系統,因此不能做到核心層級的隔離。換句話說,如果你的應用涉及核心(你自己的核心程式),是不適合使用docker的。從其程序模型上,我們可以很顯然的得出, docker適合執行所有的無桌面的,不涉及核心的服務型應用。因此,docker如果要完全替代虛擬化是不可能的。但是,雲技術和網際網路應用快速發展的今天又有多少是一定使用桌面呢,又有多少開發人員會去開發核心呢?通過bs架構可以很好的支援視覺化操作,而真正做核心開發的我覺得這個比例不超過10%吧。因此,客觀的說docker絕不是雲計算的唯一技術,而是日後雲計算的關鍵技術。

5. 開源的框架

目前主流的有k8s,mesos和swarm。docker出現以後,很多公司都去鼓吹大規模集群管理和排程,但是連esxi都沒什麼大規模的機器需要排程,作為乙個創業公司或者第乙個吃螃蟹的企業,真的會有那麼多機器讓你去排程管理嗎。

一般來說開源都可以加快產品上線,但是帶來的問題就是企業或者商家是否有把控這些開源專案的能力, k8s和mesos都是偏重量級的框架。一線網際網路公司使用開源的路線無不是:開源->修改->自研,所以我們公司從一開始就沒考慮用這些框架,而是使用自己研發的框架,這些框架也是我們多年分布式領域的積累。我覺得創業型公司,需要有更多的把控能力,包括docker本身和作業系統。記得曾經參加某次meetup,當有位老師在講他們如何通過mesos, docker,registrator, etcd等等來實現負載均衡的時候,我提了兩個簡單的問題他們就無從解決。

1)我在使用docker中有時候會出現daemon卡住無響應的情況,請問怎麼解決?他的回答是,這個是docker的問題,我們解決不了。也可能是作業系統的問題,我們不解決。

2)你的負載均衡能夠實現動態的伸縮嗎?他的回答是,只能人工手動來伸縮。聽到這些回答,我真是感到非常憤慨。這也許正是很多人說docker創業公司浮躁的原因。

docker公司官方對k8s和mesos的厭惡已經不是什麼秘密,也因此其不予餘力地推swarm,甚至將swarm直接內建到docker裡面。而swarm是乙個非常新的東西,我們的內測就發現不少的問題。但由於官方繫結如此之緊,以及從去年到今年的一系列收購,誰願意去抽出時間去給他們做嫁衣呢。好在有oci標準的出現,作為創業公司,我們不需要被docker公司綁架。說到這兒,我覺得有必要澄清一下docker和hadoop的對比關係。docker開源專案可以和hadoop開源專案對應起來,docker公司可以和cloudera對應起來,而docker的ddc也許可以和cdh對應,但是國內基本沒辦法用,這也是國內創業的機會。不過,我覺得這也許不是乙個恰當的對應,真要對應也許和openstack更容易對應。

6. 商業模式

公有雲肯定是大家都想做的,但是公有雲短期內肯定是巨頭的天下,而且大家都還在使用vm呢,要讓別人來使用caas頂多就是嘗新鮮。做公有paas接入,跟文章作者所說一樣,要想在國內賺開發者的錢真的不容易。而且做公有雲,需要很大量的投入來降低邊際成本,我覺得國內創業公司目前都是玩不起的。所以,這也是很多企業都轉做私有雲的原因,這樣離現金流更近。

總的來說,筆者認為docker生態圈的發展很難同hadoop一樣,在未來的某一天當容器成為標準應用交付手段的時候,所有雲的節點也許都將執行在容器中,我們將看到越來越多的容器化服務。

Ubuntu上利用Docker部署Hadoop

目錄3.執行hadoop 虛擬化支援 開啟虛擬化 使用virtualbox安裝ubuntu,全部預設設定即可 進入ubuntu,更新apt列表,安裝net tools,檢視網絡卡ip sudo apt update sudo apt install net tools y ifconfig 在win...

今日之探路者必不會重蹈昔日之秦池

北京探路者旅遊用品 logo 山東臨朐縣秦池奪取標王情景 當年的秦池之名聲遠揚遍及大江南北,可它的倒下卻是因為一篇記者的文章 當然,秦池之敗亦絕非我們今天坐而論道這樣簡單 抱著對其敬畏的心態來回顧這段往事對我們今天會更有益處。央視的標王 愛多 孔府家宴 秦池 的隕落的確像曇花一現,而其中秦池的轟動最...

Docker生態系統

docker是以docker容器為資源分割和排程的基本單位,封裝軟體的執行時環境.用於快速構建,發布,執行分布式應用的平台。docker的執行時容器的本質是程序.在linux中,通過namespace進行資源隔離,cgroups進行資源限制,使docker容器看上去像是乙個執行在宿主機中的虛擬機器....