DevOps與CI/CD

DevOps與ci/cd簡介

什么是DevOps

DevOps(Development和Operations的組合詞)是一種重視“軟件開發(fā)人員(Dev)”和“IT運維技術人員(Ops)”之間溝通合作的文化找爱、運動或慣例波俄。
透過自動化“軟件交付”和“架構變更”的流程,來使得構建蕴坪、測試菌赖、發(fā)布軟件能夠更加地快捷刨裆、頻繁和可靠饺鹃。
DevOps經常被描述為“開發(fā)團隊與運營團隊之間更具協(xié)作性、更高效的關系”条霜。由于團隊間協(xié)作關系的改善催什,整個組織的效率因此得到提升,伴隨頻繁變化而來的生產環(huán)境的風險也能得到降低宰睡。

AWS對DevOps模式做了一個完整的定義:

DevOps集文化理念蒲凶、實踐和工具于一身〔鹉冢可以提高組織交付應用程序和服務的能力旋圆。與使用傳統(tǒng)軟件和基礎設施管理流程相比,能夠幫助組織更快的發(fā)展和改進產品麸恍。這種速度使組織更好的服務其客戶灵巧,并在市場上高效的參與競爭。

簡單來說抹沪,DevOps希望做到的是軟件產品交付過程中IT工具鏈的打通刻肄,使得各個團隊減少時間損耗,更加高效地協(xié)同工作融欧。

DevOps發(fā)展階段

軟件行業(yè)的研發(fā)模式敏弃,可以發(fā)現(xiàn)大致有三個階段:瀑布式開發(fā)、敏捷開發(fā)噪馏、DevOps麦到。

DevOps的概念很早就有,但是為什么最近兩年才開始受到越來越多的企業(yè)重視和實踐呢欠肾?

因為現(xiàn)在有越來越多的技術支撐瓶颠。微服務架構理念、容器技術使得DevOps的實施變得更加容易刺桃,計算能力提升和云環(huán)境的發(fā)展使得快速開發(fā)的產品可以立刻獲得更廣泛的使用粹淋。

DevOps的實現(xiàn)可以基于新興的容器技術;也可以在自動化運維工具Puppet虏肾、SaltStack廓啊、Ansible之后的延伸;還可以構建在傳統(tǒng)的Cloud Foundry封豪、OpenShift等PaaS廠商之上谴轮。

DevOps的好處

最大的好處就是可以高效交付,這也正好是它的初衷吹埠。

Puppet和DevOps Research and Assessment (DORA) 主辦了2016年DevOps調查報告第步,根據全球4600位各IT公司的技術工作者的提交數據統(tǒng)計疮装,得出高效公司平均每年可以完成1460次部署。與低效組織相比粘都,高效組織的部署頻繁200倍廓推,產品投入使用速度快2555倍,服務恢復速度快24倍翩隧。在工作內容的時間分配上樊展,低效者要多花22%的時間用在為規(guī)劃好或者重復工作上,而高效者卻可以多花29%的時間用在新的工作上堆生。所以這里的高效不僅僅指公司產出的效率提高专缠,還指員工的工作質量得到提升。

對應用程序發(fā)布的影響

在很多企業(yè)中淑仆,應用程序發(fā)布是一項涉及多個團隊涝婉、壓力很大、風險很高的活動蔗怠。然而在具備DevOps能力的組織中墩弯,應用程序發(fā)布的風險很低,原因如下:

  • 減少變更范圍

與傳統(tǒng)的瀑布式開發(fā)模型相比寞射,采用敏捷或迭代式開發(fā)意味著更頻繁的發(fā)布渔工、每次發(fā)布包含的變化更少。由于部署經常進行桥温,因此每次部署不會對生產系統(tǒng)造成巨大影響涨缚,應用程序會以平滑的速率逐漸生長。

  • 加強發(fā)布協(xié)調

