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