精品国产一级在线观看,国产成人综合久久精品亚洲,免费一级欧美大片在线观看

Docker 的步伐:DevOps 與 OS 化

責任編輯:editor007

作者:孫宏亮

2016-07-27 22:03:43

摘自:36kr

目前為止,歷史給了 Docker 三年多的時間。這三年中,Docker 自始至終將 " Build , Ship , Run "當作公司的宗旨,也就是幫助用戶完成任意應用的構建、發布與運行。

 

編者按:本文來源微信公眾號“DaoCloud”,作者孫宏亮,DaoCloud 技術合伙人。授權36氪發布。

目前為止,歷史給了 Docker 三年多的時間。這三年中,Docker 自始至終將 " Build ,  Ship ,  Run "當作公司的宗旨,也就是幫助用戶完成任意應用的構建、發布與運行。

Docker 的步伐:DevOps 與 OS 化

通過總結 Docker 的三年,我們不難發現 Docker 的步伐:

  • 第一年,專注軟件構建,對接構建下游,營造鏡像生態

  • 第二年,服務容器管理,發布調度平臺,打造交付流程

  • 第三年,整合企業資源,完善平臺功能,著手應用編排

如今,在這第四年過半之際,再去解讀 Docker,我們會發現,Docker 的發展似乎除了重視應用的 " Build ,  Ship ,  Run " 之外,另外還在兩個領域的努力有點“欲蓋彌彰”:

  • 推進 DevOps 進程

  • 管理能力邁向 OS 化

 

Docker 推進 DevOps

DevOps 在 IT 領域是一種強調開發團隊、運維團隊以及其他團隊之間增強協作與溝通,以達到軟件產品快速成熟以及安全可控的文化。從 Docker 的宗旨來看,DevOps 的理念似乎非常匹配,Docker 完全有能力來加速、保障軟件的生命周期。而從這幾年的行業發展來看,Docker 作為一款工具,的確在幫助企業踐行 DevOps 理念,同時也借助這款工具的打磨,通過可視價值在更大的群體中推廣 DevOps 。

Docker 的步伐:DevOps 與 OS 化

如果說依舊以軟件構建、CI / CD 等來介紹 Docker 帶來的 DevOps 價值,那未免有些老生常談。如果關注 Docker 最新動態,你不會錯過 Docker 原生集成編排的爆炸性新聞。當時 DockerCon 2016 發布此消息之后,坊間關于編排之爭、容器生態分裂等傳言與猜測甚囂塵上。而在我看來,編排只是一種形式, Docker 所期望的 DevOps 程度遠不止如此,目前的動作實際上也不止于此。

原生集成編排

Docker 推出 Swarmkit,原生集成編排能力的新聞,我相信對其他以容器編排為目標的分布式平臺(比如 Kubernetes,Mesos+Marathon 等)而言,是一個不太友好的消息。一個工具,一個廠商,憑借在容器生態中擁有大量的用戶群體,釜底抽薪,攔截了北向生態。乍一看,的確如此,但如果從 DevOps 的角度重新看待這個問題,也許大家會有不一樣的收獲。

DevOps 是一種新的文化理念,在其驅使之下,踐行 DevOps 帶來價值的大與小,世人一般很難衡量,往往只是與現有固化流程作簡單對比。PaaS 領域,人們習慣于將 DevOps 聯系進來,而且從效果來看,PaaS 的存在的確大大簡化了傳統運維人員對于應用發布后的管理,因此類似于 Kubernetes 等平臺也確確實實受到傳統運維人員的追捧,釋放運維似乎看到曙光。

然而,回到 DevOps,這一詞的存在,受益者可絕不止是 “ 運維人員 ” 。對于開發人員而言,同樣存在價值。或許有人言:那豈不是意味著開發人員會承擔更多的活,去涉及運維的臟活、苦活、累活呢?如果是傳統的 IT 架構,缺乏足夠的工具輔佐,恐怕是如此,或者 DevOps 寸步難行。

