4月21號,由InfoQ主辦的全球頂級技術盛會QCon全球軟件開發大會在北京開幕,吸引了國內外近百名資深技術專家及千名開發者的參加。網易云基礎設施技術總監張曉龍受邀出席,同與會的技術同行們分享了網易蜂巢容器云在基礎設施上的優化之道。
Docker容器誕生于2013年,是歷史上發展最快的開源軟件之一。目前Docker擁有極其活躍的開發者和用戶社區,已經形成了日益完善的生態系統,獲得亞馬遜、谷歌等巨頭支持。不僅是可提高資源利用率、實現資源隔離的輕量級虛擬化,更是一種全新的應用交付標準化方式,是應用交付的“集裝箱”。使用Docker容器進行研發,減少了配置管理工作的負擔,讓持續集成與持續部署過程變得更流暢。蜂巢容器云運行支撐了網易云音樂、網易新聞、考拉等重量級產品,如何保證服務的安全穩定,并提供極佳的用戶體驗?
作為網易云基礎設施技術總監,張曉龍主導了網易私有云和網易蜂巢公有云基礎設施服務的研發工作,在云計算基礎設施、大數據、分布式系統、服務端方面有多年的研發實踐經驗。在QCon大會上,張曉龍作了名為《網易蜂巢容器云基礎設施優化之道》的主題演講,闡述了蜂巢容器云的研發歷程、技術架構、核心技術,以及在容器隔離、啟動性能、容器網絡網絡安全、網絡帶寬QoS、容器存儲性能、支持有狀態容器以及容器編排等方面的基礎設施優化。正是在云計算基礎設施的優化,才確保了蜂巢容器云服務的高效、安全、穩定。
和很多網易系云計算產品一樣,蜂巢容器云也是網易云計算技術對外輸出的產品。2015年秋,蜂巢容器公有云邀請用戶試用,并在2015年底對外開放了容器公有云的注冊。不同于其他容器云服務,蜂巢容器云在上線之初就瞄向創服圈。今年年初的時候,網易啟動了致力于幫扶互聯網開發者、創業者的“易啟計劃”,30余家創服機構現場簽定戰略合作協議,共同打造有利于科技創業的良好生態環境。蜂巢容器云便是網易云戰略和“易啟計劃”的核心產品之一。
據張曉龍介紹,蜂巢容器云采用了最新流行的Docker容器化技術,提供自動化構建發布、應用性能管理、集群編排等服務,全面加速創業研發流程。此外,蜂巢還提供了豐富多樣的PaaS云服務,比如關系數據庫、緩存、負載均衡、應用性能監測等服務,全面助力創新創業團隊進行快速研發。網易蜂巢基于網易自研IaaS深度定制優化,采用高規格的硬件設施如多線BGP網絡接入、萬兆網絡互聯、全SSD存儲等,確保極速、安全、穩定的用戶體驗。
RightScale不久前發布的《2016 年度云計算調查報告》顯示,33%的云計算用戶公司規模在100人以下,而1000人以下的員工占比更是高達58%。可以說,網易蜂巢瞄向了有著巨大潛力的創服市場,同時創業者對云服務的安全、效率、穩定性、性能等有著更迫切的需求。而網易蜂巢又是如何解決這些痛點的呢?張曉龍給出了下面的答案。
第一是提升容器安全性。由于是操作系統層面的輕量級虛擬化,容器安全性一直是用戶非常關心的問題,也制約著容器技術的發展;容器安全性問題以“容器逃逸”問題最有名,也就是黑客可以通過容器的一些漏洞滲透到運行容器所在的宿主機上,對宿主機上的其他容器以及宿主機本身都造成巨大的威脅。網易蜂巢將容器運行于隔離性更強且基于硬件虛擬化技術的云主機,并且確保在一個云主機上只運行同一個租戶的容器。這樣的設計可以獲得更好的容器安全性。網絡安全一直是公有云用戶非常關心的問題。蜂巢提供了包括二層、三層、四層在內的網絡過濾功能,同時還為公有云用戶提供了防止DDoS攻擊的能力。
第二,提升容器的啟動速度。由于容器運行于云主機中,容器啟動時間依賴于云主機啟動速度。而基于硬件虛擬化技術的云主機啟動速度較慢,這導致容器啟動速度較慢。網易蜂巢為了解決這一問題,通過定制云主機系統鏡像,裁剪了不必要啟動加載和服務,同時將云主機IP靜態化,以加速網絡初始化過程。同時值得一提的是,網易蜂巢還優化了OpenStack創建云主機的流程,包括增加ConfigDrive鏡像緩存,優化鏡像上傳RBD操作、削減計算節點定時任務運行時間等等。未來還將更進一步加快容器啟動速度。
第三,在容器網絡設計上,蜂巢為每個用戶提供一個私有網絡以及一個公網。用戶可以通過容器的網卡接入網絡。容器私有網基于VxLAN技術實現,通過OpenStack Neutron創建提供,是一張虛擬的扁平二層網絡,租戶間完全隔離,用戶可自主控制ip分配;容器公網是所有蜂巢用戶共享。同時,在網絡帶寬上,蜂巢實現網絡帶寬QoS,不僅確保用戶付費申請的帶寬,還可以在網絡帶寬資源富余時免費提升用戶帶寬體驗。
第四,在容器的存儲上,蜂巢優化了底層分布式塊存儲服務Ceph的性能,大幅度降低了運維操作時存儲性能的衰減和影響時間。另外,雖然Docker可以很好支持無狀態服務的運行,但在業務開發中還是非常有可能需要容器具備持久化數據的能力。所以蜂巢也實現了對運行有狀態應用的支持,包括允許持久化容器數據(運行環境、配置數據等)、快速備份以及恢復容器數據以及支持有狀態容器的遷移。
第五,在容器編排上,蜂巢拓展了容器編排服務Kubernetes的多租戶能力,實現其管理資源的租戶隔離,完善了租戶資源的安全訪問控制、為每個租戶實現獨立的認證和授權。同時,蜂巢還優化了容器編排調度器和控制器的處理能力,以支持更大的集群規模以及更好的性能。
展望未來,張曉龍表示,網易蜂巢容器云還將加大基礎設施和產品的研發投入力度。蜂巢不斷推出更加豐富的容器云平臺服務的同時也會繼續深入優化基礎設施,做真正專業的容器云平臺,全面助力創新創業團對加速研發全流程,實現應用交付更快捷。