云上應(yīng)用Docker化持續(xù)交付與微服務(wù)實(shí)踐
首屆阿里巴巴在線技術(shù)峰會(huì)(Alibaba Online Technology Summit),將于7月19日-21日 20:00-21:30 在線舉辦。本次峰會(huì)邀請(qǐng)到阿里集團(tuán)9位技術(shù)大V,分享電商架構(gòu)、安全、數(shù)據(jù)處理、數(shù)據(jù)庫(kù)、多應(yīng)用部署、互動(dòng)技術(shù)、Docker持續(xù)交付與微服務(wù)等一線實(shí)戰(zhàn)經(jīng)驗(yàn),解讀***技術(shù)在阿里集團(tuán)的應(yīng)用實(shí)踐。
阿里巴巴在線技術(shù)峰會(huì)專(zhuān)題,立即參與報(bào)名:https://yq.aliyun.com/activity/97
7月19日晚8點(diǎn),阿里云資深專(zhuān)家易立將分享《云上應(yīng)用Docker化持續(xù)交付與微服務(wù)實(shí)踐》。為了讓大家更好的了解Docker目前發(fā)展?fàn)顩r,我們對(duì)易立進(jìn)行了采訪,下面是采訪整理。
2013 Docker出世:讓人眼前一亮
2013年末,當(dāng)時(shí)我是IBM PureApplication System的架構(gòu)師,該系統(tǒng)的PaaS引擎是基于虛擬機(jī)技術(shù)的,我希望能利用容器技術(shù)來(lái)加速軟件的部署和簡(jiǎn)化運(yùn)維。雖然那時(shí)Docker出現(xiàn)不久,但是它友好的開(kāi)發(fā)者體驗(yàn)和容器化軟件分發(fā)運(yùn)維能力讓人眼前一亮。之后我負(fù)責(zé)設(shè)計(jì)并開(kāi)發(fā)了PureApp的對(duì)Docker的支持,可以將企業(yè)軟件以Docker鏡像的方式提供出來(lái),并讓基于Docker和虛擬機(jī)提供的中間件服務(wù)可以無(wú)縫融合在一起。加入阿里以后,在從事數(shù)據(jù)中心自動(dòng)化的過(guò)程中也引入Docker作為一種標(biāo)準(zhǔn)化的軟件方式,來(lái)交付和運(yùn)維大規(guī)模分布式應(yīng)用。
對(duì)于Docker技術(shù)的學(xué)習(xí),我的一些經(jīng)驗(yàn)是:
1. “紙上得來(lái)終覺(jué)淺,絕知此事要躬行。”學(xué)習(xí)一個(gè)新技術(shù)一定要親自動(dòng)手去嘗試,結(jié)合自己具體問(wèn)題來(lái)思考和嘗試如何用它來(lái)解決。這樣學(xué)到的東西會(huì)更加深刻。
2. 用一個(gè)開(kāi)放的心態(tài)去參與到開(kāi)源社區(qū)中。Docker的成功很大程度和其開(kāi)源社區(qū)的繁榮密不可分,和社區(qū)的互動(dòng)能夠幫助自己更加深入地思考一些問(wèn)題,和更好地判斷技術(shù)發(fā)展的趨勢(shì)?,F(xiàn)在我們團(tuán)隊(duì)也有近20個(gè)PR被合并到Docker Engine/Swarm等多個(gè)項(xiàng)目中。
阿里云Docker之路:擁抱開(kāi)源
阿里云在2015年10月云棲大會(huì)上宣布將提供基于Docker的容器服務(wù),同年12月推出了公測(cè),2016年5月容器服務(wù)正式商用。
在此之前,阿里集團(tuán)內(nèi)部對(duì)容器技術(shù)的使用和積累已經(jīng)有4年時(shí)間了,基于LXC的T4容器技術(shù)早在雙十一等場(chǎng)景進(jìn)行大規(guī)模應(yīng)用,對(duì)提高系統(tǒng)利用率有很大幫助。隨著Docker技術(shù)的成熟并成為容器技術(shù)的事實(shí)標(biāo)準(zhǔn),阿里云推出容器服務(wù)是一件水到渠成的事情。
這件事從高層決策到執(zhí)行過(guò)程中,大家都認(rèn)同Docker所代表的容器技術(shù)發(fā)展趨勢(shì)。同時(shí)希望能夠擁抱開(kāi)源社區(qū)和開(kāi)放標(biāo)準(zhǔn),讓阿里云成為運(yùn)行Docker技術(shù)一個(gè)***云端環(huán)境。
容器服務(wù)是近年來(lái)云計(jì)算領(lǐng)域的熱點(diǎn),國(guó)內(nèi)外初創(chuàng)公司(包括Docker自己)和云計(jì)算巨頭(Google,Amazon)都推出了容器服務(wù)。阿里云也是根據(jù)自身的優(yōu)勢(shì)和技術(shù)積淀推出了容器服務(wù),希望能夠連接阿里云和Docker生態(tài)。阿里云的容器服務(wù)優(yōu)勢(shì)有:
1. 充分擁抱開(kāi)源標(biāo)準(zhǔn),全兼容Docker鏡像和Docker原生編排技術(shù)。降低用戶(hù)遷云成本。
2. 提供針對(duì)阿里云優(yōu)化Docker支持,提供更好的網(wǎng)絡(luò)、存儲(chǔ)解決方案,和高可靠、低成本的鏡像存儲(chǔ)管理方案。
3. 將Docker技術(shù)和微服務(wù)架構(gòu)、DevOps、云服務(wù)等結(jié)合起來(lái),提供支持完整軟件生命周期中的應(yīng)用平臺(tái)。并提供了開(kāi)放框架,允許合作伙伴來(lái)擴(kuò)展平臺(tái)中的功能,將容器服務(wù)集成到現(xiàn)有IT流程和環(huán)境中。
DockerCon2016 美國(guó)之行:中國(guó)生產(chǎn)環(huán)境使用比例僅10%
前陣子,我前往美國(guó)西雅圖參加了DockerCon 2016,讓我感受比較深的是,國(guó)內(nèi)外對(duì)于Docker的關(guān)注點(diǎn)還是有所不同:
1. 國(guó)內(nèi)外對(duì)Docker技術(shù)接受度不同
在今年6月,我們?cè)谠茥鐓^(qū)上發(fā)起了一個(gè)Docker用戶(hù)調(diào)查,其中只有10%的用戶(hù)已經(jīng)在生產(chǎn)環(huán)境中使用Docker。這個(gè)結(jié)果和國(guó)外的同期相關(guān)調(diào)查差距非常大,例如在DockerCon2016上,由Docker公布的調(diào)查反饋中,國(guó)外60%的用戶(hù)中已經(jīng)將Docker使用在生產(chǎn)環(huán)境中。產(chǎn)生差距的主要原因在于國(guó)內(nèi)企業(yè)的IT成熟度,以及在國(guó)內(nèi)缺乏容器相關(guān)的文檔、培訓(xùn)、成功案例等。這需要國(guó)內(nèi)廠商和社區(qū)的一起努力來(lái)推廣普及容器技術(shù)。
2. 國(guó)內(nèi)外Docker生態(tài)的不同
在國(guó)外,傳統(tǒng)IT巨頭(微軟、IBM、HPE、思科、Redhat)和云計(jì)算公司(亞馬遜,微軟、Google)對(duì)Docker技術(shù)的重視和投入令人印象深刻;同時(shí)大量的初創(chuàng)企業(yè)里在各個(gè)方面探索容器技術(shù)的技術(shù)邊界和新商機(jī),容器化DevOps、監(jiān)控、安全、網(wǎng)絡(luò)、存儲(chǔ)等都是熱點(diǎn)。
在DockerCon上 “Nobody cares about containers, it's the application that matters”,一句話深入人心,Docker在微服務(wù)架構(gòu)、Serverless、企業(yè)應(yīng)用等領(lǐng)域的深入應(yīng)用也是重要發(fā)展趨勢(shì)。
相比較而言,一方面國(guó)內(nèi)公司的身影還比較少,另一方面涉及領(lǐng)域的多樣性還有待提升。希望大家一起攜手,在中國(guó)土壤也能培育出***的技術(shù)公司。同時(shí),我也在會(huì)上簡(jiǎn)單介紹了中國(guó)云計(jì)算和Docker技術(shù)的現(xiàn)狀,并重點(diǎn)講了三個(gè)不同方向的案例來(lái)介紹阿里云對(duì)容器技術(shù)的探索:
1. 在公共云上,阿里云容器服務(wù)可以讓用戶(hù)關(guān)注自己應(yīng)用自身而非基礎(chǔ)設(shè)施。它提供了兼容Docker Compose/Docker Swarm編排模型,并對(duì)微服務(wù)、DevOps等場(chǎng)景做了增強(qiáng)和擴(kuò)展,能夠無(wú)縫地整合容器和云服務(wù)。
2. 熟悉云計(jì)算運(yùn)維的同學(xué)都知道,專(zhuān)有云交付是一個(gè)很復(fù)雜的事情,而升級(jí)維護(hù)則更加繁瑣。阿里云在今年4月推出的專(zhuān)有云產(chǎn)品Apsara Stack,它利用Docker技術(shù)大大簡(jiǎn)化和加速了專(zhuān)有云的交付過(guò)程。我們可以在短短幾個(gè)人天之內(nèi),在用戶(hù)自有數(shù)據(jù)中心部署一個(gè)全功能的云環(huán)境。
3. 在阿里集團(tuán)內(nèi)部,越來(lái)越多的部門(mén)逐漸開(kāi)始采用容器方式進(jìn)行軟件的分發(fā)和運(yùn)維。這里我們介紹了一個(gè)分布式、可伸縮的Docker鏡像分發(fā)架構(gòu)來(lái)應(yīng)對(duì)全球化部署的挑戰(zhàn)。
現(xiàn)場(chǎng)反饋還是不錯(cuò),有不少?lài)?guó)外的朋友之前不了解阿里云已經(jīng)是一個(gè)全球化的云供應(yīng)商,也不了解我們?cè)谌萜鞣矫娴奶剿?,?huì)后有不少問(wèn)題來(lái)咨詢(xún)。大家有興趣可以去下載相應(yīng)的文檔來(lái)了解具體內(nèi)容(PDF下載)。
Docker落地:要有正確姿勢(shì)
雖然Docker一直保持很高熱度,也開(kāi)始在一些公司進(jìn)入生產(chǎn)環(huán)境,但在真正落地過(guò)程中,用戶(hù)也會(huì)遇到一些實(shí)際問(wèn)題。我贊同DockerCon第二天主題演講上提出的概念,在采用Docker技術(shù)在企業(yè)中的實(shí)踐過(guò)程中,應(yīng)該采用演化而非革命的方式來(lái)進(jìn)行。
首先找到契合自己具體情況的方向進(jìn)行驗(yàn)證,比如利用Docker構(gòu)建持續(xù)集成和交付流水線,或者利用Docker實(shí)現(xiàn)混合云環(huán)境部署等。通過(guò)這樣的嘗試來(lái)培養(yǎng)團(tuán)隊(duì),并利用成功案例的進(jìn)展來(lái)說(shuō)服決策層,再逐步深化改善整個(gè)軟件供應(yīng)鏈。
在Docker落地的過(guò)程中,除了Docker運(yùn)行環(huán)境外還有大量的問(wèn)題需要解決,比如安全、網(wǎng)絡(luò)、存儲(chǔ)、調(diào)度等,而且Docker技術(shù)發(fā)展非常之快,這時(shí)要減少自己發(fā)明輪子,盡可能利用一些成熟、開(kāi)放的技術(shù)方案,比如阿里云容器服務(wù)來(lái)解決容器基礎(chǔ)架構(gòu),盡可能從業(yè)務(wù)視角,關(guān)注于如何Docker解決現(xiàn)有的問(wèn)題,而不是把重點(diǎn)放到Docker自身的技術(shù)之上。
開(kāi)發(fā)者時(shí)代:保持初心
現(xiàn)在開(kāi)發(fā)者已經(jīng)迎來(lái)發(fā)展的***時(shí)代,對(duì)開(kāi)發(fā)者而言的成長(zhǎng)而言,我只有兩個(gè)建議:
1. 保持初心,讓自己對(duì)技術(shù)充滿(mǎn)熱情。在我的職業(yè)生涯中很多資深的工程師給我留下了深刻的印象,雖然他們甚至已經(jīng)是IBM的院士或者阿里的高級(jí)技術(shù)主管,但依然保持著高度的技術(shù)敏感度,會(huì)深入學(xué)習(xí)并親自動(dòng)手去解決技術(shù)問(wèn)題。我希望能成為他們那樣的人,我也很開(kāi)心在阿里云能找到這樣的環(huán)境和氛圍,和志同道合的同學(xué)一起奮斗、成長(zhǎng)。
2. 持續(xù)學(xué)習(xí)?,F(xiàn)在技術(shù)變革的速度在持續(xù)加速,學(xué)習(xí)是對(duì)每個(gè)技術(shù)人的要求。這里包括對(duì)專(zhuān)業(yè)技能和軟技能(Soft skill)的提升。
關(guān)于技術(shù)閱讀,一般而言,我建議要同時(shí)培養(yǎng)自己的技術(shù)深度和寬度。這樣可以更好地應(yīng)對(duì)快速變化的市場(chǎng)和技術(shù)。技術(shù)書(shū)籍是作者的思考和總結(jié),一般而言比網(wǎng)絡(luò)文章質(zhì)量要好不少,但是時(shí)效性要弱一些。學(xué)習(xí)的目的是建立自己的知識(shí)體系,多閱讀、兼顧不同的類(lèi)型,可能對(duì)技術(shù)同學(xué)更適合。對(duì)經(jīng)典讀物要反復(fù)閱讀和思考Jolt大獎(jiǎng)的圖書(shū)絕對(duì)是一個(gè)有價(jià)值的書(shū)單,對(duì)一般書(shū)籍或網(wǎng)文要觀其大要,結(jié)合實(shí)踐來(lái)學(xué)習(xí)。
對(duì)Docker開(kāi)發(fā)者而言,每周的新聞通訊郵件是一個(gè)了解Docker技術(shù)發(fā)展和社區(qū)動(dòng)態(tài)的一個(gè)好機(jī)會(huì)。