RM新时代平台足球

云原生的應用特性及關(guān)鍵技術(shù)
發(fā)布時(shí)間:2021-07-26 來(lái)源:中國工業(yè)和信息化
 

讀而思

“云原生”作為云計算時(shí)代的核心理念,以平滑遷移、快速開(kāi)發(fā)以及穩定運維等技術(shù)優(yōu)勢,逐漸成為企業(yè)數字化轉型的基礎。隨著(zhù)云原生技術(shù)的成熟和市場(chǎng)需求的升級,云計算的發(fā)展也步入新的階段。

 

 

孟岳   山西建設投資集團

本文發(fā)表于《中國工業(yè)和信息化》雜志2021年7月刊總第36期

 

云原生并不是一個(gè)新的概念,但因其在數字化轉型中發(fā)揮著(zhù)越來(lái)越重要的作用,又被推上了“風(fēng)口浪尖”。

 

云原生是英文Cloud Native的直譯。這意味著(zhù)云原生應用是從云上生長(cháng)出來(lái),而不是布置在云上,更非依賴(lài)于數據中心。如果將云原生理解為基于云環(huán)境、專(zhuān)門(mén)為云特性而設計,未免偏頗。用英文表示是“IN CLOUD”,而不是“ON CLOUD”。盡管上云是第一步,云原生也只是云計算的一部分,但它已顯示出最能發(fā)揮云計算平臺的彈性與分布式布置的優(yōu)勢,并將云計算能力發(fā)揮到極致。

 

如果要追溯云原生的源頭,從時(shí)間軸上,可以回到2006年,亞馬遜正式推出彈性計算云服務(wù)EC2那個(gè)時(shí)候。但是云原生的概念則出現在2013年。這一年,Pivotal公司的Matt Stine首次將云原生定義為一系列云計算技術(shù)和開(kāi)發(fā)管理方法的合集,包括DevOps、持續交付、微服務(wù)、敏捷基礎設施和12要素等。似乎只要軟件“上云”,或者說(shuō)專(zhuān)門(mén)為“云”設計的軟件應用,都可以稱(chēng)之為云原生應用。

 

從已取得的成果來(lái)看,對于企業(yè),云原生釋放出巨大的生產(chǎn)能力,在降本增效的同時(shí),輕松承載幾何量級的業(yè)務(wù)量與數據流;對于用戶(hù),即使在“雙11”這樣的流量請求高峰,已感覺(jué)不到延遲,或者出現所搶購物品不能及時(shí)呈現的情況。當然,大型視頻直播、3D游戲的體驗也更為順暢,體驗感提升。伴隨著(zhù)云原生的成長(cháng),不論是企業(yè),還是用戶(hù),在數字化與智能化上所獲得的成果都超出預期。

 

云原生從1.0到2.0

 

從企業(yè)數字化的升級過(guò)程中,可以更清楚地看到云原生在云計算中成長(cháng)的過(guò)程。

 

企業(yè)數字化最早經(jīng)歷的是服務(wù)器階段,之后是上云階段,或者稱(chēng)為云化階段。云上應用的數量迅速增加,導致企業(yè)的人力運維能力極為不足,形象的說(shuō)法是人肉堆砌已經(jīng)不能解決問(wèn)題。云原生由此自然進(jìn)化而來(lái),云原生1.0開(kāi)始,即云原生的最初階段。所要解決的是企業(yè)數字化轉型升級過(guò)程中,傳統應用單體架構厚重、煙囪式架構等應用無(wú)法高效率成長(cháng)的問(wèn)題。

 

那么,上云出現的問(wèn)題,當然要在云上解決。而云計算的內生業(yè)務(wù)能力,就是云原生,由此生于云、長(cháng)于云、用于云、信于云的云原生進(jìn)入2.0。生于云是指云原生技術(shù)、架構和服務(wù)都是企業(yè)應用的擴展;長(cháng)于云是指企業(yè)應用和業(yè)務(wù)發(fā)展的成長(cháng)性,推動(dòng)企業(yè)數字化建設、業(yè)務(wù)智能升級;用于云是指所有的業(yè)務(wù)都以服務(wù)為核心,持續專(zhuān)注于解決企業(yè)應用升級中的問(wèn)題;信于云是指云上運行值得信賴(lài),安全可信。

 

