網(wǎng)易蜂巢:如何利用容器云實(shí)現(xiàn)DevOps
DevOps這個(gè)將Development(開發(fā))和Operations(運(yùn)維)組合的名詞,相信對很多開發(fā)者來講并不陌生,可直到今天很多企業(yè)并沒有很好的實(shí)現(xiàn)DevOps,開發(fā)和運(yùn)維之間的悖論也一直存在。
自2013年開始,以Docker為代表的容器技術(shù)在全世界范圍內(nèi)迅速發(fā)展,容器云也逐漸被廣大開發(fā)者所熟知。其中以網(wǎng)易蜂巢為代表的容器云服務(wù)商開始提供完善的DevOps工具鏈支持自助運(yùn)維,最大程度的幫助開發(fā)者提升研發(fā)效率。那么網(wǎng)易蜂巢是如何平衡開發(fā)、運(yùn)維以及質(zhì)量保障部門之間的溝通協(xié)作的呢?
DevOps離現(xiàn)實(shí)還有多遠(yuǎn)?
一般來說,談到DevOps首先想到的就是開發(fā)效率的提高和成本的節(jié)約,至少Puppet實(shí)驗(yàn)室給出的數(shù)據(jù)是:高性能的DevOps組織部署代碼經(jīng)常要比傳統(tǒng)組織快30倍。可現(xiàn)實(shí)來看,開發(fā)團(tuán)隊(duì)的要求是不斷滿足新的客戶需求,并快速實(shí)現(xiàn)新的功能。而運(yùn)維最關(guān)心的是“穩(wěn)定壓倒一切”,任何差錯(cuò)都有可能對生產(chǎn)環(huán)境中的用戶造成直接影響。如果不能很好的解決開發(fā)和運(yùn)維之間的問題,無疑將嚴(yán)重影響產(chǎn)品研發(fā)的效率。
在DevOps概念出現(xiàn)之前,運(yùn)維的角色在持續(xù)發(fā)生改變。從最初負(fù)責(zé)機(jī)房、服務(wù)器選型等與業(yè)務(wù)無關(guān)的業(yè)務(wù),到IDC、SA、DBA、OP等專業(yè)技能的分工,再到平臺(tái)化和團(tuán)隊(duì)化的運(yùn)維工作,同時(shí)運(yùn)維所提供的基礎(chǔ)設(shè)施幾乎 100% 覆蓋到開發(fā)的需求,DevOps已經(jīng)顯得十分重要。而隨著云服務(wù)的出現(xiàn),不少企業(yè)開始采用公有云提供的全套基礎(chǔ)設(shè)施,運(yùn)維的形態(tài)似乎變得簡單起來,由此導(dǎo)致的結(jié)果是運(yùn)維工作變成一個(gè)不系統(tǒng)、散亂的狀態(tài),讓運(yùn)維的三個(gè)重要結(jié)果:快速上線、穩(wěn)定運(yùn)行、高效資源利用,開始變得不可控。原因在于,相對原始的IaaS服務(wù)并沒有完善的監(jiān)控和日志服務(wù),看似解決了運(yùn)維的問題,也為開發(fā)工作帶來了這樣或那樣的問題。在這個(gè)背景下,以CaaS著稱的容器云應(yīng)運(yùn)而生。
當(dāng)然,DevOps的普及還面臨文化上的沖擊。早在2013年的時(shí)候,InformationWeek就針對DevOps進(jìn)行了相關(guān)調(diào)查,結(jié)果顯示有75%的受訪查者知道DevOps,但只有21%已經(jīng)使用它。這與開發(fā)和運(yùn)維之間的文化隔閡不無關(guān)系。也就是說,運(yùn)維團(tuán)隊(duì)必須清除的認(rèn)識(shí)到,如果不能快速把開發(fā)成果推倒生產(chǎn)環(huán)境,企業(yè)就很可能被其他競爭對手超越。而開發(fā)團(tuán)隊(duì)需要改變的思維是,在開發(fā)代碼或者更改設(shè)置時(shí),還需要考慮對整個(gè)系統(tǒng)穩(wěn)定性和性能的影響。云計(jì)算的到來讓問題變得不再那么糟糕,開發(fā)、運(yùn)維以及質(zhì)量保障之間的界限開始變得模糊,可在解放企業(yè)生產(chǎn)力的同時(shí),以網(wǎng)易蜂巢為代表的容器云服務(wù)商們又該如何從云的角度幫助企業(yè)實(shí)現(xiàn)DevOps呢?
網(wǎng)易蜂巢集成自助運(yùn)維工具,打造云時(shí)代的DevOps
先來介紹一下網(wǎng)易蜂巢。作為網(wǎng)易云戰(zhàn)略的核心產(chǎn)品之一,網(wǎng)易蜂巢是網(wǎng)易杭州研究院基于 Docker技術(shù)和Kubernetes研發(fā)的容器云服務(wù),具有高可用的數(shù)據(jù)庫和在線存儲(chǔ)服務(wù)。不同于其他容器云產(chǎn)品,除了自建五星級(jí)IDC機(jī)房、多線BGP接入、全SSD硬盤等基礎(chǔ)資源上的優(yōu)勢,網(wǎng)易蜂巢擁有經(jīng)驗(yàn)豐富的技術(shù)和運(yùn)維團(tuán)隊(duì),服務(wù)了95%的網(wǎng)易系互聯(lián)網(wǎng)應(yīng)用。
DocKer的出現(xiàn)解決了開發(fā)和測試環(huán)境一致性的問題,Kubernetes實(shí)現(xiàn)了容器實(shí)例的集群管理,
憑借提升可擴(kuò)展性、提高資源利用率、增強(qiáng)彈性等方面的優(yōu)勢,容器云已然成為DevOps的代名詞。而在國內(nèi)互聯(lián)網(wǎng)企業(yè)中,唯有網(wǎng)易杭州研究院是兼具產(chǎn)品、運(yùn)營、公共技術(shù)平臺(tái)三重職能,并且擁有產(chǎn)品全面云化的經(jīng)驗(yàn)。在這一優(yōu)勢下,網(wǎng)易蜂巢根據(jù)多年的運(yùn)維經(jīng)驗(yàn)集成的兩大運(yùn)維工具,幫助企業(yè)用戶打造出了容器云時(shí)代的DevOps。
首先是完善的性能監(jiān)控。所謂的性能監(jiān)控,意在幫助用戶監(jiān)控集群運(yùn)行狀態(tài),發(fā)現(xiàn)異常問題,還可以進(jìn)行數(shù)據(jù)下鉆,快速定位到問題具體發(fā)生的位置。不僅擁有數(shù)據(jù)自動(dòng)化收集、數(shù)據(jù)可視化展示等優(yōu)勢,還人性化的加入了自動(dòng)保存現(xiàn)場數(shù)據(jù)。除此之外,網(wǎng)易蜂巢的性能監(jiān)控還具有以下六大功能,包括集群的整體監(jiān)測、健康狀態(tài)監(jiān)測、錯(cuò)誤監(jiān)測、慢響應(yīng)監(jiān)測、明細(xì)記錄和快照、告警通知等。比如說,服務(wù)上線后可以通過設(shè)定一個(gè)告警通知,全天候監(jiān)測服務(wù)的運(yùn)轉(zhuǎn)情況,而不再需要人工監(jiān)控。一旦運(yùn)行出現(xiàn)錯(cuò)誤后,會(huì)及時(shí)通知用戶以快速解決問題。此外,還將提供服務(wù)性能總覽、錯(cuò)誤視圖、錯(cuò)誤詳情拓?fù)鋱D等幫助開發(fā)者分析錯(cuò)誤的詳情和具體原因。而在未來,網(wǎng)易蜂巢還將進(jìn)行更大程度的數(shù)據(jù)下鉆,提供更加智能、可靠的性能監(jiān)控服務(wù)。
其次,智能化的日志服務(wù)。網(wǎng)易蜂巢集成的日志服務(wù)用于分布式的收集平臺(tái)用戶的“集群”和“容器”日志信息,進(jìn)行集中管理,并按需智能化解析用戶日志,拆解日志的結(jié)構(gòu)并發(fā)現(xiàn)日志特性。在云服務(wù)中,日志服務(wù)并不罕見,網(wǎng)易蜂巢的優(yōu)勢在于可以集中管理日志,并提供了WEB查詢頁面,這樣用戶無需繁瑣登錄或定位日志文件,可以隨時(shí)查看所創(chuàng)建的多個(gè)集群和容器的日志。另外還提供了強(qiáng)大的自由搜索、過濾功能,以及實(shí)時(shí)輸出、跟蹤的功能。比如說日志服務(wù)的延遲小于3S,實(shí)現(xiàn)了用戶日志的實(shí)時(shí)輸出和跟蹤。既幫助蜂巢用戶簡單、方便使用日志數(shù)據(jù),發(fā)掘日志的價(jià)值,也在很大程度上優(yōu)化了容器云的DevOps。
總的來說,DevOps將為企業(yè)和開發(fā)者帶來三大優(yōu)勢:產(chǎn)品快速推向市場,比如縮短開發(fā)周期時(shí)間和更高的部署頻率;提高質(zhì)量,比如提高可用性,提高變更成功率,減少故障等等;提高組織的有效性,比如將時(shí)間花在價(jià)值增加活動(dòng)中,減少浪費(fèi),同時(shí)交付更多的價(jià)值至客戶手中。不管怎樣,DevOps已是大勢所趨,而網(wǎng)易蜂巢等容器云已是最佳選擇。