成人国产在线小视频_日韩寡妇人妻调教在线播放_色成人www永久在线观看_2018国产精品久久_亚洲欧美高清在线30p_亚洲少妇综合一区_黄色在线播放国产_亚洲另类技巧小说校园_国产主播xx日韩_a级毛片在线免费

資訊專(zhuān)欄INFORMATION COLUMN

一個(gè)開(kāi)發(fā)眼中的運(yùn)維

Hanks10100 / 2532人閱讀

摘要:資源包括什么內(nèi)存磁盤(pán)網(wǎng)絡(luò)文件描述符外部緩存數(shù)據(jù)庫(kù)等,編程語(yǔ)言是如何管理資源的合理的算法架構(gòu)保證了資源的合理使用,分配內(nèi)存使用網(wǎng)絡(luò)等等。

在云計(jì)算時(shí)代,開(kāi)發(fā)和運(yùn)維的結(jié)合變得越來(lái)越重要。在DIFF論壇第一期,前新浪SAE運(yùn)維主管,鄭志勇,分享了《一個(gè)開(kāi)發(fā)眼中的運(yùn)維》根據(jù)自己從開(kāi)發(fā)人員轉(zhuǎn)型運(yùn)維之后的心得,談如何把在開(kāi)發(fā)上的運(yùn)用抽象思維方式運(yùn)用到運(yùn)維領(lǐng)域。


1. 運(yùn)維不是什么?

運(yùn)維不是打雜的,運(yùn)維不是客服,運(yùn)維也不是服務(wù)開(kāi)發(fā)的,但要做好合作。

2. 運(yùn)維是什么?

運(yùn)維服務(wù)于整個(gè)產(chǎn)品,保證架構(gòu)合理,系統(tǒng)穩(wěn)定。運(yùn)維只對(duì)業(yè)務(wù)穩(wěn)定負(fù)責(zé),所有的工作都是奔著這個(gè)去的。

3. 你如何寫(xiě)程序,寫(xiě)程序的目的是什么?

程序是為了完成特定的功能。為了完成特定的功能,程序需要申請(qǐng)資源、使用資源、管理資源,功能完成后,還要釋放資源。說(shuō)到底,就是跟資源打交道,和資源打交道的工具是“編程語(yǔ)言”。
資源包括什么??jī)?nèi)存、CPU、磁盤(pán)、網(wǎng)絡(luò)、文件描述符、外部API、緩存、數(shù)據(jù)庫(kù)等,編程語(yǔ)言是如何管理資源的、合理的算法/架構(gòu)保證了資源的合理使用,malloc/free分配內(nèi)存、connec、close使用網(wǎng)絡(luò)等等。

4. 什么樣的程序算好程序?

正確的程序算好程序。

邏輯正確,使用資源盡可能的少;

沒(méi)有bug,沒(méi)有把機(jī)器資源耗盡;

穩(wěn)定性好,不會(huì)異常退出;

可用性高,有HA方案,不會(huì)因?yàn)橐慌_(tái)機(jī)器(或一個(gè)進(jìn)程)無(wú)法提供服務(wù),而影響整個(gè)系統(tǒng)的服務(wù);

沒(méi)有單點(diǎn)是基本要求;

容易擴(kuò)展,只需要簡(jiǎn)單的增加資源(CPU、內(nèi)存、磁盤(pán)、機(jī)器等)就行,不需要太多人工遷數(shù)據(jù)、修改配置等;

容易維護(hù),包括容易配置、容易部署、容易監(jiān)控等。

5. 如何寫(xiě)出好程序?

什么樣的程序不出錯(cuò)?代碼少的程序錯(cuò)誤少,邏輯簡(jiǎn)單的程序錯(cuò)誤少,需要管理的資源少的程序錯(cuò)誤少。要復(fù)用代碼,減少代碼的數(shù)量。

要抽象,分層,內(nèi)聚,解藕,簡(jiǎn)化邏輯,隔離資源,才能簡(jiǎn)化邏輯,隔離資源,限制錯(cuò)誤。

