新聞中心
Mike Loukides以圖書形式發(fā)表O'Reilly Media出版的《DevOps是什么?》長(zhǎng)文時(shí),他取了一個(gè)后來眾所周知的副標(biāo)題:基礎(chǔ)架構(gòu)即代碼。那篇文章只有20頁,提出了幾個(gè)要點(diǎn):

成都創(chuàng)新互聯(lián),是成都地區(qū)的互聯(lián)網(wǎng)解決方案提供商,用心服務(wù)為企業(yè)提供網(wǎng)站建設(shè)、手機(jī)APP定制開發(fā)、小程序定制開發(fā)、系統(tǒng)按需搭建網(wǎng)站和微信代運(yùn)營(yíng)服務(wù)。經(jīng)過數(shù)10年的沉淀與積累,沉淀的是技術(shù)和服務(wù),讓客戶少走彎路,踏實(shí)做事,誠實(shí)做人,用情服務(wù),致力做一個(gè)負(fù)責(zé)任、受尊敬的企業(yè)。對(duì)客戶負(fù)責(zé),就是對(duì)自己負(fù)責(zé),對(duì)企業(yè)負(fù)責(zé)。
- 基礎(chǔ)架構(gòu)進(jìn)入到代碼。運(yùn)行該軟件的云端系統(tǒng)由代碼創(chuàng)建。
- 運(yùn)維角色將進(jìn)入到團(tuán)隊(duì)。
- 監(jiān)控進(jìn)入到平臺(tái)。我們通過代碼創(chuàng)建的用于服務(wù)軟件的虛擬機(jī)將包括內(nèi)置監(jiān)控。
8年后,也許是時(shí)候問一下這些預(yù)測(cè)是否屬實(shí)、我們學(xué)到了什么以及接下來會(huì)發(fā)生什么。
基礎(chǔ)架構(gòu)即代碼
Loukides的文章舉了幾個(gè)有名的例子,比如Netflix的ChaosMonkey,它們是完成基礎(chǔ)架構(gòu)工作的成熟的計(jì)算機(jī)程序。當(dāng)時(shí)最流行的想法是,運(yùn)維人員將成為正宗的計(jì)算機(jī)程序員,用Python或Ruby編寫程序來設(shè)置將運(yùn)行應(yīng)用程序代碼的一系列虛擬機(jī)??蛻粜枰芾碣Y源、規(guī)模擴(kuò)展和可用性等。
事實(shí)證明,這很難編寫,調(diào)試起來就更難了,而且?guī)缀醪豢赡芾^續(xù)運(yùn)行。
業(yè)界確實(shí)從幾個(gè)方面作出了有力的回應(yīng)。
首先在2013年的Python大會(huì)上,Solomon Hykes和Sebastien Pahl推出了Docker,這是面向Linux系統(tǒng)的輕量級(jí)虛擬化工具。一年后,谷歌開源了Kubernetes。Kubernetes和Docker引入了傳統(tǒng)“基礎(chǔ)架構(gòu)即代碼”之間的一大區(qū)別:它們與其說是受代碼驅(qū)動(dòng),還不如說是受配置和命令驅(qū)動(dòng)。
這方面的流行術(shù)語是聲明性DevOps。簡(jiǎn)而言之,你無需編寫常規(guī)的經(jīng)典代碼告訴計(jì)算機(jī)“如何”創(chuàng)建服務(wù)器,而是創(chuàng)建一個(gè)配置文件來告訴計(jì)算機(jī)那是“什么”并運(yùn)行命令。用Kubernetes的術(shù)語來說,這是一個(gè)清單文件,而不是來自命令行的一系列Kubectl命令,或更糟糕的是運(yùn)行kubectl命令的Python程序,在無限的“while”循環(huán)中運(yùn)行,試圖監(jiān)控系統(tǒng)并采取糾正措施。顧問兼培訓(xùn)師Bob Reselman表示,清單文件將創(chuàng)建可重用的資產(chǎn),該資產(chǎn)更易于審計(jì)和控制。
雖然“基礎(chǔ)架構(gòu)即代碼”沒有接管軟件的所有方面,但對(duì)于促使微服務(wù)崛起起到了至關(guān)重要的作用,團(tuán)隊(duì)常??梢宰孕羞\(yùn)行微服務(wù)。
運(yùn)維進(jìn)入到團(tuán)隊(duì)
至少對(duì)于微服務(wù)而言,可以說運(yùn)維現(xiàn)在是軟件開發(fā)團(tuán)隊(duì)的一部分。也就是說,對(duì)于新服務(wù)而言,我看到團(tuán)隊(duì)支持他們創(chuàng)建的服務(wù)。這倒不是說我接觸的每家組織都如此,而是這些變化并非無處不在。
另一個(gè)創(chuàng)新是全新的工作類別,即軟件可靠性工程師或SRE。SRE負(fù)責(zé)系統(tǒng)可用性、延遲、性能、緊急響應(yīng)和容量等。他們監(jiān)控大量網(wǎng)站和服務(wù),并采取糾正措施。這是某種“DevOps”工作,原因是它把軟件開發(fā)的嚴(yán)謹(jǐn)性帶到了運(yùn)維。我個(gè)人感到有點(diǎn)難過,因?yàn)槲覀儼l(fā)明了一種全新的工作類別,而不是開發(fā)團(tuán)隊(duì)和運(yùn)維團(tuán)隊(duì)協(xié)同工作。它似乎確實(shí)適用于存在可擴(kuò)展性問題的大公司。人數(shù)較少的小組只是把運(yùn)維這塊扔給了團(tuán)隊(duì)。
監(jiān)控進(jìn)入到平臺(tái)
電話與路由器、Web服務(wù)器、微服務(wù)、數(shù)據(jù)庫直至物聯(lián)網(wǎng)設(shè)備之間的許多環(huán)節(jié)可能會(huì)出岔子。Kubernetes方面尚未出現(xiàn)的一件事就是支持我們一直希望的監(jiān)控。云托管公司確實(shí)提供了出色的儀表板,便于查看服務(wù)器的運(yùn)行狀況,但跟蹤消息(這是可觀察性的一部分)是大多數(shù)小組要自行計(jì)劃的事情。
這可能屬于下一步。
下一步是什么
雖然Windows容器確實(shí)管用,至少從理論上來說適用于一款特定的操作系統(tǒng),但我還沒有看到哪家公司實(shí)際使用它。Kubernetes仍然主要是面向Linux系統(tǒng)的解決方案,尤其是面向Web服務(wù)器,可能還面向數(shù)據(jù)庫服務(wù)器。眼下,專職工程師將只好習(xí)慣于在異構(gòu)操作環(huán)境下工作,在這種環(huán)境下傳統(tǒng)運(yùn)維人員將繼續(xù)發(fā)揮作用。
然后是監(jiān)控。有一些軟件包和開源系統(tǒng)(比如Istio)可以檢測(cè)云系統(tǒng),并自動(dòng)創(chuàng)建監(jiān)控系統(tǒng)和審計(jì)跟蹤。我看到的問題是,它們需要大量的CPU/Member,這在云端意味著大量費(fèi)用。它們還可能使網(wǎng)絡(luò)需求大致翻番。我多次看到一家公司花數(shù)萬乃至數(shù)十萬美元加上數(shù)年的工程師人力來實(shí)施一套監(jiān)控系統(tǒng),但由于系統(tǒng)需求實(shí)際上影響了生產(chǎn),到頭來只好關(guān)閉監(jiān)控系統(tǒng)。
文章名稱:自2012年以來DevOps發(fā)生了怎樣的變化?
標(biāo)題URL:http://m.fisionsoft.com.cn/article/coopodi.html


咨詢
建站咨詢
