摘要:運(yùn)維友好的應(yīng)用當(dāng)開發(fā)更多的參與運(yùn)維的工作后,切身的體會(huì)到需要改進(jìn)的痛點(diǎn)后,變化就來了。比如,開發(fā)出運(yùn)維友好的應(yīng)用。什么是運(yùn)維友好的應(yīng)用在這篇論文里提到運(yùn)維友好的應(yīng)用幾乎不需要人工干預(yù),極個(gè)別難解的故障外都可以被自動(dòng)檢測并恢復(fù)。
dev+ops?
對(duì)于devops的理解,似乎很長一段時(shí)間都在混沌狀態(tài)。這很像早期網(wǎng)格計(jì)算,云計(jì)算初期每個(gè)人解讀的版本各有不同。同一本圣經(jīng),最后還不是由于不同信徒的解讀導(dǎo)致產(chǎn)生了天主教,東正教,新教的各種分支嗎? 所以解讀很重要。
傳統(tǒng)上,大家認(rèn)為devops就是讓dev干ops的活,干掉ops這個(gè)崗位,給老板省錢。小企業(yè)用云廠商方式搭建的應(yīng)用上(其實(shí)還是要有懂ops的人)似乎可以這么搞,持有大規(guī)模私有云的企業(yè)適合這么干嗎?
這兩個(gè)詞合在一起其實(shí)可以從兩個(gè)方向看:
dev >> ops
很明顯,這是要dev有運(yùn)維能力,加運(yùn)維技能點(diǎn)。
dev << ops
反過來,運(yùn)維為了減少人肉,要有開發(fā)能力,開發(fā)自己需要的系統(tǒng),進(jìn)行自動(dòng)化運(yùn)維。
兩個(gè)方向合力,各自都在自己的地盤上多跨一腳,成就了別人,也造就了自己。我們想要的就是在工程效率上的提升。
Google的devops這件事上Google繼續(xù)領(lǐng)跑,去年Google出了一本書《Site Reliability Engineering》給出了答案,SRE就是Google版本devops的最佳實(shí)踐。
其指導(dǎo)思想就是開辟了SRE崗位,讓此崗位的人具備研發(fā)能力,自研支撐系統(tǒng)來代替?zhèn)鹘y(tǒng)上各種需要人工操作的地方,保證系統(tǒng)規(guī)模不斷擴(kuò)大時(shí)系統(tǒng)工程師別跟著線性增長。SRE招聘上有兩類:一類與正常的軟件工程師技能要求一樣;另一類工程師技能可能稍弱但有其他技能(UNIX內(nèi)核,三層網(wǎng)絡(luò))加成。
devops作為一種開發(fā)模式的轉(zhuǎn)變,我認(rèn)為其提供的其中一種積極的作用在于,讓傳統(tǒng)上分裂的開發(fā)和運(yùn)維部門更多的協(xié)作,而不是對(duì)立。
例如開發(fā)關(guān)注點(diǎn)在于功能的交付,運(yùn)維關(guān)注點(diǎn)在于系統(tǒng)穩(wěn)定和安全。通常一個(gè)渣渣系統(tǒng)出問題,可能半夜先被叫醒的是Ops而不是Dev,當(dāng)Dev不深受其苦時(shí)其系統(tǒng)穩(wěn)定性是沒有內(nèi)在動(dòng)力的。
運(yùn)維友好的應(yīng)用當(dāng)開發(fā)更多的參與運(yùn)維的工作后,切身的體會(huì)到需要改進(jìn)的痛點(diǎn)后,變化就來了。比如, 開發(fā)出運(yùn)維友好的應(yīng)用。
什么是運(yùn)維友好的應(yīng)用?
James Hamilton 在Windows Live Services Platform 2007這篇論文里提到:
While auto-administration is important, the most important factor is actually the service itself. Is the service efficient to auto- mate? Is it what we refer to more generally as operations-friendly? Services that are operations- friendly require little human intervention, and both detect and recover from all but the most obscure failures without administrative intervention.
運(yùn)維友好的應(yīng)用幾乎不需要人工干預(yù),極個(gè)別難解的故障外都可以被自動(dòng)檢測并恢復(fù)。
此文章主要介紹了Windows Live Search團(tuán)隊(duì)在交付運(yùn)維友好的服務(wù)時(shí)總結(jié)的最佳實(shí)踐,如今仍然有指導(dǎo)意義。此處不做展開,文末引申閱讀里列出了下載地址,可自行觀看。
Design for failure開源界典型的業(yè)界范例可以參考Netflix貢獻(xiàn)的eurka,DropWizard等產(chǎn)品的設(shè)計(jì)思路,此類基礎(chǔ)程序在設(shè)計(jì)之初就考慮到了分布式系統(tǒng)的容錯(cuò),系統(tǒng)監(jiān)控自包含并提供http接口和簡單圖形界面。
以Eureka為例,作為設(shè)計(jì)在云計(jì)算環(huán)境使用的服務(wù)發(fā)現(xiàn)組件,認(rèn)為服務(wù)失效是個(gè)常態(tài),所以在服務(wù)失效時(shí)客戶端代碼有本地緩存,會(huì)自動(dòng)將請(qǐng)求分發(fā)到一臺(tái)新的服務(wù)地址上,實(shí)現(xiàn)故障轉(zhuǎn)移。 而Eureka的服務(wù)端,會(huì)對(duì)發(fā)布在其上的服務(wù)器進(jìn)行健康監(jiān)測,在心跳緩慢或丟失時(shí)自動(dòng)將服務(wù)器剔除,達(dá)到自動(dòng)容災(zāi)的目的。
此處可引出很多內(nèi)容(自我保護(hù),容災(zāi),限流,降級(jí),監(jiān)控,分組隔離,進(jìn)程隔離,線程隔離,容量規(guī)劃,基線管理,超時(shí)控制,重試控制,無狀態(tài)化),真要聊,還是另開場地吧~
方便的監(jiān)控現(xiàn)代服務(wù)都有良好的后臺(tái),方便的看到系統(tǒng)內(nèi)部狀態(tài),eureka 界面如下:
eureka也被集成到了spring cloud中作為服務(wù)發(fā)現(xiàn)的組件,其界面也是大同小異的:
由上也可看出,什么叫運(yùn)維友好?自己的服務(wù),能在一處統(tǒng)一的地方看到內(nèi)部的運(yùn)行狀態(tài),這在觀測系統(tǒng)行為和排查問題時(shí)是極為有用的。
依賴控制java依賴通過maven控制,為啥系統(tǒng)依賴要割裂出來用各種基線來控制呢?還是用docker image解決系統(tǒng)級(jí)的依賴吧,不過似乎大多數(shù)java應(yīng)用除了jdk,tomcat其實(shí)也不需要太多此種依賴,除了外掛的各種采集類的agent。
自動(dòng)化最近Gitlab.com發(fā)生的刪庫后,陳皓的一篇文章闡述了一個(gè)觀點(diǎn)
一個(gè)公司的運(yùn)維能力的強(qiáng)弱和你上線上環(huán)境敲命令是有關(guān)的,你越是喜歡上線敲命令你的運(yùn)維能力就越弱,越是通過自動(dòng)化來處理問題,你的運(yùn)維能力就越強(qiáng)。
這是必要的,按照規(guī)范將大量繁雜活自動(dòng)化,命令都固化到腳本或程序中去,讓程序準(zhǔn)確無誤地執(zhí)行。
好了,就這么多了,歡迎拍磚
—
延伸閱讀:
On Designing and Deploying Internet-Scale Services
為什么不應(yīng)該使用ZooKeeper做服務(wù)發(fā)現(xiàn)
理解Eureka的自我保護(hù)模式
Netflix源碼解析之Eureka:Eureka client 注冊(cè)過程
從GITLAB誤刪除數(shù)據(jù)庫想到的)
本文來自微信公眾號(hào)「麥芽面包,id「darkjune_think」
轉(zhuǎn)載請(qǐng)注明。
微信掃一掃關(guān)注公眾號(hào)。
文章版權(quán)歸作者所有,未經(jīng)允許請(qǐng)勿轉(zhuǎn)載,若此文章存在違規(guī)行為,您可以聯(lián)系管理員刪除。
轉(zhuǎn)載請(qǐng)注明本文地址:http://systransis.cn/yun/7987.html
摘要:運(yùn)維部門比較笨,他們不懂新技術(shù),為什么他們沒法實(shí)現(xiàn)最新的技術(shù)呢為什么他們這么落伍呢在我的機(jī)器上運(yùn)行的沒問題啊刺客聯(lián)盟與圣殿騎士互掐了幾百年,但事實(shí)上他倆都不過是想維護(hù)人類文明開發(fā)與運(yùn)維互看不順眼,但他們的初心都是想這個(gè)項(xiàng)目能順利驗(yàn)收。 從電子游戲到DevOps在一個(gè)項(xiàng)目團(tuán)隊(duì)中,開發(fā)與運(yùn)維之間的關(guān)系像極了知名大型游戲《刺客信條》里的故事:開發(fā)就是追求自由的刺客聯(lián)盟——我喜歡用各種新穎技術(shù)...
摘要:當(dāng)云平臺(tái)出現(xiàn)網(wǎng)絡(luò)故障系統(tǒng)故障等問題,這對(duì)云租戶用戶有時(shí)甚至是致命的,所以不少是由高級(jí)別開發(fā)人員轉(zhuǎn)型而來。目前國內(nèi)各大云廠商也基本都提供了應(yīng)用運(yùn)維平臺(tái),包括騰訊藍(lán)鯨阿里華為等。 DevOps 全鏈路 下圖是我們熟知的軟件研發(fā)環(huán)節(jié),在迭代頻率高的研發(fā)組織里,一天可能要經(jīng)歷多次如下循環(huán)。對(duì)于用戶群體龐大或者正在經(jīng)歷大幅業(yè)務(wù)擴(kuò)張的企業(yè)研發(fā)組織,除了重點(diǎn)關(guān)注應(yīng)用的快速上線之外,如何保障應(yīng)用的高可...
摘要:編者按本文作者為,主要介紹告警疲勞的產(chǎn)生原因與對(duì)抗告警疲勞的種方法。告警疲勞不僅會(huì)影響團(tuán)隊(duì)成員的工作情緒,而且會(huì)阻礙軟件交付鏈的成長。利用工具事件管理工具對(duì)抵抗告警疲勞大有幫助。 【編者按】本文作者為 Chris Riley,主要介紹告警疲勞的產(chǎn)生原因與對(duì)抗告警疲勞的8種方法。文章系國內(nèi) ITOM 管理平臺(tái) OneAPM 編譯呈現(xiàn)。 各司其職、孤軍作戰(zhàn)非常不利于團(tuán)隊(duì)溝通,一旦發(fā)生重大事...
摘要:此文已由作者林帆授權(quán)網(wǎng)易云社區(qū)發(fā)布。好在問題發(fā)生在工作時(shí)間,被及時(shí)發(fā)現(xiàn),沒有導(dǎo)致什么損失。此外,服務(wù)的安全性也逐漸需要提上日程。這種應(yīng)用與云高度融合的實(shí)踐算得上是的一種終極形態(tài)。 此文已由作者林帆授權(quán)網(wǎng)易云社區(qū)發(fā)布。 歡迎訪問網(wǎng)易云社區(qū),了解更多網(wǎng)易技術(shù)產(chǎn)品運(yùn)營經(jīng)驗(yàn)。 序文伴隨著IaaS、PaaS等云端基礎(chǔ)設(shè)施技術(shù)的成熟,應(yīng)用上云成為許多企業(yè)軟件部門的心頭大事。通過把傳統(tǒng)軟件系統(tǒng)搬到云...
摘要:作為本次大會(huì)的白金贊助商,華為云作為容器技術(shù)的領(lǐng)導(dǎo)者之一,將如何展現(xiàn)自身能力讓小編先帶你一睹為快。華為云如何參與本次峰會(huì)技術(shù)直擊熱點(diǎn)自去年以來,存儲(chǔ)一直是大會(huì)的熱點(diǎn)。今日,2018年容器領(lǐng)域最大的峰會(huì)之一KubeCon + CloudNativeCon于丹麥哥本哈根召開。云計(jì)算業(yè)界領(lǐng)先公司和技術(shù)大牛將齊聚童話王國一同交流和分享容器技術(shù)。作為本次大會(huì)的白金贊助商,華為云作為容器技術(shù)的領(lǐng)導(dǎo)者之一...
閱讀 1351·2023-04-25 23:47
閱讀 929·2021-11-23 09:51
閱讀 4480·2021-09-26 10:17
閱讀 3729·2021-09-10 11:19
閱讀 3268·2021-09-06 15:10
閱讀 3556·2019-08-30 12:49
閱讀 2436·2019-08-29 13:20
閱讀 1743·2019-08-28 18:14