沒(méi)有持久狀態(tài)的程序好擴(kuò)展,沒(méi)有持久狀態(tài)意味著上下線機(jī)器不需要遷移數(shù)據(jù)。沒(méi)有狀態(tài)的程序也很容易做HA方案。

配置簡(jiǎn)單,日志豐富,能提供程序狀態(tài)查詢(xún)的程序好運(yùn)維。

但程序不可能沒(méi)有數(shù)據(jù),通過(guò)集中管理數(shù)據(jù)庫(kù),讓數(shù)據(jù)盡量只讀,預(yù)加載數(shù)據(jù)等手段隔離邏輯和數(shù)據(jù),也能讓擴(kuò)展變的容易。

6. 系統(tǒng)是什么?

系統(tǒng)是我們運(yùn)維的目標(biāo),不了解系統(tǒng)是什么,就不知道如何運(yùn)維。

系統(tǒng)是網(wǎng)絡(luò),是機(jī)器,是程序。是把網(wǎng)絡(luò),機(jī)器,程序組織起來(lái)的架構(gòu)。

機(jī)器角色應(yīng)該是盡量單一的,架構(gòu)應(yīng)該是數(shù)據(jù)流簡(jiǎn)單的,基礎(chǔ)業(yè)務(wù)服務(wù)化的。

系統(tǒng)是動(dòng)態(tài)的,運(yùn)維系統(tǒng)首先考慮的不是當(dāng)下成本,而是系統(tǒng)變更(擴(kuò)容,上下線機(jī)器)的成本。

運(yùn)維必需是簡(jiǎn)單的,要考慮的一個(gè)新手,如何能盡快上手工作,而不是冗長(zhǎng)的文檔和復(fù)雜的培訓(xùn)。

7. 寫(xiě)程序和做運(yùn)維是類(lèi)似的,甚至一樣的!程序提供單一功能,而運(yùn)維搭建,維護(hù)的系統(tǒng)提供全部的功能,開(kāi)發(fā)人員開(kāi)發(fā)的程序只是整個(gè)系統(tǒng)的一個(gè)部分。

從某個(gè)角度說(shuō),開(kāi)發(fā)人員做的事情越少,系統(tǒng)越容易穩(wěn)定,因?yàn)殚_(kāi)源的總是更靠譜。這是減少代碼,也是復(fù)用。

但運(yùn)維卻理應(yīng)比開(kāi)發(fā)更不容易犯錯(cuò),因?yàn)檫\(yùn)維只需要管理資源,而不需要應(yīng)對(duì)復(fù)雜的業(yè)務(wù)邏輯。

這是個(gè)矛盾,因?yàn)殚_(kāi)發(fā)負(fù)責(zé)的復(fù)雜業(yè)務(wù)邏輯,是運(yùn)維負(fù)責(zé)的系統(tǒng)的一部分,前者不穩(wěn)定,后者也別想消停。

所以運(yùn)維不懂開(kāi)發(fā),至少要懂如何控制復(fù)雜度,如何隔離故障,如何服務(wù)降級(jí)。出色的運(yùn)維人員,只要精通一門(mén)語(yǔ)言,必然也是出色的開(kāi)發(fā)(反之亦然)。但什么是出色的運(yùn)維呢?大部分運(yùn)維人員,只是一個(gè)熟練的操作工人。出色的運(yùn)維必然更了解系統(tǒng)(原理),這要讀很多書(shū),做很多思考,有很多實(shí)踐。
只看這個(gè)cat bigfile.txt | parallel --pipe wc -l | awk "{s+=$1} END {print s}"你能不能想出parallel加速的原理是什么?

8. 你是否了解你運(yùn)維的資源?

CPU高意味著什么?你是不是應(yīng)該先問(wèn)問(wèn)是sys,user,iowait這三個(gè)的哪個(gè)高?是單個(gè)CPU高,還是整體都搞?

你是否了解有的程序CPU使用率90%就有問(wèn)題了,而有的350%了還沒(méi)問(wèn)題?

load高意味著cpu高嗎??jī)?nèi)存耗盡導(dǎo)致load高的原理是什么??jī)?nèi)存耗盡回導(dǎo)致io高嗎?

