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