- 數(shù)字化中臺
- 用友云平臺團(tuán)隊
- 5318字
- 2021-08-13 19:47:51
3.1 技術(shù)平臺概述及核心能力
技術(shù)平臺提供了基礎(chǔ)的云原生能力及技術(shù)支撐,包括容器化、DevOps、微服務(wù)三大部分。通過容器化技術(shù)實現(xiàn)企業(yè)服務(wù)的高彈性、高可用能力,通過DevOps能力實現(xiàn)商業(yè)創(chuàng)新的敏捷發(fā)布及變更,通過微服務(wù)能力實現(xiàn)企業(yè)創(chuàng)新服務(wù)的靈活解耦、自由治理。
這里將對云原生的理念及核心的組成技術(shù)做進(jìn)一步的闡述,同時了解技術(shù)平臺相關(guān)的核心能力和新技術(shù)趨勢,并結(jié)合云原生分析技術(shù)平臺的意義和定位。
3.1.1 云原生理念及核心價值
1. 云原生的概念及形成過程
2013年,Pivotal的Matt Stine提出了云原生(Cloud Native)的概念:它是一個思想的集合,包括DevOps、持續(xù)交付、微服務(wù)、敏捷基礎(chǔ)設(shè)施、康威定律等。
2015年,Google牽頭的云原生計算基金會(CNCF)成立,致力于推動云原生的持續(xù)發(fā)展,圍繞云原生的概念打造云原生體系。基金會成員目前已有一百多家企業(yè)與機(jī)構(gòu),包括亞馬遜、微軟、思科等巨型科技公司。該基金會對云原生的定義包含三個方面:應(yīng)用容器化、面向微服務(wù)架構(gòu)、應(yīng)用支持容器的編排調(diào)度。
2018年,CNCF對云原生進(jìn)行了重定義。云原生技術(shù)有利于各組織在公有云、私有云和混合云等新型動態(tài)環(huán)境中,構(gòu)建和運(yùn)行可彈性擴(kuò)展的應(yīng)用。云原生的代表技術(shù)包括容器、服務(wù)網(wǎng)格、微服務(wù)、不可變基礎(chǔ)設(shè)施和聲明式API。這些技術(shù)能夠構(gòu)建容錯性好、易于管理和便于觀察的松耦合系統(tǒng),并結(jié)合可靠的自動化手段、云原生技術(shù),使工程師能夠輕松地對系統(tǒng)做出切實可行的改進(jìn)和可預(yù)測的重大變更。
2. 云原生的理念及12要素
云原生的目的是構(gòu)建和運(yùn)行可彈性擴(kuò)展的應(yīng)用,其手段是代表云原生的核心技術(shù),如容器、服務(wù)網(wǎng)格、微服務(wù)、不可變基礎(chǔ)設(shè)施、聲明式API等。那么這些技術(shù)的理念又是什么呢?
當(dāng)下大家對云原生的理解存在著一些誤區(qū),有人認(rèn)為只要使用容器技術(shù)就是云原生,有些人單純地認(rèn)為采用微服務(wù)架構(gòu)就是云原生,也有人認(rèn)為通過低代碼的模式開發(fā)應(yīng)用就是云原生。
實際上,除了使用云原生的支撐技術(shù)以外,更重要的是應(yīng)用及服務(wù)要遵循云原生的設(shè)計理念。云原生有一系列云技術(shù)、管理方法的集合供大家遵循。企業(yè)架構(gòu)必須按照云原生的理念進(jìn)行設(shè)計才能真正達(dá)到云原生的能力。只有業(yè)務(wù)積極適配云原生的技術(shù)理念,做到業(yè)務(wù)與技術(shù)的深度融合,才能真正完成云原生的蛻變。
圖3.1展示了云原生的設(shè)計理念,可以看出云原生的很多設(shè)計理念都是繼承自分布式應(yīng)用的設(shè)計理念。

