DevOps企業(yè)實踐與架構(gòu)_第1頁
DevOps企業(yè)實踐與架構(gòu)_第2頁
DevOps企業(yè)實踐與架構(gòu)_第3頁
DevOps企業(yè)實踐與架構(gòu)_第4頁
DevOps企業(yè)實踐與架構(gòu)_第5頁
已閱讀5頁,還剩6頁未讀, 繼續(xù)免費閱讀

下載本文檔

版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進行舉報或認領(lǐng)

文檔簡介

1、DevOps企業(yè)實踐與架構(gòu)什么是DevOps及其誤區(qū)DevOps概念從2009年提岀已有8個年頭??墒窃?8年前的那個時候,為什么 DevOps沒 有迅速走紅呢?即便是在2006年Amazon發(fā)布了 ECS微軟在2008年和2010年提岀和發(fā)布了Azure , DevOps的重要性似乎都沒有那么強烈。我分析其原因主要有:第一個很重要的原因是因為那時候云計算還是小眾產(chǎn)品,更多的與虛擬化、虛擬機相關(guān),它們還是重量級的IT基礎(chǔ)設(shè)施。第二個很重要的原因是容器相關(guān)技術(shù)Docker為代表還沒有橫空岀世,直到2013年7月。第三個很重要的原因是,Martin Fowler 在2014年3月提岀了 Micro

2、 Service ,這為DevOps的推廣也打了興奮劑??梢钥磳?,當(dāng)前 DevOps概念的深入人心,離不開云計算、容器/Docker、微服務(wù)、敏捷等相關(guān)概念和實施的成熟發(fā)展。另外,隨著互聯(lián)網(wǎng)對傳統(tǒng)企業(yè)的沖擊,需要更快的業(yè)務(wù)試錯與業(yè)務(wù)創(chuàng)新,其背后本質(zhì)是企業(yè)IT的精益運營,讓軟件的生產(chǎn)、交付、獲取、升級、遙測變得自動與自助,近兩年, DevOps在傳統(tǒng)企業(yè)也開始備受關(guān)注與各種嘗試。對DevOps的理解,可能千人千面。先來看下對DevOps的狹義理解。DevOpsB-組過昆方法與索蜿 的統(tǒng)稱,用于促進開發(fā)(應(yīng)用程序 /ft件工程)*技術(shù)運營和質(zhì)it保(QA )部I之間的洶甄 協(xié)柞 與整合.它的出現(xiàn)是

3、由于軟件行業(yè) 日益清噺地認識對:為了按時交忖 軟件產(chǎn)品和88努,開發(fā)和運営工作 必須!辭合柞.DevOps職貴維基百科對 DevOps的定義比較拗口。其實往簡化里講DevOps是提倡開發(fā)和IT運維之間的高度協(xié)同,從而在完成高頻率部署的同時,提高生產(chǎn)環(huán)境的可靠性、穩(wěn)定性、彈性和安全 性。從另外一個維度,廣義上來說,DevOps不僅需要打通開發(fā)運維之間的部門墻,我們認為DevOps更多的需要從應(yīng)用的全生命周期考慮,實現(xiàn)全生命周期的工具全鏈路打通與自動化、 跨團隊的線上協(xié)作能力。丄丄丄QA測試瞬礎(chǔ)測試呂曙配匱(Prod)(Stage)(Test)(Test)第一,縱向集成,打通應(yīng)用全生命周期需求、設(shè)

4、計、開發(fā)、編譯、構(gòu)建、測試、打 包、發(fā)布、配置、監(jiān)控等的工具集成??v向集成中DevOps強調(diào)的重點是跨工具鏈的自動化,最終實現(xiàn)全部人員的自助化。舉個例子,項目組的開發(fā)人員可以通過DevOps的平臺上,自主申請開通需要的各種服務(wù),比方開通開發(fā)環(huán)境、代碼庫等。第二,橫向集成,打通架構(gòu)、開發(fā)、管理、運維等部門墻。橫向集成中DevOps強調(diào)的重點是跨團隊的線上協(xié)作,也即是通過 IT系統(tǒng),實現(xiàn)信息的精確傳遞。舉個例子,傳統(tǒng)的系統(tǒng)上線部署方式,可能是一個冗長的說明文檔,上百頁都有可能, 但在DevOps的平臺下,就應(yīng)該是通過標準運行環(huán)境的選擇、環(huán)境配置的設(shè)置、部署流程的編 排,實現(xiàn)數(shù)字化的部署手冊,并且這