9. 是否正確的監(jiān)控了資源?

監(jiān)控了磁盤(pán)使用率,是不是也監(jiān)控了磁盤(pán)的io能力,raid卡呢?磁盤(pán)損壞呢?監(jiān)控了網(wǎng)卡使用率,是不是也監(jiān)控了丟包率?

10. 資源是否一定對(duì)應(yīng)硬件?

CPU,內(nèi)存,磁盤(pán),帶寬都有對(duì)應(yīng)的硬件,那些沒(méi)有硬件對(duì)應(yīng)的資源呢?文件描述符,端口數(shù),進(jìn)程數(shù)是不是資源?

路由表,iptables,cron是不是資源?

MySQL主從,第三方REST接口是不是資源?

11. 為什么要盡量把一切抽象為資源?

還記得剛才說(shuō)程序要講抽象么,為什么linux一切皆文件?一切運(yùn)維對(duì)象都抽象為資源后,就可以用盡量統(tǒng)一的方法來(lái)管理(配置,監(jiān)控)。
如果新上線一臺(tái)機(jī)器無(wú)比容易,為什么還要費(fèi)盡修復(fù)刪除的/usr目錄呢,把它當(dāng)成新機(jī)器重做上線就行了。

12. 運(yùn)維原則:

線上變更必需走配置管理。線上系統(tǒng)對(duì)任何人應(yīng)該是只讀的,只有配置管理程序有權(quán)寫(xiě)。這樣保證了,變更是可重復(fù)的,可復(fù)制的。手工加路由,手工修改文件權(quán)限,手工配置ip,手工配置nfs,手工起虛擬機(jī)等等。一切在線上手工做的操作,于團(tuán)隊(duì)都是無(wú)益的,因?yàn)閳F(tuán)隊(duì)失去了一次改進(jìn)配置管理的機(jī)會(huì)。任何操作不是想我就這一臺(tái)機(jī)器,而是想我有1000臺(tái)機(jī)器怎么辦。

上線業(yè)務(wù)必需先問(wèn),如何保證HA,如何擴(kuò)展,如何運(yùn)維/監(jiān)控。這三個(gè)問(wèn)題不解決,謹(jǐn)慎上線,當(dāng)然上線必需使用配置管理上線。

隔離復(fù)雜度,要簡(jiǎn)化,抽象。抽象指角色抽象。運(yùn)維眼中沒(méi)有計(jì)數(shù)用的mc,和緩存用的mc,運(yùn)維眼中只有mc,于是所有的mc都來(lái)自mc池,mc池通過(guò)puppet配置,創(chuàng)建mc的過(guò)程編程了簡(jiǎn)單的
puppet配置。一旦把自己管理的所有業(yè)務(wù)抽象/分拆為幾種有限的“業(yè)務(wù)”,緩存、mysql、httpd等,一切就簡(jiǎn)單了。例如我們有緩存池、數(shù)據(jù)庫(kù)池、redis池、httpd池。(參考:4、5)

先解決問(wèn)題,然后是以后如何避免此類(lèi)問(wèn)題,后者更重要。

不犯第三次錯(cuò)誤(重復(fù)的問(wèn)題不出現(xiàn)第三次)。第一次算不知道,第二次算不小心,第三次特么是故意的吧。如果每個(gè)問(wèn)題都能徹底有效解決(最終落實(shí)到配置變更和監(jiān)控),問(wèn)題就會(huì)越來(lái)越少。

時(shí)刻思考如何“偷懶”,運(yùn)維越清閑,系統(tǒng)越穩(wěn)定。

13. 配置管理是如何管理資源的?

包,所有線上的軟件/腳本都是通過(guò)(rpm)包管理的。

文件,所有的變更“持久化”都是通過(guò)文件。程序的配置文件,sysctl,iptables,route,cron等凡是能用配置文件控制的一切。

進(jìn)程,所有的進(jìn)程都是用配置管理啟動(dòng)的,或者通過(guò)配置管理寫(xiě)文件到系統(tǒng)啟動(dòng)目錄,例如rc3.d。

