New Relic的一位首席軟件工程師在一篇博文中總結(jié)了New Relic的工程師團(tuán)隊(duì)是如何使用DevOps工具和實(shí)踐DevOps概念的。他在文章中總結(jié)了DevOps角色的演進(jìn)、所用到的工具,包括他們自研的產(chǎn)品,以及DevOps文化帶來(lái)的可見收益。
Nic Benders目前是New Relic的首席架構(gòu)師兼工程師VP,他在2012年組建了第一支
SRE(Site Reliability Engineering)團(tuán)隊(duì)。這些工程師并不是被迫接受DevOps的哲學(xué),相反他們是在意識(shí)到DevOps的好處后,主動(dòng)接受了這種工作模式。盡管整個(gè)過(guò)程是自下而上的,但在開發(fā)和運(yùn)維團(tuán)隊(duì)之間依然有一些傳統(tǒng)的障礙需要克服。采用正確的工具和過(guò)程是另一個(gè)需要解決的難點(diǎn)。
首先,要設(shè)立對(duì)DevOps友好的角色。早期,團(tuán)隊(duì)嘗試了FSRE(Forward SRE),這是一個(gè)由SRE兼任的顧問(wèn)角色。他們會(huì)被分配到不同的產(chǎn)品團(tuán)隊(duì),有時(shí)會(huì)同時(shí)進(jìn)入不止一個(gè)團(tuán)隊(duì),保證團(tuán)隊(duì)工作的順利進(jìn)行。后來(lái)這個(gè)團(tuán)隊(duì)逐漸發(fā)展成PRE(Product Reliability Engineer),不同于之前兼任的情況,他們就是團(tuán)隊(duì)的一員。PRE作為團(tuán)隊(duì)的一員,會(huì)直接進(jìn)行交流,而不是通過(guò)工單系統(tǒng)。最近,工程師團(tuán)隊(duì)發(fā)起了Upscale項(xiàng)目,讓工程師們可以自由選擇想要加入的團(tuán)隊(duì)。
Cassandra和Docker給New Relic的DevOps團(tuán)隊(duì)帶來(lái)了很大幫助。之前,數(shù)據(jù)被保存在MySQL中,由另一個(gè)團(tuán)隊(duì)管理。Cassandra是用Java寫的, 如果開發(fā)人員想要看它的源代碼,可以直接進(jìn)行調(diào)試。Docker能讓開發(fā)者基于不同的技術(shù)棧,使用統(tǒng)一的命令集,只要它們都用Dockerfile打包即可。當(dāng)主要應(yīng)用的架構(gòu)向SOA轉(zhuǎn)型后,技術(shù)棧的數(shù)量就開始增加了。使用Docker降低了開發(fā)和運(yùn)維的障礙,因?yàn)樗麄兛梢允褂孟嗤拿钊ゲ僮鞑渴饐卧?/p>
New Relic還使用了2個(gè)內(nèi)部工具幫助其實(shí)現(xiàn)Docker化,分別是Centurion和Shipright。Shipright能幫助對(duì)Docker不熟悉的開發(fā)人員簡(jiǎn)單地從基礎(chǔ)鏡像和配置命令生成Dockerfile;Centurion能夠簡(jiǎn)化Docker容器部署到特定環(huán)境的過(guò)程,還能保證部署環(huán)境在開發(fā)機(jī)器和生產(chǎn)機(jī)器的一致,并且是開源的。
一些New Relic的工具是DevOps團(tuán)隊(duì)自研的,比如Insights是一個(gè)類似于Hygieia的儀表盤,可以用一個(gè)視圖展示從不同團(tuán)隊(duì)收集來(lái)的度量指標(biāo)和事件數(shù)據(jù)。
采用DevOps給New Relic帶來(lái)的收益包括:當(dāng)團(tuán)隊(duì)間存在依賴關(guān)系時(shí),消除了協(xié)作瓶頸;軟件交付過(guò)程變得可視化;普及了文檔化的文化,比如runbooks和incident writeups。
查看英文原文:How New Relic Does DevOps