概括而言,就是“資源高效、應用敏捷、業(yè)務(wù)智能、安全可信”。

 

具體而言,資源高效的實(shí)現,是由多元算力滿(mǎn)足不同應用場(chǎng)景的個(gè)性化算力需求;由多云治理和邊云協(xié)同,構建高效率、高可靠的分布式泛在計算平臺,并構建包括容器、裸機、虛機、函數等多形態(tài)統一的計算資源能力;以“應用”為中心構建隨時(shí)可調用的資源調度和管理平臺,形成企業(yè)決策部署透明、感知應用智能、靈活可控的應用能力。

 

應用敏捷主要體現在應用迭代的速度日漸加快,關(guān)鍵在于開(kāi)發(fā)與運維融為一體,即所謂“立而不破”,新舊業(yè)務(wù)平滑過(guò)渡、無(wú)縫對接,任何一次升級都不會(huì )影響到原有業(yè)務(wù)。這是通過(guò) DevSecOps 應用開(kāi)發(fā)模式實(shí)現的。

 

業(yè)務(wù)智能已經(jīng)進(jìn)入良性提升通道,企業(yè)的數據管理與應用能力,因為數據的資產(chǎn)化和數據的價(jià)值化,得以迅速放大,數據和AI技術(shù)的結合不斷賦能企業(yè)應用擴展,就如植物得到所有的適宜條件而自然生長(cháng),不再需要一次次人為干預決策,智能升級是完全智能化的,新的應用技術(shù)同樣內生出來(lái)。

 

安全可信度的提高,依賴(lài)于云原生的內生能力。安全服務(wù)和安全合規能力也是自帶的,“外來(lái)物種”的入侵是被屏蔽掉的,應用在云上安全構建,業(yè)務(wù)在云上安全運行。

 

以上四點(diǎn)與云計算資源池化、彈性伸縮、安全可靠的特性一脈相承。

 

以應用為中心

 

傳統IT架構是按照業(yè)務(wù)領(lǐng)域劃分,如開(kāi)發(fā)、IT運營(yíng)和質(zhì)量保障等部門(mén)是各自獨立的,開(kāi)發(fā)與運營(yíng)之間雖然進(jìn)行著(zhù)合作與溝通,但其間的信息“鴻溝”是存在的。即使是提供應用支撐的軟件企業(yè),也是如此運作的。難以快速響應用戶(hù)需求,甚至人為拖延產(chǎn)品迭代周期,敏捷開(kāi)發(fā)就是要解決這個(gè)問(wèn)題,并將開(kāi)發(fā)與運維完全打通,真正形成以用戶(hù)為中心的新業(yè)務(wù)結構。在此基礎上,為解決開(kāi)發(fā)和運維“信息對稱(chēng)”的問(wèn)題,DevOps應運而生。DevOps集開(kāi)發(fā)、技術(shù)運營(yíng)和質(zhì)量保障為一體,從而提高開(kāi)發(fā)效率,并縮短迭代周期,最終實(shí)現“持續交付”。所謂“持續交付”,不再是一套解決方案包打天下,僅做售后運維,而是確保持續更新,隨時(shí)可以發(fā)布新版本。

 

云原生使得新基礎設施之一的云計算硬件平等特性能很好發(fā)揮出來(lái),不論是向下管理的各種異構硬件,還是向上屏蔽底層硬件,都是以應用為中心,而真正消弭了硬件差異性,或者說(shuō)可以不考慮硬件的不同,無(wú)需針對特定硬件部署相應軟件程序。如傳統高性能計算(HPC)專(zhuān)用網(wǎng)絡(luò )硬件成本高昂、組網(wǎng)規模不可擴展、技術(shù)演進(jìn)緩慢,所導致的應用普及化難題,其高性能網(wǎng)絡(luò )通訊協(xié)議被云原生拓展應用到云視頻、金融交易等更廣泛的領(lǐng)域之后,就得以解決,類(lèi)似專(zhuān)有設備變?yōu)槎嘤猛镜幕A設備,尤其是云原生推動(dòng)的應用爆炸式增長(cháng),設備的價(jià)格雖然不變,但被多應用快速攤薄。即應用的拓展速度,使得硬件的價(jià)格壁壘轟然坍塌。以容器為例,原在私有云、公有云和混合云上的核心應用,完全可以跨云應用,對于云服務(wù)商,業(yè)務(wù)部署能力增強,對于客戶(hù),業(yè)務(wù)連續性、降本增效等需求得以暢快滿(mǎn)足。不僅如此,邊緣計算技術(shù)將越來(lái)越多的應用在邊緣側設備實(shí)現,數據傳輸容量擴大、時(shí)延降低,減少了業(yè)務(wù)損耗。云原生又適時(shí)生長(cháng)出泛在計算。

 