圖3.1 云原生的設(shè)計理念
云原生的設(shè)計理念跟傳統(tǒng)應(yīng)用的設(shè)計理念差別在哪里呢?傳統(tǒng)應(yīng)用是通過瀑布式迭代開發(fā)出來的一種單體架構(gòu)模式,需要細(xì)心照顧和維護(hù),其內(nèi)部“鐵板一塊”,一旦遇到故障或者性能壓力,就很難實現(xiàn)精細(xì)化的修復(fù)或者性能的橫向擴(kuò)展。傳統(tǒng)應(yīng)用在更新和修復(fù)的時候也需要停機(jī),會導(dǎo)致整個業(yè)務(wù)系統(tǒng)不可用。而云原生應(yīng)用是通過敏捷化開發(fā)的、更加松耦合的一種架構(gòu),其系統(tǒng)內(nèi)部每個服務(wù)節(jié)點都可以獨自進(jìn)行升級迭代,不會互相影響,也可以按需彈性擴(kuò)展。
云原生12要素(如圖3.2所示)由Heroku(一個支持多種編程語言的云平臺)創(chuàng)始人Adam Wiggins首次提出并開源,并由眾多經(jīng)驗豐富的開發(fā)者共同完善,是開發(fā)云原生應(yīng)用的經(jīng)典設(shè)計范式。這12要素結(jié)合了他們關(guān)于SaaS應(yīng)用幾乎所有的經(jīng)驗和智慧,是開發(fā)此類應(yīng)用的理想實踐標(biāo)準(zhǔn)。

