隨著云計算的普及,越來越多的企業(yè)開始在云端部署自己的應用,如何對這些應用進行管理、調度、優(yōu)化、運維等,以實現(xiàn)應用的快速部署、快速迭代和實時監(jiān)控,已然成為云計算服務的一大難題。
從2012年正式上線私有云平臺到2015年推出網易蜂巢容器云平臺,再到2016年上線DevOps和微服務。作為網易云的基礎設施云服務,網易蜂巢一直走在行業(yè)前列,并形成了新一代云計算的雛形。
截止到目前,采用業(yè)界最先進的容器編排技術Kubernetes,網易蜂巢支撐了網易內部95%以上的互聯(lián)網業(yè)務,包括擁有億級用戶的網易考拉海購和網易云音樂。在提供高可用和高性能服務的同時,網易蜂巢在認證鑒權、網絡隔離、容器安全、任務調度、集群擴容、監(jiān)控告警等方面積累了豐富的運維經驗。
劉超在Velocity大會介紹說,網易蜂巢的運維實踐可以追溯到IaaS層、PaaS層和CaaS層。
在硬件層面,網易蜂巢采用了五星級機房標準,實現(xiàn)多線BGP網絡接入、萬兆網絡互聯(lián)和全SSD存儲。
基于硬件,網易蜂巢基于OpenStack自主研發(fā)了IaaS服務,實現(xiàn)了高性能的計算虛擬化,網絡虛擬化和存儲虛擬化。對于計算虛擬化方面,網易蜂巢定制KVM系統(tǒng)鏡像,對原有厚重的虛擬機鏡像進行了內核裁剪,并通過實現(xiàn)云主機IP靜態(tài)化,優(yōu)化OpenStack創(chuàng)建云主機流程,從而使得本來分鐘級別的虛擬機創(chuàng)建過程縮減為秒級別。對于網絡存儲化方面,基于Openvswitch和SDN技術,實現(xiàn)了虛擬機主機的高速互聯(lián),另外針對網絡安全和網絡攻擊,通過DPDK技術,在用戶態(tài)可以實現(xiàn)網絡包從二層到四層的過濾,防止MAC和IP網絡欺騙,對于網絡性能,通過linux的tc技術結合Openvswitch,實現(xiàn)基于租戶的網絡性能隔離和QoS。
基于IaaS層,在數(shù)據(jù)庫、緩存服務、對象存儲等方面,網易蜂巢也通過自研的方式實現(xiàn)了高可用、高性能的PaaS。
網易蜂巢作為容器云平臺,相比于虛擬機實現(xiàn)了以資源為核心到以應用為核心的轉變,用戶可以通過去狀態(tài)化,容器化,和DevOps,實現(xiàn)應用的動態(tài)擴展,負載均衡,快速迭代。以DevOps為例,網易蜂巢提供了豐富的運維工具,不僅解決了線上線下環(huán)境一致性的問題,還打通了研發(fā)和運維部門,使得研發(fā)能夠通過蜂巢自動完成運維工作,而運維部門也可以更加聚焦于服務的連續(xù)性、用戶的體驗以及可靠性,使得整個組織協(xié)作更加高效。
從虛擬機過度到容器,對于一些傳統(tǒng)企業(yè)來講,一步實現(xiàn)微服務化和DevOps還是比較困難的,需要長時間的應用改造和開發(fā)流程的完善,為了幫助客戶盡快的實現(xiàn)應用的容器化,網易蜂巢推出了有狀態(tài)容器。一個容器啟動的時候,會將容器的配置和容器的鏡像放在一個本地文件夾里面,Docker Daemon通過讀取這個文件夾,來維護當前主機上的所有的容器列表。網易蜂巢通過定制化Docker,在容器啟動的時候,將容器的配置和鏡像保存在外部的統(tǒng)一存儲上面,從而使得到容器所在主機宕機的時候,在另外的主機上,可以掛載外部的統(tǒng)一存儲,從而保證保存在硬盤上面的數(shù)據(jù)在容器跨主機遷移的時候,不丟失。
此外,網易蜂巢的技術團隊還進行了一系列的容器層面的優(yōu)化和編排層面優(yōu)化,比如說網易蜂巢在容器方面提供了虛擬化扁平二層網絡,基于VXLAN實現(xiàn)租戶隔離,可以使得用戶不通過NAT,而是通過傳統(tǒng)虛擬機的網絡互聯(lián)模式來進行容器間的互聯(lián),從而使得容器化對于用戶應用的侵入性很少。
服務微服務化之后,容器數(shù)量會比較多,如果查找問題需要對于每個容器的日志進行查看,會比較難定位問題,網易蜂巢平臺提供統(tǒng)一的日志收集,分析,搜索服務,用戶可以通過關鍵字進行搜索,將某個訂單號在各個應用中的日志全部查詢出來,則問題就一目了然了。
除了問題的定位,性能瓶頸的定位也是一個挑戰(zhàn),網易蜂巢引入服務端 APM 解決細粒度性能分析,通過不同應用之間的調用鏈,迅速發(fā)掘性能瓶頸。
在服務編排上, Kubernates默認的namespace只隔離replication controller,pod 等資源,網易蜂巢實現(xiàn)了節(jié)點、存儲、網絡的租戶隔離,從而實現(xiàn)不同的租戶不共享云主機節(jié)點,使用完全獨立的VXLAN ID,滿足公有云模式下租戶的安全隔離需求。
同時劉超表示,在這個“唯快不破”的互聯(lián)網時代,網易蜂巢將助力企業(yè)實現(xiàn)微服務化。
在如圖中的架構里面,用戶僅僅需要關心自己的應用的開發(fā)流程,實現(xiàn)微服務和DevOps,至于底層的IaaS層的計算,網絡,存儲,中間的PaaS的數(shù)據(jù)庫,緩存,對象存儲,上層的CaaS層的持續(xù)集成、鏡像倉庫、服務發(fā)現(xiàn)、服務編排、日志服務、APM等,以及對外的負載均衡和CDN服務,可以全部交給網易蜂巢平臺來實現(xiàn)。更重要的是,網易蜂巢遵循開放、標準、穩(wěn)定的原則,所有的層面全部使用開源的軟件和開放的接口,使得服務本身易遷移、無綁定。
Web性能、運維、DevOps、容器、微服務等成為今年Velocity北京站的核心議題,也預示了云計算和企業(yè)級服務發(fā)展的趨勢。網易蜂巢作為新一代云計算平臺在DevOps、微服務等方面有著出色的表現(xiàn),未來將繼續(xù)為客戶提供穩(wěn)定、可靠、高質量的云服務。