你能相到的一切,無(wú)論是配置keepalived,還是添加用戶(hù),都抽象為這三個(gè)。如果不能抽象為這三個(gè),請(qǐng)?jiān)偎伎純蓚€(gè)小時(shí)。
如果系統(tǒng)可以由這三者全部控制,而這三者又全部寫(xiě)入了配置管理,這意味著按照配置管理配置出來(lái)的系統(tǒng)就一定是對(duì)的。擴(kuò)容,升級(jí),機(jī)器的上線,下線從此該有多容易。而運(yùn)維人員,可以通過(guò)配置管理,一覽整個(gè)系統(tǒng),通過(guò)持續(xù)改進(jìn)的模板,配置更容易學(xué)習(xí),不容易出錯(cuò)。

監(jiān)控

的正確性,業(yè)務(wù)響應(yīng)時(shí)間也要同等關(guān)注的。

基礎(chǔ)監(jiān)控要全面,但不一定實(shí)時(shí)報(bào)警。如果業(yè)務(wù)不受影響,又何必半夜起來(lái)處理宕機(jī)呢?如果業(yè)務(wù)有問(wèn)題,全面的監(jiān)控會(huì)幫你發(fā)現(xiàn)問(wèn)題的蛛絲馬跡。

如果memcache偶爾響應(yīng)慢,你怎么能想到是swap導(dǎo)致的呢?全面的監(jiān)控可以幫你發(fā)現(xiàn)這一點(diǎn)。把業(yè)務(wù)邏輯抽象為資源,可以統(tǒng)一業(yè)務(wù)監(jiān)控和基礎(chǔ)監(jiān)控。(監(jiān)控如何算全面,參考8、9)

運(yùn)維技巧

重裝操作系統(tǒng),使用puppet重新配置,是系統(tǒng)恢復(fù)到正確狀態(tài)的最佳途徑。理論上,新裝的機(jī)器使用puppet配置后一定是能用的,否則,就是puppet寫(xiě)的有問(wèn)題。

區(qū)分無(wú)狀態(tài)的機(jī)器和有狀態(tài)的機(jī)器,盡量把狀態(tài)集中,然后集中精力運(yùn)維這些有狀態(tài)的機(jī)器。
寧可通過(guò)網(wǎng)絡(luò)把狀態(tài)集中也要盡量讓機(jī)器避免有狀態(tài),無(wú)狀態(tài)的機(jī)器非常好運(yùn)維。

文章版權(quán)歸作者所有,未經(jīng)允許請(qǐng)勿轉(zhuǎn)載,若此文章存在違規(guī)行為,您可以聯(lián)系管理員刪除。

轉(zhuǎn)載請(qǐng)注明本文地址:http://systransis.cn/yun/7889.html

