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