應(yīng)用

技術(shù)

物聯(lián)網(wǎng)世界 >> 物聯(lián)網(wǎng)新聞 >> 物聯(lián)網(wǎng)熱點(diǎn)新聞
企業(yè)注冊個人注冊登錄

云原生時(shí)代下的機(jī)遇與挑戰(zhàn) DevOps如何破局

2022-04-20 17:04 比特網(wǎng)

導(dǎo)讀:在云原生時(shí)代,國內(nèi)外眾多云廠商釋放出強(qiáng)大的技術(shù)紅利,如何利用穩(wěn)定、高效且性價(jià)比高的云設(shè)施是當(dāng)下的主要命題。

  在云原生時(shí)代,國內(nèi)外眾多云廠商釋放出強(qiáng)大的技術(shù)紅利,如何利用穩(wěn)定、高效且性價(jià)比高的云設(shè)施是當(dāng)下的主要命題。

  當(dāng)下,伴隨容器技術(shù)的出現(xiàn),特別是Docker和Kubernetes出現(xiàn),讓DevOps概念火了一把,也在實(shí)踐中開始快速落地和普及。

  眾所周知,容器能夠封裝微服務(wù)整個運(yùn)行時(shí)環(huán)境的特性,天然就適用于微服務(wù)構(gòu)建、發(fā)布和運(yùn)行,讓原本緩慢前進(jìn)的DevOps得到飛速發(fā)展,開源社區(qū)也涌現(xiàn)了很多優(yōu)秀的開源產(chǎn)品,大家通過這些開源產(chǎn)品能夠快速搭建自己應(yīng)用的持續(xù)集成環(huán)境,因此市場上也如雨后春筍般冒出許多DevOps相關(guān)的產(chǎn)品。

  現(xiàn)階段的DevOps產(chǎn)品通過Docker和K8s確實(shí)幫助用戶解決了資源管理、微服務(wù)環(huán)境構(gòu)建和持續(xù)集成的復(fù)雜、效率低等問題,但是伴隨公有云等Infra基礎(chǔ)設(shè)施持續(xù)高速發(fā)展,人們對于應(yīng)用研發(fā)的效率追求也會有更高的要求,對于DevOps產(chǎn)品也不會滿足停留在當(dāng)前階段,那么如何在DevOps現(xiàn)階段的版本基礎(chǔ)上進(jìn)一步提高研發(fā)效率和質(zhì)量呢?

  當(dāng)下,DevOps面臨的痛點(diǎn)

  我們首先需要了解,DevOps是依靠云原生、工作流程、人員組織的整合,以協(xié)作、自動化、精益、度量、共享、文化為指引,旨在建立一種可以快速交付價(jià)值,并且具有持續(xù)改進(jìn)能力的現(xiàn)代化IT組織。

  如今,幾乎每家企業(yè)都說自己在做DevOps,但只有少數(shù)人獲得了期望中的業(yè)務(wù)價(jià)值。這背后的原因在于,他們清楚地知道要讓DevOps模式在組織中正確推行下去需要重點(diǎn)關(guān)注哪些地方,同時(shí)他們也知道業(yè)務(wù)價(jià)值是DevOps的終極目標(biāo)。

  但不可否認(rèn)的是,DevOps現(xiàn)階段還需要面臨很多問題:

  一、多云資源如何統(tǒng)一管理,解綁云廠商?

  在公有云、私有云等多元化的云環(huán)境下,大家手頭往往都有兩套或者多套云資源,如何讓這些割裂的云資源統(tǒng)一進(jìn)行管理?如何基于一個平臺讓應(yīng)用快速進(jìn)行跨云遷移、發(fā)布?比如:開發(fā)在私有云,生產(chǎn)在公有云等這些問題伴隨資源環(huán)境多元化問題會越來越突出。

  二、復(fù)雜微服務(wù)組合如何快速進(jìn)行環(huán)境構(gòu)建、持續(xù)集成?

  當(dāng)前DevOps對于單個微服務(wù)的環(huán)境構(gòu)建和持續(xù)集成問題已經(jīng)基本解決。但對于企業(yè)級軟件研發(fā)交付團(tuán)隊(duì)來說,錯綜復(fù)雜的微服務(wù)組合而成的項(xiàng)目如何進(jìn)行統(tǒng)一的環(huán)境構(gòu)建、部署和交付,目前仍解決得不太徹底,只能讓各應(yīng)用的研發(fā)成員都參與到構(gòu)建、部署的整個階段。以上復(fù)雜的過程容易引起問題不說,效率成本上也是個大問題。

  三、研發(fā)效能如何進(jìn)一步提升?

  在當(dāng)前主流的DevOps產(chǎn)品中,代碼、構(gòu)建、部署全流程自動化觸發(fā)執(zhí)行的特性基本都是得到了比較好的解決,但是隨著研發(fā)管理的深度、精細(xì)度要求越來越高,需要研發(fā)維護(hù)的數(shù)據(jù)也隨之不斷增多,管理維護(hù)項(xiàng)目數(shù)據(jù)的項(xiàng)目管理工作量也在不斷增大,效率和成本也產(chǎn)生了矛盾。

  云原生時(shí)代下DevOps如何破局

  面對上述三大痛點(diǎn),新一代DevOps也在尋找破局之道。

  首先,DevOps針對于多云管理并不是簡單指通過K8s集群來實(shí)現(xiàn)資源的調(diào)度管理,如果僅僅是統(tǒng)一資源調(diào)度那本身是K8s集群的特性。

  其次,通過應(yīng)用部署環(huán)境配置去關(guān)聯(lián)集群,確實(shí)可以實(shí)現(xiàn)環(huán)境之間的隔離、環(huán)境之間快速遷移的能力。開發(fā)測試在本地私有云環(huán)境,生產(chǎn)者可以通過同一套代碼能夠快速發(fā)布到公有云;還有就是業(yè)務(wù)在一個集群,數(shù)據(jù)處理可以在另外一個集群,實(shí)現(xiàn)業(yè)務(wù)和數(shù)據(jù)分離,兩者互不影響,這些都可以通過集群管理來實(shí)現(xiàn)。

  另外,對單應(yīng)用的持續(xù)構(gòu)建部署,DevOps產(chǎn)品基本都是達(dá)成共識的,對于單個微服務(wù)應(yīng)用構(gòu)建部署的自動化完善程度較好。

  但對于企業(yè)級項(xiàng)目研發(fā)過程,我們看到,單應(yīng)用內(nèi)不同任務(wù)需要拉多分支來進(jìn)行開發(fā),受開發(fā)環(huán)境資源的限制,不同任務(wù)開發(fā)人員要不斷進(jìn)行線下溝通合并代碼發(fā)布開發(fā)環(huán)境進(jìn)行測試,過程中可能存在誰的代碼分支有問題導(dǎo)致整個環(huán)境不可用的現(xiàn)象。

  項(xiàng)目級的聯(lián)調(diào)部署就更復(fù)雜了,首先需要配置項(xiàng)目環(huán)境,其中包含了項(xiàng)目級的參數(shù)配置以及大家公用的項(xiàng)目級中間件準(zhǔn)備部署;其次是復(fù)雜的微服務(wù)編排信息維護(hù),這些煩瑣的項(xiàng)目級維護(hù)管理動作,往往會導(dǎo)致項(xiàng)目部署過程中出現(xiàn)各種阻塞,比如項(xiàng)目共同的中間件準(zhǔn)備阻塞,上游服務(wù)的部署和健康度也會影響或阻塞下游服務(wù)部署和測試等,這些問題會讓項(xiàng)目部署更加困難化。

  由此可見,在DevOps實(shí)踐中,選擇正確的工具對于測試自動化至關(guān)重要。利用共享工具幫助明確和簡化協(xié)作流程,以便對整個軟件交付流程有共同的了解。因此,它們能夠促進(jìn)一致性和自動化,幫助DevOps從業(yè)者提高交付速度,并避免在部署或生產(chǎn)故障恢復(fù)期間為臨時(shí)的救急處理花費(fèi)時(shí)間。

  寫在最后

  DevOps這一概念雖然比容器、微服務(wù)出現(xiàn)得早,卻是隨著他們的出現(xiàn)才得以快速地發(fā)展。實(shí)際上DevOps不單是一個實(shí)現(xiàn)自動化的工具鏈,更是通過構(gòu)建企業(yè)文化的方式促進(jìn)開發(fā)與運(yùn)維之間的協(xié)作。