蕭田國(guó)表示,DevOps首先是一種文化,它推崇的是集成,如果說(shuō)一個(gè)公司的系統(tǒng)實(shí)現(xiàn)了DevOps以后,它能做到一天十次部署或者更多次部署,而在大型的傳統(tǒng)企業(yè),能做到三個(gè)月一次部署就已經(jīng)很不錯(cuò)了,并且主要的問(wèn)題在于沒(méi)有辦法迭代,沒(méi)辦法到一個(gè)生產(chǎn)環(huán)節(jié)上做快速問(wèn)題的驗(yàn)證。
隨著移動(dòng)化、社交化的發(fā)展,現(xiàn)在不管什么行業(yè),他們進(jìn)入到互聯(lián)網(wǎng)的業(yè)務(wù)都會(huì)被迫帶著做快速的迭代。所以一個(gè)好的運(yùn)維自動(dòng)化平臺(tái),首先需要能識(shí)別出來(lái)目前這個(gè)業(yè)務(wù)里面的痛點(diǎn)和瓶頸,把痛點(diǎn)和瓶頸先做完了,當(dāng)然一般的痛點(diǎn)和瓶頸首先都是持續(xù)交付。其次,所謂自動(dòng)化整個(gè)價(jià)值流,再把這個(gè)價(jià)值流的事情做一個(gè)數(shù)據(jù)分析,如果說(shuō)有心有力的話(huà),可以再做一個(gè)API及服務(wù)化,就是調(diào)用,而不是走直接的服務(wù)器訪(fǎng)問(wèn),所有的都是基于API化和服務(wù)化,到最后再做一個(gè)評(píng)估和持續(xù)的優(yōu)化。
以下為蕭田國(guó)演講實(shí)錄:
各位老師,各位朋友,大家好!我做一個(gè)簡(jiǎn)單的自我介紹,這幾年我跟一幫朋友做了些好玩的事情。我們做運(yùn)維十幾年時(shí)間了。
這一年多時(shí)間做到了五個(gè)第一,做了中國(guó)第一個(gè)運(yùn)維的社區(qū),高效運(yùn)維;做了中國(guó)第一個(gè)運(yùn)維行業(yè)協(xié)會(huì)——OOPSA開(kāi)放運(yùn)維聯(lián)盟,中國(guó)第一個(gè)行業(yè)大會(huì)——GOPS全球運(yùn)維大會(huì),以及中國(guó)第一個(gè)運(yùn)維的標(biāo)準(zhǔn)草案——互聯(lián)網(wǎng)應(yīng)用運(yùn)維框架及能力模型。因?yàn)槲覀冎涝趪?guó)內(nèi)基于互聯(lián)網(wǎng),因?yàn)檫\(yùn)維沒(méi)有任何的標(biāo)準(zhǔn)草案,這個(gè)事情我們?cè)谧隽?,以及我們做了中?guó)第一個(gè)運(yùn)維的節(jié)日“724”,這個(gè)節(jié)日意義很多,“724”就是“cheers”表示歡呼的意思。
今天我跟大家分享一共有三塊,第一塊對(duì)于運(yùn)維下一站的趨勢(shì)解讀,第二個(gè)給大家介紹一下國(guó)內(nèi)基于DevOps比較領(lǐng)先的運(yùn)維平臺(tái),第三個(gè),在這個(gè)運(yùn)維平臺(tái)里面持續(xù)交付平臺(tái)的實(shí)現(xiàn)方法。
在很多年前ITIL當(dāng)時(shí)提出來(lái)的時(shí)候,大家知道是有背景的,那個(gè)時(shí)候所謂的巨石架構(gòu),是基于客戶(hù)端的設(shè)計(jì)。這時(shí)架構(gòu)都是“巨石”型,很龐大,每個(gè)新版本的上線(xiàn)都需要半年、一年的時(shí)間。那個(gè)時(shí)候我們說(shuō),作為一個(gè)版本迭代,或者說(shuō)部署,不是問(wèn)題所在。整個(gè)運(yùn)維也是一個(gè)初始的狀態(tài),所以說(shuō)很多時(shí)候在最開(kāi)始的ITIL做的事情,不管是橫向的做IT技術(shù)數(shù)據(jù)管理,還是做豎型的流程管理,其實(shí)還是要解決內(nèi)部的問(wèn)題。
但是在進(jìn)入了互聯(lián)網(wǎng)時(shí)代以后,這個(gè)情況發(fā)生了變化了?;ヂ?lián)網(wǎng)基于海量用戶(hù),而且整個(gè)業(yè)務(wù)架構(gòu)由CS端變成了BS端,還有就是APP形式,一個(gè)APP的前端可能非常簡(jiǎn)單,但是后端可能極度復(fù)雜。
例如“雙11”的時(shí)候,很多用戶(hù)會(huì)發(fā)現(xiàn)0點(diǎn)0分,看到那個(gè)圖標(biāo)就在那兒轉(zhuǎn),用戶(hù)很著急也沒(méi)有辦法,他也不知道后面有幾百萬(wàn)的并發(fā)在跑著。這個(gè)階段就會(huì)需要快速迭代,需要DevOps,并實(shí)現(xiàn)持續(xù)交付。
我們會(huì)認(rèn)為現(xiàn)在ITIL對(duì)運(yùn)維的理解跟DevOps的理解還是不一樣。作為DevOps而言它對(duì)于運(yùn)維的理解是自動(dòng)化的過(guò)程,我們回過(guò)頭來(lái)看ITIL的時(shí)候發(fā)現(xiàn),里面很多動(dòng)作或者配置、管理都是基于流程、基于文檔的,作為DevOps的任務(wù)就是要消除掉紙質(zhì)的,讓一切東西都是用系統(tǒng)來(lái)運(yùn)行,這個(gè)時(shí)候更多的危及著基于ITIL廠(chǎng)商的生意,但是我們實(shí)際認(rèn)為ITIL的本質(zhì)或者ITIL的核心思想是在DevOps等等里面有一個(gè)生根發(fā)芽與成長(zhǎng)的,我們改變了形式,當(dāng)然最終結(jié)果也會(huì)出現(xiàn)很大的改變。
我們看到ITIL跟DevOps的區(qū)別很大,當(dāng)然最本質(zhì)的區(qū)別,ITIL應(yīng)該是對(duì)內(nèi)的,是一個(gè)基于這個(gè)流程的導(dǎo)向,DevOps不是,它是一個(gè)技術(shù)性的導(dǎo)向。DevOps會(huì)給ITIL帶來(lái)沖擊的地方就在于,原來(lái)我們說(shuō)的ITIL所面對(duì)的就是右邊的Ops,但是有些時(shí)候Ops是”雙背“,一個(gè)是背服務(wù)器,一個(gè)是背黑鍋,這個(gè)時(shí)候他怎么實(shí)現(xiàn)更高的價(jià)值交付?之前的時(shí)候我們知道Dev跟Ops是隔山相望,Dev想你先跳,Ops說(shuō)你先跳,兩個(gè)是相互扯的。我們目前的概念,有了DevOps以后,他們兩個(gè)在一起了,或者一起跳,或者一起讓別人跳,這可能是比較大的改變所在。當(dāng)然作為DevOps很多人會(huì)有很多不同觀點(diǎn),待會(huì)兒我們會(huì)再去闡述。
還有一個(gè)圖簡(jiǎn)單的表述一下,我們所認(rèn)為的ITIL跟DevOps區(qū)別。一個(gè)是流程思維,一個(gè)是技術(shù)思維,或者說(shuō)ITIL是一個(gè)更高層次的東西,DevOps會(huì)做很多的細(xì)化,他會(huì)做很多的實(shí)現(xiàn),雖然這種實(shí)現(xiàn)到最后又會(huì)去倒逼ITIL。所以如果我們基于DevOps的一些理念做運(yùn)維的話(huà),我們有一個(gè)總結(jié),叫一體雙翼或者一只鳥(niǎo),這里面的一體,當(dāng)我們基于這個(gè)標(biāo)準(zhǔn)與規(guī)范,基于這個(gè)服務(wù)化,基于這個(gè)狀態(tài),這里面會(huì)有一個(gè)實(shí)現(xiàn),兩邊我們?cè)偃?shí)現(xiàn)基于它的雙翼,在右邊是自動(dòng)化運(yùn)維,左邊是數(shù)據(jù)運(yùn)維?;谖覀兪紫仁羌夹g(shù)層的一些事情,以及這個(gè)理念層的一些拓展,最后能夠帶著我們運(yùn)維一起飛。
我們對(duì)于DevOps還需要有更深的理解。實(shí)際上在不久之前開(kāi)發(fā)跟運(yùn)維是一個(gè)天生的仇敵,我們知道作為開(kāi)發(fā)而言,他做的事情,就是把這個(gè)程序做完就不管了,他比較爽的地方,在他的背后還有測(cè)試,對(duì)測(cè)試說(shuō)我沒(méi)問(wèn)題了,對(duì)運(yùn)維說(shuō)你去上線(xiàn),這個(gè)時(shí)候會(huì)有很多問(wèn)題,就在于說(shuō),很多時(shí)候是開(kāi)發(fā),他可能版本的提交是快上線(xiàn)之前了,最后結(jié)果運(yùn)維就是背黑鍋的。運(yùn)維一上線(xiàn)有點(diǎn)慢,最后說(shuō)看看你,本來(lái)這個(gè)問(wèn)題分分鐘能解決的,就是因?yàn)槟憷仙暇€(xiàn)很慢,blablabla。
上線(xiàn)分為三種,一種是上線(xiàn)開(kāi)發(fā)環(huán)境,一種測(cè)試環(huán)境,還有一種是生產(chǎn)環(huán)境,以前很多時(shí)候開(kāi)發(fā),任何地方的上線(xiàn)都是不做的,很多時(shí)候更多的是相互的推諉。我們說(shuō)這叫做部門(mén)墻,開(kāi)發(fā)指責(zé)運(yùn)維,運(yùn)維指責(zé)開(kāi)發(fā)。
為什么會(huì)這樣?原因非常簡(jiǎn)單,在于開(kāi)發(fā)跟運(yùn)維本質(zhì)上他們的思維模式是不一樣的。開(kāi)發(fā)的思維模式是要求快,他要求功能快速上線(xiàn);但是運(yùn)維要求是穩(wěn),就是說(shuō)你別給我出事,又快又穩(wěn)這是不太可能實(shí)現(xiàn)的東西,所以說(shuō)這里頭就會(huì)出現(xiàn)很多的扯皮。
而且還有一點(diǎn),開(kāi)發(fā)如果出問(wèn)題測(cè)試給他兜底,甚至有一些CTO說(shuō),所有的問(wèn)題都是測(cè)試上的問(wèn)題,為什么?。恳?yàn)槟莻€(gè)人是CTO,他做開(kāi)發(fā)出身的。運(yùn)維很不容易的地方在于說(shuō),運(yùn)維實(shí)際上很多時(shí)候自己既要做操作,還要做測(cè)試,還要做檢查,這就是人為事故的根源所在了。
所以我們看一下,在以前的模式里頭分為兩種,這里頭的第二個(gè)模式,那就是說(shuō)開(kāi)發(fā),他把東西做完測(cè)試,測(cè)試完以后由運(yùn)維部門(mén)進(jìn)行發(fā)布,后來(lái)又改進(jìn)了,后來(lái)改進(jìn)我們起一個(gè)名字叫敏捷,那就是說(shuō)開(kāi)發(fā)跟測(cè)試他們很開(kāi)心的在一起玩了,他們玩的很開(kāi)心以后再把版本扔給我們運(yùn)維,這個(gè)時(shí)候運(yùn)維的地位還是沒(méi)有改變,整個(gè)問(wèn)題沒(méi)有解決,而且最關(guān)鍵的是公司的成本、公司的績(jī)效并沒(méi)有提高,當(dāng)我們拋棄掉左邊的方式,當(dāng)我們變成右邊的這個(gè)DevOps方式以后,我們會(huì)發(fā)現(xiàn)這時(shí)候?qū)嶋H上要求一個(gè)人要同時(shí)具備有開(kāi)發(fā)、測(cè)試、運(yùn)維的思想,或者說(shuō)現(xiàn)在的事情只能變成大家一起愉快的玩耍了。這個(gè)時(shí)候他們之間的關(guān)系就由敵對(duì)變成合作的關(guān)系了,他們只能共享這個(gè)目標(biāo)和責(zé)任。
一般認(rèn)為因?yàn)槠俨际絺鹘y(tǒng)的開(kāi)發(fā)模式導(dǎo)致了開(kāi)發(fā)測(cè)試和運(yùn)維的割裂,現(xiàn)在的DevOps要把這個(gè)扯到一起去了,但是根據(jù)《三國(guó)演義》的觀點(diǎn),那就是分久必合、合久必分,我們不知道什么時(shí)候他們又會(huì)分開(kāi),都是根據(jù)當(dāng)時(shí)的時(shí)勢(shì)做的變化。
作為DevOps擁有兩種理解,有一種理解就是開(kāi)發(fā)的能力延伸到了運(yùn)維,還有第二種就是運(yùn)維能力傳遞到開(kāi)發(fā),最后他們的結(jié)果就是一個(gè)高質(zhì)量持續(xù)快速部署的價(jià)值。這就帶來(lái)一個(gè)問(wèn)題,大家認(rèn)為你是運(yùn)維更適合做DevOps,還是說(shuō)開(kāi)發(fā)更適合做DevOps?認(rèn)為開(kāi)發(fā)更適合做DevOps的輕舉手。我們還是認(rèn)為,還是站在我們運(yùn)維側(cè)DevOps,強(qiáng)是運(yùn)維做更合適。
DevOps我們來(lái)做一個(gè)解讀,首先DevOps是一種文化,它所推崇的就是一個(gè)集成,如果說(shuō)一個(gè)公司的系統(tǒng)實(shí)現(xiàn)了DevOps以后,它能做到一天十次部署或者更多次部署,那就很厲害。我們知道在大型的傳統(tǒng)企業(yè)他們能做到三個(gè)月一次部署就已經(jīng)很不錯(cuò)了,而且每次部署都是嚴(yán)陣以待,每次部署都是上百號(hào)人,在晚上零點(diǎn)或者零點(diǎn)以后進(jìn)行,每個(gè)人都繃緊神經(jīng)。這個(gè)方式的弊端在于哪里?或者說(shuō)之前傳統(tǒng)的,很多次的測(cè)試、很多次開(kāi)發(fā),最后卻還是很緊張,問(wèn)題在于哪里、在于他沒(méi)有辦法迭代,他沒(méi)辦法到一個(gè)生產(chǎn)環(huán)節(jié)上做問(wèn)題的快速驗(yàn)證。
DevOps是一種思維,很明顯,我們盜用一句話(huà),互聯(lián)網(wǎng)思維叫“極致、口碑、專(zhuān)注、快速”,DevOps就是“精益、價(jià)值、跨界、敏捷”。作為DevOps而言,其實(shí)是一個(gè)共享責(zé)任,就是說(shuō)你沒(méi)有辦法去踢皮球了,從現(xiàn)在開(kāi)始自己挖個(gè)坑含著淚也得往下跳。而且在我們要應(yīng)用到DevOps的時(shí)候很明顯,我們對(duì)于工具的依賴(lài)就要比以前重很多了,現(xiàn)在你要想實(shí)現(xiàn)一個(gè)自動(dòng)化,我們知道商業(yè)軟件也不可能說(shuō)那么快的跟得上,這個(gè)時(shí)候你一定得要大量的去用到各種各樣的開(kāi)源軟件,而且這個(gè)時(shí)候你需要系統(tǒng)去做更多的分層,為什么?因?yàn)楝F(xiàn)在你的這個(gè)迭代次數(shù)變得更快了,你今天部署的版本可能10次、20次,你后續(xù)的調(diào)度、后續(xù)的數(shù)據(jù)分析是不是也需要跟得上?如果說(shuō)他們跟不上的話(huà),你一個(gè)人在前面跑,那是瞎跑。
這里頭當(dāng)我們把Dev跟Ops合到一起的時(shí)候,他們之間的部門(mén)墻就被拆掉了,拆掉完以后它的價(jià)值實(shí)際上是能夠去提升公司效率更加聚焦到商業(yè)和用戶(hù)價(jià)值,一會(huì)兒我們會(huì)有一個(gè)例子,用那個(gè)例子仔細(xì)的跟大家講一下,這個(gè)事情DevOps的持續(xù)交付最終的結(jié)果是什么,以及他最終所帶來(lái)的好處是什么。
我們剛才說(shuō)到了DevOps這種思維,像以前的時(shí)候,大家習(xí)慣于本位的去做一些仗對(duì),綠色、黃色、紅色就是開(kāi)發(fā)運(yùn)維,相互指責(zé)去罵街?,F(xiàn)在每個(gè)人都要互通有無(wú)一下了,所以說(shuō)這時(shí)候就沒(méi)辦法說(shuō)你說(shuō)你有理、我說(shuō)我有理了。
這個(gè)時(shí)候作為DevOps而言,底層的持續(xù)交付平臺(tái)不管說(shuō)他是由Dev所實(shí)現(xiàn)的、還是Ops所實(shí)現(xiàn)的,不管怎么樣,最后他們對(duì)外都是要提供一個(gè)穩(wěn)定、高可用的系統(tǒng)出來(lái)。這個(gè)時(shí)候就是Dev運(yùn)維跟系統(tǒng)運(yùn)維測(cè)試被迫走在一起。而且我們知道DevOps為什么起來(lái)?他也跟現(xiàn)在很流行的云、微服務(wù),包括很多別的技術(shù)在一起有些綁定。
看一下,如果說(shuō)基于DevOps去做一個(gè)運(yùn)維平臺(tái)的話(huà)是什么樣子的,那就是我們的一種具體實(shí)踐了。首先,我們需要看一下運(yùn)維的價(jià)值是什么。實(shí)際上運(yùn)維的價(jià)值不應(yīng)該是一個(gè)搬磚的,而且運(yùn)維的價(jià)值不應(yīng)該是搬服務(wù)器的,為什么?一則運(yùn)維目前為止沒(méi)有服務(wù)器可搬了。
那么,運(yùn)維下一站價(jià)值在哪里?考慮到運(yùn)維能力范圍分四塊:質(zhì)量、效率、成本、高可用性架構(gòu)。基于這個(gè)價(jià)值體系我們推出來(lái)基于什么服務(wù),包括性能優(yōu)化、體驗(yàn)優(yōu)化、安全、成本,包括具體的,為了實(shí)現(xiàn)這些提升我們要做些事情,要做標(biāo)準(zhǔn)化、規(guī)范、方法化。最后的落地會(huì)有平臺(tái),一個(gè)是持續(xù)交付平臺(tái),還有數(shù)據(jù)平臺(tái),還有安全平臺(tái)。剛剛這里頭提到了那個(gè)“一體兩翼”,其實(shí)這里頭的一個(gè)持續(xù)交付平臺(tái)就是是現(xiàn)在右邊的自動(dòng)化,數(shù)據(jù)平臺(tái)是實(shí)現(xiàn)了左邊數(shù)據(jù)運(yùn)維,安全平臺(tái)看情況,因?yàn)橐粋€(gè)公司如果太大的話(huà),運(yùn)維還是最好把安全分開(kāi)比較好,不然死的很慘。
這里我們跟大家簡(jiǎn)單看一下,一個(gè)基于DevOps的運(yùn)維平臺(tái)它的能力設(shè)計(jì)環(huán),我們知道,運(yùn)維平臺(tái)制作的時(shí)候不要一開(kāi)始講究大而全,這會(huì)死的很慘,因?yàn)楦习逭f(shuō)我需要三年做運(yùn)維平臺(tái)的時(shí)候,老板可能三個(gè)月就把你開(kāi)掉了,老板耗不起。
現(xiàn)在不管各行各業(yè)傳統(tǒng)行業(yè)也好,他們進(jìn)入到互聯(lián)網(wǎng)的業(yè)務(wù)都會(huì)被迫帶著做一個(gè)快速的迭代。所以說(shuō)一個(gè)好的運(yùn)維自動(dòng)化平臺(tái),首先是最左下角,需要去識(shí)別出來(lái)目前這個(gè)業(yè)務(wù)里面的痛點(diǎn)和瓶頸,把痛點(diǎn)和瓶頸先做完了,當(dāng)然一般的痛點(diǎn)和瓶頸首先都是持續(xù)交付。第二步所謂自動(dòng)化整個(gè)價(jià)值流,再把這個(gè)價(jià)值的事情做一個(gè)數(shù)據(jù)分析,如果說(shuō)心有力的話(huà),可以再做一個(gè)API及服務(wù)化,就是說(shuō)調(diào)用,不是走直接的服務(wù)器訪(fǎng)問(wèn),所有的都是基于API化和服務(wù)化,到最后再做一個(gè)評(píng)估和持續(xù)的優(yōu)化。
這里頭需要有面向角色做提升,需要面向場(chǎng)景以及面向能力域,我們說(shuō)實(shí)際上在以前的時(shí)候,在運(yùn)維內(nèi)部也是割裂的,那就是說(shuō)系統(tǒng)運(yùn)維、業(yè)務(wù)運(yùn)維存儲(chǔ)、數(shù)據(jù)庫(kù)、網(wǎng)絡(luò)、服務(wù)器運(yùn)維他們是分開(kāi)的。這個(gè)分開(kāi)是錯(cuò)誤的,我們實(shí)際上要是改為面向場(chǎng)景,運(yùn)維的內(nèi)部部門(mén)怎么去配合,以及我想實(shí)現(xiàn)這樣的池化怎么辦。第二個(gè)場(chǎng)景做完以后,對(duì)于老板而言就會(huì)很爽了,因?yàn)檫@個(gè)時(shí)候他已經(jīng)有產(chǎn)出績(jī)效了,如果我們心有余力可以再做各種各樣的服務(wù)化的事情。
這是我們所推出來(lái)的一個(gè)現(xiàn)在通用的運(yùn)維平臺(tái)的概念模型,整個(gè)運(yùn)維模型分三層,第一個(gè)IaaS層,第二個(gè)PaaS層,PaaS層基于IaaS層的,正是因?yàn)槲覀儼堰\(yùn)維很多的事情抽象化了,變成了一個(gè)API的形式,把它不用再去依賴(lài)于具體的人力了,所以說(shuō)基于此在上頭才有可能去做一個(gè)持續(xù)交付平臺(tái)、一個(gè)監(jiān)控平臺(tái)、一個(gè)ITOA平臺(tái),還有一個(gè)安全平臺(tái),這兩塊加起來(lái)叫PaaS層。往上走才是我們真正的價(jià)值所在,就是OaaS。這里頭運(yùn)維即服務(wù)就是說(shuō)我們對(duì)外能夠提供什么服務(wù)。實(shí)際上我們現(xiàn)在很多朋友告訴大家運(yùn)維不是那么Low,部署只是我們第一步而已,只要我們底下做好了可以對(duì)外提供例如說(shuō)產(chǎn)品的用戶(hù)體驗(yàn)優(yōu)化服務(wù),我們可以提供一個(gè)連續(xù)支持服務(wù),可以提供質(zhì)量?jī)?yōu)化服務(wù),還可以提供故障知率服務(wù),還可以提供成本的優(yōu)化服務(wù)。
我們看一下第二級(jí),這個(gè)看不清楚,之后再提供給大家。這是IaaS第一層,第二次是CMDB,大家都知道很重要,但是作為互聯(lián)網(wǎng)而言,做的是把手動(dòng)配置變成了自動(dòng)發(fā)現(xiàn),雖然有的時(shí)候自動(dòng)發(fā)現(xiàn)失敗,但是不管怎么樣,這是一個(gè)很重要的步驟。但是互聯(lián)網(wǎng)去聊到CMDB的時(shí)候,不會(huì)只是說(shuō)對(duì)服務(wù)器、對(duì)基礎(chǔ)資源,還有第二大塊,對(duì)于應(yīng)用、配置文件、配置參數(shù),也屬于CMDB的一部分,這是一個(gè)應(yīng)用層,還有一個(gè)邏輯層,包括人員、角色、代理商、組織機(jī)構(gòu)、服務(wù)商,都放到CMDB里面去了,所以說(shuō)不是以前的CMDB,這里頭所有的調(diào)用基于API化。
中間這個(gè)一個(gè)是ITIL的服務(wù)管理,包括事件管理,還有配置管理。就像我們剛剛所強(qiáng)調(diào)的一樣,我們這里頭所有事情都會(huì)做到盡量的自動(dòng)化。我們說(shuō)自動(dòng)化不是因?yàn)橹袊?guó)缺人,而是因?yàn)橹袊?guó)人太多了。什么意思呢?國(guó)內(nèi)海量用戶(hù),導(dǎo)致說(shuō)變更很頻繁,只能用機(jī)器代替人做事情。
第三級(jí),我們這里面強(qiáng)調(diào)的,會(huì)做一個(gè)自動(dòng)化服務(wù)的管理,特意把一些公共服務(wù)拿出來(lái),例如說(shuō)負(fù)載均衡,自己內(nèi)部的內(nèi)容,還有存儲(chǔ)服務(wù),還有大文件的存儲(chǔ)服務(wù),還有消息隊(duì)列。
剛剛我們向大家呈現(xiàn)了一個(gè)基于DevOps運(yùn)維平臺(tái)的全景,這個(gè)全景里面的點(diǎn)還是挺多的。
這里頭最關(guān)鍵的也是對(duì)于公司帶來(lái)最直接的效益部分,就是持續(xù)交付,很多人都很容易的會(huì)把持續(xù)交付、持續(xù)部署和持續(xù)集成混淆到一起去了,很明顯這個(gè)時(shí)候我們應(yīng)該做一個(gè)原始的定義,就是說(shuō)持續(xù)交付是一種全面的工程實(shí)踐,是能用最小的成本、最快的速度實(shí)現(xiàn)價(jià)值的端對(duì)端面對(duì)用戶(hù)的交付。自動(dòng)化的持續(xù)交付就是持續(xù)部署,或者說(shuō)持續(xù)部署是持續(xù)交付的一個(gè)高階段。這是持續(xù)交付整體的架構(gòu),包括平臺(tái)、能力、管理。
這是一個(gè)持續(xù)交付的最佳實(shí)踐,這個(gè)章節(jié)是來(lái)自于《持續(xù)交付》那本書(shū),時(shí)間有限,今天就不說(shuō)太多了。
我們看看在實(shí)現(xiàn)了這樣交付流水線(xiàn)以后,開(kāi)發(fā)者自己觸發(fā)一個(gè)源代碼的更新,再去實(shí)現(xiàn)持續(xù)集成,獲取了代碼上線(xiàn)打包,這里面可以上傳到開(kāi)發(fā)環(huán)境、測(cè)試環(huán)境、生產(chǎn)環(huán)境,意味著開(kāi)發(fā)者要為自己付的債自己去買(mǎi)單,就是說(shuō)你可以自己去上線(xiàn)代碼了,要出問(wèn)題跟我運(yùn)維是沒(méi)關(guān)系的,你可以第一時(shí)間去發(fā)現(xiàn)問(wèn)題。所以說(shuō)最大的價(jià)值就是減少扯皮。
這里我們的價(jià)值鏈實(shí)際上就是整個(gè)交付鏈了,包括持續(xù)部署、持續(xù)測(cè)試、交付、持續(xù)運(yùn)營(yíng)、需求隊(duì)列,然后就是PDCA的過(guò)程。
當(dāng)我們?nèi)?shí)現(xiàn)持續(xù)交付,如果說(shuō)要把它做到自動(dòng)化的端對(duì)端,首先應(yīng)該是打造一個(gè)作業(yè)的交付層,然后是應(yīng)用的交付層,然后才是業(yè)務(wù)的交付層,歸根到底也是分層結(jié)構(gòu)。我們需要做的事情包括,資源及服務(wù)IaaS層,系統(tǒng)服務(wù)層、架構(gòu)服務(wù)層、應(yīng)用服務(wù)層、業(yè)務(wù)調(diào)度層,其實(shí)我們這個(gè)圖跟剛剛的平臺(tái)是相一致的。
作為持續(xù)交付的一個(gè)構(gòu)建階段,持續(xù)部署它的業(yè)務(wù)目標(biāo)包括什么?它的業(yè)務(wù)目標(biāo)首先最直接是一鍵化的業(yè)務(wù)變更能力,包括左邊的包/配置、服務(wù)、環(huán)境等資源生命周期管理,還有其他部分。
我向大家推薦這本書(shū),Google SRE最佳實(shí)踐,這本書(shū)的中文版就要出版了,會(huì)在今年9月23日-24日的GOPS上海站上全球首發(fā),到時(shí)候Google SRE的原作者,譯者及Google SRE主管工程師都會(huì)去現(xiàn)場(chǎng)。這也是一個(gè)盛舉,大家如果想要買(mǎi)門(mén)票找我。
我本次演講就到這里,謝謝大家!