云原生集成開發(fā)環(huán)境——TitanIDE
通過(guò)網(wǎng)頁(yè)在任何地方更安全、更高效地編碼2023-01-05
771
導(dǎo)語(yǔ)
DevOps誕生已經(jīng)13年了,你理解他嗎?
為什么相伴了13年,你仍然對(duì)他不甚了了呢?
你真的以為DevOps是一個(gè)筐,什么東西都可以往里裝嗎?
你以為DevOps落地就是找一個(gè)JIRA(敏捷管理工具)+ CICD嗎?
DevOps的未來(lái)又會(huì)是什么樣子?
今天,就跟大家聊一聊DevOps,力圖跟大家聊清楚如下兩個(gè)問(wèn)題,希望聊完之后,你對(duì)上面的問(wèn)題有更明確的看法。
· DevOps是什么?
· DevOps的未來(lái)又是什么樣子?
至于,DevOps如何落地,限于篇幅,咱們今天不聊。
DevOps是什么?
1) DevOps的歷史
先講一個(gè)故事。1908年,有人曾經(jīng)問(wèn)過(guò)基辛格:“基辛格先生,您可以解釋一下昨天波斯尼亞所發(fā)生的事件嗎?”基辛格先生回答:“哦,是這樣的。這要從1722年談起。”
為什么基辛格要扯那么久遠(yuǎn)的事?因?yàn)闅v史是一串連鎖反應(yīng)的事件,要想理解后來(lái)發(fā)生的事情,必須理解由一連串歷史事件所形成的背景。
這叫歷史觀。
同樣,我們理解DevOps,也需要從歷史來(lái)看他,咱們直接上圖來(lái)了解DevOps的誕生和發(fā)展。
大概用文字說(shuō)明一下:
2007 年:
一切始于 2007 年,當(dāng)時(shí)Patrick Debois開始負(fù)責(zé)數(shù)據(jù)中心遷移工作。在這個(gè)項(xiàng)目的過(guò)程中,他經(jīng)歷了很多挫折,從問(wèn)題的開發(fā)端不斷來(lái)回切換,到運(yùn)維端等待的一堆操作。他意識(shí)到,在將項(xiàng)目從開發(fā)轉(zhuǎn)移到運(yùn)維過(guò)程中花費(fèi)了(或者更確切地說(shuō)是浪費(fèi)了)大量的精力和時(shí)間。然而,彌合這兩個(gè)世界之間巨大的鴻溝是不可能的。
2008 年:
2008 年在加拿大多倫多舉行的敏捷會(huì)議上,一位名叫 Andrew Shafer 的人試圖安排一場(chǎng)名為“敏捷基礎(chǔ)設(shè)施”的聚會(huì)。Patrick參加了這次會(huì)議,他很興奮終于遇到了一個(gè)志同道合的人。他在會(huì)議上找到Andrew,并在走廊上與他交談。后來(lái),他們繼續(xù)為各種想要發(fā)表想法的人組成一個(gè)討論組,這些想法將有助于為開發(fā)和運(yùn)維之間的巨大差距帶來(lái)相關(guān)的解決方案。
2009年:
在最初階段,并沒有多少人從這個(gè)角度提出他們的想法。然而,事情在 2009 年 6 月開始好轉(zhuǎn),Paul Hammond 和 John Allspaw 舉辦了一場(chǎng)題為“每天部署 10 次以上:Flickr 的開發(fā)和運(yùn)維合作”的演講。Patrick在比利時(shí)的家中,觀看了該演示文稿的流媒體視頻。它的觀點(diǎn)引起了他的高度共鳴,使他意識(shí)到這正是他一直在尋找的解決方案。受這次講座的啟發(fā),他安排了一次系統(tǒng)管理員和開發(fā)人員的聚會(huì),他們坐在一起討論開始彌合這兩個(gè)不同領(lǐng)域之間鴻溝的最理想方法。該活動(dòng)名為 DevOpsDays,于 2009 年 10 月的最后一周舉行。
2010 年:
由于這一事件引起了這兩個(gè)領(lǐng)域?qū)<业臉O大關(guān)注,因此在用戶使用#DevOps 標(biāo)簽的 Twitter 上進(jìn)行了熱烈的辯論。到這個(gè)時(shí)候,DevOps 成功地獲得了起初的追隨者,成員們開始廣泛地推動(dòng)他們各自的想法。
2011 年:
2011年 3 月,Gartner 的 Cameron Haight 預(yù)測(cè) DevOps 將在接下來(lái)的幾年中上一門課程。憑借他積極的態(tài)度,許多其他成員和用戶紛紛涌入并開始實(shí)施具有廣泛想法的 DevOps。很快,企業(yè)無(wú)論規(guī)模大小都開始采用 DevOps。DevOps 是工作區(qū)中最內(nèi)部的框架之一,并且開始采用這些新實(shí)踐。隨著 DevOps 的名氣越來(lái)越大,它是一個(gè)類似于 Agile 的東西。
2015 年:
納入 SAFe 的 DevOps SAFe 在企業(yè)領(lǐng)域迅速獲得關(guān)注,DevOps 在其中得到采用和擴(kuò)展。
2016 年:
DevOps 是高績(jī)效公司的新規(guī)范。
2018 年:
DevOps 狀態(tài)報(bào)告定義了從 0 級(jí)到 5 級(jí)的 5 階段方法,引入了一種描述性、務(wù)實(shí)的方法來(lái)指導(dǎo)團(tuán)隊(duì)執(zhí)行 DevOps 計(jì)劃。
其實(shí),要更詳細(xì)了解DevOps,需要了解DevOps誕生之前的歷史,也就是軟件工程的歷史,從機(jī)器語(yǔ)言、編譯語(yǔ)言、高級(jí)編程語(yǔ)言、面向過(guò)程開發(fā)、面向?qū)ο箝_發(fā),從瀑布模型到敏捷,特別是理解瀑布模型和敏捷。限于篇幅,我這里就不詳細(xì)談了。
2) DevOps的本質(zhì)
由DevOps誕生的歷史,我們可知,DevOps的出現(xiàn)就是為了解決Dev團(tuán)隊(duì)和Ops團(tuán)隊(duì)之間的鴻溝。那么,他們之間的鴻溝是什么呢?Dev要快,Ops要穩(wěn)。具體來(lái)說(shuō),Dev要求變更快,包括(開發(fā)快、測(cè)試快、上線快),而Ops要求穩(wěn),他們討厭變更,因?yàn)樯a(chǎn)環(huán)境不穩(wěn),他們要負(fù)責(zé)任。所以,很多大公司上線需要各種審批,各種簽字畫押,這都是在給變更增加障礙。
我們?cè)俳o這個(gè)DevOps定個(gè)性——DevOps的出現(xiàn),是為了解決一個(gè)軟件工程領(lǐng)域的不同部門(或角色)之間的協(xié)作問(wèn)題。
這里可能你會(huì)有另外的問(wèn)題:
為什么不需要解決產(chǎn)品經(jīng)理、開發(fā)人員、測(cè)試人員之間的協(xié)作問(wèn)題?
答:需要解決。但已經(jīng)有了解決方案——敏捷(Agile)。敏捷是解決產(chǎn)品經(jīng)理、開發(fā)人員、測(cè)試人員協(xié)作的框架,但把Ops給落下了。所以,從這個(gè)角度上講,Devops是敏捷的增強(qiáng)版,DevOps = Agile Pro。
敏捷的核心又是什么?
答:敏捷的核心是:需求小顆粒度(story)交付 + 快速反饋。其實(shí)做好敏捷本身,比消除Dev和Ops團(tuán)隊(duì)之間的鴻溝重要得多,強(qiáng)烈建議讀者好好學(xué)習(xí)一下敏捷。
我們?cè)賮?lái)看一下DevOps在維基百科上的定義,英文版本和中文版本對(duì)照一下:
· 英文版:DevOps is a set of practices that combines software development (Dev) and IT operations (Ops). It aims to shorten the systems development life cycle and provide continuous delivery with high software quality. DevOps is complementary to agile software development; several DevOps aspects came from the agile way of working.
· DevOps 是一組結(jié)合了軟件開發(fā) (Dev) 和 IT 運(yùn)營(yíng) (Ops) 的實(shí)踐。 它旨在縮短系統(tǒng)開發(fā)生命周期并提供高質(zhì)量軟件的持續(xù)交付。 DevOps 是對(duì)敏捷軟件開發(fā)的補(bǔ)充; DevOps 的幾個(gè)方面來(lái)自于敏捷的工作方式。
3) DevOps包含什么
圣經(jīng)里面有句話:日光之下無(wú)新事。解決協(xié)作問(wèn)題,在經(jīng)濟(jì)學(xué)、管理學(xué)、組織學(xué)等學(xué)科里面早已經(jīng)有了論述。DevOps這個(gè)框架里面的包含的內(nèi)容,也并沒有什么特別之處。一般而言,解決協(xié)作問(wèn)題的框架如下:
· 認(rèn)知。Ops需要改變認(rèn)知,軟件工程可以做到又快又穩(wěn),二者并不矛盾。
· 目標(biāo)。Ops需要跟Dev對(duì)齊目標(biāo),都是為了又快又穩(wěn)的交付價(jià)值。
· 指標(biāo)。為了達(dá)成目標(biāo),需要有個(gè)指標(biāo)來(lái)衡量,這就是DevOps的4個(gè)指標(biāo),這4個(gè)指標(biāo)都做得好,才算DevOps做得好,缺一不可。
變更提前期。指代碼變更提交到主干分支與進(jìn)入可部署狀態(tài)之間的時(shí)長(zhǎng)
變更失敗率。變更失敗率是指生產(chǎn)后需要熱修復(fù)或其他補(bǔ)救措施的代碼變更百分比。
部署頻率。將新代碼部署到生產(chǎn)環(huán)節(jié)的頻率。
平均恢復(fù)時(shí)間。部分服務(wù)中斷或完全故障中恢復(fù)所需的時(shí)間。
· 為了達(dá)成目標(biāo)與指標(biāo),才有了各種創(chuàng)新的組織架構(gòu)、流程、標(biāo)準(zhǔn)、工具、模板、指南。
所以,對(duì)齊了目標(biāo)和指標(biāo)之后,各種手段和方法都可以包含在DevOps里面。從協(xié)作的角度上講,消除Dev與Ops團(tuán)隊(duì)之間的鴻溝,在對(duì)齊了目標(biāo)與指標(biāo)的前提下,重點(diǎn)是最好信息和交付物的高效流轉(zhuǎn)。
4) 關(guān)于DevOps,正在發(fā)生什么?
Ops正在弱化……
云計(jì)算的發(fā)展,讓企業(yè)不用做基礎(chǔ)設(shè)施的運(yùn)維、或者只用少量的人做基礎(chǔ)設(shè)施的運(yùn)維。
href="/"
K8s的發(fā)展,讓應(yīng)用的運(yùn)維越來(lái)越標(biāo)準(zhǔn)化,應(yīng)用運(yùn)維變得很簡(jiǎn)單,應(yīng)用部署升級(jí)、應(yīng)用的韌性、應(yīng)用的彈性、應(yīng)用的可觀測(cè)性,可以由開發(fā)人員輕易完成,不再依賴Ops團(tuán)隊(duì)。
DevOps未來(lái)是什么樣子?
軟件工程從瀑布到敏捷、到DevOps,下一階段是:云原生 + 平臺(tái)工程 。
為什么是云原生 + 平臺(tái)工程 ?因?yàn)?a href="/" target="_blank">云原生以應(yīng)用為中心,應(yīng)用之外全部由平臺(tái)能力來(lái)提供。應(yīng)用本身的部署方式、韌性、彈性、可觀測(cè)行由開發(fā)人員來(lái)定義,交給平臺(tái)后,平臺(tái)自動(dòng)來(lái)保障。做到這一步之后,Ops就會(huì)消失,只有Dev團(tuán)隊(duì)。
平臺(tái)工程除了提供應(yīng)用的各種運(yùn)維能力之外,還會(huì)將Dev內(nèi)部的工作流程標(biāo)準(zhǔn)化,信息標(biāo)準(zhǔn)化,以任務(wù)流的方式驅(qū)動(dòng)Dev內(nèi)部的協(xié)作,到時(shí),Dev的內(nèi)部協(xié)作,不再是靠人來(lái)驅(qū)動(dòng),而是靠平臺(tái)來(lái)驅(qū)動(dòng),每個(gè)人只需要完成平臺(tái)分發(fā)的任務(wù)即可,每個(gè)人都是研發(fā)協(xié)作流程上的一個(gè)螺絲釘。而這一天,很快將會(huì)到來(lái)。
CloudOS(企業(yè)云原生數(shù)字化創(chuàng)新平臺(tái)),可以為企業(yè)構(gòu)建敏捷創(chuàng)新的應(yīng)用研發(fā)環(huán)境,實(shí)現(xiàn)應(yīng)用研發(fā)可視化、敏捷化和技術(shù)平臺(tái)標(biāo)準(zhǔn)化,讓傳統(tǒng)應(yīng)用研發(fā)人員快速實(shí)現(xiàn)云原生應(yīng)用創(chuàng)新,加快企業(yè)數(shù)字化轉(zhuǎn)型。提供可視化操作界面,通過(guò)WEB頁(yè)面完成架構(gòu)設(shè)計(jì)、API管理、在線開發(fā)、API自動(dòng)化測(cè)試、多云發(fā)布、多云應(yīng)用調(diào)度、應(yīng)用運(yùn)維等云原生應(yīng)用全生命周期管理。支撐傳統(tǒng)應(yīng)用遷移上云,助力傳統(tǒng)應(yīng)用研發(fā)團(tuán)隊(duì)高效完成云原生應(yīng)用創(chuàng)新。
體驗(yàn)平臺(tái)工程,不妨試一試CloudOS >>
上一篇:老馬閑評(píng)數(shù)字化(2)| 您的企業(yè)是否應(yīng)該急于數(shù)字化轉(zhuǎn)型?
下一篇:老馬閑評(píng)數(shù)字化(1)| 數(shù)字化轉(zhuǎn)型,不轉(zhuǎn)得死,轉(zhuǎn)了也未必活?