5、樣的手冊,不僅操作人員可以理解,機器也能夠執(zhí) 行,過程可以被追蹤和審計。DevOps是通過工具鏈與持續(xù)集成、交付、反饋與優(yōu)化進行端到端整合,完成無縫的跨團 隊、跨系統(tǒng)協(xié)作。在團隊使用DevOps時,存在誤區(qū)是必然的。在我們同大量的客戶交流中,大致有這幾種 誤區(qū)認知:MythRea云上云下產(chǎn)微服務(wù)架構(gòu)適用艮務(wù)架構(gòu)、傳統(tǒng)5持續(xù)軟件交付*優(yōu)豐在DgvftlQp呂之間增加一咅陽打破部門埴”而不不斬宣自動化自 SlkSDevO1捷、持續(xù)、協(xié)作、分布式DevO p s團隊必須本地化云相關(guān)產(chǎn)品laaS、PaaS,組織很難開展 DevOps;微服務(wù)架構(gòu)開發(fā)的應(yīng)用適合DevOps,傳統(tǒng)SOA應(yīng)用不適合;實施 D

6、evOps和應(yīng)用架構(gòu)無關(guān),無論是微服務(wù)架構(gòu),還是SOA類型應(yīng)用,都可以開展DevOps工作;認為將一組自動化工具的運用等同于DevOps的成功,那就太小瞧 DevOps了。采用自動化工具本身不是 DevOps,只有將這些工具與持續(xù)集成、持續(xù)交付、持續(xù)的反饋與優(yōu)化進行端到端的整合時,這些工具才成為DevOps的一部分;設(shè)立獨立的DevOps團隊是很多組織開啟 DevOps之旅的另外一個誤區(qū)。事實上,如果 這么做,將會導(dǎo)致更多的豎井。在責(zé)任沒有清晰定義的情況下,成立這些團隊,會創(chuàng)造更多 的混亂,不要試圖把。DevOps不僅僅是自動化。毫無疑問,自動化是DevOps非常重要的一部分,但不是唯一的部分