相關(guān)文章

  • 虎牙直播運(yùn)維負(fù)責(zé)人張觀石 | 解密SRE的六種能力及虎牙運(yùn)維實(shí)踐

    摘要:虎牙直播運(yùn)維負(fù)責(zé)人張觀石張觀石,擁有余年網(wǎng)站開(kāi)發(fā)架構(gòu)運(yùn)維經(jīng)驗(yàn)?zāi)壳瓣P(guān)注互聯(lián)網(wǎng)服務(wù)可靠性系統(tǒng)工程運(yùn)維平臺(tái)的規(guī)劃建設(shè)網(wǎng)站高可用架構(gòu)等方面在音視頻傳輸質(zhì)量評(píng)估微服務(wù)運(yùn)維方面積累了豐富的經(jīng)驗(yàn)。 showImg(https://segmentfault.com/img/bVbjqGq); 虎牙直播運(yùn)維負(fù)責(zé)人張觀石 張觀石,擁有10余年網(wǎng)站開(kāi)發(fā)、架構(gòu)、運(yùn)維經(jīng)驗(yàn);目前關(guān)注互聯(lián)網(wǎng)服務(wù)可靠性系統(tǒng)工程、運(yùn)維...

    Jonathan Shieber 評(píng)論0 收藏0
  • 虎牙直播運(yùn)維負(fù)責(zé)人張觀石 | 解密SRE的六種能力及虎牙運(yùn)維實(shí)踐

    摘要:本文是根據(jù)虎牙直播運(yùn)維負(fù)責(zé)人張觀石月日在攜手魅族百度云主辦的第十三期魅族開(kāi)放日虎牙直播平臺(tái)實(shí)踐演講中的分享內(nèi)容整理而成。英雄聯(lián)盟是全球最大的電子競(jìng)技賽事,目前正在如火如荼進(jìn)行,從今天開(kāi)始進(jìn)入了總決賽的淘汰賽階段了。 showImg(https://segmentfault.com/img/bVblQM9?w=1080&h=720); 本文是根據(jù)虎牙直播運(yùn)維負(fù)責(zé)人張觀石10月20日在ms...

    ixlei 評(píng)論0 收藏0
  • 解密百度智能運(yùn)維工程的架構(gòu)建設(shè)

    摘要:作者介紹王藝,百度云智能運(yùn)維架構(gòu)研發(fā)負(fù)責(zé)人。年轉(zhuǎn)向運(yùn)維方向,作為智能運(yùn)維架構(gòu)方向的技術(shù)負(fù)責(zé)人,致力于為百度智能運(yùn)維平臺(tái)和產(chǎn)品提供高性能高可用可擴(kuò)展的系統(tǒng)架構(gòu)和基礎(chǔ)設(shè)施。持續(xù)的數(shù)據(jù)建設(shè),是智能運(yùn)維建設(shè)的關(guān)鍵。 作者介紹王藝,百度云智能運(yùn)維架構(gòu)研發(fā)負(fù)責(zé)人。2010年加入百度,先后負(fù)責(zé)百度鏈接庫(kù)、百度志愿計(jì)算、百度統(tǒng)一資源管理的研發(fā),經(jīng)歷過(guò)千億級(jí)網(wǎng)頁(yè)鏈接的洗禮,也調(diào)度過(guò)數(shù)十萬(wàn)量級(jí)的服務(wù)器,熱衷于直...

    HtmlCssJs 評(píng)論0 收藏0
  • 中型企業(yè)運(yùn)維平臺(tái)

    摘要:大部分小企業(yè)的運(yùn)維就是加一些腳本就可以搞定了。極端大型的企業(yè),比如,比如騰訊,百度等,都有一套非常完善和復(fù)雜的運(yùn)維平臺(tái)。做一個(gè)這樣的運(yùn)維平臺(tái)是不容易的。 這是一個(gè)未經(jīng)驗(yàn)證的假設(shè),just a dump of my current thought。 大部分小企業(yè)的運(yùn)維就是 ssh 加一些 fabric 腳本就可以搞定了。極端大型的企業(yè),比如 google twitter,比如騰訊 SN...

    jaysun 評(píng)論0 收藏0
  • 他山之石——運(yùn)維平臺(tái)哪家強(qiáng)?

    摘要:當(dāng)云平臺(tái)出現(xiàn)網(wǎng)絡(luò)故障系統(tǒng)故障等問(wèn)題,這對(duì)云租戶(hù)用戶(hù)有時(shí)甚至是致命的,所以不少是由高級(jí)別開(kāi)發(fā)人員轉(zhuǎn)型而來(lái)。目前國(guó)內(nèi)各大云廠商也基本都提供了應(yīng)用運(yùn)維平臺(tái),包括騰訊藍(lán)鯨阿里華為等。 DevOps 全鏈路 下圖是我們熟知的軟件研發(fā)環(huán)節(jié),在迭代頻率高的研發(fā)組織里,一天可能要經(jīng)歷多次如下循環(huán)。對(duì)于用戶(hù)群體龐大或者正在經(jīng)歷大幅業(yè)務(wù)擴(kuò)張的企業(yè)研發(fā)組織,除了重點(diǎn)關(guān)注應(yīng)用的快速上線之外,如何保障應(yīng)用的高可...

    mylxsw 評(píng)論0 收藏0

發(fā)表評(píng)論

0條評(píng)論

最新活動(dòng)
閱讀需要支付1元查看
<