自拍偷在线精品自拍偷,亚洲欧美中文日韩v在线观看不卡

平安健康的Docker應(yīng)用與實踐經(jīng)驗

企業(yè)動態(tài)

  做為容器技術(shù)的代表,Docker已經(jīng)逐漸獲得了企業(yè)的認(rèn)可。之前InfoQ就有報道過,國內(nèi)的新浪微博、雪球網(wǎng)等互聯(lián)網(wǎng)公司都在生產(chǎn)環(huán)境中成功使用了Docker。而對于一些傳統(tǒng)公司,他們的IT設(shè)施薄弱、應(yīng)用架構(gòu)復(fù)雜,在擁抱Docker時,可能遇到的問題相對較多。為此,InfoQ采訪了平安健康互聯(lián)網(wǎng)技術(shù)平臺資深架構(gòu)師王延炯。另外,王延炯將在6月11日的PWorld 軟件架構(gòu)&平臺創(chuàng)新大會上分享題為《基于Docker的開發(fā)、運(yùn)維一體化實踐》的主題演講。

InfoQ:您認(rèn)為Docker***的優(yōu)勢是什么?當(dāng)時公司為什么決定使用Docker?

王延炯:Docker優(yōu)勢有幾點,首先是輕量級,其次是面向管理透明,***是生態(tài)環(huán)境正在逐步建立、社區(qū)活躍。輕量級的容器這點,是大家都公認(rèn)的優(yōu)勢,我不做過多解釋。而面向管理透明主要是指Dockerfile與AUFS的結(jié)合,使得軟件的運(yùn)行環(huán)境面向開發(fā)、測試、運(yùn)維團(tuán)隊變得透明。而Registry是平臺軟件云化的特征之一。另外,Docker的迅速發(fā)展,與其生態(tài)環(huán)境的蓬勃發(fā)展是相輔相成的,例如有Jenkins、Ansible等一系列面向CI以及運(yùn)維友好的工具平臺迅速支撐。我們公司面向技術(shù)平臺的選型,還是比較開放的,各個團(tuán)隊可以選擇適合自己的平臺,可以嘗試新技術(shù),但目的只有一個,提高公司整體的運(yùn)營效率。選擇Docker,一方面因為是以上提到的幾個優(yōu)勢點,另外它也是虛擬化(如Xen/KVM)技術(shù)、容器技術(shù)兩者并行發(fā)展過程中,沉淀出一套適合于公司特點本身,需要取長補(bǔ)短、逐步形成一套***實踐的必經(jīng)之路。Docker技術(shù)本身還是在不斷的發(fā)展之中,作為一個新技術(shù),它的出現(xiàn)改變了很多原有軟件研發(fā)的流程。將其應(yīng)用到生產(chǎn)環(huán)境,***,對大公司而言是需要公司整體進(jìn)行調(diào)整,不僅僅是技術(shù)本身,還有配套的組織結(jié)構(gòu)、管理制度與流程相結(jié)合;第二,Docker本身的網(wǎng)絡(luò)、存儲、監(jiān)控等技術(shù)領(lǐng)域的關(guān)鍵問題還需要進(jìn)一步的驗證和實踐,才能夠?qū)⑵鋺?yīng)用到相應(yīng)的生產(chǎn)環(huán)境。第三,生產(chǎn)環(huán)境的安全等級(包括穩(wěn)定性要求),也是根據(jù)不同的業(yè)務(wù)等級會有不同的要求,一些低等級的生產(chǎn)環(huán)境,使用Docker是沒有任何問題的。

InfoQ:那在應(yīng)用Docker后,你們內(nèi)部在組織結(jié)構(gòu)、管理制度上做了怎么樣的調(diào)整?