同時(shí),云原生應用數量的快速增加,其對應用服務(wù)的流量治理、運行監控、訪(fǎng)問(wèn)安全以及發(fā)布等能力的訴求不斷提升,管控微服務(wù)模式無(wú)以為繼,應時(shí)蝶變?yōu)榉乔秩胧轿⒎?wù)模式,應用是開(kāi)放與開(kāi)源的,隨時(shí)提供解決方案,客戶(hù)需求不再可能被置之不理。

 

云原生具體應用特性

 

云原生應用本身已具備云計算基因,許多應用特性具有重合性,如網(wǎng)絡(luò )訪(fǎng)問(wèn)、遠端部署、可擴展彈性、共享、自主服務(wù)、高可用、持續交付等。

 

這些應用是以微服務(wù)架構、容器、DevOps等關(guān)鍵技術(shù)為支撐的。

 

彈性
 

彈性是云計算的重要特征,理論上不受資源限制,可以無(wú)限占用和使用資源(當然需要按使用量付費)。實(shí)際上,彈性也應該是一切智能軟硬件的特性,如容器的重要特性之一也是彈性。對于云原生,其彈性主要是指彈性使用資源和服務(wù)實(shí)例彈性擴展能力,所要解決的是單實(shí)例擴展資源達到瓶頸時(shí),配合負載均衡機制實(shí)現彈性擴展。

 

云原生的這一特性,使得只有強力企業(yè)才可以解決彈性問(wèn)題的專(zhuān)利,成為所有企業(yè)都可以獲得彈性能力的普惠選項。

 

共享
 

云計算的IaaS、PaaS、SaaS,可視為分三種類(lèi)型。與之對應,就涉及三個(gè)層級的共享,即資源共享、平臺共享、與應用共享。

 

云原生應用作為SaaS層服務(wù),部署于IaaS或PaaS層。共享體現在一份基準代碼,可以實(shí)現多份部署,這是應用開(kāi)發(fā)的共享,而不是云應用意義上的共享。云應用是可以對所有人開(kāi)放的,并共享云應用服務(wù)。

 

自治
 

云應用部署與位置無(wú)關(guān),或者說(shuō)云應用部署沒(méi)有確定位置,是隨機的,但底層則是透明的。所以云原生應用的配置文件、后端服務(wù)等是和應用共生的,是一體的兩面,完全具備自管理自治理能力。

 

微服務(wù)設計架構同樣遵循自治原則。因此,微服務(wù)總是與云原生相伴生。這和云的分布式中心特性高度相關(guān)。好處是自成一體,自我管理,就像獨立個(gè)體的人,必備自我管理能力。

 

標準交付
 

云應用的構建可以在本地或者云端,但運行一定是在云端。這樣就要按照一定的標準交付,為的是在云端的任何位置部署支持標準,不用考慮是什么環(huán)境。

容器就是這樣被打造的標準運行工具,在容器內所有的應用都以標準化鏡像的方式交付并運行。但容器本身又可以在任何地方運行,只提交鏡像發(fā)布就可以滿(mǎn)足業(yè)務(wù)需求頻繁變動(dòng)、快速迭代、隨時(shí)發(fā)布的需求。

 

高可用性
 

彈性、共享、自治等應用特性保證了高可用。容器可以滿(mǎn)足敏捷啟停、多實(shí)例布置等高可用性,但并不能保證所有應用的全天候穩定。如果需要穩定的高可用性,是否選擇容器,就需要進(jìn)行新的平衡,或者做出其他選擇。

可監控性

 

這主要是指可監控審計。用戶(hù)可以通過(guò)日志或者接口實(shí)時(shí)獲取應用運行狀態(tài),以及應用訪(fǎng)問(wèn)調用數據等,作為計量計費、監控和后期審計等的依據。

 