而如今,在 Docker 的世界中,很多事情似乎變的足夠簡單。在解決了網絡、存儲、安全等問題之后,Docker 的 Swarmkit 幫助 Docker 大大降低了用戶使用容器,踐行 DevOps 的門檻。至今為止,大部分企業內部的軟件交付,往往會涉及三個部門:開發、測試、運維,三者缺一不可。Docker 的思路比想象中的要簡單很多,力求在工具層面做到最簡約,僅僅通過 Docker 一款工具就可以完成開發、測試、運維等絕大部分工作。如果僅僅在開發者占用的僅有資源中,Docker 即可以提供完備的 “ End-to-End ” 的工具鏈,那工程師完全可以輕松勝任 DevOps 角色。開發工程師,在開發過程中融入運維的理念,借助 Docker 工具的威力,走通軟件生命周期的全流程。Docker 帶來的開發部署等環節的環境一致性、編排功能的完備性,勢必大大降低團隊內部的溝通成本和資源開銷。我想企業內部在做IT決策時,如此明顯的價值導向不可能視而不見。

DevOps 自始至終都沒有局限在 PaaS 的運行時,相比運維龐大的 PaaS 平臺來解放應用運維的能力,是否會存在本末倒置,一切都還在未可知,至少 Docker 這種輕量級,最便利的一體化方式給 DevOps 提供了一種新的思路。

開發驅動監控

Docker 以輕巧的方式,實現了用戶對于編排的需求。表象似乎很光鮮,但是我們不妨對目前普遍的編排進一步的思考。是否會發現,類似于 Kubernetes 與 Swarmkit 的編排著重于應用的運行時管理,如果僅限于運行時,僅限于應用運維,缺乏開發端源頭的輸入,開發與運維的鴻溝依然赫然在目,一分不少,絲毫無改觀。

傳統的 PaaS 平臺,比如 Cloud Foundry,OpenShift,可以基本做到管理應用的運行。然而,應用的生命周期往往比這更復雜,隨后的監控、協調、調度、故障恢復等都是需要克服的難題。而這些在傳統企業內部,毫無疑問都是運維的差事,出了問題還毫無避免的追溯開發人員。如果此時,在擁有傳統 PaaS 的背景下,一款軟件的生命周期中,可以更多的受 DevOps 文化影響,那可以大大減少很多成本。舉一個簡單的例子,在傳統 PaaS 以及容器編排平臺中,對于應用的監控往往很難做到放之四海皆準。對于一些應用而言,平臺通用的監控不是粒度太大,猶如隔靴搔癢,就是提供的細粒度監控并不針對用戶的痛點,顯得南轅北轍。運維人員在設計監控的時候,根本無法通過通用的方式完成應用的 “ 個性化 ” 需求,因此,權衡誕生,取舍難免。

如果關注最新的 Docker 1.12,細心的人可能會發現:

Dockerfile 開始支持新命令 HEALTHCHECK,完成用戶指定的應用健康檢查

Docker 的此舉,看似不經意,實則平地見驚雷,一舉彌合了開發與運維的鴻溝,至少在應用監控領域。Docker 大大釋放了運維人員的壓力,但是企業切入 Docker 的第一步還是 Docker 化,也就是 Dockerfile,這一環節自然是開發者的范疇。另外,對于應用的個性化監控,我想沒人比應用的開發者更清楚,如果由應用開發者來承擔,來完成這部分的定義,完全是件皆大歡喜的事。從此,開發環節即完成應用自定義監控的定義, 通過 Docker 提供的統一的架構完成監控,運維環節的監控將不再那么捉襟見肘。

可以說,Docker 1.12 開始,它為應用監控提供了新的契機,彌合開發與運維的鴻溝,打通了兩者的任督二脈,這往往是傳統的 PaaS 平臺,容器編排平臺無法企及的。

 

Docker 邁向 OS 化

Kubernetes 、Mesos 等平臺誕生之后,回顧過去的一到兩年,仿佛整個生態的潛意識都有著一個潛意識:容器生態分為兩層,容器引擎的 Docker 作為管理工具,作為底層,單純服務于容器;編排平臺的 Kubernetes 或者 Mesos,作為上層,滿足應用編排的各種需求。筆者也一度認為 Docker 勢必將往上層走,臥榻之側,豈容他人鼾睡。然而,Docker 的舉動卻令人大吃一驚,采取的策略則是:Docker 邁向 OS 化。

自從 libnetwork 誕生,Docker 似乎就傳遞著一種信息:無心借力第三方工具,借助內核借力打力。

Docker 風靡至今,面對傳統的資源管理方式,至今仍有未解之謎。如果說,Docker 暫且借助內核的 VxLan 能力,緩解或解決了 Docker 容器世界的網絡難題,那么企業內部架構中仍有問題存在,比如存儲,比如負載均衡等。問題固然要解決,不過反觀近年來企業應用的發展史,在選擇底層軟硬基礎設施時,往往較信任更為基礎的操作系統(Operating System,OS),在與上層云平臺的磨合過程中,多多少少存在水土不服。因此,Docker 管理能力邁向 OS 化,也不難理解。容器未來的方向很有可能打破傳統 IaaS 與 PaaS 的界限,回到廣義云 OS 層面的變革中。

