cool100886
DevOps是IT服務(wù)管理的一種模式。過去的數(shù)十年間,IT運(yùn)維發(fā)展經(jīng)歷了數(shù)個(gè)階段。從早期的手工運(yùn)維到標(biāo)準(zhǔn)化運(yùn)維、自動(dòng)化運(yùn)維,到如今的DevOps、AIOps。
簡(jiǎn)言之,DevOps試圖打通開發(fā)和運(yùn)維的部門墻,從而打通整個(gè)IT價(jià)值交付的全生命周期,從產(chǎn)品需求到上線運(yùn)維的全過程實(shí)現(xiàn)效率的提升。
DevOps最顯著的作用是提高了企業(yè)產(chǎn)品的交付質(zhì)量、縮短開發(fā)周期、減少故障。而降本增效是每一個(gè)公司在數(shù)字化轉(zhuǎn)型之后的很大的挑戰(zhàn),DevOps無疑直擊痛點(diǎn)。
而作為一名DevOps 工程師,除了要具備軟件工程師基本的編程能力以外,還需要特定的人際交往、工具使用等技能。換句話說,DevOps 工程師需要“軟”、“硬”技能兼?zhèn)?具體如下:一、溝通與協(xié)作技巧
DevOps 是一種橫跨軟件開發(fā)、測(cè)試和部署的協(xié)作方法。它將原本具有不同目標(biāo)的開發(fā)、測(cè)試和運(yùn)維小團(tuán)隊(duì)聚集在一起,以實(shí)現(xiàn)更高效和高質(zhì)量的代碼發(fā)布,這就要求 DevOps 流程中的不同角色之間不能有任何交流障礙。因此,良好的溝通技巧(無論是口頭還是書面)對(duì)于優(yōu)秀的 DevOps 工程師來說是必不可少的。
協(xié)作能力也很重要。DevOps 是團(tuán)隊(duì)合作的開發(fā)模式,每個(gè)工程師都是團(tuán)隊(duì)成員,需要在整個(gè)軟件迭代過程中支持其他同事的工作。這不僅僅要求我們成為一名優(yōu)秀的隊(duì)友,還要在適當(dāng)?shù)臅r(shí)候給新人一些建議,包括但不限于指導(dǎo)和建議團(tuán)隊(duì)成員交付代碼的最佳方式、編碼時(shí)使用哪些工具以及如何測(cè)試最新功能。這就要求我們自身也要對(duì)這些 DevOps 流程中的必要技能有所了解。二、熟悉和理解 DevOps 工具鏈除了協(xié)作和溝通這樣的“軟”技能之外,DevOps 工程師還必須知道如何使用各種復(fù)雜工具協(xié)同工作以支持軟件交付目標(biāo),這是成為一個(gè)優(yōu)秀的 DevOps 工程師所必備的“硬”技能。DevOps 工程師需要知道如何使用和理解以下類型工具的作用:
版本控制工具
詳細(xì)地說,集合了代碼審查、合并功能的版本控制工具是能讓多個(gè)開發(fā)人員之間完美協(xié)作的主要DevOps 工具。由于 DevOps 流程匯集了來自各個(gè)部門的專家,所以他們需要了解源代碼控制系統(tǒng),以及系統(tǒng)跟蹤不同應(yīng)用程序中的更改。此外,它還維護(hù)應(yīng)用程序的多個(gè)版本。目前 DevOps 流程中常用的版本控制系統(tǒng)都基于開源分布式版本控制系統(tǒng) Git,例如 GitHub、Gitee、GitLab 以及各大廠商基于 Git 定制的內(nèi)源協(xié)作工具。持續(xù)集成工具持續(xù)集成(CI)是 DevOps 的關(guān)鍵技能之一,它是構(gòu)建 pipeline 的重要部分。DevOps 要求運(yùn)營和開發(fā)團(tuán)隊(duì)使用統(tǒng)一的系統(tǒng)。因此,持續(xù)集成所做的就是將開發(fā)人員的代碼與 master 合并在一起。有了這樣的技巧,就可以有效地合并數(shù)據(jù)。因此,DevOps 工程師一定要知道如何使用一些常用的 CI 工具,例如 GitHub Action、Jenkins、Bamboo、TeamCity、Travis CI 等。
容器與編排工具
容器作為現(xiàn)代微服務(wù)與云原生架構(gòu)的核心技術(shù),提供了關(guān)于 DevOps 的三個(gè)基本功能,包括持續(xù)的實(shí)驗(yàn)、流動(dòng)和反饋。容器技術(shù)的不可變基礎(chǔ)設(shè)施實(shí)現(xiàn)了操作系統(tǒng)層虛擬化,不僅方便運(yùn)維程序升級(jí)和部署,還升華成了向應(yīng)用代碼隱藏環(huán)境復(fù)雜性的手段,成為推廣分布式服務(wù)的必要前提。
目前,Docker 仍然是應(yīng)用最廣泛的容器技術(shù),而以容器編排引擎 Kubernetes 為核心的云原生技術(shù)棧則是各大互聯(lián)網(wǎng)企業(yè)構(gòu)建容器技術(shù)基礎(chǔ)設(shè)施的事實(shí)標(biāo)準(zhǔn)。
自動(dòng)化工具
自動(dòng)化是軟件開發(fā)過程中必不可少的要素之一。幾乎所有的手工任務(wù)都可以使用各種腳本語言自動(dòng)完成。例如,Ruby、Bash、Python、Node、Shell 等等。可以說,使用自動(dòng)化開發(fā)工具已經(jīng)成為了很多 DevOps 團(tuán)隊(duì)加快開發(fā)和部署過程的關(guān)鍵。想要成為 DevOps 工程師,掌握自動(dòng)化工具很有必要。監(jiān)控和報(bào)警工具
DevOps 持續(xù)集成和持續(xù)部署的實(shí)現(xiàn)離不開持續(xù)監(jiān)控的輔助作用。許多微服務(wù)都是由數(shù)百個(gè)組件組合而成,其中一個(gè)服務(wù)的故障可能導(dǎo)致整個(gè)系統(tǒng)崩潰。當(dāng)然,手動(dòng)找到核心故障問題是很復(fù)雜和耗時(shí)的。其中一個(gè)解決方案就是持續(xù)監(jiān)控關(guān)鍵特征,如 RAM 使用、請(qǐng)求數(shù)量、異常數(shù)量和存儲(chǔ)空間。因此,需要根據(jù)系統(tǒng)的關(guān)鍵特性設(shè)置一個(gè)警報(bào)系統(tǒng)。例如,當(dāng)存儲(chǔ)空間使用率達(dá)到 80% 時(shí)應(yīng)該觸發(fā)警報(bào),以便 DevOps 運(yùn)維開發(fā)人員可以在整個(gè)系統(tǒng)崩潰之前解決問題。
三、具有成熟編碼標(biāo)準(zhǔn)的特定編程技能
然編程能力是每個(gè)開發(fā)者最基本的能力,但 DevOps 工程師在這方面仍然有一些更特殊的要求。
通常來說,DevOps 工程師需要在專精 1-2 門編程語言的基礎(chǔ)上熟悉多種語言,例如 Java、JavaScript、Ruby、Python、PHP、Go 等,這是由微服務(wù)時(shí)代同一系統(tǒng)不同服務(wù)可以由不同語言、不同框架實(shí)現(xiàn)的特性而決定的。DevOps 工程師至少需要了解這些語言的特性并具備在操作系統(tǒng)環(huán)境中編寫和調(diào)試它們的能力。
四、技術(shù)支持和維護(hù)技能
優(yōu)秀的 DevOps 工程師不僅需要開發(fā)方面的技能,有時(shí)還需要為客戶提供維護(hù)和技術(shù)支持。這意味著 DevOps 工程師應(yīng)該樂于為內(nèi)部和外部客戶提供支持,并在出現(xiàn)問題時(shí)進(jìn)行故障排除。
我是朱珠寶寶0
互聯(lián)網(wǎng)賦能的相關(guān)企業(yè)“人人都可以學(xué)",尤其是項(xiàng)目經(jīng)理、開發(fā)和運(yùn)維相關(guān)崗位。 DevOps幾乎“貫穿”了從業(yè)務(wù)到開發(fā)到運(yùn)維進(jìn)而到客戶所有環(huán)節(jié)。DevOps可以說是適合這些環(huán)節(jié)中的所有人學(xué)習(xí)。DevOps認(rèn)證培訓(xùn)首選的是艾威培訓(xùn),艾威源于美國,始于1998,國內(nèi)最早從事DevOps 培訓(xùn)的機(jī)構(gòu)之一,經(jīng)過多年的DevOps認(rèn)證培訓(xùn),艾威已經(jīng)掌握了DevOps考試的脈絡(luò),通過率也是最高的。感興趣的可以去艾威咨詢看看。
我的小滿
在2008年多倫多舉辦的敏捷大會(huì)(Velocity Conf 2008 )上,Patrick DeBois 和AndrewClay Shafer 先生首次提議討論“敏捷基礎(chǔ)架構(gòu)”這個(gè)話題。在第二年的敏捷大會(huì)上有一個(gè)具有里程碑的意義技術(shù)分享,來自Flickr公司《每天部署10次》的分享,它激發(fā)了隨后Patrick DeBios在同年十月,在比利時(shí)的根特市舉辦的首屆DevOpsDays活動(dòng),這個(gè)活動(dòng)是兩天的日程,為了大家方便在twitter上的傳播,人們把DevOpsDays這個(gè)詞簡(jiǎn)寫為 “#DevOps” 。 此后,“DevOps”一詞問世了,這個(gè)詞所包含的理念和實(shí)踐一時(shí)在越來越廣大的人群中產(chǎn)生了共鳴,隨后成為全球IT界在各種大會(huì)和論壇里熱議和討論的焦點(diǎn)話題,很多大型IT論壇也都開設(shè)出了DevOps專題討論。這就是DevOps這個(gè)詞的由來。 DevOpsDays活動(dòng)隨后在Patrick DeBios等相關(guān)核心發(fā)起人的推動(dòng)下,在全球范圍內(nèi)蓬勃發(fā)展了起來。2010年在美國山景城(Mountain View) 舉辦的DevOpsDays 活動(dòng)中,Damon Edwards先生使用“CAMS”這個(gè)縮寫,高度概括和詮釋了DevOps,即文化(Culture)、自動(dòng)化(Automation)、度量(Measurement or Metrics)和分享(Sharing)。隨后Jez Humble先生將“L”精益 (Lean) 原則也加入其中,最終變成了CALMS。 ? Culture(文化)- 是指擁抱變革,促進(jìn)協(xié)作和溝通 ? Automation(自動(dòng)化)- 是指將人為干預(yù)的環(huán)節(jié)從價(jià)值鏈中消除 ? Lean(精益)- 是指通過使用精益原則促使高頻率循環(huán)周期 ? Metrics(指標(biāo))- 是指衡量每一個(gè)環(huán)節(jié),并通過數(shù)據(jù)來改進(jìn)循環(huán)周期 ? Sharing(分享)- 是指與他人開放分享成功與失敗的經(jīng)驗(yàn),并在錯(cuò)誤中不斷學(xué)習(xí)改進(jìn) “CALMS”完全吻合Patrick DeBois先生所一向倡導(dǎo)的“DevOps is a human problem” (DevOps 是關(guān)于人的問題) 的理念 。 從DevOps概念的產(chǎn)生,到如今它在全球范圍內(nèi)的蔓延和認(rèn)同,已經(jīng)經(jīng)歷了9個(gè)年頭的時(shí)間。它的火爆推廣也伴隨著IT行業(yè)的迅速變遷和發(fā)展,現(xiàn)在已經(jīng)到了移動(dòng)互聯(lián)網(wǎng)時(shí)代的后半場(chǎng),國內(nèi)的信息化建設(shè)已經(jīng)完成了很多年;如今各行各業(yè)的企業(yè)也都亟待完成全方位的數(shù)字化轉(zhuǎn)型。IT信息技術(shù)的先進(jìn)程度標(biāo)志著一個(gè)企業(yè)的核心能力,任何一個(gè)成功的企業(yè),敏捷高效的軟件開發(fā)創(chuàng)新實(shí)力和IT管理綜合能力不只是門面而已,而是實(shí)實(shí)在在的市場(chǎng)競(jìng)爭(zhēng)能力。DevOps倡導(dǎo)打敏捷、持續(xù)交付和ITIL三種實(shí)踐的組合拳,同時(shí)應(yīng)用精益生產(chǎn)理念為基礎(chǔ)的管理思想,這正在逐漸地被廣泛的接受和認(rèn)可。 在過去的幾年中,國內(nèi)的各種IT大會(huì)也蓬勃發(fā)展,其中DevOps相關(guān)的專題和分會(huì)場(chǎng)也頗受人們的關(guān)注。各種云計(jì)算、運(yùn)維等IT技術(shù)的社交媒體也都非常重視DevOps這個(gè)話題的分享。一個(gè)專屬于DevOps社群的、國際性的、有影響力的DevOps大會(huì)正呼之欲出。在這樣的時(shí)代背景下DevOpsDays大會(huì)北京站在2017年的3月18日來到中國,在同年的8月18日上海,還要舉辦DevOpsDays Shanghai站的大會(huì)。 下面列舉一些DevOpsDays大會(huì)的相關(guān)數(shù)據(jù),數(shù)據(jù)來源于 網(wǎng)站。從2009年到2016年,已經(jīng)在全球的61個(gè)城市/國家成功地舉辦了117場(chǎng)。 下圖是在過去九年中DevOpsDays大會(huì)在各個(gè)城市/國家的分布和舉辦次數(shù)。 今年也就是2017年預(yù)計(jì)舉辦30場(chǎng),其中已經(jīng)有18場(chǎng)確定了舉辦城市和日期;還有12個(gè)城市的召開日期待定;這不包括年內(nèi)還可能會(huì)提出申辦的城市。以上數(shù)據(jù)的統(tǒng)計(jì)時(shí)間在2017年三月。 隨著國內(nèi)BAT等互聯(lián)網(wǎng)巨頭的崛起,互聯(lián)網(wǎng)公司的開發(fā)運(yùn)維經(jīng)驗(yàn)也越來越多的在國內(nèi)的各種技術(shù)大會(huì)上傳播。從最近這兩年(2016年和2017年)的技術(shù)活動(dòng)日程中可以看出,國內(nèi)互聯(lián)網(wǎng)從業(yè)人員也不約而同的用DevOps來定位和分享自己的優(yōu)勢(shì)和經(jīng)驗(yàn)。他們是傳播和分享運(yùn)維側(cè)DevOps實(shí)踐的先頭部隊(duì)。 出了技術(shù)論壇的分享之外,很多線上線下的大會(huì)、論壇和討論組也都越來越熱議DevOps這一專題。國內(nèi)其它相關(guān)流派的人群,例如敏捷和精益等,也對(duì)DevOps的蓬勃發(fā)展表示比較驚訝,DevOps與老牌的敏捷和精益等陣營也產(chǎn)生過一些爭(zhēng)論。但這一切的發(fā)生也都增加了人們對(duì)于DevOps的更深入的興趣。 在培訓(xùn)認(rèn)證這方面,Exin DevOps Master是一個(gè)國際認(rèn)證的培訓(xùn);其它公司和組織也正在舉辦關(guān)于DevOps工具鏈的培訓(xùn),這些培訓(xùn)則注重于技術(shù)實(shí)操,關(guān)注在構(gòu)建端到端的流水線的搭建方面。從DevOps的職位招聘方面,可以看到DevOps工程師相關(guān)的職位越來越多了,在職位需求中DevOps這個(gè)技能成了加分項(xiàng),DevOps相關(guān)工具的技能也或?qū)⒊蔀楹?jiǎn)歷的亮點(diǎn)。在IT行業(yè)內(nèi)不管是開發(fā)還是運(yùn)維團(tuán)隊(duì)的人,都開始了學(xué)習(xí)和接受的過程。 據(jù)我觀察DevOps方面的廠商在最近3年呈現(xiàn)爆炸式的發(fā)展。我把他們分為三類: 目前國內(nèi)大部分企業(yè)慢慢地開始關(guān)注了DevOps,大型傳統(tǒng)企業(yè)也開始逐漸地從各個(gè)角度做試點(diǎn)和嘗試。試點(diǎn)的角度和方向各不相同,有的從底層基礎(chǔ)架構(gòu)的容器化開始,有的從交付部署流水線的自動(dòng)化開始;總的來說還處于初級(jí)的嘗試階段,還沒有大規(guī)模成體系的推廣。 綜上所述,目前國內(nèi)DevOps發(fā)展的階段還屬于起步階段。就像是ITIL/ITSM在2003年左右的狀態(tài)。由于DevOps是去中心化的,所以沒有唯一、權(quán)威的上游廠商的存在,各種理論實(shí)踐的爭(zhēng)執(zhí)和PK都將終止與解決問題和提高效率的話題上,因此它具有百花齊放百家爭(zhēng)鳴的發(fā)展條件。個(gè)人認(rèn)為DevOps的實(shí)施和落地也不會(huì)完全依賴于傳統(tǒng)的大型咨詢廠商的咨詢工作,由于它應(yīng)該是在企業(yè)的內(nèi)部,在內(nèi)驅(qū)的作用下,自生長(zhǎng)出來的;它必須是服務(wù)于企業(yè)的業(yè)務(wù)價(jià)值流的優(yōu)化,加速業(yè)務(wù)價(jià)值產(chǎn)出的;而與之相關(guān)的工作和責(zé)任的擔(dān)當(dāng),外部力量是很難以等量替換和承擔(dān)的。 在談這個(gè)話題前先看一下DevOps相關(guān)工具集的全貌,如下圖所示: 最上面的箭頭流程圖表示了一個(gè)業(yè)務(wù)服務(wù)的全生命周期:開發(fā)協(xié)作、軟件構(gòu)建、質(zhì)量測(cè)試、交付部署和投產(chǎn)運(yùn)維。前三個(gè)階段偏傳統(tǒng)開發(fā)組織的工作內(nèi)容,后兩個(gè)階段基本可以和運(yùn)維組織的工作對(duì)應(yīng)上。在每個(gè)階段下可以看成是一個(gè)大分類,這些分類中還包含若干個(gè)小分類。這些工具可以粗放的劃分為商業(yè)軟件和開源軟件兩類;也可以分為SaaS服務(wù)類和企業(yè)內(nèi)部部署型。大部分開源工具都有活躍的用戶社區(qū)和群眾基礎(chǔ),這給企業(yè)入手這些工具帶來了很大的便利。在需要商業(yè)支持的場(chǎng)景里還可以選擇使用這些開源軟件的企業(yè)版。 Docker容器技術(shù)在最近三年中異軍突起,持續(xù)交付的技術(shù)門檻因此被降到最低,軟件生產(chǎn)供應(yīng)鏈的格局和效率被徹底提升;基于Docker的微服務(wù)架構(gòu)實(shí)踐的熱度和成熟度也與日俱增。因此,國內(nèi)的傳統(tǒng)企業(yè)紛紛試水DevOps和容器技術(shù),在最近兩年的各種技術(shù)大會(huì)中,我們可以看到國內(nèi)各個(gè)行業(yè)出現(xiàn)了在不同維度上的DevOps先行者。他們分享的主題大多集中在自動(dòng)化運(yùn)維、容器化和PaaS平臺(tái)的等項(xiàng)目經(jīng)驗(yàn)。 從國內(nèi)眾多DevOps實(shí)踐中,我們能看到下面三個(gè)技術(shù)尤其重要和火熱: 以上三種技術(shù)相輔相成,有著比較深刻的關(guān)聯(lián)。首先微服務(wù)和持續(xù)部署各自解決了特別多的傳統(tǒng)IT的問題,這些問題都是長(zhǎng)期以來制約企業(yè)業(yè)務(wù)發(fā)展的難題。容器技術(shù)由于它的快速、輕量、微服務(wù)化的天然特性,很好的從不同側(cè)面支持了持續(xù)交付和微服務(wù)架構(gòu)。容器可以為持續(xù)交付提供彈性和高速的系統(tǒng)資源,環(huán)境管理和利用率提高了很多;容器的不可變性的特點(diǎn)也更好地支持了微服務(wù)架構(gòu)。 我把DevOps的按照不同的技術(shù)特征做了從到 到的時(shí)代劃分,并盡量通過以下維度比較與傳統(tǒng)方式的差異。 我比較認(rèn)可和接受的企業(yè)實(shí)踐DevOps參考框架如下,其中包含了所需的最佳實(shí)踐,如下圖所示。 (上圖來源于:Exin DevOps白皮書) 下面簡(jiǎn)要描述一下這四大支柱型最佳實(shí)踐: 由此可見DevOps在企業(yè),特別是大規(guī)模傳統(tǒng)企業(yè)的落地和推廣還是比較復(fù)雜的。雖然相關(guān)的最佳實(shí)踐都是已經(jīng)存在了很多年的;但是,通過DevOps的價(jià)值觀重構(gòu)企業(yè)從研發(fā)到交付到運(yùn)維的價(jià)值流談何容易。基于我的IT從業(yè)經(jīng)驗(yàn),我似乎感覺到DevOps不能單獨(dú)依靠自頂向下的推廣,當(dāng)然高層領(lǐng)導(dǎo)的支持依然是重要的和必備的支持條件之一。 可能還需要中層的帶動(dòng)和底層的創(chuàng)新;借鑒生產(chǎn)制造業(yè)已經(jīng)久經(jīng)考驗(yàn)的精益制造實(shí)踐也是勢(shì)在必行。總之DevOps運(yùn)動(dòng)會(huì)在近幾年給IT行業(yè)帶來較大影響。
優(yōu)質(zhì)考試培訓(xùn)問答知識(shí)庫