成人免费xxxxx在线视频软件_久久精品久久久_亚洲国产精品久久久_天天色天天色_亚洲人成一区_欧美一级欧美三级在线观看

云原生時(shí)代,應(yīng)用架構(gòu)將如何演進(jìn)?

開發(fā) 開發(fā)工具 云原生
IaaS上云和PaaS上云有什么區(qū)別?如何借助云原生技術(shù)來提升交付的速度?云原生時(shí)代背景下,研發(fā)的關(guān)注點(diǎn)又會(huì)有哪些轉(zhuǎn)變?阿里云高級(jí)技術(shù)專家許曉斌通過本文分享從IaaS上云時(shí)代到PaaS上云時(shí)代的應(yīng)用架構(gòu)演進(jìn)方向,以及云原生技術(shù)與應(yīng)用架構(gòu)演進(jìn)的關(guān)系。

云原生已經(jīng)進(jìn)入了PaaS上云為主的階段

阿里巴巴已經(jīng)經(jīng)歷了IaaS上云的階段,邁進(jìn)到了PaaS上云的時(shí)代。在去年的“雙11”,阿里巴巴就已經(jīng)實(shí)現(xiàn)了電商核心系統(tǒng)的全面上云,這里的上云主要是在IaaS層。所謂IaaS主要就是對(duì)計(jì)算、網(wǎng)絡(luò)、存儲(chǔ)的虛擬化,經(jīng)過了這個(gè)階段,阿里巴巴就進(jìn)入了PaaS上云的階段。在PaaS上云這個(gè)階段就需要使用更多的云產(chǎn)品,包括中間件、存儲(chǔ)、緩存甚至是應(yīng)用托管平臺(tái)等。

??

??

 

IaaS階段和PaaS階段其實(shí)存在很大的差別。在IaaS階段,對(duì)于應(yīng)用研發(fā)來說,所關(guān)心的往往就是基礎(chǔ)設(shè)施和資源,通俗來講就是虛擬機(jī)或者容器等,這些對(duì)應(yīng)用架構(gòu)幾乎沒有任何侵入。但是在PaaS上云階段,當(dāng)你使用云產(chǎn)品,比如云Redis、云RDS、云OSS、云RabbitMQ等的時(shí)候,都會(huì)對(duì)于應(yīng)用架構(gòu)產(chǎn)生比較強(qiáng)的侵入。那么,這樣的侵入會(huì)對(duì)應(yīng)用架構(gòu)產(chǎn)生什么樣的影響,是所有研發(fā)架構(gòu)師所需要思考的一個(gè)問題。

云原生技術(shù)

如果大家嘗試去搜索云原生技術(shù),就會(huì)看到Google Cloud的定義、CNCF的定義以及其他很多的云產(chǎn)商以及開源軟件的定義,而這些定義看法都各有不同。簡(jiǎn)單歸納可以分為如下圖所示的幾類,縱向來看,分為了應(yīng)用架構(gòu)、生命周期管理、流量管理,以及基礎(chǔ)設(shè)施及依賴四個(gè)維度;橫向來看,又分為了微服務(wù)、12 Factor Apps、容器、BaaS、GitOps/IaC以及Service Mesh幾個(gè)維度。

??

??

 

今天,大家都會(huì)談到基于微服務(wù)架構(gòu)做云原生,而不是基于巨石應(yīng)用架構(gòu)或者簡(jiǎn)單的CS架構(gòu)。Quarkus提出了12 Factor Apps,意思就是說如果在今天想要讓應(yīng)用跑在Quarkus等這些應(yīng)用托管平臺(tái)上,對(duì)于應(yīng)用具有一定的要求,大概是12條原則,比如配置和代碼分離等,當(dāng)然后續(xù)還有很多的擴(kuò)展。這些原則中的很多條目的意思都是說只要你符合這些原則,那么應(yīng)用托管平臺(tái)就能夠?yàn)槟闾峁└嗟哪芰Γ热缑膺\(yùn)維等。容器的核心是使用一種標(biāo)準(zhǔn)的交互方式讓平臺(tái)能夠管理應(yīng)用的生命周期,包括發(fā)布、擴(kuò)容以及自愈等。