自助服務(wù)
 

用戶(hù)可以根據自己的需求,通過(guò)網(wǎng)絡(luò )訪(fǎng)問(wèn),自助使用服務(wù),不需要云應用管理人員授予權限。因為云應用服務(wù)目錄簡(jiǎn)單明了,并附有使用說(shuō)明,用戶(hù)只需找到能滿(mǎn)足自身需求的應用即可。即使不能滿(mǎn)足,也可以隨時(shí)提出需求,獲得解決辦法。

 

可配置
 

云應用往往依賴(lài)于配置中心,實(shí)現不同環(huán)境應用的部署運行。比如,開(kāi)發(fā)、測試和生產(chǎn)環(huán)境,一些參數的配置往往是不一樣的。因此,不可能把所有配置文件同應用一起打包,就要由配置中心來(lái)統一管理。這樣,還有一個(gè)好處,可以實(shí)現運行時(shí)的參數更新。

 

敏捷
 

前面提到敏捷開(kāi)發(fā)可以打通開(kāi)發(fā)與運維。實(shí)際上,敏捷更大程度上和輕量、微服務(wù)組件化相關(guān),就如個(gè)體的人,小了輕了,自然輕巧敏捷。從這個(gè)角度說(shuō),云原生的敏捷特性只是一個(gè)方面,高度相關(guān)于整體架構,如技術(shù)架構、組織架構等。所以說(shuō),敏捷可以在流程、管理或體驗中被感覺(jué)到。

 

敏捷甚至被視為基礎設施,由Kubernetes驅動(dòng)。Kubernetes可以很方便地拉取一套基礎設施,滿(mǎn)足用戶(hù)開(kāi)發(fā),測試、發(fā)布等需求。

 

云原生關(guān)鍵技術(shù)

云原生具體應用是由微服務(wù)、容器、DevOps、服務(wù)網(wǎng)絡(luò )、不可變基礎、聲明式API等關(guān)鍵技術(shù)所構建。

 

容器及容器編排
 

容器被認為是云原生應用的基石,微服務(wù)容器化被作為云原生應用的第一步。

云原生代碼、依賴(lài)項等在運行時(shí)被打包到容器鏡像文件中。鏡像存儲在鏡像倉庫。需要時(shí),則將鏡像轉換為可運行的容器實(shí)例。該實(shí)例可在裝有容器引擎的任何計算機上運行,并可以按需部署任意數量的容器實(shí)例。每個(gè)容器雖然可以共享基礎主機操作系統,內存和處理器的一部分,但彼此隔離。容器的移植性保證了跨云應用的一致性。由此,微服務(wù)隔離并打包自己的依賴(lài)項、更改項,從而不影響整個(gè)系統,開(kāi)發(fā)與發(fā)布可以隨時(shí)進(jìn)行。

 

因為共享底層操作系統和主機資源,容器所占用空間大大小于虛擬機,在一臺主機上可以同時(shí)運行多個(gè)微服務(wù)。

 

有了容器之后,還需要對容器進(jìn)行管理,這就是容器編排。目前,通行的容器編排調度器是Kubernetes,簡(jiǎn)稱(chēng)K8s。

 

微服務(wù)
 

業(yè)務(wù)架構的變化和演進(jìn),是和業(yè)務(wù)越來(lái)越復雜一同改變的。演進(jìn)或變化的目的基本上都是為了突破業(yè)務(wù)痛點(diǎn),上一代系統架構被新的一代所代替。

 

第一代單體架構把所有業(yè)務(wù)相關(guān)聯(lián)的組件、庫全部打包成一個(gè)執行程序。雖然滿(mǎn)足了業(yè)務(wù)相互調用的需求,但卻增加了系統復雜度,導致系統維護成本過(guò)高,局部修改可能影響全局。更為困難的是,系統的封閉性,導致即使內部組件也不能共享,更不用說(shuō)產(chǎn)品能力的共享,結果是開(kāi)發(fā)效率低下,迭代速度被掣肘。

 