圖3.2 云原生12要素
結(jié)合云原生的理念和具體落地的12要素,企業(yè)便擁有了可以創(chuàng)新的指導(dǎo)思想。
3. 云原生的核心價值
云原生的核心價值到底是什么呢?通過一份數(shù)據(jù)來看一下,2019年CNCF發(fā)起了一次云原生技術(shù)使用情況的用戶調(diào)查,共收到1300多份有效問卷,分別來自歐洲、美洲、亞洲等不同地區(qū)的用戶,其中65%以上的人來自軟件/技術(shù)/專業(yè)服務(wù)廠商。技術(shù)崗位方面:41%是軟件架構(gòu)師、20%是后端開發(fā)工程師、39%是DevOps運(yùn)維工程師。所在企業(yè)規(guī)模方面:70%的人工作在100人以上的公司,30%的人工作在5000人以上的公司。
通過這份調(diào)查報告可以得到以下幾個維度方面的數(shù)據(jù)。
(1)服務(wù)器使用:15%的公司擁有5000臺以上的服務(wù)器、70%的公司擁有20臺以上的服務(wù)器;62%的服務(wù)器是公有云服務(wù)器、30%的服務(wù)器是私有云服務(wù)器。
(2)容器使用:84%的公司已經(jīng)使用容器技術(shù),容器數(shù)量大于250個的公司超過50%。
(3)Kubernetes使用:82%的人在使用Kubernetes技術(shù)。
(4)服務(wù)網(wǎng)格使用:18%的人在使用服務(wù)網(wǎng)格技術(shù)。
(5)CI/CD技術(shù)使用:40%的人使用DevOps技術(shù)進(jìn)行迭代及無狀態(tài)測試。
從調(diào)查數(shù)據(jù)可以看出:52%的人認(rèn)為云原生技術(shù)可以讓部署更有效率,45%的人認(rèn)為云原生技術(shù)可以讓應(yīng)用更有伸縮彈性,39%的人認(rèn)為云原生技術(shù)可以提高可遷移性和應(yīng)用的高可用性。
云原生技術(shù)的核心價值在于可以幫助企業(yè)提供更有效的部署方式、更具彈性的服務(wù)運(yùn)行模式、更具高可用性的底層支撐,以及更具靈活性的企業(yè)技術(shù)、業(yè)務(wù)與組織融合能力。
3.1.2 技術(shù)平臺的意義及定位
企業(yè)IT業(yè)務(wù)架構(gòu)向云計算技術(shù)演進(jìn)的進(jìn)程正在逐步深入。大多數(shù)互聯(lián)網(wǎng)公司的應(yīng)用從誕生之初就構(gòu)建在云端。如今,金融、制造、醫(yī)療、政務(wù)等越來越多的行業(yè)和機(jī)構(gòu)也逐漸將業(yè)務(wù)架構(gòu)向云上遷移。企業(yè)應(yīng)用的云化,需要摒棄傳統(tǒng)的設(shè)計方法,從架構(gòu)設(shè)計、開發(fā)方式到部署維護(hù)整個軟件生命周期都基于云的特點設(shè)計,構(gòu)建原生為云設(shè)計的應(yīng)用。這樣才能充分利用云計算的基礎(chǔ)設(shè)施,發(fā)揮云平臺的彈性及分布式優(yōu)勢。
實踐云原生需要的是一套技術(shù)體系和一套方法論,是一系列架構(gòu)、研發(fā)流程、團(tuán)隊文化的最佳實踐集合,才能支撐更快的業(yè)務(wù)創(chuàng)新速度、極致的用戶體驗、穩(wěn)定可靠的用戶服務(wù)、高效的研發(fā)效率。云原生從技術(shù)理念、核心架構(gòu)、最佳實踐等方面幫助企業(yè)平滑、快速、漸進(jìn)式地在云上落地。
企業(yè)云服務(wù)所需的技術(shù)平臺,是為企業(yè)云業(yè)務(wù)和云產(chǎn)品提供完備的應(yīng)用開發(fā)、運(yùn)行、運(yùn)維、運(yùn)營支撐能力的平臺。它為企業(yè)應(yīng)用開發(fā)者提供開發(fā)平臺、資源管理、持續(xù)集成、持續(xù)交付、容器服務(wù)、鏡像倉庫等應(yīng)用基礎(chǔ)服務(wù)。同時,企業(yè)云服務(wù)為應(yīng)用的微服務(wù)架構(gòu)落地提供完備的支撐,結(jié)合DevOps的理念,通過提供自動化運(yùn)維、日志管理、中間件服務(wù)、混合云部署等功能,幫助開發(fā)及運(yùn)維人員減少產(chǎn)品研發(fā)迭代過程中的負(fù)擔(dān)。
用友企業(yè)云服務(wù)技術(shù)平臺主要包含:容器云能力、微服務(wù)能力(包含架構(gòu)和服務(wù)治理)、DevOps能力(開發(fā)運(yùn)維一體化)、低代碼開發(fā)能力、自動化測試能力、分布式中間件能力、區(qū)塊鏈能力、AI能力、IoT能力、混合云部署能力等。圍繞這些核心能力為上層應(yīng)用與業(yè)務(wù)系統(tǒng)的建設(shè)還提供一系列支撐服務(wù):運(yùn)維中心、報警中心、日志中心、全鏈路監(jiān)控、問題排查、故障處理、災(zāi)備指標(biāo)、域名管理、自動出盤、穩(wěn)定性&可靠性、全面性能指標(biāo)等。
3.1.3 云原生對中國企業(yè)的價值
1. 企業(yè)創(chuàng)新過程的核心訴求
中國是一個體量巨大的國家,從我國經(jīng)濟(jì)市場的格局來看企業(yè)客戶也呈現(xiàn)出多樣性。從體量上來看:有GDP超過一個歐洲國家的地方政府;有營業(yè)額超過一個歐洲國家的巨型央企;有極具爆炸式成長、極速伸縮變化的互聯(lián)網(wǎng)電子商務(wù)企業(yè)。從數(shù)量上來看:有幾千萬家小微型、中小型企業(yè);有幾百萬家中型、中大型企業(yè);有幾萬家大型企業(yè)。
對于這么龐雜多樣的企業(yè)形態(tài),總體上企業(yè)的訴求有兩個趨同的共性:①業(yè)務(wù)開展方式趨向在線化,直接連接用戶、直接連接上下游合作伙伴、直接連接社會;②業(yè)務(wù)開展范圍趨向全國化,甚至全球化。
在技術(shù)訴求方面也呈現(xiàn)三個共性:①多端統(tǒng)一技術(shù),一套代碼適配PC Web、移動Web、移動App、移動小程序;②微服務(wù)技術(shù),可輕量解耦、便于性能提升、敏捷迭代;③大數(shù)據(jù)技術(shù),便于性能提升、數(shù)據(jù)深度分析。
2. 企業(yè)對云原生技術(shù)的關(guān)注點
中國地方政府、中國巨型企業(yè),對云原生技術(shù)的關(guān)注重心是高安全性、國產(chǎn)化、自主可控。
對于極具爆炸式成長、極速伸縮變化的中國互聯(lián)網(wǎng)電子商務(wù)企業(yè),他們對云原生技術(shù)的關(guān)注重心是快速開發(fā)、彈性伸縮、高穩(wěn)定、高可用、高安全性。
對于中國幾千萬家小微型企業(yè),他們一般會直接使用中國互聯(lián)網(wǎng)電子商務(wù)平臺商提供的在線經(jīng)營管理工具,并不接觸云原生技術(shù)。對于上千萬家小型、中小型企業(yè),他們直接使用中國SaaS提供商的SaaS服務(wù)。對于云原生應(yīng)用,他們希望這些應(yīng)用能夠像蘋果App Store一樣,有豐富的應(yīng)用插件、模板,易于尋找、購買、支付,并且一鍵下載安裝、統(tǒng)一精確計費(fèi)、統(tǒng)一運(yùn)維。
對于還有幾十萬家甚至上百萬家的中型、中大型企業(yè),他們不僅希望SaaS提供商有可視化的配置平臺、快捷的無代碼快速生成工具,也希望有豐富的應(yīng)用商店應(yīng)用插件、模板、表單、報表、模塊級生態(tài)應(yīng)用。另外他們還希望結(jié)合技術(shù)平臺進(jìn)行自研服務(wù)的擴(kuò)展部署。
對于幾萬家中國大型企業(yè),他們希望SaaS提供商提供專屬云部署的技術(shù)平臺,便于快速開發(fā)他們自己的商業(yè)創(chuàng)新應(yīng)用。
3. 云原生技術(shù)如何滿足這些訴求
在中國市場,Pivotal、CNCF廠商會定位在IaaS、GPaaS層;本土云計算廠商如阿里云、騰訊云等會定位在IaaS、GPaaS、一部分APaaS層;本土SaaS廠商會定位在SaaS、APaaS層。本土云計算廠商和本土SaaS廠商都會研發(fā)云原生應(yīng)用相關(guān)的技術(shù)平臺和開發(fā)平臺。
對于擁有上萬人研發(fā)團(tuán)隊,獨立的巨型科技央企,一般會選擇類似CNCF、Pivotal這樣的技術(shù)棧來自我研發(fā)上層商業(yè)應(yīng)用。
對于中國一二線城市、地級市政府的應(yīng)用,一般也會選擇類似CNCF、Pivotal這樣的技術(shù)棧,但他們會通過專業(yè)服務(wù)提供商的系統(tǒng)集成解決方案來開發(fā)上層應(yīng)用,并結(jié)合本土服務(wù)提供商研發(fā)的技術(shù)平臺(或容器PaaS平臺)建設(shè)應(yīng)用的底層支撐平臺。
對于極具爆炸式成長、極速伸縮變化的中國互聯(lián)網(wǎng)電子商務(wù)企業(yè),他們本身就是純互聯(lián)網(wǎng)應(yīng)用企業(yè),所以他們會積極擁抱公有云廠商,在公有云的產(chǎn)品之上開發(fā)他們的互聯(lián)網(wǎng)應(yīng)用。他們會永久生長在公有云上,主要使用云原生技術(shù)滿足IT彈性伸縮、組織彈性伸縮、社會化資源整合。
3.1.4 技術(shù)平臺的核心能力
1. 容器云服務(wù),彈性/高可用
容器服務(wù)是技術(shù)平臺的核心能力,它提供了在Docker鏡像部署后容器實例的管理功能,支持大規(guī)模容器集群的管理,為應(yīng)用的微服務(wù)架構(gòu)落地提供完備支撐。其核心理念以應(yīng)用為中心,簡化上云過程,為應(yīng)用提供容器調(diào)度、統(tǒng)一接入、擴(kuò)容、縮容、升級、回滾等功能,具備自動服務(wù)網(wǎng)關(guān)、健康檢查、服務(wù)自愈等特性。
容器技術(shù)的出現(xiàn)徹底改變了舊有的低效、復(fù)雜應(yīng)用的部署模式。以Docker為首的容器技術(shù)的出現(xiàn),終結(jié)了應(yīng)用交付和部署環(huán)節(jié)因環(huán)境、配置及程序本身的不同而出現(xiàn)的動輒幾種甚至十幾種部署配置的困境。Docker將他們統(tǒng)一在容器鏡像之內(nèi),實現(xiàn)了一次構(gòu)建,任何地方均可運(yùn)行。容器技術(shù)的快速發(fā)展,很好地支撐了微服務(wù)架構(gòu)的落地,相對于物理機(jī)和虛擬機(jī)而言,容器是很輕量化的技術(shù),這意味著在等量資源的基礎(chǔ)上它能夠創(chuàng)建出更多的容器實例。
Docker起初是一家名為dotCloud的PaaS提供商的容器技術(shù),而dotCloud平臺利用了Linux容器技術(shù)。為了方便創(chuàng)建和管理這些容器,dotCloud開發(fā)了一套內(nèi)部工具,之后被命名為Docker。Docker早期版本的實現(xiàn)基于LXC,并進(jìn)一步對其封裝,包括文件系統(tǒng)、網(wǎng)絡(luò)互聯(lián)、鏡像管理等方面,極大簡化了容器管理。
當(dāng)然,在面對分布于多臺主機(jī)上,且擁有數(shù)百個容器的大規(guī)模應(yīng)用程序時,傳統(tǒng)或單機(jī)的容器管理解決方案就會變得力不從心。在這種情況下,技術(shù)平臺提供了一種可以支撐大規(guī)模容器調(diào)度、編排的能力,進(jìn)行自動化的任務(wù)管理。
2. 微服務(wù)治理,解耦輕量
實際上微服務(wù)這一概念在很早之前就被提出來了,但是直到容器技術(shù)的發(fā)展成熟,微服務(wù)才成為當(dāng)下炙手可熱的架構(gòu)模式。容器技術(shù)的出現(xiàn),從一定程度上來說推動了微服務(wù)架構(gòu)的普及。
CNCF在云原生應(yīng)用的三大特征中就提到了面向微服務(wù)需要明確服務(wù)間的依賴,同時互相解耦。傳統(tǒng)的單體架構(gòu)比較簡單,比如典型的三級架構(gòu),前端+中間業(yè)務(wù)邏輯層+數(shù)據(jù)庫層。單體架構(gòu)最大的缺點就是隨著需求的增加,應(yīng)用代碼會越來越臃腫,單體應(yīng)用也變得越來越龐雜,可維護(hù)性和靈活性都越來越低,使得整個應(yīng)用的復(fù)雜度越來越高。
微服務(wù)架構(gòu)的主要優(yōu)勢在于每個微服務(wù)都可以獨立進(jìn)行部署、升級、擴(kuò)展和重新啟動。每個微服務(wù)通常作為自動化系統(tǒng)的一部分運(yùn)行,可以在不影響客戶的情況下頻繁更新正在使用的應(yīng)用。同時,這些服務(wù)都可以采用不同的編程語言編寫,且可以使用不同的數(shù)據(jù)存儲技術(shù)(即可以使用不同的數(shù)據(jù)庫來存儲)。
微服務(wù)架構(gòu)最近幾年發(fā)展迅猛,2017年以來在業(yè)界異常火爆。同時,企業(yè)應(yīng)用架構(gòu)的微服務(wù)化也帶來了很多服務(wù)治理的問題。例如系統(tǒng)部署復(fù)雜度增加、服務(wù)間調(diào)用復(fù)雜、本地數(shù)據(jù)庫事務(wù)無法保證數(shù)據(jù)一致性、服務(wù)依賴關(guān)系不夠清晰、配置管理難度增大等。這些問題在用友技術(shù)平臺的服務(wù)治理平臺上都提供了對應(yīng)的能力來幫助用戶解決,即通過可視化、配置化的方式來大幅降低微服務(wù)拆分所帶來的復(fù)雜度。
3. DevOps,敏捷/靈活/動態(tài)
當(dāng)微服務(wù)的數(shù)量到了一定量級的時候,通過人工來實現(xiàn)微服務(wù)的容器化部署和管理會變得非常困難。這時需要一座“橋梁”來代替人工,即通過自動化、智能化的方式完成容器化部署。DevOps就是微服務(wù)和容器之間的那座橋梁。
DevOps(Development和Operations的組合詞)可以促進(jìn)開發(fā)(應(yīng)用程序/軟件工程)、技術(shù)運(yùn)營和質(zhì)量保障(QA)部門之間的溝通、協(xié)作與整合。它是一種重視“軟件開發(fā)人員(Dev)”和“IT運(yùn)維技術(shù)人員(Ops)”之間溝通合作的文化、運(yùn)動或慣例。
通過自動化“軟件交付”和“架構(gòu)變更”的流程,DevOps可以讓構(gòu)建、測試、發(fā)布的軟件更加快捷、頻繁和可靠。DevOps的出現(xiàn)是由于軟件行業(yè)日益清晰地認(rèn)識到:為了按時交付軟件產(chǎn)品和服務(wù),開發(fā)和運(yùn)營工作必須緊密合作。
DevOps是持續(xù)集成(CI)、持續(xù)部署(CD)非常有效的黏合劑,同時它可以把微服務(wù)和容器有序地串聯(lián)起來,完成一個動態(tài)的全生命周期管理。
用友技術(shù)平臺提供了DevOps流水線的能力,研發(fā)人員以可視化的方式來實現(xiàn)應(yīng)用的集成和部署的自動化。用友技術(shù)平臺還提供在線控制及日志進(jìn)行故障分析與排查,完成多環(huán)境微服務(wù)的部署和管理,從而發(fā)揮出云原生更大的價值。
- HTML5 Mobile Development Cookbook
- Java程序設(shè)計與計算思維
- Backbone.js Blueprints
- Learning Network Forensics
- Python機(jī)器學(xué)習(xí)編程與實戰(zhàn)
- Mastering Unity 2D Game Development(Second Edition)
- Django實戰(zhàn):Python Web典型模塊與項目開發(fā)
- Angular應(yīng)用程序開發(fā)指南
- Oracle Data Guard 11gR2 Administration Beginner's Guide
- Java EE項目應(yīng)用開發(fā)
- 3ds Max 2018從入門到精通
- Responsive Web Design with jQuery
- Python實戰(zhàn)指南:手把手教你掌握300個精彩案例
- 深入實踐C++模板編程
- 流暢的Python