全局存儲

對于應用而言,數據的重要性不言而喻。計算與存儲分離,一直是 Docker 最希望的數據管理方式,而對于存儲的統一化管理,Docker 一直沒有給出令人信服的解決方案,反而是生態中類似于 ClusterHQ,HedVig 等公司一致在該領域深耕。不過,這也不能苛責 Docker,這畢竟不是 Docker 的強項與主營業務。

Docker 不可能封閉容器生態的存儲市場,這方面的努力,我們從 Docker 抽象存儲概念即可看出( Docker 誕生,只存在容器和鏡像這兩個一級概念,而隨著時間的發展,Docker 另外抽象出存儲卷( Volume )以及網絡,作為一級概念,并行管理 )。

經歷了過去 3 年多單機化的存儲卷,如今 Docker 1.12 推出全局的存儲卷,原生支持集群環境中的數據卷共享。在加上 DockerCon 2016 上,Docker 官方演示借助 NFS,集群環境中管理分布式數據。容器生態有理由推測,Docker 在存儲領域并非視而不見,而是非常有可能借助操作系統 OS 的能力,切入存儲生態。

IPVS 負載均衡

如今,大多數企業級的應用,不再是僅擁有單個實例。多實例的現狀常常可以避免很多問題,比如單點問題,負載的均衡問題等。而 Docker 的世界中,容器的擴展一直以來不是一個新話題。對于擴展出來的應用容器,服務的注冊以及發現由誰來完成,一直沒有一個定論。而 Kubernetes 等平臺則是為此專門引入一個平臺路由組件完成這部分工作。由于 Docker 的網絡模式與平臺路由組件在協作時,或多或少會存在水土不服,性能等方面的損耗,因此很難達到 " 1+1>2 " 的效果。

新版本的 Docker 1.12,編排應用時,可以直接使用 Linux IPVS 完成服務的注冊以及負載均衡。或許,這一舉措直接帶來的好處將是:

  • 借助內核能力,無需額外配置、部署及管理

  • 大幅提高負載均衡的性能

  • 原生支持多種傳輸協議的負載均衡能力( TCP,SCTP, UDP 等 )

大道至簡,如果諸如 Linux 內核等底層技術棧,本身可以提供負載均衡的管理能力,運維人員沒有理由再去額外安裝一個負載均衡模塊,昂貴的配置、管理、運營成本是團隊決策者不得不考慮的點。另外,比起 Nginx / HAProxy , IPVS 還在多個層面存在優勢:比如 UDP 的支持,多樣的負載均衡策略,以及健康檢查等。

 

總結

全新的領域,用“探索”來形容現在的 Docker,我認為最合適不過。著眼全球的軟件交付,Docker 對于 DevOps 理念的貢獻,可謂不可小覷。而面對云計算領域的基礎設施以及平臺架構,Docker 的思路也許會更傾向于 OS 化,逐漸走向 Cloud OS 。然而,Docker 作為目前全球最炙手可熱的創業公司,百般眼光以及多樣的揣測,都會聚集于這條不乏趣味的鯨魚身上。未來如何,我們拭目以待。

鏈接已復制,快去分享吧

企業網版權所有?2010-2024 京ICP備09108050號-6京公網安備 11010502049343號

  • <menuitem id="jw4sk"></menuitem>

    1. <form id="jw4sk"><tbody id="jw4sk"><dfn id="jw4sk"></dfn></tbody></form>
      主站蜘蛛池模板: 平果县| 吉安县| 清原| 正安县| 榆树市| 古浪县| 海阳市| 巢湖市| 舞阳县| 浠水县| 林芝县| 铜鼓县| 邢台市| 潜江市| 海城市| 酒泉市| 铜山县| 南宁市| 九龙城区| 庆安县| 泗洪县| 屏南县| 丰城市| 松阳县| 扎赉特旗| 霞浦县| 桦南县| 漳浦县| 海盐县| 米泉市| 醴陵市| 万全县| 德钦县| 萍乡市| 松阳县| 开江县| 临泽县| 绥德县| 西吉县| 图木舒克市| 定安县|