DevOps入門篇】概念、技術(shù)實(shí)踐、研發(fā)工具鏈

      網(wǎng)友投稿 997 2025-04-02

      一、什么是DevOps?


      1.1 DevOps概述

      DevOps,即Development and Operations,是一組過程、方法與系統(tǒng)的統(tǒng)稱,用于促進(jìn)軟件開發(fā)、運(yùn)維和質(zhì)量保障部門之間的溝通、協(xié)作與整合。DevOps的出現(xiàn)是由于軟件行業(yè)日益清晰地認(rèn)識(shí)到:為了按時(shí)交付軟件產(chǎn)品和服務(wù),開發(fā)和運(yùn)維工作必須緊密合作。DevOps可看作開發(fā)、運(yùn)維和質(zhì)量保障(QA)三者的交集。

      DevOps運(yùn)動(dòng)源自于提高IT服務(wù)交付敏捷性的需要,早期出現(xiàn)在許多大型公有云服務(wù)提供商中,并被其認(rèn)可。支撐DevOps的理念基礎(chǔ)是敏捷宣言,它強(qiáng)調(diào)人(和文化),致力于改善開發(fā)和運(yùn)維團(tuán)隊(duì)之間的協(xié)作。從生命周期的角度來看,DevOps的實(shí)施者也試圖更好地利用技術(shù),尤其是自動(dòng)化工具,來支撐越來越多的可編程的動(dòng)態(tài)的基礎(chǔ)設(shè)施。

      二、DevOps的技術(shù)實(shí)踐

      2.1 配置管理

      軟件配置管理的核心功能是版本控制。版本控制系統(tǒng)是一種軟件,可以管理代碼的所有版本并跟蹤代碼中的更改。

      1)分布式Git VS 集中式SVN

      版本控制系統(tǒng)分為集中式和分布式兩種工作模式,Git和SVN是最為廣泛被使用的代表,Git由于其諸多特點(diǎn),更適合DevOps。

      安全性——Git是分布式,而SVN是集中式,存在單點(diǎn)故障風(fēng)險(xiǎn)。

      分支功能——Git分支功能強(qiáng)大,便于查詢和追溯分支間的提交歷史,且支持雙向合并。

      發(fā)布控制——Git發(fā)布控制相當(dāng)靈活,而SVN并沒有明確的發(fā)布控制配置。

      開發(fā)審核——Git支持團(tuán)隊(duì)成員自建分支和版本庫,從提交說明、代碼規(guī)范等方面對(duì)提交逐一審核;而SVN則不具備這些功能。

      合并支持——Git基于DAG(有向非環(huán)圖)的設(shè)計(jì)比SVN的線性提交提供更好的合并追蹤,避免不必要的沖突,提高了工作效率。

      存儲(chǔ)方式——Git把內(nèi)容按元數(shù)據(jù)方式存儲(chǔ),而SVN是按文件。

      分布式Git VS 集中式SVN——版本控制系統(tǒng)分為集中式和分布式兩種工作模式,Git和SVN是最為廣泛被使用的代表,Git由于其諸多特點(diǎn),更適合DevOps。

      2)包文件

      包文件通常不放在源碼庫中管理,而是使用專門的包文件倉庫(repository)進(jìn)行存儲(chǔ),并配合包文件依賴管理工具(Maven、npm、Ivy等)進(jìn)行使用。包文件倉庫可以大致分為本地倉庫、私服倉庫、中央倉庫三種。本地倉庫是指開發(fā)者個(gè)人PC中包文件的存儲(chǔ);私服倉庫通常是企業(yè)為了提升包文件使用性能而搭建的局域網(wǎng)內(nèi)共用的包文件倉庫,通常使用開源的Nexus、artifactory等工具搭建;中央倉庫是指開源包文件的共享社區(qū)。

      開發(fā)人員對(duì)包文件的使用集中在下載、搜索、發(fā)布上傳幾個(gè)操作上。開發(fā)和構(gòu)建時(shí),開發(fā)人員通過包依賴管理工具定義好需要使用的私有及開源包文件,在構(gòu)建或運(yùn)行時(shí)自動(dòng)從私服倉庫或開源中央倉庫中下載依賴包文件來提升開發(fā)效率。

      2.2 持續(xù)集成(Continuous Integration)

      持續(xù)集成(CI)是一種軟件開發(fā)實(shí)踐,即團(tuán)隊(duì)的成員經(jīng)常集成他們的工作,通常每個(gè)成員每天至少集成一次——這導(dǎo)致每天發(fā)生多次集成。每次集成都通過自動(dòng)化的構(gòu)建(包括測(cè)試)來驗(yàn)證,從而盡快地檢測(cè)出集成錯(cuò)誤。

      持續(xù)集成過程中的角色與職責(zé)如下:

      2.3 持續(xù)交付(Continuous Delivery)

      持續(xù)交付(CD)是從構(gòu)建環(huán)境到生產(chǎn)環(huán)境的構(gòu)建、測(cè)試、配置和部署的過程。

      持續(xù)交付是一種軟件工程手法,讓軟件產(chǎn)品的產(chǎn)出過程在一個(gè)短周期內(nèi)完成,以保證軟件可以穩(wěn)定、持續(xù)的保持在隨時(shí)可以發(fā)布的狀況。它的目標(biāo)在于讓軟件的構(gòu)建、測(cè)試與發(fā)布變得更快以及更頻繁。這種方式可以減少軟件開發(fā)的成本與時(shí)間,減少風(fēng)險(xiǎn)。

      2.4 基礎(chǔ)設(shè)施即代碼(Infrastructure as Code)

      作為代碼的基礎(chǔ)設(shè)施(IaC)是描述性模型中的基礎(chǔ)設(shè)施(網(wǎng)絡(luò)、虛擬機(jī)、負(fù)載平衡器和連接拓?fù)洌┑墓芾恚褂门cDevOps團(tuán)隊(duì)用于源代碼相同的版本。與同一源代碼生成相同二進(jìn)制文件的原則一樣,IaC模型在每次應(yīng)用時(shí)都會(huì)生成相同的環(huán)境。

      IaC是DevOps的關(guān)鍵實(shí)踐,與持續(xù)交付結(jié)合使用 。

      【DevOps入門篇】概念、技術(shù)實(shí)踐、研發(fā)工具鏈

      實(shí)施IaC的團(tuán)隊(duì)可以快速、大規(guī)模地提供穩(wěn)定的環(huán)境。團(tuán)隊(duì)通過代碼表示環(huán)境的期望狀態(tài),從而避免手動(dòng)配置環(huán)境并強(qiáng)制實(shí)現(xiàn)一致性。使用IaC進(jìn)行基礎(chǔ)架構(gòu)部署是可重復(fù)的,可防止因配置偏差或缺少依賴性而導(dǎo)致的運(yùn)行時(shí)問題。DevOps團(tuán)隊(duì)可以與一組統(tǒng)一的實(shí)踐和工具協(xié)同工作。快速,可靠,大規(guī)模地交付應(yīng)用程序及其支持基礎(chǔ)架構(gòu)。

      三、DevOps轉(zhuǎn)型的研發(fā)工具鏈

      快速交付的關(guān)鍵是“自動(dòng)”與“可靠”。自動(dòng)是一個(gè)很寬泛的詞匯,在軟件交付中代表著測(cè)試自動(dòng)化、交付自動(dòng)化、運(yùn)維自動(dòng)化等等,而可靠講的是每一次交付要保證是當(dāng)前的交付是穩(wěn)定的或可回滾到穩(wěn)定版本的。

      為了解決“自動(dòng)”與“可靠”的問題,敏捷開發(fā)鼻祖Martin Fowler提出了持續(xù)集成與持續(xù)交付的概念,它所描述的軟件開發(fā),是從原始需求識(shí)別到最終產(chǎn)品部署到生產(chǎn)環(huán)境這個(gè)過程中,需求以小批量形式在團(tuán)隊(duì)的各個(gè)角色間順暢流動(dòng),能夠以較短地周期完成需求的小粒度頻繁交付。頻繁的交付周期帶來了更迅速的對(duì)軟件的反饋,并且在這個(gè)過程中,需求分析、產(chǎn)品的用戶體驗(yàn)和交互 設(shè)計(jì)、開發(fā)、測(cè)試、運(yùn)維等角色密切協(xié)作,相比于傳統(tǒng)的瀑布式軟件團(tuán)隊(duì),更少浪費(fèi)。通過這種小步快跑的方式,將小功能快速迭代、驗(yàn)證、交付,通過自動(dòng)化的工具,將測(cè)試、部署、運(yùn)維自動(dòng)化,減少需求在軟件生命周期中流動(dòng)的時(shí)間。

      華為將自身積累的先進(jìn)研發(fā)能力與優(yōu)秀實(shí)踐開放,融合敏捷、精益、DevOps等先進(jìn)研發(fā)理念,打造開放完整的云端開發(fā)生態(tài),推出了一站式、全流程、安全可信的DevOps云平臺(tái)——DevCloud。

      華為云應(yīng)用平臺(tái)部首席技術(shù)布道師,資深云計(jì)算、DevOps與精益敏捷專家。中國(guó)DevOps社區(qū)核心組織者,IDCF社區(qū)聯(lián)合發(fā)起人,《敏捷無敵之DevOps時(shí)代》,《DevOps業(yè)務(wù)視角》,《敏捷開發(fā)知識(shí)體系》《DevOps最佳實(shí)踐》等書作(譯)者。華為云HCIP DevOps Engineer構(gòu)建者, SAFe SPC規(guī)模化敏捷咨詢師, CSM, Management 3.0,F(xiàn)acilitation for Agilists,DevOps沙盤官方授權(quán)教練,埃里克森認(rèn)證教練。

      DevOps SVN 云原生

      版權(quán)聲明:本文內(nèi)容由網(wǎng)絡(luò)用戶投稿,版權(quán)歸原作者所有,本站不擁有其著作權(quán),亦不承擔(dān)相應(yīng)法律責(zé)任。如果您發(fā)現(xiàn)本站中有涉嫌抄襲或描述失實(shí)的內(nèi)容,請(qǐng)聯(lián)系我們jiasou666@gmail.com 處理,核實(shí)后本網(wǎng)站將在24小時(shí)內(nèi)刪除侵權(quán)內(nèi)容。

      版權(quán)聲明:本文內(nèi)容由網(wǎng)絡(luò)用戶投稿,版權(quán)歸原作者所有,本站不擁有其著作權(quán),亦不承擔(dān)相應(yīng)法律責(zé)任。如果您發(fā)現(xiàn)本站中有涉嫌抄襲或描述失實(shí)的內(nèi)容,請(qǐng)聯(lián)系我們jiasou666@gmail.com 處理,核實(shí)后本網(wǎng)站將在24小時(shí)內(nèi)刪除侵權(quán)內(nèi)容。

      上一篇:Excel射線圖
      下一篇:2003版excel表格如何篩選重復(fù)數(shù)據(jù)(excel2003怎樣篩選出重復(fù)的數(shù)據(jù))
      相關(guān)文章
      国产AⅤ无码专区亚洲AV| 亚洲成AV人网址| 亚洲国产精品无码久久一线 | 亚洲国产精品视频| 无码色偷偷亚洲国内自拍| 风间由美在线亚洲一区| 亚洲av永久无码精品秋霞电影秋 | 日韩在线视精品在亚洲| 国产亚洲精品91| 亚洲av中文无码| 国产成人精品曰本亚洲79ren| 亚洲国产日韩成人综合天堂| 亚洲无线一二三四区手机| 亚洲国产午夜中文字幕精品黄网站 | 亚洲精品久久无码av片俺去也 | 久久综合九九亚洲一区| 久久久亚洲精品视频| 亚洲天堂在线播放| 亚洲日本香蕉视频| 学生妹亚洲一区二区| 亚洲精品美女久久7777777 | xvideos亚洲永久网址| 亚洲国产成人VA在线观看| 中文字幕亚洲专区| 亚洲AV无码一区二区乱子伦 | 亚洲视频国产精品| 亚洲jjzzjjzz在线播放| 亚洲日韩中文字幕一区| 国产成人人综合亚洲欧美丁香花| 亚洲国产成人a精品不卡在线| 亚洲一区二区三区在线视频| 亚洲码国产精品高潮在线| 亚洲AV日韩精品久久久久久久 | 亚洲日韩在线观看免费视频| 亚洲熟女少妇一区二区| 亚洲欧洲日韩国产综合在线二区| 亚洲精品国产免费| 亚洲人成网站在线在线观看| 日韩精品电影一区亚洲| 亚洲人成人网站色www| 久久亚洲精品成人av无码网站|