BaaS——Backend as a Service,能夠盡量使用現(xiàn)有的服務(wù)來構(gòu)建應(yīng)用程序。Service Mesh的本質(zhì)是管理流量,今天的應(yīng)用程序都在接收流量,提供服務(wù)時(shí)流量又需要出去,在這個(gè)過程中如何管理服務(wù)發(fā)現(xiàn)、流量路由規(guī)則等都需要Service Mesh技術(shù)。最后需要重點(diǎn)介紹的就是GitOps和IaC(Infrastructure as Code),這些技術(shù)如今在行業(yè)里面得到了越來越多的關(guān)注,盡管還沒有事實(shí)上的標(biāo)準(zhǔn),但是很多云計(jì)算公司正在不斷努力。其含義是說今天在使用基礎(chǔ)設(shè)施的時(shí)候,可以用代碼去聲明這些基礎(chǔ)設(shè)施的需求。總而言之,上述這些內(nèi)容都是圍繞應(yīng)用架構(gòu)、生命周期管理、流量管理,以及基礎(chǔ)設(shè)施及依賴這四個(gè)維度的。

業(yè)務(wù)關(guān)心的是交付速度

對(duì)于業(yè)務(wù)而言,最關(guān)心的往往是交付速度。如果你和業(yè)務(wù)總監(jiān)或者CTO去聊,他們就會(huì)問你,擁有這么多的技術(shù)對(duì)于業(yè)務(wù)有什么好處?可能會(huì)談到成本的優(yōu)勢(shì)、管理的優(yōu)勢(shì),但是對(duì)于幾乎所有業(yè)務(wù)而言,最核心的是研發(fā)效率的提升。所以我們應(yīng)該思考云原生技術(shù)如何才能幫助實(shí)現(xiàn)更快的交付。

借助云原生技術(shù)來提升交付服務(wù)的速度可以大致分為三個(gè)步驟。

標(biāo)準(zhǔn)化平臺(tái)/服務(wù)和應(yīng)用的協(xié)議

將平臺(tái)/服務(wù)和應(yīng)用之間的協(xié)議進(jìn)行標(biāo)準(zhǔn)化。如果IaaS層用云的話協(xié)議就是機(jī)器,就是虛擬機(jī)、容器等,對(duì)于業(yè)務(wù)應(yīng)用而言,看到的就是一個(gè)操作系統(tǒng),這樣應(yīng)用就可以使用操作系統(tǒng)上的各種資源,這樣做的好處在于不需要關(guān)心物理機(jī)以及機(jī)器的故障等問題。

與業(yè)務(wù)無關(guān)能力進(jìn)一步解耦至平臺(tái)

對(duì)于業(yè)務(wù)應(yīng)用而言,看到的就不是一個(gè)操作系統(tǒng)了,會(huì)給到一個(gè)更加上層的協(xié)議,讓平臺(tái)幫助應(yīng)用實(shí)現(xiàn)自動(dòng)伸縮以及自愈等,還可以幫助應(yīng)用實(shí)現(xiàn)自動(dòng)騰挪,當(dāng)?shù)讓踊A(chǔ)設(shè)施發(fā)生故障的時(shí)候,可以將應(yīng)用從一臺(tái)機(jī)器遷移到另外一臺(tái)機(jī)器,也就是生命周期管理。基于上述協(xié)議,平臺(tái)的很多能力就能夠下沉,比如原本需要手工管理的事情只需要通過代碼聲明就可以很好地實(shí)現(xiàn)了,有了這些協(xié)議之后,業(yè)務(wù)應(yīng)用就能夠?qū)⑾嚓P(guān)的生命周期管理托管給平臺(tái)。

