DevOps到底是什么鬼?DevOps介绍及工具推荐
轉(zhuǎn)載自?DevOps到底是什么鬼?DevOps介紹及工具推薦
?
什么是DevOps
DevOps是Development和Operations的組合,是一組過程、方法與系統(tǒng)的統(tǒng)稱,用于促進開發(fā)(應(yīng)用程序/軟件工程)、技術(shù)運營和質(zhì)量保障(QA)部門之間的溝通、協(xié)作與整合。它的出現(xiàn)是由于軟件行業(yè)日益清晰地認(rèn)識到:為了按時交付軟件產(chǎn)品和服務(wù),開發(fā)和運營工作必須緊密合作。
可以把DevOps看作開發(fā)(軟件工程)、技術(shù)運營和質(zhì)量保障(QA)三者的交集。
傳統(tǒng)的軟件組織將開發(fā)、IT運營和質(zhì)量保障設(shè)為各自分離的部門。在這種環(huán)境下如何采用新的開發(fā)方法(例如敏捷軟件開發(fā)),這是一個重要的課題:按照從前的工作方式,開發(fā)和部署不需要IT支持或者QA深入的、跨部門的支持,而卻需要極其緊密的多部門協(xié)作。然而DevOps考慮的還不止是軟件部署。它是一套針對這幾個部門間溝通與協(xié)作問題的流程和方法。
DevOps工具
工欲善其事,必先利其器,現(xiàn)在大家在DevOps領(lǐng)域最關(guān)注的還是在工具層面。
下面是我跟這么多公司接觸下來,大家使用比較多的工具:
1、監(jiān)控工具
比較老牌的就是Zabbix,Nagios,用Zabbix的感覺是最多的。國內(nèi)的有小米開源的OpenFalcon。這類監(jiān)控工具一般是對服務(wù)器、服務(wù)(中間件,數(shù)據(jù)庫)做一些常用指標(biāo)的監(jiān)控。
2、性能分析/APM工具
APM很多時候被認(rèn)為是監(jiān)控的一個細(xì)分領(lǐng)域。但在現(xiàn)代復(fù)雜分布式系統(tǒng)架構(gòu)下,APM工具往往更能準(zhǔn)確、直接的幫助用戶定位到性能瓶頸,比如哪一個URL訪問慢、哪一個方法執(zhí)行慢、哪一個SQL執(zhí)行慢。在以往要想拿到這些數(shù)據(jù),往往得需要比較資深的架構(gòu)師、DBA一起合作才能拿到這些數(shù)據(jù),而定位瓶頸的效率往往還不太高?,F(xiàn)在通過APM工具能讓普通技能的運維人員,也很高效的定位到這些深層的問題?,F(xiàn)在商用的APM工具不少,國外的有Newrelic,國內(nèi)知名的就有聽云、Oneapm、透視寶這些。開源的也有Pinpoint(naver開源)、Zipkin(twitter開源)、CAT(大眾點評開源).
3、批量+自動化運維工具
這里就比較多了,知名的有Puppet、Ansible、Chef、Saltstack這些。這些在網(wǎng)上的資料也比較多,找比較新版本的官方文檔看就行了。Puppet和chef是比較早期的工具,受眾面也很大,不過這兩個工具基于ruby實現(xiàn),現(xiàn)在要找到熟悉ruby的人來做這塊的二次開發(fā)可不容易。而ansible和saltstack則相對新生代一些,目前用戶基數(shù)增長很快,基于python實現(xiàn),要找做二次開發(fā)的人也相對容易的多。
4、集中日志分析工具
在一個服務(wù)器比較多的環(huán)境下,如何集中的管理和分析、查詢?nèi)罩?#xff0c;已經(jīng)變成一個比較強的需求了。想象一下,如果發(fā)生了某個錯誤,你還得一臺臺機器去翻日志文件,是不是很蛋疼。在這個需求驅(qū)動下,就誕生了一些集中日志分析工具。在開源領(lǐng)域,比較知名的就是ELK這一套工具了,涵蓋了日志采集、上報、搜索、展現(xiàn)這一類基本需求,現(xiàn)在比較多的上規(guī)模的企業(yè)都用這個,網(wǎng)上資料也大把。核心實現(xiàn)機制都是通過一些日志采集代理(類似Filebeat)去爬日志文件,將最新的部分提交到采集服務(wù)端,后端再對接搜索引擎,能支持很快速、準(zhǔn)確的搜索即可。有一個國內(nèi)不怎么知名的Sentry日志收集服務(wù),比較輕量級,本身是Python做的,與各種語言的日志框架做了非常好的集成,可以很方便的集中收集異常日志,并分配給對應(yīng)的開發(fā)人員。它在github上有10000多個star了,這在DevOps相關(guān)的軟件里,都是排名非常靠前的了。git的地址:GitHub - getsentry/sentry: Sentry is cross-platform crash reporting built with love
5、持續(xù)集成/發(fā)布工具
我接觸的人都是用Jenkins的,沒有用其他的,可能跟我所在的技術(shù)圈子有關(guān)。集成打包的過程其實一般都比較簡單,配好版本庫和打包腳本就行。但發(fā)布的過程就比較復(fù)雜,有些是全量發(fā)布,但也有非常多的IT團隊采用增量發(fā)布。這個方面如果想用工具,還是得先分析清楚現(xiàn)有的發(fā)布流程,手工情況下怎么做,哪些能通過自動化工具來完成。
6、IaaS集成
最近兩年的公有云推廣比較迅速,很多新的服務(wù)器采購都被導(dǎo)入到云上去了。現(xiàn)在主流的公有云都提供了比較完備的API,基于這些API也可以做一些針對基礎(chǔ)資源的自動化操作,比如游戲行業(yè)的快速開服。
更多的可以看下知乎上的一篇關(guān)于DevOps的文章:<<你所在的公司是如何實施DevOps的?>>
https://www.zhihu.com/question/24413538/answer/116474416
?
總結(jié)
以上是生活随笔為你收集整理的DevOps到底是什么鬼?DevOps介绍及工具推荐的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: ps ai ae pr需要的电脑配置?
- 下一篇: 百度分布式配置管理平台-Disconf