靠強有力的發(fā)布協(xié)調人來彌合開發(fā)與運營之間的技能鴻溝和溝通鴻溝策治;采用電子數據表、電話會議兰吟、即時消息通惫、企業(yè)門戶(wiki、sharepoint)等協(xié)作工具來確保所有相關人員理解變更的內容并全力合作混蔼。

  • 自動化

強大的部署自動化手段確保部署任務的可重復性履腋、減少部署出錯的可能性。

應用發(fā)布流程

有的公司還會有預發(fā)布環(huán)境和灰度測試

什么是CI/CD惭嚣?

CI/CD包含兩個獨立而又互補的部分遵湖。
  • 持續(xù)集成是指在應用代碼的新組件集成到共享存儲庫之后自動測試和構建軟件的流程。這樣一來晚吞,就可以打造出始終處于工作狀態(tài)的應用“版本”延旧。持續(xù)集成流程中納入了單元測試,因而可以驗證軟件的功能槽地。這樣可以提前識別錯誤迁沫,并避免反饋回路后期的周期浪費芦瘾。

  • 持續(xù)交付是指將CI流程中創(chuàng)建的應用交付到類似生產環(huán)境的過程,在該過程中將對應用進行額外的自動化測試集畅,以確保應用在部署到生產環(huán)境以及交付到真實用戶手中時能夠發(fā)揮預期作用近弟。這樣還可以確保最新構建版本能夠以預期方式與其他軟件和應用交互。成功的CD意味著挺智,無論是通過自動化還是手動祷愉,構建版本都隨時可以部署到生產環(huán)境。

CI/CD的重要意義

  • 基于業(yè)務要求按需部署軟件

采用CI/CD的團隊只需幾分鐘即可將新應用代碼部署到生產環(huán)境赦颇,并且可以在最符合業(yè)務需求的時候而不是按照預定的發(fā)布時間進行部署二鳄。

  • 降低軟件在生產環(huán)境中無法正常運行的風險

采用CI/CD,代碼在交付之前會經過嚴密的自動化測試沐扳,從而大幅降低錯誤或問題代碼進入生產環(huán)境的風險泥从。

  • 實現(xiàn)根據客戶反饋進行快速迭代

CI/CD優(yōu)化了敏捷方法和DevOps,它可以提供必要的功能沪摄,將向用戶持續(xù)學習所得的經驗付諸實踐躯嫉,使團隊能夠以小批量快速迭代和交付軟件。

  • 加快發(fā)生故障時的恢復速度

如果生產環(huán)境中發(fā)生故障(這種情況極少發(fā)生)杨拐,CI/CD可以快速找出錯誤代碼并將修復程序推送到生產環(huán)境祈餐,讓團隊能夠縮短平均恢復時間(MTTR),從而最大限度減少對最終用戶的影響哄陶。

環(huán)節(jié)

  • 代碼倉庫帆阳,用于存儲程序源文件的地方。如:GitLab屋吨,Github
  • 構建蜒谤,這是一個持續(xù)集成工具,用于編譯至扰、打包程序鳍徽,運行單元測試 如:GitLab-ci,Jenkins
  • 測試敢课,提供有關業(yè)務風險反饋的連續(xù)測試工具阶祭。 如:JUnit
  • 發(fā)布,快速上線部署直秆,自動化發(fā)布濒募。如:docker,k8s
  • 監(jiān)控與日志圾结,應用監(jiān)控瑰剃、基礎日志,幫助快速定位問題疫稿。如:ElasticStack培他,zipkin

在我們項目中的實際應用

在我們應用中的pipeline流程:
gitlab -> gitlab-ci -> docker repository -> rancher(k8s)