王延炯:在開發(fā)測試過程中,相關(guān)團(tuán)隊經(jīng)常會找運(yùn)維團(tuán)隊分配一些開發(fā)機(jī)、測試機(jī)。而分配主機(jī)只是***步,相伴而來的還有一些配置工作,例如運(yùn)行期所需要的域名等等。當(dāng)然,除了Docker之外,如果用KVM、Xen等虛擬化技術(shù),也可以實現(xiàn)分配。但需要注意的是,使用虛擬化技術(shù)所分配出來的主機(jī)資源,基本上要比使用Docker技術(shù)分配出來的主機(jī)資源少一個數(shù)量級,甚至更多。最直觀的感受就是,在相同物理宿主機(jī)條件下,可以分配更多的“主機(jī)”了。這樣給軟件交付所帶來的好處(這也是Docker所倡導(dǎo)的)是一個容器內(nèi)只運(yùn)行一個進(jìn)程。每個應(yīng)用系統(tǒng),縱向前后臺分離、橫向多實例負(fù)載聚合,運(yùn)行期的每個實例都可以不受干擾的運(yùn)行在一個獨立的環(huán)境之中。初看這只是一個量變的過程,但到一定程度就變成了質(zhì)變,相同大小的運(yùn)維團(tuán)隊所要維護(hù)的“主機(jī)”數(shù),可能就多了一個數(shù)量級。所以使用Docker之后,在組織結(jié)構(gòu)和管理制度上,運(yùn)維團(tuán)隊只要在平臺層面提供Docker資源池,由各個項目的開發(fā),或者測試負(fù)責(zé)人,自行在資源池內(nèi)分配主機(jī)資源。所有動作都在Web界面完成,并且有簡單的工作流審批,減少資源濫用。

  InfoQ:你們的Docker應(yīng)用場景是怎么樣的?能介紹下你們所使用的技術(shù)棧嗎?

王延炯:關(guān)于Docker應(yīng)用場景,目前各個技術(shù)團(tuán)隊都根據(jù)自身的特點進(jìn)行應(yīng)用,大體上主要將Docker應(yīng)用于開發(fā)、測試環(huán)境,不同的場景使用的技術(shù)棧也有區(qū)別。在開發(fā)測試環(huán)境會使用SaltStack等技術(shù)對容器進(jìn)行集中化管理,其主要使用方式較為傳統(tǒng),主要為開發(fā)測試人員提供主機(jī)(操作系統(tǒng))級服務(wù),這與整個團(tuán)體的軟件研發(fā)過程息息相關(guān)。在SCM/CI平臺,有相當(dāng)大一部分開源工具已經(jīng)由社區(qū)實現(xiàn)了Docker化,能夠方便的將代碼與數(shù)據(jù)分離,使得平臺能夠進(jìn)行快速升級、二次開發(fā)與定制。在細(xì)節(jié)方面,諸如IP地主與主機(jī)名、IP地址(DHCP)與域名都進(jìn)行了一定程度的二次開發(fā)與集成,目前可以實現(xiàn)Docker容器實例、主機(jī)名、域名綁定的Web端一鍵式自助分配與注冊。

InfoQ:可否詳細(xì)聊聊你們基于Docker的workflow嗎?

王延炯:關(guān)于Docker的workflow,如之前提到的,有基于Web端的一鍵式主機(jī)(也就是Docker容器)分配平臺,支持開發(fā)、測試環(huán)境的主機(jī)自動創(chuàng)建、IP分配、域名綁定,并包含與組織結(jié)構(gòu)的審批流程。另外,在我團(tuán)隊所使用的Docker環(huán)境中,會將Docker與Jenkins/GitLab等平臺工具相結(jié)合,一方面將代碼固化至Docker鏡像中,一方面將配置文件作為數(shù)據(jù)分離到鏡像之外。這樣做的好處是,在一些無狀態(tài)的業(yè)務(wù)邏輯服務(wù)中,往往只需要『代碼+環(huán)境配置』,就可以部署到不同的運(yùn)行環(huán)境中。例如同一份代碼,與不同的開發(fā)、功能測試、性能測試環(huán)境配置相結(jié)合(docker -v參數(shù)),就能夠快速部署相應(yīng)的服務(wù)實例,并且可以與Docker自帶的restful接口做集成,甚至是使用IntelliJ 14.1的Docker插件,能夠做到從IDE到目標(biāo)環(huán)境的一鍵式快速發(fā)布與部署。需要注意的是,這樣做需要把程序的所有配置做盡可能地集中化處理,并且以Key-Value格式,降低錯誤幾率。