應(yīng)用架構(gòu)升級(jí)

除了上述兩點(diǎn)之外,第三步就是讓應(yīng)用架構(gòu)需要通過升級(jí)來適應(yīng),這樣才能讓相關(guān)能力下沉到云平臺(tái)。

IaaS上云階段到云原生上云階段的轉(zhuǎn)變

進(jìn)一步細(xì)化就會(huì)發(fā)現(xiàn),在原來的IaaS上云階段,除了需要關(guān)心業(yè)務(wù)邏輯之外,還需要關(guān)心業(yè)務(wù)應(yīng)用的生命周期管理、流量管理,還需要自己進(jìn)行搭建和配置中間件,比如在云環(huán)境中搭建Redis、kafka等,也就是說花費(fèi)了大量時(shí)間在應(yīng)用依賴管理的事情上,無法讓云平臺(tái)進(jìn)行管理。今天,在PaaS上云或者云原生上云的階段,想要做到的就是盡量使用云平臺(tái)提供的能力,將更多的精力集中在業(yè)務(wù)本身,而將業(yè)務(wù)無關(guān)的通用技術(shù)能力都交給云來管理。

??

??

 

核心問題:

  • 業(yè)務(wù)無關(guān)能力如何解耦至平臺(tái)?
  • 平臺(tái)和業(yè)務(wù)(應(yīng)用)之間的協(xié)議如何定義?
  • 應(yīng)用架構(gòu)需要如何適應(yīng)?

以前在IaaS上云階段,應(yīng)用和操作系統(tǒng)進(jìn)行交互存在標(biāo)準(zhǔn)的協(xié)議,而今天在PaaS上云階段,這樣的協(xié)議應(yīng)該是什么,需要被重新定義。此外,基于這樣的協(xié)議如何實(shí)現(xiàn)能力下沉,也是很多包括阿里云在內(nèi)的很多云廠商所做的事情,比如阿里云基于RocketMQ做了RocketMQ Service,基于容器的一些協(xié)議提供容器服務(wù)等等。當(dāng)然,現(xiàn)在只是一個(gè)開始,未來這部分內(nèi)容將會(huì)更加豐富和完整。

例子1:Service Mesh把服務(wù)發(fā)現(xiàn)和流量從業(yè)務(wù)剝離

與此同時(shí),應(yīng)用架構(gòu)也需要去適應(yīng)。這里以Service Mesh為例,之前在應(yīng)用內(nèi)部的流量是SDK的形式,那么在演進(jìn)的過程中如何將服務(wù)發(fā)現(xiàn)和流量等從業(yè)務(wù)SDK中剝離出來放到Sidecar里面去,進(jìn)而交給云平臺(tái)處理,這就是應(yīng)用架構(gòu)演進(jìn)的一個(gè)例子。

??

??

 

  • 服務(wù)注冊(cè) & 發(fā)現(xiàn)
  • 流量路由
  • 流量回放
  • 發(fā)布過程中流量控制

例子2:輕量化容器把日志采集從業(yè)務(wù)中剝離

以前在做日志采集的時(shí)候,需要在各個(gè)虛擬機(jī)中開啟一個(gè)日志采集進(jìn)程,并將采集到的日志傳輸?shù)饺罩静杉脚_(tái),并通過可視化界面進(jìn)行分析。而今天,在云原生時(shí)代,更好的做法是讓容器服務(wù)從stdout來抓取日志,也可以通過配置的方式去特定日志目錄獲取日志數(shù)據(jù)。但是采集這個(gè)事情需要搬到Sidecar里面去實(shí)現(xiàn)Agent的升級(jí)。所以輕量化容器把日志采集從業(yè)務(wù)中剝離也是一個(gè)架構(gòu)演進(jìn)的例子。

??

??

 

  • 資源隔離
  • 獨(dú)立升級(jí)

例子3:業(yè)務(wù)提供探針,讓平臺(tái)實(shí)現(xiàn)生命周期管理