7、,一定程度的部署自動化往往會與DevOps混為一談,實施 DevOps需要從敏捷、持續(xù)、協(xié)作、系統(tǒng)性、自動化五個維度進行建設(shè)與改良。DevOps宣言,支撐團隊從敏在DevOps實施過程中,團隊經(jīng)過總結(jié)積累,制定了團隊的 捷型組織轉(zhuǎn)向 DevOps企業(yè)敏捷。宛分颶枳的目組烘的團叭全構(gòu)團隊而不蹇全尿工程師自動化一切(所有蚩顋業(yè)蟲邇竝自動化渝竣布)林P交忖Everything is wd?(配月.腳為SS咼測試他乳斥礎(chǔ)設(shè)廊均劇DevOps企業(yè)實踐實施DevOps的核心目標是加速團隊、企業(yè)的 IT精益運行,從根本上提升IT的生產(chǎn)效率,加速部門、企業(yè)的業(yè)務(wù)創(chuàng)新能力。讓團隊從IT支撐部門,轉(zhuǎn)向為IT創(chuàng)新部

8、門。實施DevOps過程中,需要從組織、技術(shù)、流程三個維度進行持續(xù)的優(yōu)化與改良。全桂國臥擄弍梵#-版車常一切一誕過迺耐瑩IIIIIIJflEfltMeetmqs :礦舷瓦r MtamfiXWMi4 mtaflHc t匪寓蟲劉丸1B夭遠話實施DevOps,可以參考總結(jié)的“ DevOps實踐模型”,從組織、技術(shù)、流程三個維度中選 擇關(guān)鍵的活動項進行最正確實踐活動??梢允崂韺缒壳皥F隊中欠缺但又容易改良的點,逐步將更多的實踐活動納入團隊當(dāng)中。團隊實施DevOps的目的在于,將重復(fù)、價值低的事情交由DevOps平臺實現(xiàn),讓團隊成員做更有創(chuàng)新、更有價值的事情。根據(jù)我們的實施經(jīng)驗,在傳統(tǒng)企業(yè)中,技術(shù)方面的實

9、踐最容易在團隊中實現(xiàn)、流程次 之、組織的優(yōu)化與變革最為艱難;大家嘗試的時候,可以由易入難。組奴組織方面全棧團隊:按照 RDT需求、開發(fā)、測試模式組建交付小團隊團隊中以虛擬的方式 將交互設(shè)計、運維、 DBA包含進來,團隊大小按照兩個披薩原則進行組建。全棧團隊負 責(zé)整個項目從需求、開發(fā)到上線運維的全生命周期管理,打破部門的籬笆;特性團隊:基于特性的交付意味著工程團隊將構(gòu)建最終產(chǎn)品的特性;讓團隊關(guān)注價值交 付,減少團隊依賴,打破職能團隊;技術(shù)方面集成工具鏈:打通應(yīng)用應(yīng)用開發(fā)工具鏈:需求、項目、代碼、構(gòu)建、測試、打包、發(fā) 布、配置、監(jiān)控;基礎(chǔ)設(shè)施即編碼:將基礎(chǔ)環(huán)境服務(wù)化、可編程化,基礎(chǔ)設(shè)施讓項目團隊可

10、以自助獲?。?讓基礎(chǔ)設(shè)施從物理機、虛擬機、走向容器;一鍵編譯、測試、部署:開發(fā)人員可以從代碼開始,一鍵獲得可訪問的環(huán)境,根據(jù)需要 可以推送開發(fā)、測試、預(yù)發(fā)、生產(chǎn)環(huán)境;ChatOps :開發(fā)以及運營人員在內(nèi)的團隊成員將溝通、工具和過程整合在一起的協(xié)作模 型。基于對話驅(qū)動開發(fā),將工具植入對話中,保障團隊能夠自動執(zhí)行任務(wù)與協(xié)作。最近比較 流行的hubot可以認為是ChatOps的探路者。流程方面看板:在DevOps中不能僅僅把看板當(dāng)做任務(wù)協(xié)調(diào)溝通的機制;把看板作為在制品管制平 臺,量化組織生產(chǎn)能力的工具;MVP采用MVP最小可行產(chǎn)品原則,快速擁抱變化。最短時間內(nèi)快速交付產(chǎn)品原型, 然后通過測試并收集

11、用戶的反饋,快速迭代,不斷修正產(chǎn)品,最終適應(yīng)市場的需求。發(fā)布:建立持續(xù)發(fā)布機制,形成自動化、自助化兩種能力,支持常見的灰度發(fā)布、金絲 雀、藍綠、回滾、 A/B測試等;軟件度量:通過軟件度量包括過程度量、質(zhì)量度量、用戶度量、成本度量,推算出 組織的各種有效指標;一則掌控組織的生產(chǎn)力水平,二則通過度量數(shù)據(jù),反向優(yōu)化組織瓶頸一切皆代碼:文檔用戶故事、用戶場景、功能特性等、配置應(yīng)用配置、環(huán)境配置、腳本等、環(huán)境基礎(chǔ)設(shè)施、中間件環(huán)境等、發(fā)布包二方庫、三方庫、部署包需要統(tǒng)一看待成代碼,納入版本管理,同時建立5者間的關(guān)系,提供全視角的鏈路追蹤。舉個例子,每個發(fā)布的版本,可以追溯其對應(yīng)的配置,代碼、文檔,發(fā)布的

12、功能點。組織、技術(shù)、流程三個維度中,技術(shù)、流程可以通過平臺或者工具進行最正確實踐的固化?;诖?,我們規(guī)劃了 DevOps平臺,支持廣義的 DevOps,幫助客戶快速實現(xiàn)DevOps建設(shè)。DevOp的概念填型.實現(xiàn)代碼.配3L運仔無境的分1 1幵3!運并幵漩交忖Snapihut:本Jfe區(qū)壇I如ftjpi馱亠亠產(chǎn)|I*1平臺建設(shè)第一步,梳理出 反饋四個維度進行梳理。DevOps的整體概念模型。從角色、規(guī)劃設(shè)計、開發(fā)交付、運營以產(chǎn)品為核心,將代碼、配置、環(huán)境進行嚴格別離,同時覆蓋產(chǎn)品全生命周期。這里面概念看似簡單,其實很多:比方:部署包 =介質(zhì)包+配置,這和傳統(tǒng)的 CI和CD體 系就有點不一樣;再

13、比方:環(huán)境分開發(fā)、測試、預(yù)發(fā)、生產(chǎn),我們覺得即使公有云上,也應(yīng)該給客戶將這 些做物理或邏輯隔離,因為大家的配額需求不一樣,容器replication需求也可能不一樣;再比方:運營反饋,既然要做DevOps,那整個過程導(dǎo)岀都應(yīng)該可以有檢查點插入,為運營提供有效數(shù)據(jù),我們把檢查點至少分成了四類,包括過程的、安全的、性能的、業(yè)務(wù)的。DevOps架構(gòu)支撐基于領(lǐng)域模型梳理 DevOps平臺業(yè)務(wù)架構(gòu),目前共建設(shè)18個領(lǐng)域系統(tǒng)來支撐,比方:軟件產(chǎn)品的管理、軟件各階段環(huán)境的管理、質(zhì)量的管理、部署包、二進制包的管理、資源管 理、監(jiān)控中心、認證中心等。每個領(lǐng)域系統(tǒng)嚴格按照 AKF擴展立方體的丫軸進行拆分,采用微服

14、務(wù)架構(gòu)模式進行平臺 建設(shè)?!?DevOps業(yè)務(wù)架構(gòu)”,是我們基于對企業(yè) IT管理的理解,所進行的平臺化設(shè)想。從圖 里還可以看到,紅色字部分,是我們對現(xiàn)有DevOps的落地實現(xiàn)。DevOps門戶,自研,提供應(yīng)用戶使用的統(tǒng)一操作門戶,包括用戶管理、產(chǎn)品看板、 產(chǎn)品全生命周期設(shè)計、開發(fā)、測試、預(yù)發(fā)、生產(chǎn)、監(jiān)控、故障處理管理等;身份識別與訪問管理,自研,提供用戶身份識別和訪問控制的能力,包括用戶管 理、Token管理和用戶授權(quán)等功能;軟件產(chǎn)品管理,自研,提供產(chǎn)品、組件的基準定義和管理能力,包括產(chǎn)品類型、產(chǎn) 品管理、組件管理、依賴產(chǎn)品管理及產(chǎn)品投放市場等功能;軟件配置管理,自研,提供產(chǎn)品、組件配置管理能

15、力,包括配置項的定義和在各個 不同環(huán)境下的配置信息的管理維護能力;軟件資源管理,自研,提供產(chǎn)品和組件自動編譯、打包和部署的能力,提供部署模 板管理,支持編譯和部署流程編排,編譯和部署進度跟蹤以及日志查看;SEM軟件環(huán)境管理,自研,提供租戶和產(chǎn)品環(huán)境資源配額、負載均衡,以及運行容器 的管理能力,包括租戶可用資源的配額,以及基于租戶資源的產(chǎn)品和組件在各種環(huán)境下的資源配額如開發(fā)環(huán)境、測試環(huán)境、生產(chǎn)環(huán)境等等和負載均衡;同時,還提供運行容器的創(chuàng) 建、銷毀、調(diào)度、復(fù)制以及持久化卷管理等能力;質(zhì)量保證反饋,自研,提供產(chǎn)品的質(zhì)量管理和監(jiān)控能力,包括測試用例管理、缺陷 管理、質(zhì)量監(jiān)控等;統(tǒng)一運維中心,開源集成、

16、借鑒自研相結(jié)合,提供統(tǒng)一的監(jiān)控、預(yù)警、故障處理等 能力,包括系統(tǒng)日志和業(yè)務(wù)日志的監(jiān)控,產(chǎn)品的資源使用情況和運行情況監(jiān)控,故障定位 等。版本控制系統(tǒng),開源集成,主要以GitLab為核心,不直接提供 GitLab的原生界面,護,所有功能在統(tǒng)一的DevOps上提供;提供源代碼庫管理的能力,包括代碼庫的創(chuàng)建、維分支的管理和用戶權(quán)限控制等;持續(xù)集成,主要以 Jenkins為核心,使之成為以 API為主要使用方式的服務(wù),提供 持續(xù)集成任務(wù)調(diào)度和執(zhí)行的能力,包括集成任務(wù)管理、編譯、打包等;二進制介質(zhì)倉庫),開源集成,主要以 nexus為核心;提供二進制包倉庫的管理能 力,包括二進制包、文檔等編譯產(chǎn)物的上傳、