InfoQ:Docker有很多的坑,你們的應(yīng)用過程中是不是也遇到了?可以和大家分享下你印象深刻的幾個坑嗎?

王延炯:Docker的坑,在實際最多的還是集中于網(wǎng)絡(luò)。大多數(shù)的使用場景,還是需要解決容器在不同的宿主機(jī)之間的可達(dá)性,這是決定Docker應(yīng)用范圍的***步。簡單的使用端口映射,往往不能夠解決運(yùn)行期的端口動態(tài)監(jiān)聽和容器間互聯(lián)。另外,Docker的性能監(jiān)控,也是決定Docker應(yīng)用于什么樣等級的業(yè)務(wù)系統(tǒng)的關(guān)鍵因素,這也是近期除了網(wǎng)絡(luò)之外主要深耕的一個領(lǐng)域。目前還沒有對Docker進(jìn)行代碼級的優(yōu)化和hack,側(cè)重點還是在團(tuán)隊的整體運(yùn)行效率、軟件過程效率、業(yè)務(wù)持續(xù)交付中。

InfoQ:Docker最適合微服務(wù)架構(gòu)的應(yīng)用,像傳統(tǒng)非互聯(lián)網(wǎng)公司的IT系統(tǒng),應(yīng)該很多應(yīng)用都不是這樣的架構(gòu)。你們是如何過渡和應(yīng)用的?有什么好的經(jīng)驗分享嗎?

王延炯:首先,我們要回想一下到底什么是微服務(wù)或者叫微應(yīng)用。我個人認(rèn)為所謂微服務(wù)或者微應(yīng)用,尤其在傳統(tǒng)重業(yè)務(wù)的非互聯(lián)網(wǎng)領(lǐng)域,其定位應(yīng)當(dāng)是一些非核心系統(tǒng),或者是一些業(yè)務(wù)創(chuàng)新驅(qū)動的服務(wù)或應(yīng)用,或者是一些架構(gòu)于核心系統(tǒng)之上的組合、集成性質(zhì)的輕應(yīng)用。在技術(shù)層面,他們的特征是代碼量小,隨著業(yè)務(wù)快速變化可以迅速升級。而相對的,大平臺不僅僅是指一個技術(shù)平臺,廣義上應(yīng)當(dāng)是一個以各種技術(shù)標(biāo)準(zhǔn)進(jìn)行兼容和統(tǒng)一為基礎(chǔ),并提供多類型的業(yè)務(wù)平臺,需要有效、高效支撐上層的微應(yīng)用和微服務(wù)的繁衍。隨著時間的推移和業(yè)務(wù)的發(fā)展,一些微服務(wù)、微應(yīng)用,可以被吸收、沉淀至大平臺中,發(fā)揮更大的作用。其次,對于傳統(tǒng)公司而言,我并不建議為了追求新鮮的技術(shù)而一定要向Docker之類的『時鮮平臺』進(jìn)行遷移,保障復(fù)雜業(yè)務(wù)的穩(wěn)定性才是重中之重。像Docker之類的新技術(shù),可以采取『農(nóng)村包圍城市』的策略,先在外部非核心系統(tǒng)試點,根據(jù)企業(yè)自身的開發(fā)、測試、運(yùn)維的特點,積累和沉淀出一套適合自己的平臺的方法經(jīng)驗論,當(dāng)然其指導(dǎo)原則就是高效可靠。需要注意的是這個過程可能是漫長的,需要技術(shù)主導(dǎo),也需要組織保障。第三,我們可以發(fā)現(xiàn),就Docker技術(shù)本身而言,它提供的是一個輕量級的容器,并沒有集成每個企業(yè)所確立的容器基礎(chǔ)設(shè)施基線。而企業(yè)的基礎(chǔ)鏡像一般只是一個操作系統(tǒng)級的容器(公有社區(qū)的Registry,不在此討論范圍之內(nèi)),在此基礎(chǔ)之上,我們可以在Dockerfile里面,透明的定義具體應(yīng)用或者服務(wù)所需要的本地運(yùn)行環(huán)境(例如JDK、Node.js、Python等等),加之以具體的服務(wù)、應(yīng)用,在運(yùn)行期形成一個服務(wù)或應(yīng)用的實例。。第四,從企業(yè)架構(gòu)而言,一個服務(wù)或者應(yīng)用往往需要其它中間件的支持(如數(shù)據(jù)庫、緩存、分布式文件系統(tǒng)),也需要集群高可用的部署。這就牽扯到集群拓?fù)?有靜態(tài)也有動態(tài)的),包括縱向的從上層應(yīng)用到底層的硬件物理設(shè)施,橫向的多實例負(fù)載均衡與備份。一個完備的企業(yè)級容器平臺,還需要有實時的監(jiān)控和管理手段來輔助。Docker本身,并不提供這些企業(yè)級運(yùn)維工具或者來支撐,都需要基于開源工具進(jìn)行集成和定制開發(fā)。可以看到,把以上所有問題都解決了,對于傳統(tǒng)企業(yè),尤其是傳統(tǒng)非互聯(lián)網(wǎng)大型企業(yè),Docker的大范圍推廣才具備可行性。Docker是否在企業(yè)里能夠推廣,用短板模型來衡量的話,這個短板應(yīng)該是在運(yùn)維團(tuán)隊,并不是在開發(fā)團(tuán)隊。

 

