4月21至23日,由InfoQ主辦的頂級技術盛會QCon全球軟件開發大會在北京開幕,本屆大會吸引了100余位國內外技術專家參加分享,包括亞馬遜、惠普、阿里巴巴、華為等國內外知名科技企業。其中在容器云領域脫穎而出的網易蜂巢也受到邀請,網易杭州研究院云計算平臺產品部總監陳諤從技術角度分享了構建高效開發容器云平臺的實踐經驗。
基于在云計算領域的深厚積淀,網易在2015年末正式上線了蜂巢容器云平臺,助力開發者進行高效的開發設計。目前已經服務于易信、網易云音樂、網易云課堂等網易優秀的互聯網產品,并積累了順豐、中信信托、浙大網新等行業知名的首批用戶。誠然,網易蜂巢在短時間內便贏得不少開發者的青睞,和蜂巢容器云專業優質的服務不無關系,陳諤在QCon全球軟件開發大會上分享了網易蜂巢打造專業容器云平臺的一些挑戰。
Docker容器技術崛起,改變了軟件的開發方式
自2013年以來,Docker鏡像的下載量已經突破12億次,使用容器進行應用開發和部署已然成為了最流行的方式。最新的研究顯示,在使用Docker的企業中,超過40%已經運用在生產環境中,而在未來這個數目將會急劇上升。
相比于傳統的軟件開發方式,容器化技術擁有一次開發、多次部署的能力,將開發、運維和IT作為一個整體,使開發者更多地考慮如何為終端用戶帶來更大的利益,而不用被昂貴耗時的基礎架構管理、擴展和實施所約束。簡單來說,Docker容器技術解決了困擾研發團隊的開發、測試、生產環境一致性的問題,使得聯系研發流程的核心從代碼變為打包了運行環境的容器鏡像,通過消除中間的運維配置部署過程,為開發者驅動研發流程提供了有力的支持,并通過實施開發者驅動能夠有效降低研發過程的溝通協作成本,加速產品迭代。為此,陳諤對此深有感觸:“對于Docker的技術帶來的改變,我們感覺就是把開發過程的復雜性降低了。以前要開發、運維、測試三方的協作,現在運維介入得更早,它幫助我們定義鏡像,定義運行的環境,接下來都是由開發的同事去驅動這件事情。”
此外,容器即服務的興起將促進以運維為中心的應用發布,改善開發和運維、敏捷和控制之間的平衡,從而以運維為導向的開發方式取代現有的開發模型。
網易蜂巢如何打造高效容器云平臺?
作為深耕云計算多年的技術專家,陳諤目前負責網易云計算平臺的建設,并完成了公司軟件基礎設施的云化改造,對分布式系統設計開發、云計算平臺系統架構有一定的經驗和理解。在陳諤看來:“容器云作為一種新的云計算平臺,一個重大的挑戰便是確定產品形態并將產品落地。”目前國內大大小小的容器云平臺不下十家,如何打造高效專業的容器云服務,各家似乎有著不同的理解,為此陳諤在QCon全球軟件大會上分享了網易蜂巢的經驗。
首先,基于開發者視角關注開發效率。對于開發者來說,選擇容器云服務的初衷就是為了提升開發效率,網易蜂巢容器云為了讓開發者能夠掌控運維過程從而驅動研發流程,將平臺的使用者應定位為開發者(Dev)角色,最大程度的提升開發者的研發效率。陳諤介紹說:“容器云產品不應對用戶的技術解決方案、架構有過度的傾入性,應更多考慮基礎設施向容器云的平滑遷移,讓用戶感受到容器云帶來的更好的云計算體驗。”聯想的此前網易云計算從用戶視角將云計算重新定了云服務的劃分方式,將云計算產品分為研發云、運作云和運營云,贏得了不錯的用戶口碑。陳諤從產品形態上將蜂巢總結為“基于開發者視角,關注研發效率,做一朵更好的云”,網易蜂巢也是國內第一個從開發者視角研發的專業容器云平臺。
其次,解決Docker容器的技術棧成熟度問題。Docker作為一個誕生僅有三年時間的項目,雖然整體架構越來越完善,在模塊化、標準化方面獲得了長足的進步,但若要在容器云這樣多租戶的生產環境中采用Docker,無論是網絡、存儲、安全性方面都存在著不足。陳諤介紹說,為了解決這些問題,網易蜂巢從兩個方面來提升開發效率。一是消除系統的復雜性,蜂巢采用了基于Openstack Neutron的VxLAN網絡,每個租戶都擁有獨立私有的二層網絡,從而解決容器間互連帶來的運維復雜度增加、不利于故障排除等問題,并對云數據庫和基礎設施進行了優化。二是采用DevOps戰略實現了以容器作為資源的交付單位,解決了kubernetes這一容器編排解決方案在水平擴展和多租戶支持方面的不足,并利用先進的診斷工具解決了以OpenStack作為管理底層基礎設施所存在的性能、穩定性等方面的問題。
另外,陳諤還提到了容器性能管理的問題,“原有的一些平臺提供的往往是資源的監控,并不利于性能問題的預判和診斷,比如說短暫的性能波動在常規的方式下很容易被屏蔽掉,在監控圖表中也很難發現問題所在。網易蜂巢的理念是服務要細化到API級別,使性能管理能夠定位到精確的故障點。比如在數據庫、調用鏈等基礎服務上。”
基于以上三點,網易蜂巢不僅發揮了容器的優勢,并通過豐富的工具集成,讓應用交付更快捷、運維更簡單,成為真正有助于提升開發效率的容器云平臺。“網易在實施云計算的過程中一直在思考的問題是能否提升產品的開發效率,在保證質量的前提下盡可能縮短產品的開發迭代周期,由此我們在Docker容器技術的基礎上研發了蜂巢容器云,以幫助開發者降低運維成本,加速開發迭代。”陳諤總結道。