第二代面向服務(wù)架構的SOA(Service Oriented Architecture)是一種設計方法,其中包含多個(gè)服務(wù),且服務(wù)之間通過(guò)相互依賴(lài),可提供一系列解決功能。一個(gè)服務(wù)通常以獨立的形式存在,各個(gè)服務(wù)之間可以通過(guò)網(wǎng)絡(luò )調用。

 

第三代微服務(wù)架構是對SOA的升級,業(yè)務(wù)需求被組件化和服務(wù)化,原有的單個(gè)業(yè)務(wù)系統被拆分為多個(gè)獨立開(kāi)發(fā)、設計、運行的小應用。這些小應用之間通過(guò)服務(wù)完成交互和集成,既可以單獨調用,也可以多個(gè)并用,企業(yè)可以根據業(yè)務(wù)的不同或業(yè)務(wù)階段的不同,進(jìn)行合理引入與靈活調用。

服務(wù)與服務(wù)之間通過(guò)高內聚低耦合的方式交互。

 

服務(wù)網(wǎng)絡(luò )
 

服務(wù)網(wǎng)絡(luò )(Service Mesh)被稱(chēng)為微服務(wù)2.0,解決了服務(wù)之間的通信,并解決了微服務(wù)1.0的技術(shù)門(mén)檻高、多語(yǔ)言支持不足、代碼侵入性強等問(wèn)題。

 

在Service Mesh架構中,非業(yè)務(wù)功能下層到Sidecar,用戶(hù)只需要關(guān)聯(lián)業(yè)務(wù)邏輯,而不用關(guān)聯(lián)服務(wù)治理等非業(yè)務(wù)功能。

DevOps
 

DevOps不是Dev(開(kāi)發(fā)人員)與Ops(運維人員)的簡(jiǎn)單相加,而是兩者的全新組合。

 

DevOps強調的是如何通過(guò)自動(dòng)化的工具協(xié)作和溝通來(lái)完成軟件的生命周期(開(kāi)發(fā)、測試、運維)管理,從而更快速、更頻密地交付更穩定的軟件。

無(wú)服務(wù)架構
 

無(wú)服務(wù)架構由Serverless直譯而來(lái),但Serverless并不意味著(zhù)沒(méi)有服務(wù)器去運行代碼,只是不再需要管理服務(wù)器,只專(zhuān)注代碼,其余部分工作交由提供者處理。

 

對于開(kāi)發(fā)者來(lái)說(shuō),Serverless架構可以將服務(wù)器端應用程序分解成多個(gè),執行不同任務(wù)。

 

使用Serverless架構可以免除所有運維操作,開(kāi)發(fā)人員可以更加專(zhuān)注于核心業(yè)務(wù)的開(kāi)發(fā),實(shí)現快速上線(xiàn)和迭代。

不可變基礎
 

這里所說(shuō)的“不可變”類(lèi)似于程序設計中的“不可變”定義,即不可變變量完成賦值后就不能更改,只能創(chuàng )建新的進(jìn)行整體替換。這也是快速迭代的設計之一。對于云原生來(lái)說(shuō),最基本的要求是服務(wù)器在完成部署后,就不再進(jìn)行更改。這是因為,不僅基礎設施的初始化及配置成本高昂,而且系統升級、配置修改以及補丁等會(huì )產(chǎn)生不可預估的副作用??勺兓A設施還會(huì )導致在災難發(fā)生時(shí),難以重新構建服務(wù);在服務(wù)運行過(guò)程中,持續的修改往往產(chǎn)生并發(fā)風(fēng)險。而不可變基礎設施可提升發(fā)布效率,方便快速擴展。

聲明式API
 

聲明式API是與命令式API截然不同的一種編程方式。命令式 API可以直接向服務(wù)器發(fā)出執行命令:我要做什么,而聲明式 API更像是一個(gè)指導,明示要執行什么操作:你要做什么。聲明式API容許系統不斷調整實(shí)際狀態(tài),直到與期望狀態(tài)相一致。

 

云原生是一種構建和運行應用程序的方法,是一套技術(shù)體系和方法論。


編輯:薛姣

RM新时代平台足球
rm新时代跑路 RM新时代成立多久了 rm官网怎么登录 RM新时代注册 RM新时代正常可以出正常提 RM新时代专业团队|首入球时间 rm新时代公司官网 rm官网 RM新时代资金盘 RM新时代正规网址|首入球时间