Docker 的國內現狀和未來發展是怎樣的?

docker在國外很火,在國內卻很小眾。而在公司的實際使用中我更是木有聽過。哪位能同步一下docker在國內的狀況。

我先分析一下:

* Docker偏好ubuntu,在國內運維們都不喜歡ubuntu

* 國內大廠都有自己的運維平台,技術很成熟,有可能直接面向LXC開發,擴充自己的運維平台

* 對於國內小廠,VM和LXC沒有太大的區別……更小的公司,根部沒有自己的運維,靠阿里雲、linode

* Docker使用了一個並不主流的Go,而不是C或者Python?(目測這條會引起Go粉的眾怒)


看你的內容,其實表達了兩部分的問題,部署方案和運維管理。把 Docker 想成理想的部署容器,而實現集群等運維管理則可能需要 Puppet、Chef、SaltStack、Ansible 等來實現,當然還有 Shell Script。

對應你的問題:

  1. 國內很多喜歡CentOS,Docker 可以使用社區中的或者自己創建的 CentOS 的 image,而如果只是純粹使用某個具體服務,比如 redis,那麼就用這個 image redis Repository 就好,何必關心該 image 使用何種 Linux 發行版呢?;

  2. 國內不少 Old School 在用 Puppet 或直接 Shell Script,其實效率上來說,經驗才是第一位,什麼工具不重要;
  3. 我們就是3人小公司,但是我們沒用阿里雲或者Linode,而且我們還用了 Docker,在同一台 VM 上使用不同的 Dcoker 來隔離應用,方便和安全是我們用 Dcoker 的原因,而管理這些部署,我們暫時還只是寫了幾個 Shell Script 而已,後期會使用 Ansible;
  4. 絕大部分的需求,使用各個服務的官方 Image + Docker 的原生命令能夠滿足,不行再輔以 Dcokerfile 做一些特殊配置,往往也能解決,至於使用 Go 去做深度開發這件事情,背離了使用 Dcoker 的初衷和本質,感覺沒必要做。


題主可能誤解了一個問題。很火跟線上應用是兩回事。國外很火不代表國外已經遍地在用了……新聞說google幾十萬容器,不是幾十萬docker。單說容器的話,國內容器化的paas平台也不少呢。


我們最近在搞一些docker的應用,國內的發展我個人還是看好的。尤其在集成測試,ci等方面有相當的發展空間。畢竟agile是發展方向,agile離不開CI。用docker去跑CI太合適了。

不過要說用來跑業務我覺得不太現實。畢竟硬體成本越來越低,人力成本越來越高,docker跑業務與傳統的VM沒有太大的優勢。


唉,該我出手了……

1. Docker 早期是偏好 ubuntu,現在 CentOS 有 7,7一出來就是說要支持 docker bla bla 的, EPEL 加持的 6.5 有官方更新的 docker rpm 更新,所以我們線上系統就是 6.5 + Oracle UEK 3.8 的內核。

2. 據我所知你這個大廠僅僅是 BAT,他們在10年的時候就開始這麼幹了。其他的公司沒人這麼搞,人力成本太高。當然你也可以舉例子反駁我,我這都是確切情報,不要問我為什麼。

3. 小廠機器成本是高於人力成本的,VM 那性能損失能看?有公司自己做語言機的 Runtime 隔離,有的公司努力的想提高 VM 性能,現在 docker 剛好平衡了這2者。至於更小的公司,活下來才是第一要素,談什麼平台。

4. Go 是不主流,Go 現在唯一能解決的問題就是並發,但這有關係?我們現在的調度器就是 Python 寫的,HTTP 的介面擔心什麼幺蛾子語言問題嘛。在你舉的這個例子中,最慘烈的其實是C。


謹慎中性評價


從2013年實習開始聽說docker, 然後機緣巧合,畢業設計也是用它開的題目。

* 國內現狀:

1.開發/測試服務的搭建和部署:節省人力和機器資源

互聯網服務大多基於DB+業務邏輯+web service+webUI這種架構,很多功能以macro service的方式提供的。Dev雖然僅僅需要開發整個系統中的一小塊功能,但是測試需要依賴很多其他組件。 此時,docker很減少環境部署方面的精力損耗,同時可以在一台機器運行多個docker container,節省機器成本。

2.線上環境部署:前景美好,任重道遠

雖然國內dclould等公司有容器編排方面已經做的很不錯,但docker畢竟還很年輕,尤其是在文件系統方面很不穩定。而線上環境相對於開發環境比較clean和統一;部署方面的痛點要輕很多。

3.其他:其實docker的主要優勢就在於輕量級的虛擬化,性能損失要比VM小很多,在macro service下會比VM節省更多地資源降低企業成本,在雲計算領域,還是大有可為。最後可以關注一下daocloud靈雀雲這些公司的業務方向,畢竟賣docker的公司要比用docker的公司更全面一些。


我覺得docker會越來越火,原因太多,以下是我思考的幾點:

1 docker的輕量級,傳統的物理機和虛機都太重型了,在互聯網尤其是移動互聯網時代,是特別講究強調軟體作為輕型服務發布,而docker正好滿足這種需求;

2 docker的scale in/scale out能力是物理機和虛機所不具備的,而且container相對於物理機和虛機管理更方便;

3 docker作為lxc的管理器,封裝了lxc的技術細節,將容器技術的使用門檻降低了,這是很多創業公司看中的,可以快速見到產品的效果;

4 docker開源技術的生態也越來越好了,系統層面,ubuntu/centos/redhat/suse/windows/mac os都支持運行docker,這意味著應用容器可以直接在這些平台上遷移。

其他還有很多點,歡迎大家補充。


docker發展很好,國內的相關的程序員和題主應加強學習,增加見聞,不要保留很多誤解導致失去未來的機會


Docker還處於快速地發展之中,勢頭非常好。要想了解未來的發展,不妨了解一下新版本的Docker是什麼樣的。推薦另外一個問題中我的回答:如何評價Docker最新版本1.6? - Linux 運維,以及這篇文章:Docker 1.6新體驗修改


8 surprising facts about real Docker adoption 雖然不是在講國內,但是還是很有參考價值的


docker在國內的現狀不太了解。但是未來發展一定是可編排化,docker swarm現在已經集成在了docker里,Kubernetes, Mesos, Azure也越來越流行。我司現在兩三個組的人就在研究把Kubernetes和docker swarm用於acceptance和集成測試。有容器創建快的特點,結合集群的高可用和負載均衡(壓榨),理論上測試速度能提高一倍以上。


看起來很火,但註定會是小眾的。


從另外角度看,或許下一代虛擬化技術方案會取代目前的kvm方案,docker的思想會被繼承與發揚,但不一定是目前這種形態呈現。


搬運補充:Baidu using Docker for its PaaS


可以說非常小眾了。。。

CTO需要3年或以上的Docker,英語口語流利,國內一線院校或海外名校畢業,HC是base在上海,然後我聯繫了一些獵頭公司和獵頭朋友。。。。

但是他們推薦過來的簡歷,都不符合我的要求。

擼起袖子自己干,用了一個多月才offer了一位大神。。。。

想一槍崩了自己。。。。。。。。。。。


推薦閱讀:

零基礎自學IT技術有哪些可以加快學習速度的經驗?
互聯網公司運維人員的職業規劃有哪些路線?
知乎上都有哪些網站運維工程師?

TAG:互聯網 | 運維 | 容器 | DevOps | Docker |