DevOps最早在2009年被人提出,愿景非常美好,但真正實施起來困難重重。
隨著近幾年微服務(wù)、容器等技術(shù)的興起,使得企業(yè)對DevOps的需求更加迫切,實施變得更加容易,DevOps越來越被接受和重視。
同樣,為了應(yīng)對業(yè)務(wù)的敏捷發(fā)布,應(yīng)用平臺的彈性訴求,商業(yè)環(huán)境的變化,云原生時代已到來,云原生技術(shù)已經(jīng)應(yīng)用到企業(yè)核心業(yè)務(wù)。
云原生與DevOps是什么關(guān)系?其技術(shù)優(yōu)勢如何與DevOps結(jié)合,才能更加高效便捷的實施呢?云原生時代下,DevOps的落地會遇到哪些困難?華為云是否有一些實踐方案去應(yīng)對?
華為云社區(qū)邀請到了華為云DevCloud首席技術(shù)布道師徐毅,聽他講述云原生技術(shù)下的DevOps實踐,深入了解集華為30年研發(fā)經(jīng)驗的華為云DevCloud是如何踐行DevOps理念的。
從需求側(cè)、平臺側(cè)、商業(yè)側(cè)等方面來看,云原生產(chǎn)生的業(yè)務(wù)背景是什么?
眾所周知,很多變革都始于技術(shù)。技術(shù)經(jīng)由積累產(chǎn)生勢能,這些新的技術(shù)釋放出很強大的生產(chǎn)力并帶來創(chuàng)新,滿足用戶和客戶新需求的爆發(fā),從而需求驅(qū)動技術(shù)的迅速普及和優(yōu)化,最終帶來商業(yè)的繁榮。
云原生應(yīng)該是云化的延伸。在云的發(fā)展初期,并非所有的產(chǎn)品技術(shù)都是云原生的,隨著云計算技術(shù)的不斷發(fā)展,云原生的應(yīng)用和系統(tǒng)能夠更好的滿足需求側(cè)在功能和非功能各方面的訴求。從云到云原生這個過程來看,在當下創(chuàng)新加速的VUCA時代,也帶來了一系列的變化:
需求變化快,但方向暫不清楚,這就需要IT信息化支撐業(yè)務(wù)創(chuàng)造的過程更靈活、反應(yīng)更快速;
在業(yè)務(wù)板塊創(chuàng)造出來之后,會面臨著業(yè)務(wù)使用的強度和頻率是不固定的,所以就需要支撐業(yè)務(wù)供給的靈活性和快速響應(yīng)的速度;
當下的用戶需求和業(yè)務(wù)的顆粒度,隨著市場發(fā)展越來越小,所以能夠迅速把握市場動態(tài)、完成業(yè)務(wù)創(chuàng)造、提供業(yè)務(wù)這個全過程周期的速度也變得非常重要,還需要能夠拉通整個組織。但不同職能組織都有自己的不同目標,無法做到說改變就改變。
云原生技術(shù)的發(fā)展,使得各個職能組織去支持、去改變的難度越來越低、投入越來越小,大家更愿意拉通和協(xié)作,從而在商業(yè)側(cè)能夠給企業(yè)帶來更大的競爭優(yōu)勢。
云原生時代,在享受架構(gòu)解耦與云端彈性帶來的便利同時,對軟件研發(fā)與交付模式提出了更高的要求,如何才能真正做到云原生下價值交付的成功?
首先要掌握架構(gòu)解耦、云端彈性等相關(guān)技術(shù),具備研發(fā)能力,這是第一要素。
第二,把技術(shù)能力運用起來在平衡中去解決業(yè)務(wù)問題,不能太過于完美主義。例如面對一個遺留系統(tǒng),是一步到位解耦完畢還是循序漸進呢?分析業(yè)務(wù)現(xiàn)狀的問題并針對性地應(yīng)用云原生技術(shù)能力去解決,去創(chuàng)造價值,是第二個關(guān)鍵要素。
第三是團隊通力協(xié)作的能力。作為團隊的基礎(chǔ),團隊的每個成員都具備充分的技術(shù)能力,這樣團隊的能力可以等同于團隊成員的合力。團隊成員之間通過協(xié)作能夠產(chǎn)生的化學效應(yīng),不只是1+1=2的效果,它將會帶來乘數(shù)甚至指數(shù)級的效應(yīng)。
第四是組織變革能力。新組織可以直接招募具備云原生技術(shù)的成員組建團隊,這樣帶來的好處就是大家沒有遺留系統(tǒng),理解業(yè)務(wù)即可。如果是一個現(xiàn)成的組織,那么團隊成員既要邊學習和掌握新技能,邊繼續(xù)發(fā)展業(yè)務(wù),就如同“給行駛中的汽車換輪子”。這時就需要一種軟實力來打消大家的顧慮,推動往云原生的交付模式轉(zhuǎn)變。
云原生與DevOps的關(guān)系是什么?普通DevOps與云原生的DevOps有何不同?
按照CNCF的說法,容器、微服務(wù)等被認作是云原生技術(shù)。DevOps主要是指一種工作方式或模式,它幫助拉通整個價值創(chuàng)造過程中各環(huán)節(jié)的人和組織,通力協(xié)作縮短價值創(chuàng)造的周期時間。在這個過程中,就需要從人、工具和流程方法三個維度去改變。
如何區(qū)分普通DevOps和云原生DevOps,主要看一個組織在應(yīng)用DevOps的過程中,是否使用云原生技術(shù)開發(fā)應(yīng)用或者系統(tǒng)。 舉例來講,DevOps開發(fā)一個傳統(tǒng)的單機應(yīng)用,不需要開發(fā)人員掌握容器或微服務(wù)等技術(shù),對部署和發(fā)布的自動化要求也不高,或許也不需要灰度發(fā)布、應(yīng)用監(jiān)控等功能,往往只需應(yīng)用幾個DevOps工具就能夠滿足需求。
當然,它是被定義為DevOps,所以代碼提交之后的編譯構(gòu)建、測試、打包、安裝啟動等,都要能夠以全自動化的方式完成,無需人工干預(yù),那這個應(yīng)用的研發(fā)過程就是一個普通的DevOps。
云原生模式嚴格意義上來說,是整個應(yīng)用的生產(chǎn)過程都在云上, 需求在云端的系統(tǒng)上管理,代碼存放和評審、測試用例都在云上進行,甚至日常交流、開會等方面也都在云上進行,這就是比較徹底的云原生DevOps。這時就需要一個可以拉通各個環(huán)節(jié)的云原生DevOps工具的平臺,我們稱之為一站式云原生DevOps平臺。
云原生的DevOps對于開發(fā)者來說,意味著什么?如何盡快在實際工作中實踐?
應(yīng)該說是未來的趨勢。個人開發(fā)者可以利用云廠商提供的便利,以極低的成本,去學習和實踐云原生DevOps開發(fā)的全過程,掌握運用各種云原生技術(shù),去創(chuàng)造價值。同時,開發(fā)者要從自身的長遠發(fā)展出發(fā),自己的未來自己做主,不要僅僅依賴于工作中實踐,可以考慮去主動的投資學習。畢竟自身能力的提升是帶來更大回報的最常見手段,其他手段都依賴于能力的提升。
在云原生2.0的趨勢下,越來越成熟的云原生技術(shù)化解了開發(fā)者的諸多難題,開發(fā)者突破個人職業(yè)瓶頸的核心關(guān)鍵是掌握1+N關(guān)鍵能力,就是1個DevOps平臺加上N套技術(shù)棧,再配合云原生提供的開發(fā)能力,開啟第二曲線。
DevOps新挑戰(zhàn):如何解決實際開發(fā)運維中的問題?
要說DevOps如何解決實際開發(fā)運維中遇到的問題,首先我們應(yīng)該先分析當下開發(fā)運維會遇到哪些問題,簡單列舉幾個點:
第一個問題:現(xiàn)在市場需求變化很快,產(chǎn)品要快速響應(yīng),頻繁的進行版本更迭。
當下很多項目都在使用微服務(wù)框架,其中一個好處是可以減少變更影響的范圍,但微服務(wù)其實對運維的要求相對變高了,因為之前你只負責一個單體服務(wù)的發(fā)布,現(xiàn)在你要負責多個微服務(wù)的發(fā)布,傳統(tǒng)組織結(jié)構(gòu)以及運維方式很難滿足,這其實也是促使DevOps誕生的一個主要因素。
DevOps是可以通過一系列的自動化工具,將很多以前需要手工操作的流程變成自動化的。比如發(fā)布包的構(gòu)建、部署任務(wù)參數(shù)配置等等,然后對各個服務(wù)按照不同場景,做出不同的發(fā)布策略,進行自動化的發(fā)布,加速產(chǎn)品新特性的上線。
第二個問題:產(chǎn)品上線后,數(shù)據(jù)運營和分析。
這點容易被忽略,很多人認為DevOps就是自動化工具鏈,其實數(shù)據(jù)分析、運營也是DevOps中很重要的一部分。 DevOps文化中,度量是很重要的一環(huán),這個度量不是說向老板匯報用的,而是通過數(shù)
據(jù)去了解各個服務(wù)的運行情況、用戶的使用情況等,然后根據(jù)分析結(jié)果對產(chǎn)品進行優(yōu)化改進。傳統(tǒng)的運維模式很難建立這種反饋機制,不搞清楚市場或者用戶群體感受的開發(fā),很容易閉門造車,而DevOps則是提倡在運營環(huán)節(jié)建立反饋機制來解決這個問題。
其他方面問題:比如基礎(chǔ)設(shè)施、網(wǎng)絡(luò)、場地等方面的投入,相當于把資源托管,讓開發(fā)者更多的聚焦于新特性的交付。以上這些其實都是DevOps解決實際生產(chǎn)中的問題的例子。
有調(diào)查顯示開發(fā)者在DevOps整個軟件開發(fā)生命周期中,測試階段遇到的延遲最多,華為云是否有一些實踐方案去應(yīng)對?
測試階段遇到延遲的問題是說很多時候安全測試在整個軟件生命周期中做的比較晚,導致很多漏洞之類的沒有測出來。這個問題其實很好解決,首先可以從單元測試入手,在新特性開發(fā)之前,根據(jù)驗收標準寫好單元測試,等到功能開發(fā)完成直接進行單元測試,這樣就會減少測試的延遲。
DevOps也主張將測試環(huán)節(jié)盡可能地嵌入到流水線中,華為云DevCloud提供了代碼檢查功能,檢查代碼的漏洞。還有就是現(xiàn)在很多項目都在用微服務(wù)框架,微服務(wù)框架中服務(wù)與服務(wù)之間是通過API進行交互的,那我們也可以將接口測試作為一個主要安全管控手段,將他納入到持續(xù)交付流水線中,每次執(zhí)行流水線時,自動進行接口測試。
華為云云原生DevOps的升級是否分階段,每個階段的路徑是什么?
華為云積極地參與業(yè)界相關(guān)標準和能力模型的共建共創(chuàng),作為重要參考來構(gòu)建DevOps相關(guān)產(chǎn)品。業(yè)界主流是根據(jù)DevOps的自動化程度將它劃分成三個階段:
保證代碼時刻可以進行構(gòu)建的持續(xù)集成;
將代碼自動化部署到類生產(chǎn)環(huán)境進行測試的持續(xù)交付;
將最新的代碼直接自動化部署至生產(chǎn)環(huán)境的持續(xù)部署。
其中,持續(xù)集成自動化程度相對會低一些,持續(xù)部署自動化程度是最高的。但更多的時候需要結(jié)合業(yè)務(wù)場景去選擇是持續(xù)集成、持續(xù)交付或是持續(xù)部署,并不是所有的場景都必須做到持續(xù)部署。如果條件允許的話,一定是自動化程度越高,就意味交付頻率越快。
華為云是否有云原生的DevOps體系框架、落地實踐案例等?
華為云提供的云原生DevOps體系框架叫做HE2E,即華為端到端(End to End)DevOps框架。是結(jié)合了華為30年研發(fā)經(jīng)驗并集合了業(yè)界先進的實踐所形成的一套可操作可落地的敏捷開發(fā)方法論。HE2E圍繞一個名為鳳凰商城的電商平臺項目,按照DevOps方式完成從提交代碼到流水線部署上線的全過程,項目使用了微服務(wù)、容器等多種云原生技術(shù),其中DevOps部分依托于華為云DevCloud。
在這個實踐中,開發(fā)者可以通過華為云DevCloud的項目管理功能進行敏捷項目管理。項目的示例代碼也是通過華為云DevCloud的代碼倉庫codehub,項目使用微服務(wù)架構(gòu),前后端分離,并且可以通過華為云DevCloud進行云端構(gòu)建實現(xiàn)持續(xù)集成,將前后端打成Docker鏡像放到云端鏡像倉庫,供部署使用。
從集成到部署,還可以通過DevCloud的流水線功能串聯(lián)起來,在流水線中配置構(gòu)建、部署任務(wù)實現(xiàn)云原生的DevOps,這個流程和現(xiàn)在很多企業(yè)的實際開發(fā)場景也吻合。
最后,對于開發(fā)者來說,DevOps是神秘的,自己可能沒有精力或資源搭建DevOps工具鏈,其實這部分可以通過H2E2——相當于是用華為云搭好的一套架子,可直接使用華為云DevCloud體驗云原生的DevOps。
編輯:jq
-
代碼
+關(guān)注
關(guān)注
30文章
4874瀏覽量
69933 -
華為云
+關(guān)注
關(guān)注
3文章
2751瀏覽量
17986 -
devops
+關(guān)注
關(guān)注
0文章
119瀏覽量
12318
原文標題:敏捷開發(fā)專家一席談:云原生技術(shù)下的華為云DevOps實踐之路
文章出處:【微信號:Huawei_Developer,微信公眾號:華為開發(fā)者社區(qū)】歡迎添加關(guān)注!文章轉(zhuǎn)載請注明出處。
發(fā)布評論請先 登錄
相關(guān)推薦
云原生在汽車行業(yè)的優(yōu)勢
云原生AI服務(wù)怎么樣
云原生LLMOps平臺作用
如何選擇云原生機器學習平臺
什么是云原生MLOps平臺
梯度科技入選2024云原生企業(yè)TOP50榜單
k8s微服務(wù)架構(gòu)就是云原生嗎?兩者是什么關(guān)系
云原生和非云原生哪個好?六大區(qū)別詳細對比
KubeCon China 2024全球大會在香港舉行,京東云受邀參加探討云原生、開源及 AI
京東云原生安全產(chǎn)品重磅發(fā)布

從積木式到裝配式云原生安全

基于DPU與SmartNic的云原生SDN解決方案

首批認證!拓維信息梧桐云原生平臺獲鯤鵬原生開發(fā)技術(shù)認證

華為云開發(fā)者桌面全新發(fā)布 CodeArts IDE for Python,極致優(yōu)雅云原生開發(fā)體驗

評論