受訪嘉賓介紹王延炯博士,畢業(yè)于北京郵電大學(xué)網(wǎng)絡(luò)與交換技術(shù)國家重點實驗室?,F(xiàn)任平安健康互聯(lián)網(wǎng)技術(shù)平臺資深架構(gòu)師,關(guān)注企業(yè)互聯(lián)網(wǎng)化過程中的軟件平臺技術(shù)路線。曾先后于西門子中國研究院、普元信息擔(dān)任資深架構(gòu)師,期間專注于內(nèi)存計算、大數(shù)據(jù)實時分析平臺的產(chǎn)品架構(gòu)設(shè)計工作;參與并主持了十余項三大電信運(yùn)營商、中國銀聯(lián)、中國登記上海公司等行業(yè)領(lǐng)軍企業(yè)的平臺軟件架構(gòu)設(shè)計。

責(zé)任編輯:市場部
相關(guān)推薦

2015-05-08 12:47:58

Docker

2015-06-03 14:14:17

dockeropenstackIaaS

2014-10-29 13:52:38

程序員

2010-01-25 14:25:33

Android Int

2022-07-29 09:54:42

數(shù)據(jù)庫分布式

2010-01-05 13:16:59

2023-11-22 11:15:56

數(shù)據(jù)中心機(jī)房

2021-07-26 17:22:02

Java

2015-10-10 13:49:23

2021-06-25 17:39:35

網(wǎng)絡(luò)對抗與實踐經(jīng)驗

2011-12-22 09:34:39

需求分析

2013-10-10 13:50:02

智能交通華為

2018-09-10 15:25:29

云計算云安全IT經(jīng)理

2022-08-10 13:54:40

云存儲存儲私有云

2024-12-04 14:52:46

2023-07-11 10:23:00

Lakehouse數(shù)據(jù)湖

2020-07-10 10:39:04

Python開發(fā)工具

2022-08-30 07:39:37

GPFSSAN存儲

2010-06-25 19:07:38

SAP
點贊
收藏

51CTO技術(shù)棧公眾號