生命周期管理對(duì)于應(yīng)用架構(gòu)的要求就是原來的應(yīng)用程序啟動(dòng)之后是健康的還是不健康的,都是應(yīng)用程序的運(yùn)維或者研發(fā)需要負(fù)責(zé)和關(guān)心的。而在云原生時(shí)代,希望將這種協(xié)議固定住,通過業(yè)務(wù)提供探針,來判斷應(yīng)用程序是健康的還是不健康的,這就需要在應(yīng)用內(nèi)部通過HTTP協(xié)議或者Shell來提供健康信息,這樣才能夠應(yīng)用生命周期管理落到平臺(tái)中去。

??

??

 

  • 自動(dòng)彈性
  • 自動(dòng)騰挪
  • 自動(dòng)重啟(自愈)

協(xié)議(Contract)=API+Configuration

統(tǒng)籌來看,協(xié)議就是API+配置。對(duì)于API而言,如果大家使用緩存,那么基本會(huì)將開源的協(xié)議當(dāng)做API,這樣的協(xié)議通常會(huì)比閉源的協(xié)議更加友好。對(duì)于RPC協(xié)議,開源的GRPC和DUBBO會(huì)優(yōu)于私有的HSF。此外還有對(duì)于基礎(chǔ)設(shè)施的協(xié)議,比如Terraform、Pulumi這些其實(shí)是在定義一種開源的配置語言,這些配置語言能夠幫助聲明所需要的基礎(chǔ)設(shè)施,比如容器、磁盤、網(wǎng)絡(luò)、存儲(chǔ)等,雖然現(xiàn)在的配置語言種類比較多,但是未來最終會(huì)形成1到2種語言,就像是Java的SDK一樣,未來使用云資源必然會(huì)呈現(xiàn)出一套SDK來,這個(gè)SDK必然是根據(jù)一套配置代碼化語言來構(gòu)建的。進(jìn)一步的,GitOps等將發(fā)布流程、發(fā)布策略也定義成了一套語言,而這在未來將會(huì)應(yīng)用程序與云之間的標(biāo)準(zhǔn)協(xié)議。

Docker (& OCI) 是標(biāo)準(zhǔn)的軟件交付 API。

  • 作為 RPC 協(xié)議,開源的 GRPC/DUBBO 優(yōu)于私有的 HSF。
  • 作為緩存協(xié)議,開源的 Redis 優(yōu)于私有的 Tair。
  • 微軟的 Dapr 嘗試基于 sidecar 架構(gòu)將 API 標(biāo)準(zhǔn)化到 HTTP/GRPC 層,以去 SDK,并支持多語言。
  • Terraform,Pulumi 等 IaC 產(chǎn)品,通過配置語言聲明基礎(chǔ)設(shè)施。
  • GitOps 進(jìn)一步的使用代碼聲明環(huán)境、發(fā)布流程、發(fā)布策略內(nèi)容。

研發(fā)關(guān)注點(diǎn)的轉(zhuǎn)變

原來的時(shí)候,應(yīng)用程序所需要關(guān)心的東西太多,比如各種SDK、各種運(yùn)維事件,但是這些東西實(shí)際上都可以被抽象成一種模型,并且使用一種新的語言來定義,這也是整個(gè)云產(chǎn)業(yè)所關(guān)心的事情。

??

??

 

之所以一直強(qiáng)調(diào)新語言和新協(xié)議,是因?yàn)槎x了新的語言或者協(xié)議之后,應(yīng)用程序所需要關(guān)心的就是這些了。對(duì)于開發(fā)者而言,最關(guān)心的就是代碼,那么如果能夠用代碼來描述應(yīng)用對(duì)于基礎(chǔ)設(shè)施、運(yùn)維、托管的需求,那么就會(huì)對(duì)應(yīng)用程序非常友好。應(yīng)用程序只需要能夠?qū)舆@個(gè)協(xié)議,那么就能夠在專有云、公有云、阿里云上同時(shí)運(yùn)行。