最后編輯于
?著作權歸作者所有,轉載或內容合作請聯(lián)系作者
  • 序言:七十年代末鹃两,一起剝皮案震驚了整個濱河市,隨后出現(xiàn)的幾起案子舀凛,更是在濱河造成了極大的恐慌俊扳,老刑警劉巖,帶你破解...
    沈念sama閱讀 211,348評論 6 491
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件猛遍,死亡現(xiàn)場離奇詭異馋记,居然都是意外死亡,警方通過查閱死者的電腦和手機懊烤,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 90,122評論 2 385
  • 文/潘曉璐 我一進店門梯醒,熙熙樓的掌柜王于貴愁眉苦臉地迎上來,“玉大人腌紧,你說我怎么就攤上這事茸习。” “怎么了壁肋?”我有些...
    開封第一講書人閱讀 156,936評論 0 347
  • 文/不壞的土叔 我叫張陵号胚,是天一觀的道長。 經常有香客問我浸遗,道長猫胁,這世上最難降的妖魔是什么? 我笑而不...
    開封第一講書人閱讀 56,427評論 1 283
  • 正文 為了忘掉前任跛锌,我火速辦了婚禮弃秆,結果婚禮上,老公的妹妹穿的比我還像新娘髓帽。我一直安慰自己菠赚,他們只是感情好,可當我...
    茶點故事閱讀 65,467評論 6 385
  • 文/花漫 我一把揭開白布郑藏。 她就那樣靜靜地躺著锈至,像睡著了一般。 火紅的嫁衣襯著肌膚如雪译秦。 梳的紋絲不亂的頭發(fā)上,一...
    開封第一講書人閱讀 49,785評論 1 290
  • 那天击碗,我揣著相機與錄音筑悴,去河邊找鬼。 笑死稍途,一個胖子當著我的面吹牛阁吝,可吹牛的內容都是我干的。 我是一名探鬼主播械拍,決...
    沈念sama閱讀 38,931評論 3 406
  • 文/蒼蘭香墨 我猛地睜開眼突勇,長吁一口氣:“原來是場噩夢啊……” “哼装盯!你這毒婦竟也來了?” 一聲冷哼從身側響起甲馋,我...
    開封第一講書人閱讀 37,696評論 0 266
  • 序言:老撾萬榮一對情侶失蹤埂奈,失蹤者是張志新(化名)和其女友劉穎,沒想到半個月后定躏,有當地人在樹林里發(fā)現(xiàn)了一具尸體账磺,經...
    沈念sama閱讀 44,141評論 1 303
  • 正文 獨居荒郊野嶺守林人離奇死亡,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內容為張勛視角 年9月15日...
    茶點故事閱讀 36,483評論 2 327
  • 正文 我和宋清朗相戀三年痊远,在試婚紗的時候發(fā)現(xiàn)自己被綠了垮抗。 大學時的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片。...
    茶點故事閱讀 38,625評論 1 340
  • 序言:一個原本活蹦亂跳的男人離奇死亡碧聪,死狀恐怖冒版,靈堂內的尸體忽然破棺而出,到底是詐尸還是另有隱情逞姿,我是刑警寧澤辞嗡,帶...
    沈念sama閱讀 34,291評論 4 329
  • 正文 年R本政府宣布,位于F島的核電站哼凯,受9級特大地震影響欲间,放射性物質發(fā)生泄漏。R本人自食惡果不足惜断部,卻給世界環(huán)境...
    茶點故事閱讀 39,892評論 3 312
  • 文/蒙蒙 一猎贴、第九天 我趴在偏房一處隱蔽的房頂上張望。 院中可真熱鬧蝴光,春花似錦她渴、人聲如沸。這莊子的主人今日做“春日...
    開封第一講書人閱讀 30,741評論 0 21
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽。三九已至疆虚,卻和暖如春苛败,著一層夾襖步出監(jiān)牢的瞬間,已是汗流浹背径簿。 一陣腳步聲響...
    開封第一講書人閱讀 31,977評論 1 265
  • 我被黑心中介騙來泰國打工罢屈, 沒想到剛下飛機就差點兒被人妖公主榨干…… 1. 我叫王不留,地道東北人篇亭。 一個月前我還...
    沈念sama閱讀 46,324評論 2 360
  • 正文 我出身青樓缠捌,卻偏偏與公主長得像,于是被迫代替她去往敵國和親译蒂。 傳聞我的和親對象是個殘疾皇子曼月,可洞房花燭夜當晚...
    茶點故事閱讀 43,492評論 2 348