系統(tǒng)運(yùn)維工程師是做什么的?
運(yùn)維開(kāi)發(fā)工程師的職責(zé)是:負(fù)責(zé)日常運(yùn)維工作;推動(dòng)及開(kāi)發(fā)高效的自動(dòng)化運(yùn)維、管理工具,提升運(yùn)維工作效率;制定和優(yōu)化運(yùn)維解決方案,包括但不限于柔性容災(zāi)、智能調(diào)度、彈性擴(kuò)容與防攻擊;探索、研究新的運(yùn)維技術(shù)方向。
運(yùn)維開(kāi)發(fā)工程師的任職要求是:1、本科及以上學(xué)歷,年齡在18周歲以上;2、熟悉常見(jiàn)應(yīng)用服務(wù)的配置和優(yōu)化;3、能熟練使用常用的監(jiān)控軟件;4、善于分析思考問(wèn)題,有責(zé)任心;5、服從工作安排,身體健康。
DevOps是什么? DevOps工程師到底做些什么?
DevOps是IT服務(wù)管理的一種模式。過(guò)去的數(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試圖打通開(kāi)發(fā)和運(yùn)維的部門墻,從而打通整個(gè)IT價(jià)值交付的全生命周期,從產(chǎn)品需求到上線運(yùn)維的全過(guò)程實(shí)現(xiàn)效率的提升。
DevOps最顯著的作用是提高了企業(yè)產(chǎn)品的交付質(zhì)量、縮短開(kāi)發(fā)周期、減少故障。而降本增效是每一個(gè)公司在數(shù)字化轉(zhuǎn)型之后的很大的挑戰(zhàn),DevOps無(wú)疑直擊痛點(diǎn)。
而作為一名DevOps 工程師,除了要具備軟件工程師基本的編程能力以外,還需要特定的人際交往、工具使用等技能。換句話說(shuō),DevOps 工程師需要“軟”、“硬”技能兼?zhèn)?具體如下:
一、溝通與協(xié)作技巧
DevOps 是一種橫跨軟件開(kāi)發(fā)、測(cè)試和部署的協(xié)作方法。它將原本具有不同目標(biāo)的開(kāi)發(fā)、測(cè)試和運(yùn)維小團(tuán)隊(duì)聚集在一起,以實(shí)現(xiàn)更高效和高質(zhì)量的代碼發(fā)布,這就要求 DevOps 流程中的不同角色之間不能有任何交流障礙。因此,良好的溝通技巧(無(wú)論是口頭還是書(shū)面)對(duì)于優(yōu)秀的 DevOps 工程師來(lái)說(shuō)是必不可少的。
協(xié)作能力也很重要。DevOps 是團(tuán)隊(duì)合作的開(kāi)發(fā)模式,每個(gè)工程師都是團(tuán)隊(duì)成員,需要在整個(gè)軟件迭代過(guò)程中支持其他同事的工作。這不僅僅要求我們成為一名優(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ì)地說(shuō),集合了代碼審查、合并功能的版本控制工具是能讓多個(gè)開(kāi)發(fā)人員之間完美協(xié)作的主要DevOps 工具。由于 DevOps 流程匯集了來(lái)自各個(gè)部門的專家,所以他們需要了解源代碼控制系統(tǒng),以及系統(tǒng)跟蹤不同應(yīng)用程序中的更改。此外,它還維護(hù)應(yīng)用程序的多個(gè)版本。
目前 DevOps 流程中常用的版本控制系統(tǒng)都基于開(kāi)源分布式版本控制系統(tǒng) Git,例如 GitHub、Gitee、GitLab 以及各大廠商基于 Git 定制的內(nèi)源協(xié)作工具。
持續(xù)集成工具
持續(xù)集成(CI)是 DevOps 的關(guān)鍵技能之一,它是構(gòu)建 pipeline 的重要部分。DevOps 要求運(yùn)營(yíng)和開(kāi)發(fā)團(tuán)隊(duì)使用統(tǒng)一的系統(tǒng)。因此,持續(xù)集成所做的就是將開(kāi)發(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)化是軟件開(kāi)發(fā)過(guò)程中必不可少的要素之一。幾乎所有的手工任務(wù)都可以使用各種腳本語(yǔ)言自動(dòng)完成。例如,Ruby、Bash、Python、Node、Shell 等等??梢哉f(shuō),使用自動(dòng)化開(kāi)發(fā)工具已經(jīng)成為了很多 DevOps 團(tuán)隊(duì)加快開(kāi)發(fā)和部署過(guò)程的關(guān)鍵。想要成為 DevOps 工程師,掌握自動(dòng)化工具很有必要。
監(jiān)控和報(bào)警工具
DevOps 持續(xù)集成和持續(xù)部署的實(shí)現(xiàn)離不開(kāi)持續(xù)監(jiān)控的輔助作用。許多微服務(wù)都是由數(shù)百個(gè)組件組合而成,其中一個(gè)服務(wù)的故障可能導(dǎo)致整個(gè)系統(tǒng)崩潰。當(dāng)然,手動(dòng)找到核心故障問(wèn)題是很復(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)維開(kāi)發(fā)人員可以在整個(gè)系統(tǒng)崩潰之前解決問(wèn)題。
三、具有成熟編碼標(biāo)準(zhǔn)的特定編程技能
然編程能力是每個(gè)開(kāi)發(fā)者最基本的能力,但 DevOps 工程師在這方面仍然有一些更特殊的要求。
通常來(lái)說(shuō),DevOps 工程師需要在專精 1-2 門編程語(yǔ)言的基礎(chǔ)上熟悉多種語(yǔ)言,例如 Java、JavaScript、Ruby、Python、PHP、Go 等,這是由微服務(wù)時(shí)代同一系統(tǒng)不同服務(wù)可以由不同語(yǔ)言、不同框架實(shí)現(xiàn)的特性而決定的。DevOps 工程師至少需要了解這些語(yǔ)言的特性并具備在操作系統(tǒng)環(huán)境中編寫(xiě)和調(diào)試它們的能力。
四、技術(shù)支持和維護(hù)技能
優(yōu)秀的 DevOps 工程師不僅需要開(kāi)發(fā)方面的技能,有時(shí)還需要為客戶提供維護(hù)和技術(shù)支持。這意味著 DevOps 工程師應(yīng)該樂(lè)于為內(nèi)部和外部客戶提供支持,并在出現(xiàn)問(wèn)題時(shí)進(jìn)行故障排除。
devops工程師是干嘛的
它是一類工程師的統(tǒng)稱,如系統(tǒng)工程師,自動(dòng)化構(gòu)建工程師,軟件工程師,Linux工程師等等。
傳統(tǒng)的軟件開(kāi)發(fā)流程是軟件開(kāi)發(fā)人員花費(fèi)數(shù)周和數(shù)月編寫(xiě)代碼,然后將代碼交給QA團(tuán)隊(duì)進(jìn)行測(cè)試,然后將最終的發(fā)布版交給運(yùn)維團(tuán)隊(duì)去布署。
所有的這三個(gè)階段,即開(kāi)發(fā),測(cè)試,布署,之間缺乏協(xié)作。開(kāi)發(fā)者編寫(xiě)代碼然后交給布署團(tuán)隊(duì)?,F(xiàn)在由布署團(tuán)隊(duì)來(lái)解決代碼布署過(guò)程中出現(xiàn)的問(wèn)題,或?qū)⒋a交給開(kāi)發(fā)團(tuán)隊(duì)以修復(fù)bug。所有這些都導(dǎo)致軟件開(kāi)發(fā)過(guò)程變慢。但是在DevOps模式下,這三個(gè)團(tuán)隊(duì)將不再相互隔離。
大多數(shù)時(shí)候,這三個(gè)團(tuán)隊(duì)將合并成一個(gè)團(tuán)隊(duì),工程師會(huì)在整個(gè)應(yīng)用程序生命周期中工作,從開(kāi)發(fā)和測(cè)試到布署到操作,并開(kāi)發(fā)出一系列不限于單一功能的技能。安全團(tuán)隊(duì)也可以在整個(gè)應(yīng)用程序生成周期中和開(kāi)發(fā)和運(yùn)維更緊密的合作。