??

??

 

總結(jié)

未來,云上的資源會(huì)越來越豐富,在基礎(chǔ)設(shè)施之上,云平臺(tái)提供了更多的PaaS能力,就像是操作系統(tǒng)在提供了進(jìn)程這些能力之上,還有很多的SDK。但是,這些能力目前在使用上還非常低效和不標(biāo)準(zhǔn),使用過程也比較麻煩。今天我們?cè)谝灶愃茀R編的形式使用云,云原生則在重新定義應(yīng)用程序與云平臺(tái)之間的契約,并圍繞這個(gè)契約來構(gòu)建更高級(jí)的編程語言和工具。這就是云原生時(shí)代背景下,應(yīng)用架構(gòu)演進(jìn)非常重要的一個(gè)方向。

【本文為51CTO專欄作者“阿里巴巴官方技術(shù)”原創(chuàng)稿件,轉(zhuǎn)載請(qǐng)聯(lián)系原作者】

??戳這里,看該作者更多好文??

責(zé)任編輯:武曉燕 來源: 51CTO專欄
相關(guān)推薦

2020-08-28 08:29:40

云原生微服務(wù)編程

2024-04-11 10:53:57

云計(jì)算

2024-05-07 08:07:30

云原生

2017-07-11 09:56:05

5GHTTPDNS

2022-12-07 21:28:43

數(shù)據(jù)庫運(yùn)維云原生

2021-08-09 11:43:02

容器云原生安全

2023-08-28 16:08:12

2018-08-31 17:37:52

intel云計(jì)算AI

2019-10-08 11:04:44

SOA微服務(wù)架構(gòu)

2021-09-02 16:10:57

系統(tǒng)數(shù)據(jù)存儲(chǔ)

2022-02-21 09:00:00

云原生應(yīng)用開發(fā)

2023-11-30 16:42:21

2021-09-03 10:58:34

移動(dòng)網(wǎng)絡(luò)5G云應(yīng)用

2020-07-16 08:05:15

JavaGo

2022-12-23 08:58:35

字節(jié)跳動(dòng)YARN架構(gòu)

2023-08-30 16:22:03

云原生云計(jì)算

2024-02-04 09:36:16

人工智能AIGPT-4

2017-07-18 15:55:32

2022-07-27 12:20:14

云原生應(yīng)用安全DevOps
點(diǎn)贊
收藏

51CTO技術(shù)棧公眾號(hào)

主站蜘蛛池模板: 精品乱子伦一区二区三区 | 精品国产乱码久久久久久丨区2区 | 久久精品国产99国产精品 | 欧美精品一区二区三区在线播放 | 国产欧美在线播放 | 农村真人裸体丰满少妇毛片 | 久久精品国产亚洲 | 精品二区 | 国产精品久久久久久久久久妞妞 | 国产精品波多野结衣 | 91国内精品久久 | 日本久久久久久久久 | 51ⅴ精品国产91久久久久久 | 精品久久久久久久久久 | 99久久久国产精品 | 国产精品久久欧美久久一区 | 成人在线视频免费观看 | 欧美一区二区在线 | 精品九九久久 | 成人av一区二区三区 | 亚洲午夜av久久乱码 | 日韩一区二区三区在线观看 | 一级毛片视频在线 | 亚洲一区二区三区乱码aⅴ 四虎在线视频 | 日本在线网站 | 罗宾被扒开腿做同人网站 | www日本在线播放 | 视频二区 | 国产蜜臀97一区二区三区 | 国产精品精品视频一区二区三区 | 欧美高清hd | 激情免费视频 | 亚洲精品自在在线观看 | 成年网站在线观看 | 欧美日韩一区二区在线播放 | 成人小视频在线观看 | 国产精品毛片一区二区在线看 | 亚洲男人的天堂网站 | 国产98色在线 | 日韩 | 亚洲精品国产第一综合99久久 | 成人在线精品视频 |