17、下載和存儲訪問等;可部署介質(zhì)倉庫,自研,主要存儲可部署的介質(zhì),其主要區(qū)別是注入了與環(huán)境相關(guān) 的配置這種部署模型是很適合沒有上Docker或者容器,以虛機為主的 IT基礎(chǔ)設(shè)施或者物理機;項目管理,自研,可以與常見的PM管理工具對接與集成,提供產(chǎn)品的開發(fā)過程的管理和協(xié)作的能力,主要包括:任務(wù)計劃、人員分工和過程跟蹤、看板等;API模擬,開源集成,為REST API調(diào)用提供模擬能力,以便產(chǎn)品或組件在開發(fā)調(diào)試期間可以脫離依賴、減少阻塞、單獨運行,支持根據(jù)Swagger和Mock數(shù)據(jù)發(fā)布Mock RestService,支持用戶私有的 MOCJ數(shù)據(jù);API文檔,開源集成,提供REST API/SPI文檔

18、的自動生成能力;租戶管理,自研,提供租戶管理的能力,包括租戶管理、邀請碼管理和租戶配額等 功能;即時溝通,開源集成,提供產(chǎn)品設(shè)計、開發(fā)、測試、運維等相關(guān)人員間的協(xié)作溝通 能力,支持群組聊天、離線消息推送、聊天記錄查詢和導(dǎo)出;啰啰嗦嗦,羅列了 18個核心的領(lǐng)域系統(tǒng)。市礪曰苕邏輯架構(gòu)整個 DevOps平臺分為三層:基礎(chǔ)設(shè)施層:包括laaS , CaaS,我們分別是基于 OpenStack和Kubernetes、Docker的,上層有一層不同環(huán)境的適配;基礎(chǔ)服務(wù)層:包括服務(wù)管理與調(diào)度的基礎(chǔ)能力,如注冊中心,編排,伸縮漂移;還有 一堆具體的企業(yè)級或互聯(lián)網(wǎng)式的云服務(wù);DevOps層:更多的是工作流程需求、設(shè)計、開發(fā)、測試、發(fā)布等的串接,看板等 文化的表達;在整個平臺研發(fā)過程中,采用了是自己開發(fā)自己的模式,即使用上一個發(fā)布的平臺作為 生產(chǎn)線,支撐下一個版本的產(chǎn)品研發(fā)工作。自己交付自己可以帶來兩點好處:平臺交付客戶前,自己先把可能的坑趟掉;當(dāng)前生產(chǎn)線所有不能滿足的功能,視作下一版本的需求實際操作過程中,我們僅允 許使用wiki作為輔助工具來支撐生產(chǎn)線未滿足的需求;所以可以拿一些數(shù)字估算一下當(dāng)前的規(guī)模。在研發(fā)過程中,把DevOps視為一套業(yè)務(wù)平臺,目前規(guī)劃的領(lǐng)域有18個,如果每個領(lǐng)域中再有多個以微服務(wù)架構(gòu)落

溫馨提示

  • 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
  • 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
  • 5. 人人文庫網(wǎng)僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負責(zé)。
  • 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

評論

0/150

提交評論